robert.elder commited on
Commit ·
a42874d
1
Parent(s): cae49e7
95th percentile bounds, correction to exposure2 COU
Browse files- color2_module/colors.py +2 -2
- color2_module/static/COU.md +3 -2
- exposure2_module/exposure.py +2 -2
- exposure2_module/static/exposure_COU.html +4 -4
- exposure2_module/static/exposure_COU.md +2 -2
- polymer_names.tsv +2 -2
- polymers.py +23 -0
color2_module/colors.py
CHANGED
|
@@ -3,7 +3,7 @@ import numpy as np
|
|
| 3 |
from functions import SigFigs, Piringer, WilkeChang, SheetRelease, SheetRates, RatePlot
|
| 4 |
from functions import Piecewise, PowerLaw
|
| 5 |
from . import blueprint
|
| 6 |
-
from polymers import Polymers,
|
| 7 |
from ChemID import ResolveChemical, ImageFromSmiles, Imageto64
|
| 8 |
import rdkit
|
| 9 |
from rdkit.Chem import AllChem as Chem
|
|
@@ -27,7 +27,7 @@ METAL_ATOM_SET = set([3,4,11,12,13] + list(range(19,31+1)) + list(range(37,50+1)
|
|
| 27 |
if not use_new:
|
| 28 |
polymers, Ap = Polymers()
|
| 29 |
else:
|
| 30 |
-
polymers, categories, params =
|
| 31 |
|
| 32 |
# Named color additives, TI values, and Mw
|
| 33 |
nCA = 13
|
|
|
|
| 3 |
from functions import SigFigs, Piringer, WilkeChang, SheetRelease, SheetRates, RatePlot
|
| 4 |
from functions import Piecewise, PowerLaw
|
| 5 |
from . import blueprint
|
| 6 |
+
from polymers import Polymers, Polymers3
|
| 7 |
from ChemID import ResolveChemical, ImageFromSmiles, Imageto64
|
| 8 |
import rdkit
|
| 9 |
from rdkit.Chem import AllChem as Chem
|
|
|
|
| 27 |
if not use_new:
|
| 28 |
polymers, Ap = Polymers()
|
| 29 |
else:
|
| 30 |
+
polymers, categories, params = Polymers3()
|
| 31 |
|
| 32 |
# Named color additives, TI values, and Mw
|
| 33 |
nCA = 13
|
color2_module/static/COU.md
CHANGED
|
@@ -16,7 +16,8 @@
|
|
| 16 |
## Context of Use (COU)
|
| 17 |
|
| 18 |
The CHRIS - Color additives module is intended to conduct screening level risk assessments
|
| 19 |
-
to aid in the biocompatibility evaluation of polymeric medical device components that contain color additives (CAs)[^1].
|
|
|
|
| 20 |
other additives and impurities associated with CAs in a device would require additional justification and/or testing to
|
| 21 |
demonstrate acceptable biological risk. The output is a conservative margin of safety (MOS = toxicological
|
| 22 |
safety limit ÷ exposure dose) value for a CA (and associated additives and impurities) contained within a polymeric
|
|
@@ -58,4 +59,4 @@ While these assumptions are typically valid for color additive containing device
|
|
| 58 |
|
| 59 |
B) when added or applied to a food, drug, or cosmetic, or to the human body or any part thereof, is capable (alone or through reaction with other substance) of imparting color thereto; except that such term does not include any material which the Secretary [of the Department of Health and Human Services] by regulation, determines is used (or intended to be used) solely for a purpose or purposes other than coloring.
|
| 60 |
|
| 61 |
-
[^2]: 21 CFR 73, Subpart D and 21 CFR 74, Subpart D identifies all those color additives for which a color additive petition exists for use of the color in a medical device application. Not all of these color additives are included in the CHRIS calculator. Please see the [instructions](README.html) for how to use the calculator with a color additive other than those identified in the CHRIS calculator drop down menu.
|
|
|
|
| 16 |
## Context of Use (COU)
|
| 17 |
|
| 18 |
The CHRIS - Color additives module is intended to conduct screening level risk assessments
|
| 19 |
+
to aid in the biocompatibility evaluation of polymeric medical device components that contain color additives (CAs)[^1].
|
| 20 |
+
These assessments can assist device manufacturers by providing instantaneous feedback on whether the presence of CAs or
|
| 21 |
other additives and impurities associated with CAs in a device would require additional justification and/or testing to
|
| 22 |
demonstrate acceptable biological risk. The output is a conservative margin of safety (MOS = toxicological
|
| 23 |
safety limit ÷ exposure dose) value for a CA (and associated additives and impurities) contained within a polymeric
|
|
|
|
| 59 |
|
| 60 |
B) when added or applied to a food, drug, or cosmetic, or to the human body or any part thereof, is capable (alone or through reaction with other substance) of imparting color thereto; except that such term does not include any material which the Secretary [of the Department of Health and Human Services] by regulation, determines is used (or intended to be used) solely for a purpose or purposes other than coloring.
|
| 61 |
|
| 62 |
+
[^2]: 21 CFR 73, Subpart D and 21 CFR 74, Subpart D identifies all those color additives for which a color additive petition exists for use of the color in a medical device application. Not all of these color additives are included in the CHRIS calculator. Please see the [instructions](README.html) for how to use the calculator with a color additive other than those identified in the CHRIS calculator drop down menu.
|
exposure2_module/exposure.py
CHANGED
|
@@ -3,7 +3,7 @@ from flask import render_template, request
|
|
| 3 |
from functions import SigFigs, Piringer, WilkeChang, SheetRelease, SheetRates, RatePlot
|
| 4 |
from functions import Piecewise, PowerLaw
|
| 5 |
from . import blueprint
|
| 6 |
-
from polymers import Polymers,
|
| 7 |
from ChemID import ResolveChemical
|
| 8 |
|
| 9 |
import rdkit
|
|
@@ -24,7 +24,7 @@ use_new = True
|
|
| 24 |
if not use_new:
|
| 25 |
polymers, Ap = Polymers()
|
| 26 |
else:
|
| 27 |
-
polymers, categories, params =
|
| 28 |
|
| 29 |
# load the index page for the exposure module
|
| 30 |
@blueprint.route('/exposure2', methods=['GET'])
|
|
|
|
| 3 |
from functions import SigFigs, Piringer, WilkeChang, SheetRelease, SheetRates, RatePlot
|
| 4 |
from functions import Piecewise, PowerLaw
|
| 5 |
from . import blueprint
|
| 6 |
+
from polymers import Polymers, Polymers3
|
| 7 |
from ChemID import ResolveChemical
|
| 8 |
|
| 9 |
import rdkit
|
|
|
|
| 24 |
if not use_new:
|
| 25 |
polymers, Ap = Polymers()
|
| 26 |
else:
|
| 27 |
+
polymers, categories, params = Polymers3()
|
| 28 |
|
| 29 |
# load the index page for the exposure module
|
| 30 |
@blueprint.route('/exposure2', methods=['GET'])
|
exposure2_module/static/exposure_COU.html
CHANGED
|
@@ -68,10 +68,10 @@ worst-case (upper bound) diffusion coefficient, as a function of
|
|
| 68 |
molecular weight, has been established based on data from the
|
| 69 |
literature. For polymer matrices that are not included in this list,
|
| 70 |
CHRIS assigns an ultra-conservative diffusion coefficient that assumes
|
| 71 |
-
the polymer has the properties of water.
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
used as a conservative value.</p>
|
| 75 |
<p>In the absence of adequate toxicological and exposure data for a
|
| 76 |
chemical in a polymeric matrix, a toxicological risk assessment can be
|
| 77 |
conducted for systemic biocompatibility endpoints by comparing the
|
|
|
|
| 68 |
molecular weight, has been established based on data from the
|
| 69 |
literature. For polymer matrices that are not included in this list,
|
| 70 |
CHRIS assigns an ultra-conservative diffusion coefficient that assumes
|
| 71 |
+
the polymer has the properties of water. CHRIS was parameterized for
|
| 72 |
+
solutes up to 1100 g/mol. For substances with a molecular weight >
|
| 73 |
+
1100 g/mol, the value of the diffusion coefficient assuming a molecular
|
| 74 |
+
weight of 1100 g/mol can be used as a conservative value.</p>
|
| 75 |
<p>In the absence of adequate toxicological and exposure data for a
|
| 76 |
chemical in a polymeric matrix, a toxicological risk assessment can be
|
| 77 |
conducted for systemic biocompatibility endpoints by comparing the
|
exposure2_module/static/exposure_COU.md
CHANGED
|
@@ -28,6 +28,6 @@ CHRIS provides clinically relevant, yet still conservative, exposure dose estima
|
|
| 28 |
1. The total amount of the chemical is present in dilute concentrations (<= 2 m/v %).
|
| 29 |
1. Any particles/aggregates of the chemical present in the polymer are much smaller than the smallest component dimension (<= 50x).
|
| 30 |
|
| 31 |
-
While these assumptions are typically valid for bulk additives and impurities in biostable polymers, users of CHRIS must confirm conformance to the underlying assumptions or provide supporting justification to ensure compliance for a given system. Further, CHRIS only enables system specific exposure estimates for fifty (50) polymeric systems that are generally biostable (non-swelling and non-degrading). These polymers are listed below. To estimate chemical release based on the model, the diffusion coefficient of the chemical in the polymer matrix must be specified. For the fifty (50) listed polymeric systems, a worst-case (upper bound) diffusion coefficient, as a function of molecular weight, has been established based on data from the literature. For polymer matrices that are not included in this list, CHRIS assigns an ultra-conservative diffusion coefficient that assumes the polymer has the properties of water. up to 1100 g/mol. Therefore, for substances with a molecular weight > 1100 g/mol, the value of the diffusion coefficient assuming a molecular weight of 1100 g/mol can be used as a conservative value.
|
| 32 |
|
| 33 |
-
In the absence of adequate toxicological and exposure data for a chemical in a polymeric matrix, a toxicological risk assessment can be conducted for systemic biocompatibility endpoints by comparing the exposure estimate to an appropriate threshold of toxicological concern (TTC). This is the approach used by CHRIS in this module. The TTC values are based on systemic toxicity, thus CHRIS can address acute systemic toxicity, subacute/subchronic toxicity, genotoxicity, carcinogenicity, and reproductive and developmental toxicity. It does not, however, address cytotoxicity, sensitization, irritation, hemocompatibility, material mediated pyrogenicity, or implantation. Therefore, an MOS >= 1 implies the chemical will not raise a safety concern with respect to only the systemic biocompatibility endpoints, provided the chemical is not within the cohort of concern, which is reflected in the output of CHRIS.
|
|
|
|
| 28 |
1. The total amount of the chemical is present in dilute concentrations (<= 2 m/v %).
|
| 29 |
1. Any particles/aggregates of the chemical present in the polymer are much smaller than the smallest component dimension (<= 50x).
|
| 30 |
|
| 31 |
+
While these assumptions are typically valid for bulk additives and impurities in biostable polymers, users of CHRIS must confirm conformance to the underlying assumptions or provide supporting justification to ensure compliance for a given system. Further, CHRIS only enables system specific exposure estimates for fifty (50) polymeric systems that are generally biostable (non-swelling and non-degrading). These polymers are listed below. To estimate chemical release based on the model, the diffusion coefficient of the chemical in the polymer matrix must be specified. For the fifty (50) listed polymeric systems, a worst-case (upper bound) diffusion coefficient, as a function of molecular weight, has been established based on data from the literature. For polymer matrices that are not included in this list, CHRIS assigns an ultra-conservative diffusion coefficient that assumes the polymer has the properties of water. Note that the worst-case diffusion coefficient is only defined over a molecular weight range of up to 1100 g/mol. Therefore, for substances with a molecular weight > 1100 g/mol, the value of the diffusion coefficient assuming a molecular weight of 1100 g/mol can be used as a conservative value.
|
| 32 |
|
| 33 |
+
In the absence of adequate toxicological and exposure data for a chemical in a polymeric matrix, a toxicological risk assessment can be conducted for systemic biocompatibility endpoints by comparing the exposure estimate to an appropriate threshold of toxicological concern (TTC). This is the approach used by CHRIS in this module. The TTC values are based on systemic toxicity, thus CHRIS can address acute systemic toxicity, subacute/subchronic toxicity, genotoxicity, carcinogenicity, and reproductive and developmental toxicity. It does not, however, address cytotoxicity, sensitization, irritation, hemocompatibility, material mediated pyrogenicity, or implantation. Therefore, an MOS >= 1 implies the chemical will not raise a safety concern with respect to only the systemic biocompatibility endpoints, provided the chemical is not within the cohort of concern, which is reflected in the output of CHRIS.
|
polymer_names.tsv
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:81daa18057b0dca9f335acdc66d8b790ae42c05a85ee9a5a563c50b517b04c3b
|
| 3 |
+
size 3329
|
polymers.py
CHANGED
|
@@ -37,6 +37,9 @@ def Polymers():
|
|
| 37 |
return polymers, Ap
|
| 38 |
|
| 39 |
def Polymers2():
|
|
|
|
|
|
|
|
|
|
| 40 |
from functions import PowerLaw, Piringer
|
| 41 |
PolyData = pd.read_csv('polymer_names.tsv', sep='\t')
|
| 42 |
polymers = np.array(list(PolyData['Long_Name'])+['Other polymer'])
|
|
@@ -53,3 +56,23 @@ def Polymers2():
|
|
| 53 |
# None = new correlation for D in water at 37 °C, ln(alpha) = ln(3.07e-4) ~ -8.09, beta=-0.6
|
| 54 |
return polymers, categories, params
|
| 55 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 37 |
return polymers, Ap
|
| 38 |
|
| 39 |
def Polymers2():
|
| 40 |
+
"""
|
| 41 |
+
Statistical 95% confidence level
|
| 42 |
+
"""
|
| 43 |
from functions import PowerLaw, Piringer
|
| 44 |
PolyData = pd.read_csv('polymer_names.tsv', sep='\t')
|
| 45 |
polymers = np.array(list(PolyData['Long_Name'])+['Other polymer'])
|
|
|
|
| 56 |
# None = new correlation for D in water at 37 °C, ln(alpha) = ln(3.07e-4) ~ -8.09, beta=-0.6
|
| 57 |
return polymers, categories, params
|
| 58 |
|
| 59 |
+
def Polymers3():
|
| 60 |
+
"""
|
| 61 |
+
95th quantile bounds
|
| 62 |
+
"""
|
| 63 |
+
from functions import PowerLaw, Piringer
|
| 64 |
+
PolyData = pd.read_csv('polymer_names.tsv', sep='\t')
|
| 65 |
+
polymers = np.array(list(PolyData['Long_Name'])+['Other polymer'])
|
| 66 |
+
categories = np.array(list(PolyData['New Class'])+[None])
|
| 67 |
+
params = {'G1': [50, PowerLaw, PowerLaw, [-13.502779929501807, -0.6666666666666666], [-10.253395603708231, -3.217613748314546]],
|
| 68 |
+
'G2': [50, PowerLaw, PowerLaw, [-12.76225708905239, -0.6666666666666666], [-5.160958746539876, -5.167139469939434]],
|
| 69 |
+
'P1': [50, Piringer, Piringer, [13.629303279781514], [12.079611631692895]],
|
| 70 |
+
'P2': [50, Piringer, Piringer, [13.290448761749992], [9.322679065204227]],
|
| 71 |
+
'P3': [50, Piringer, Piringer, [12.545823492654485], [7.933602214641137]],
|
| 72 |
+
'P4': [50, Piringer, Piringer, [11.156096930175831], [5.613951368217457]],
|
| 73 |
+
'R1': [96.8065922072269, PowerLaw, Piringer, [-8.12291795252817, -0.6], [16.206593376953126]],
|
| 74 |
+
'R2': [50, Piringer, Piringer, [14.072482049201522], [14.281527272781695]],
|
| 75 |
+
None: [50, PowerLaw, PowerLaw, [-8.12291795252817, -0.6], [-8.12291795252817, -0.6]]}
|
| 76 |
+
# None = new correlation for D in water at 37 °C, ln(alpha) = ln(2.967e-4) ~ -8.12, beta=-0.6
|
| 77 |
+
return polymers, categories, params
|
| 78 |
+
|