Robert Elder commited on
Commit ·
25ef50a
1
Parent(s): 76da1b2
added total quantity estimator module
Browse files- CHRIS.py +3 -0
- ChemID.py +1 -1
- functions.py +20 -3
- quantity_functions.py +266 -0
- quantity_module/__init__.py +5 -0
- quantity_module/data/bounds-50.pkl +3 -0
- quantity_module/data/bounds.pkl +3 -0
- quantity_module/data/copy-data.sh +11 -0
- quantity_module/data/data-descriptors-mordred-numconfs51.xlsx +3 -0
- quantity_module/data/db-D-interp-37-clean.xlsx +3 -0
- quantity_module/data/db-D-interp-50-clean.xlsx +3 -0
- quantity_module/data/db-D.xlsx +3 -0
- quantity_module/data/db-properties-polymer.xlsx +3 -0
- quantity_module/data/param_distribution_37.json +1 -0
- quantity_module/data/param_distribution_50.json +1 -0
- quantity_module/data/solvent-viscosity.xlsx +3 -0
- quantity_module/data/vrentas-duda-params.xlsx +3 -0
- quantity_module/quantity.py +180 -0
- quantity_module/static/Changelog.html +17 -0
- quantity_module/static/Changelog.md +19 -0
- quantity_module/static/images/FDAgraphic.png +3 -0
- quantity_module/static/images/FDAlogo.png +3 -0
- quantity_module/static/md2html.sh +5 -0
- quantity_module/static/quantity_COU.html +48 -0
- quantity_module/static/quantity_COU.md +29 -0
- quantity_module/templates/quantity_chemError.html +24 -0
- quantity_module/templates/quantity_index.html +238 -0
- quantity_module/templates/quantity_metalError.html +68 -0
- quantity_module/templates/quantity_report.html +149 -0
- quantity_module/templates/quantity_temperatureError.html +23 -0
- templates/main.html +7 -0
CHRIS.py
CHANGED
|
@@ -25,6 +25,9 @@ app.register_blueprint(blueprint)
|
|
| 25 |
from exposure3_module import blueprint
|
| 26 |
app.register_blueprint(blueprint)
|
| 27 |
|
|
|
|
|
|
|
|
|
|
| 28 |
@app.route('/', methods=['GET'])
|
| 29 |
def app_init():
|
| 30 |
return render_template('main.html')
|
|
|
|
| 25 |
from exposure3_module import blueprint
|
| 26 |
app.register_blueprint(blueprint)
|
| 27 |
|
| 28 |
+
from quantity_module import blueprint
|
| 29 |
+
app.register_blueprint(blueprint)
|
| 30 |
+
|
| 31 |
@app.route('/', methods=['GET'])
|
| 32 |
def app_init():
|
| 33 |
return render_template('main.html')
|
ChemID.py
CHANGED
|
@@ -963,7 +963,7 @@ def string2mp(name, namespace='name'):
|
|
| 963 |
if pd.isna(mp):
|
| 964 |
mask = df_pred['CASRN'] == cas
|
| 965 |
if sum(mask):
|
| 966 |
-
mp = float(df_pred[mask]['MELTING_POINT_DEGC_OPERA_PRED'])
|
| 967 |
mp_origin = 'comptox/pred'
|
| 968 |
# try to scrape from PubChem
|
| 969 |
if pd.isna(mp):
|
|
|
|
| 963 |
if pd.isna(mp):
|
| 964 |
mask = df_pred['CASRN'] == cas
|
| 965 |
if sum(mask):
|
| 966 |
+
mp = float(df_pred[mask]['MELTING_POINT_DEGC_OPERA_PRED'].iloc[0])
|
| 967 |
mp_origin = 'comptox/pred'
|
| 968 |
# try to scrape from PubChem
|
| 969 |
if pd.isna(mp):
|
functions.py
CHANGED
|
@@ -13,12 +13,10 @@ def SigFigs(number, n):
|
|
| 13 |
if number == 0: return number
|
| 14 |
return round(number, n - int(math.floor(math.log10(math.fabs(number)))) - 1)
|
| 15 |
|
| 16 |
-
def Piringer(Mw, Ap):
|
| 17 |
# Semi-empirical model for D(Mw) given polymer property Ap- Toxicol. Sci. 2019, 172 (1), 201–212.
|
| 18 |
if Mw > 1100.: # if molecule is greater than 1100 g/mol, default to that value as worst case
|
| 19 |
Mw = 1100.
|
| 20 |
-
T = 310.
|
| 21 |
-
|
| 22 |
return 1e4 * np.exp(Ap - 0.1351 * Mw ** (2. / 3.) + 0.003 * Mw - 10454. / T)
|
| 23 |
|
| 24 |
def WilkeChang(Mw):
|
|
@@ -82,6 +80,25 @@ def RatePlot(tarray, rates):
|
|
| 82 |
return pngImageB64String
|
| 83 |
|
| 84 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 85 |
def PlaneSheetFiniteBathMass(M0, D, K, PolymerVolume, SurfaceArea, SolventVolume, ExtractionTime, nterms):
|
| 86 |
L = PolymerVolume / SurfaceArea # effective length scale of the component
|
| 87 |
alpha = SolventVolume / PolymerVolume / K
|
|
|
|
| 13 |
if number == 0: return number
|
| 14 |
return round(number, n - int(math.floor(math.log10(math.fabs(number)))) - 1)
|
| 15 |
|
| 16 |
+
def Piringer(Mw, Ap, T=310.):
|
| 17 |
# Semi-empirical model for D(Mw) given polymer property Ap- Toxicol. Sci. 2019, 172 (1), 201–212.
|
| 18 |
if Mw > 1100.: # if molecule is greater than 1100 g/mol, default to that value as worst case
|
| 19 |
Mw = 1100.
|
|
|
|
|
|
|
| 20 |
return 1e4 * np.exp(Ap - 0.1351 * Mw ** (2. / 3.) + 0.003 * Mw - 10454. / T)
|
| 21 |
|
| 22 |
def WilkeChang(Mw):
|
|
|
|
| 80 |
return pngImageB64String
|
| 81 |
|
| 82 |
|
| 83 |
+
def CdfPlot(vals, units=None):
|
| 84 |
+
|
| 85 |
+
xlabel = 'Total quantity' if units is None else f'Total quantity ({units})'
|
| 86 |
+
fig, ax = plt.subplots(figsize=(6, 4))
|
| 87 |
+
ax.ecdf(vals, c='b', lw=3)
|
| 88 |
+
ax.set_xscale('log')
|
| 89 |
+
ax.set(
|
| 90 |
+
xlabel=xlabel,
|
| 91 |
+
ylabel='Cumulative probability',
|
| 92 |
+
)
|
| 93 |
+
plt.tight_layout()
|
| 94 |
+
pngImage = io.BytesIO()
|
| 95 |
+
FigureCanvas(fig).print_png(pngImage)
|
| 96 |
+
pngImageB64String = "data:image/png;base64,"
|
| 97 |
+
pngImageB64String += base64.b64encode(pngImage.getvalue()).decode('utf8')
|
| 98 |
+
|
| 99 |
+
return pngImageB64String
|
| 100 |
+
|
| 101 |
+
|
| 102 |
def PlaneSheetFiniteBathMass(M0, D, K, PolymerVolume, SurfaceArea, SolventVolume, ExtractionTime, nterms):
|
| 103 |
L = PolymerVolume / SurfaceArea # effective length scale of the component
|
| 104 |
alpha = SolventVolume / PolymerVolume / K
|
quantity_functions.py
ADDED
|
@@ -0,0 +1,266 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import json,pickle
|
| 2 |
+
import numbers
|
| 3 |
+
import numpy as np
|
| 4 |
+
import pandas as pd
|
| 5 |
+
import scipy as sp
|
| 6 |
+
from scipy.optimize import bisect
|
| 7 |
+
import scipy.special
|
| 8 |
+
|
| 9 |
+
import rdkit
|
| 10 |
+
from rdkit.Chem import AllChem as Chem
|
| 11 |
+
import chemicals
|
| 12 |
+
|
| 13 |
+
import mordred
|
| 14 |
+
import mordred.descriptors
|
| 15 |
+
|
| 16 |
+
from functions import PowerLaw, Piringer
|
| 17 |
+
|
| 18 |
+
### TODO arbitrary T
|
| 19 |
+
|
| 20 |
+
## sampling parameters
|
| 21 |
+
N_sample = int(1e5)
|
| 22 |
+
rng = np.random.Generator(np.random.PCG64(seed=12345))
|
| 23 |
+
|
| 24 |
+
## list of solvents to include
|
| 25 |
+
solvents = sorted(['ethanol', 'isopropanol', 'acetonitrile', 'toluene', 'dichloromethane', 'hexane'])
|
| 26 |
+
|
| 27 |
+
## c distribution parameters
|
| 28 |
+
T_cut = 20
|
| 29 |
+
MW_cut = 20
|
| 30 |
+
|
| 31 |
+
#### read data files
|
| 32 |
+
# CHRIS bounds
|
| 33 |
+
#with open('quantity_module/data/bounds.pkl', 'rb') as fp:
|
| 34 |
+
# params_dict_ub, params_dict_lb, params_dict_ub_band, params_dict_lb_band, params_dict_q95, params_dict_q50, params_dict_q05 = pickle.load(fp)
|
| 35 |
+
#with open('quantity_module/data/bounds-50.pkl', 'rb') as fp:
|
| 36 |
+
# params_dict_ub_50, params_dict_lb_50, params_dict_ub_band_50, params_dict_lb_band_50, params_dict_q95_50, params_dict_q50_50, params_dict_q05_50 = pickle.load(fp)
|
| 37 |
+
# CHRIS parameter distributions
|
| 38 |
+
param_dists = {}
|
| 39 |
+
with open('quantity_module/data/param_distribution_37.json','r') as fp:
|
| 40 |
+
param_dists[37] = json.load(fp)
|
| 41 |
+
with open('quantity_module/data/param_distribution_50.json','r') as fp:
|
| 42 |
+
param_dists[50] = json.load(fp)
|
| 43 |
+
# other stuff
|
| 44 |
+
df_visc = pd.read_excel('quantity_module/data/solvent-viscosity.xlsx')
|
| 45 |
+
df_desc = pd.read_excel(f'quantity_module/data/data-descriptors-mordred-numconfs51.xlsx', usecols=['Solute_InChIKey', 'Vabc','VMcGowan'])
|
| 46 |
+
#dfp = pd.read_excel('quantity_module/data/db-properties-polymer.xlsx') ## XXX?
|
| 47 |
+
#df2 = pd.read_excel('quantity_module/data/db-D.xlsx', sheet_name=1) ## XXX?
|
| 48 |
+
#df2['CHRIS Class'] = df2['CHRIS Class'].fillna('none')
|
| 49 |
+
#df2['New Class'] = df2['New Class'].fillna('none')
|
| 50 |
+
## clean data
|
| 51 |
+
df_final_37 = pd.read_excel('quantity_module/data/db-D-interp-37-clean.xlsx')
|
| 52 |
+
df_final_50 = pd.read_excel('quantity_module/data/db-D-interp-50-clean.xlsx')
|
| 53 |
+
# convert all T to K
|
| 54 |
+
df_final_37['T'] = df_final_37['T'] + 273.15
|
| 55 |
+
df_final_37['Polymer_Tg'] = df_final_37['Polymer_Tg'] + 273.15
|
| 56 |
+
df_final_37['Polymer_Tm'] = df_final_37['Polymer_Tm'] + 273.15
|
| 57 |
+
df_final_50['T'] = df_final_50['T'] + 273.15
|
| 58 |
+
df_final_50['Polymer_Tg'] = df_final_50['Polymer_Tg'] + 273.15
|
| 59 |
+
df_final_50['Polymer_Tm'] = df_final_50['Polymer_Tm'] + 273.15
|
| 60 |
+
# add volumes
|
| 61 |
+
df_final_37 = pd.merge(df_final_37, df_desc[['Solute_InChIKey', 'Vabc', 'VMcGowan']], how='left', on='Solute_InChIKey', suffixes=('', '_dupe'))
|
| 62 |
+
df_final_50 = pd.merge(df_final_50, df_desc[['Solute_InChIKey', 'Vabc', 'VMcGowan']], how='left', on='Solute_InChIKey', suffixes=('', '_dupe'))
|
| 63 |
+
|
| 64 |
+
#### solvent-specific viscosity
|
| 65 |
+
# add MW
|
| 66 |
+
mws = []
|
| 67 |
+
for solv in df_visc['Solvent_Name']:
|
| 68 |
+
mw = chemicals.search_chemical(solv).MW
|
| 69 |
+
mws.append(mw)
|
| 70 |
+
df_visc['MW'] = mws
|
| 71 |
+
## selected solvent MWs
|
| 72 |
+
SolventMWs = {solv:df_visc.loc[df_visc['Solvent_Name']==solv,'MW'].iloc[0] for solv in solvents}
|
| 73 |
+
# linear relation to estimate Vabc when it fails for a molecule
|
| 74 |
+
Vabc = df_desc['Vabc']
|
| 75 |
+
Vmcg = df_desc['VMcGowan']
|
| 76 |
+
m = ~pd.isna(Vabc)
|
| 77 |
+
popt_V = np.polyfit(Vmcg[m], Vabc[m], 1)
|
| 78 |
+
|
| 79 |
+
def get_WC(T,solv,V):
|
| 80 |
+
params = df_visc[df_visc['Solvent_Name']==solv].iloc[0]
|
| 81 |
+
if params['Equation'] == '10^A(1/T-1/B)':
|
| 82 |
+
eta = 10**(params['A']*(1/T-1/params['B']))
|
| 83 |
+
elif params['Equation'] == 'A*exp(B/T)':
|
| 84 |
+
eta = params['A']*np.exp(params['B']/T)
|
| 85 |
+
elif params['Equation'] == 'E*exp(A+B/(T/298.15)+C/(T/298.15)^2+D/(T/298.15)^3)':
|
| 86 |
+
eta = params['E']*np.exp(params['A'] + params['B']/(T/298.15) + params['C']/(T/298.15)**2 + params['D']/(T/298.15)**3)
|
| 87 |
+
elif params['Equation'] == 'A*exp(-0.01*B*(T-298.15))':
|
| 88 |
+
eta = params['A']*np.exp(-0.01*params['B']*(T-298.15))
|
| 89 |
+
elif params['Equation'] == 'A+BT/1+CT+DT^2':
|
| 90 |
+
eta = (params['A']+params['B']*T) / (1 + params['C']*T + params['D']*T**2)
|
| 91 |
+
elif params['Equation'] == 'A+B/T+C/T^2+D/T^3':
|
| 92 |
+
eta = params['A'] + params['B']/T + params['C']/T**2 + params['D']/T**3
|
| 93 |
+
elif params['Equation'] == 'A*298.15/T':
|
| 94 |
+
eta = params['A'] * 298.15/T
|
| 95 |
+
elif params['Equation'] == 'A*T+B':
|
| 96 |
+
eta = params['A'] * T + params['A']
|
| 97 |
+
else:
|
| 98 |
+
eta = np.nan
|
| 99 |
+
D_WC = 7.4e-8*(params['MW']*params['WC_assoc_param'])**0.5*(T)/eta/V**0.6
|
| 100 |
+
return D_WC, eta, params['MW']
|
| 101 |
+
|
| 102 |
+
#### add Wilke-Chang
|
| 103 |
+
## 50 C
|
| 104 |
+
# estimate Vabc for those with nan values
|
| 105 |
+
m = pd.isna(df_final_50['Vabc'])
|
| 106 |
+
v = np.polyval(popt_V, df_final_50['VMcGowan'][m])
|
| 107 |
+
df_final_50.loc[m, 'Vabc'] = v
|
| 108 |
+
T = df_final_50['T']
|
| 109 |
+
V = df_final_50['Vabc']
|
| 110 |
+
for solv in solvents:
|
| 111 |
+
D_WC, eta, MW_solvent = get_WC(T, solv, V)
|
| 112 |
+
df_final_50[f'eta_{solv}'] = eta
|
| 113 |
+
df_final_50[f'D_WC_{solv}'] = D_WC
|
| 114 |
+
df_final_50[f'MW_solvent_{solv}'] = MW_solvent
|
| 115 |
+
## 37 C
|
| 116 |
+
# estimate Vabc for those with nan values
|
| 117 |
+
m = pd.isna(df_final_37['Vabc'])
|
| 118 |
+
v = np.polyval(popt_V, df_final_37['VMcGowan'][m])
|
| 119 |
+
df_final_37.loc[m, 'Vabc'] = v
|
| 120 |
+
T = df_final_37['T']
|
| 121 |
+
V = df_final_37['Vabc']
|
| 122 |
+
for solv in solvents:
|
| 123 |
+
D_WC, eta, MW_solvent = get_WC(T, solv, V)
|
| 124 |
+
df_final_37[f'eta_{solv}'] = eta
|
| 125 |
+
df_final_37[f'D_WC_{solv}'] = D_WC
|
| 126 |
+
df_final_37[f'MW_solvent_{solv}'] = MW_solvent
|
| 127 |
+
|
| 128 |
+
def get_V(mol):
|
| 129 |
+
calc = mordred.Calculator([mordred.descriptors.VdwVolumeABC, mordred.descriptors.McGowanVolume])
|
| 130 |
+
Vabc,Vmcg = list(calc(mol).values())
|
| 131 |
+
if not isinstance(Vabc, numbers.Number):
|
| 132 |
+
Vabc = np.polyval(popt_V, Vmcg)
|
| 133 |
+
return Vabc
|
| 134 |
+
|
| 135 |
+
#### Vrentas-Duda setup
|
| 136 |
+
df_vd_solv = pd.read_excel('quantity_module/data/vrentas-duda-params.xlsx', sheet_name='Solutes')
|
| 137 |
+
df_vd_solv.drop_duplicates(keep='first', inplace=True, ignore_index=True) # drop exact duplicates
|
| 138 |
+
df_vd_poly = pd.read_excel('quantity_module/data/vrentas-duda-params.xlsx', sheet_name='Polymers')
|
| 139 |
+
df_vd_poly.drop_duplicates(keep='first', inplace=True, ignore_index=True) # drop exact duplicates
|
| 140 |
+
#df_vd_poly = pd.merge(df_vd_poly, dfp[['Polymer_Name','Polymer_Tg','Polymer_Tm']], how='left', on='Polymer_Name')
|
| 141 |
+
#df_vd_poly = pd.merge(df_vd_poly, df2[['Polymer_Name', 'CHRIS Class', 'New Class']], how='left', on='Polymer_Name')
|
| 142 |
+
#df_vd_poly['New Class'] = df_vd_poly['New Class'].fillna('none')
|
| 143 |
+
#df_vd_poly['CHRIS Class'] = df_vd_poly['CHRIS Class'].fillna('none')
|
| 144 |
+
|
| 145 |
+
## Calculate c
|
| 146 |
+
dfs_vd_allT = []
|
| 147 |
+
for T in np.arange(100,800,20):
|
| 148 |
+
fV_polyT = (df_vd_poly['K12']*(df_vd_poly['K22-Tg2']+T))
|
| 149 |
+
#fV_polyT[fV_polyT<0.025] = 0.025
|
| 150 |
+
for solvname in set(df_vd_solv['Solute_Name']):
|
| 151 |
+
df_sol = df_vd_solv[df_vd_solv['Solute_Name']==solvname]
|
| 152 |
+
for row in df_sol.iterrows():
|
| 153 |
+
row = row[1]
|
| 154 |
+
fV_sol = (row['K11']*(row['K21-Tg1']+T))
|
| 155 |
+
c_sol = fV_sol / fV_polyT
|
| 156 |
+
df_vd_allT = pd.concat([row]*len(df_vd_poly), axis=1, ignore_index=True).T
|
| 157 |
+
df_vd_allT = pd.concat([df_vd_allT, df_vd_poly], axis=1)
|
| 158 |
+
df_vd_allT['c'] = c_sol
|
| 159 |
+
df_vd_allT['T'] = T
|
| 160 |
+
dfs_vd_allT.append(df_vd_allT)
|
| 161 |
+
df_vd_allT = pd.concat(dfs_vd_allT, ignore_index=True)
|
| 162 |
+
df_vd_allT['T-Tg'] = df_vd_allT['T']-df_vd_allT['Tg2']
|
| 163 |
+
df_vd_allT['T-Tg1'] = df_vd_allT['T']-df_vd_allT['Tg1']
|
| 164 |
+
|
| 165 |
+
def get_c_dist(T,Tg,MW):
|
| 166 |
+
m = (~pd.isna(df_vd_allT['c'])) & (np.abs(df_vd_allT['T-Tg']-max(T_cut,T-Tg))<T_cut) & (np.abs(df_vd_allT['M1']-MW)<MW_cut)
|
| 167 |
+
cs = df_vd_allT.loc[m, 'c']
|
| 168 |
+
cs = np.array(cs)
|
| 169 |
+
cs = cs[~np.isnan(cs)]
|
| 170 |
+
cs = cs[cs>0]
|
| 171 |
+
return cs
|
| 172 |
+
|
| 173 |
+
def get_D_dists(w,T,Polymer_Tg,Solvent_Name,Solvent_MW,Solute_MW,CHRIS_category,N=10000,return_DCs=False):
|
| 174 |
+
"""
|
| 175 |
+
D_dist_noswell, D_dist_swell, (c, Ds, DWCs, DCs) = get_D_dists(Swelling_wtfrac,T,Polymer_Tg,Solvent_Name,Solvent_MW,Solute_MW,CHRIS_category,return_DCs=True,N=N)
|
| 176 |
+
"""
|
| 177 |
+
if np.abs(T-310)<2:
|
| 178 |
+
df_final_T = df_final_37
|
| 179 |
+
if np.abs(T-323)<2:
|
| 180 |
+
df_final_T = df_final_50
|
| 181 |
+
#Solvent_MW = solvmws[Solvent_Name]
|
| 182 |
+
cs = get_c_dist(T,Polymer_Tg,Solvent_MW)
|
| 183 |
+
if Solute_MW < 50:
|
| 184 |
+
m50 = df_final_T['MW']<=50
|
| 185 |
+
else:
|
| 186 |
+
m50 = df_final_T['MW']>50
|
| 187 |
+
## within cutoffs, with at least N closest (by sorting, separating at MW = 50)
|
| 188 |
+
m2 = (np.abs(df_final_T['Polymer_Tg']-Polymer_Tg)<T_cut) & (np.abs(df_final_T['MW']-Solute_MW)<MW_cut) & m50
|
| 189 |
+
if m2.sum()<25:
|
| 190 |
+
vT = df_final_T.loc[m50,'Polymer_Tg']-Polymer_Tg; vM = df_final_T.loc[m50,'MW']-Solute_MW; m3 = pd.concat([np.abs(vT), np.abs(vM)], axis=1).sort_values(by=['Polymer_Tg', 'MW']).index[1:26]
|
| 191 |
+
m2 = list(set(m2.index[m2]).union(set(m3)))
|
| 192 |
+
if return_DCs:
|
| 193 |
+
Ds,DWCs,DCs = rng.choice([df_final_T.loc[m2,'D'], df_final_T.loc[m2,f'D_WC_{Solvent_Name}'], df_final_T.loc[m2,f'D_CHRIS_q50']], N, axis=1)
|
| 194 |
+
else:
|
| 195 |
+
Ds,DWCs = rng.choice([df_final_T.loc[m2,'D'], df_final_T.loc[m2,f'D_WC_{Solvent_Name}']], N, axis=1)
|
| 196 |
+
c = rng.choice(cs, N)
|
| 197 |
+
lnD_D0 = c*w/(1+(c-1)*w) * np.log(DWCs/Ds)
|
| 198 |
+
## distribution of D_CHRIS
|
| 199 |
+
if Solute_MW > 50:
|
| 200 |
+
params = param_dists[T-273.15][f'{CHRIS_category}_hi']
|
| 201 |
+
else:
|
| 202 |
+
params = param_dists[T-273.15][f'{CHRIS_category}_lo']
|
| 203 |
+
if params[0] == 'pir':
|
| 204 |
+
A_list = params[1:]
|
| 205 |
+
D_list = [Piringer(Solute_MW, Ai, T) for Ai in A_list]
|
| 206 |
+
else:
|
| 207 |
+
Ball = params[1]
|
| 208 |
+
A_list = params[2:]
|
| 209 |
+
D_list = np.exp([PowerLaw(Solute_MW, Ai, Ball) for Ai in A_list])
|
| 210 |
+
D_dist_noswell = rng.choice(D_list, N)
|
| 211 |
+
D_dist_swell = np.exp(np.log(D_dist_noswell)+lnD_D0)
|
| 212 |
+
if return_DCs:
|
| 213 |
+
return D_dist_noswell, D_dist_swell, (c, Ds, DWCs, DCs)
|
| 214 |
+
else:
|
| 215 |
+
return D_dist_noswell, D_dist_swell
|
| 216 |
+
|
| 217 |
+
def PlaneSheetFiniteBathMass(M0,D,K,PolymerVolume,SurfaceArea,SolventVolume,ExtractionTime,nterms):
|
| 218 |
+
### works with scalar- or vector-valued M0 and D
|
| 219 |
+
L = PolymerVolume/SurfaceArea #effective length scale of the component
|
| 220 |
+
alpha = SolventVolume/PolymerVolume/K
|
| 221 |
+
Minfty = M0/(1.+1./(alpha))
|
| 222 |
+
eps = 1e-12
|
| 223 |
+
f = lambda x: np.tan(x)+alpha*x
|
| 224 |
+
qn = np.zeros((nterms))
|
| 225 |
+
for j in range(nterms):
|
| 226 |
+
rts = bisect(f,np.pi/2.+j*np.pi+eps, np.pi*(1.+j)-eps)
|
| 227 |
+
qn[j] = rts
|
| 228 |
+
result = 1.
|
| 229 |
+
for j in range(nterms):
|
| 230 |
+
result = result - (2.*alpha*(1.+alpha))*np.exp(-D*qn[j]**2.*ExtractionTime/L**2.)/(1.+alpha+alpha**2.*qn[j]**2.)
|
| 231 |
+
result = Minfty*result
|
| 232 |
+
return result
|
| 233 |
+
|
| 234 |
+
def PlaneSheetFiniteBathMassApprox(M0,D,K,PolymerVolume,SurfaceArea,SolventVolume,ExtractionTime):
|
| 235 |
+
### works with scalar- or vector-valued M0 and D
|
| 236 |
+
L = PolymerVolume/SurfaceArea #effective length scale of the component
|
| 237 |
+
alpha = SolventVolume/PolymerVolume/K
|
| 238 |
+
Minfty = M0/(1.+1./(alpha))
|
| 239 |
+
T = D*ExtractionTime/L**2.
|
| 240 |
+
# if exp will blow up, use asymptotic expansion instead
|
| 241 |
+
if not np.ndim(T):
|
| 242 |
+
if(T/alpha**2.<100.):
|
| 243 |
+
result = (1.+alpha)*(1.-np.exp(T/alpha**2.)*sp.special.erfc(np.sqrt(T)/alpha))
|
| 244 |
+
else:
|
| 245 |
+
result = (1.+alpha)*(1.-alpha/(np.sqrt(np.pi)*np.sqrt(T))+alpha**3./(2.*np.sqrt(np.pi)*(T)**1.5)-3.*alpha**5./(4.*np.sqrt(np.pi)*(T)**2.5))
|
| 246 |
+
else:
|
| 247 |
+
result = np.zeros(len(T))
|
| 248 |
+
m = T/alpha**2.<100.
|
| 249 |
+
result[m] = (1.+alpha)*(1.-np.exp(T[m]/alpha**2.)*sp.special.erfc(np.sqrt(T[m])/alpha))
|
| 250 |
+
m = T/alpha**2.>=100.
|
| 251 |
+
result[m] = (1.+alpha)*(1.-alpha/(np.sqrt(np.pi)*np.sqrt(T[m]))+alpha**3./(2.*np.sqrt(np.pi)*(T[m])**1.5)-3.*alpha**5./(4.*np.sqrt(np.pi)*(T[m])**2.5))
|
| 252 |
+
result = Minfty*result
|
| 253 |
+
return result
|
| 254 |
+
|
| 255 |
+
def PlaneSheetAnalytical(M0,D,K,PolymerVolume,SurfaceArea,SolventVolume,ExtractionTime,nterms=5):
|
| 256 |
+
L = PolymerVolume/SurfaceArea #effective length scale of the component
|
| 257 |
+
T = D*ExtractionTime/L**2.
|
| 258 |
+
result = (T>0.05) * PlaneSheetFiniteBathMass(M0,D,K,PolymerVolume,SurfaceArea,SolventVolume,ExtractionTime,nterms) + \
|
| 259 |
+
(T<=0.05) * PlaneSheetFiniteBathMassApprox(M0,D,K,PolymerVolume,SurfaceArea,SolventVolume,ExtractionTime)
|
| 260 |
+
return result
|
| 261 |
+
|
| 262 |
+
def get_M_dist(D_dist, M_expt, PolymerVolume, SurfaceArea, SolventVolume, ExtractionTime, K_expt=10):
|
| 263 |
+
M_M0 = PlaneSheetAnalytical(1.0, D_dist, K_expt, PolymerVolume, SurfaceArea, SolventVolume, ExtractionTime, nterms=5) # much faster and indistinguishable distribution from Mfunc_film
|
| 264 |
+
M0_pred = M_expt/M_M0
|
| 265 |
+
return M0_pred
|
| 266 |
+
|
quantity_module/__init__.py
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from flask import Blueprint
|
| 2 |
+
|
| 3 |
+
blueprint = Blueprint('quantity_module', __name__, template_folder='templates', static_folder='static', static_url_path='/quantity_module')
|
| 4 |
+
|
| 5 |
+
from . import quantity
|
quantity_module/data/bounds-50.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:9afeec8bdcf1cd43f7a1842b81e342964dab815d826200708d99400a9ce057c1
|
| 3 |
+
size 4415
|
quantity_module/data/bounds.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:832efc7ec94168572bd7e6c33fddfeb61974ecbb0b9b5cc88165042943fe11c1
|
| 3 |
+
size 4415
|
quantity_module/data/copy-data.sh
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
cp /Users/robert.elder/doc/experiments/01-diffusion/data/solvent-viscosity.xlsx .
|
| 2 |
+
cp /Users/robert.elder/doc/experiments/01-diffusion/data/tmp-plots/descs/data-descriptors-mordred-numconfs51.xlsx .
|
| 3 |
+
cp /Users/robert.elder/doc/experiments/08-solubility/data/db-properties-polymer.xlsx .
|
| 4 |
+
cp /Users/robert.elder/doc/experiments/01-diffusion/data/db-D.xlsx .
|
| 5 |
+
cp /Users/robert.elder/doc/experiments/01-diffusion/data/tmp-plots/bounds-99/bounds.pkl .
|
| 6 |
+
cp /Users/robert.elder/doc/experiments/01-diffusion/data/tmp-plots/bounds-99/bounds-50.pkl .
|
| 7 |
+
cp /Users/robert.elder/doc/experiments/01-diffusion/data/tmp-plots/bounds-99/param_distribution_37.json .
|
| 8 |
+
cp /Users/robert.elder/doc/experiments/01-diffusion/data/tmp-plots/bounds-99/param_distribution_50.json .
|
| 9 |
+
cp /Users/robert.elder/doc/experiments/01-diffusion/data/tmp-plots/bounds-99/db-D-interp-37-clean.xlsx .
|
| 10 |
+
cp /Users/robert.elder/doc/experiments/01-diffusion/data/tmp-plots/bounds-99/db-D-interp-50-clean.xlsx .
|
| 11 |
+
cp /Users/robert.elder/doc/experiments/01-diffusion/data/vrentas-duda-params.xlsx .
|
quantity_module/data/data-descriptors-mordred-numconfs51.xlsx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:121f72b88fa46a0f16af6a1244af761ee6b9d679af7ab2e32d545538f8b5c5b5
|
| 3 |
+
size 10251595
|
quantity_module/data/db-D-interp-37-clean.xlsx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:732cb2fcdb899e19db62c78867d35bce4121161590f3605a7ca1f9d1ad5fed95
|
| 3 |
+
size 545996
|
quantity_module/data/db-D-interp-50-clean.xlsx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:7bd693f5a6ed0d1ff2328f51e7ecedfbe02a8d0e406b24b94463450745418848
|
| 3 |
+
size 314788
|
quantity_module/data/db-D.xlsx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:713467099d12a6482f175c3c0d402bf84829bec0319c33708fcef257a8ce0aa3
|
| 3 |
+
size 884005
|
quantity_module/data/db-properties-polymer.xlsx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c7a9829f683c9e0de82cc5ec8501afc71e11e0614e42dda7795d03cc70d82b32
|
| 3 |
+
size 37454
|
quantity_module/data/param_distribution_37.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"R1_hi": ["pow", -1.7210813178252082, -5.316806497783963, -5.4494932012881385, -5.768182223826546, -5.571599248471992, -5.332462794946952, -7.7161800923227855, -6.7846218883178455, -6.076436830393357, -5.937324027930641, -5.4290991858647075, -8.06074734080945, -7.5509946441655025, -7.493319728112297, -6.143393011163276, -5.744119873303038, -5.713536449930954, -5.245794412301276, -7.238997768936623, -5.246358505784474, -7.01323922285557, -6.732878249465795, -7.137122775103951, -6.995280165475592, -6.353291780114349, -6.60469811090624, -6.855747987914241, -7.488719438432026, -3.686551067727473, -4.906329498045797, -6.299715462690976, -6.092875266113934, -4.449148280201202, -4.043683172093038, -5.59407597774206, -6.761372264473744, -6.5340270263058375, -5.28826387782572, -5.399291242888079, -5.362353646239544, -5.264893285811262, -4.975886197021524, -6.728235603941291, -4.40329100075691, -5.42668007116478, -3.4735286648330526, -5.604917835117476, -4.205308139781945, -3.117079553113051, -4.1045445085218155, -7.222528259107547, -4.479020746168608, -5.019597582319088, -3.8126021264233447, -3.711452642465966, -5.794556224017823, -5.624768403371121, -5.511332473707748, -5.477073523886732, -5.4439494764616985, -7.40547897110641, -5.015193553795691, -5.202109661610419, -5.089936046548357, -5.06939543619712, -5.015210965555377, -4.967362287592345, -4.806192928438766, -4.725648349995709, -4.562492813648419, -4.804063081264166, -4.47419668077444, -5.786312580378455, -5.564588475718475, -5.5093257970434255, -5.493325455696981, -5.431767562697544, -5.355175117216165, -5.719599369230702, -3.0110924543782396, -4.471805359115528, -5.678932197580275, -4.25264187822491, -4.136745965820747, -5.270383467767244, -6.3093373140554885, -5.775779599078444, -5.325302392183064, -5.187379248977564, -4.489641394709018, -6.041664148276629, -5.360226922718938, -5.3299796776337525, -5.089342879502225, -5.028221205098874, -4.906656288125235, -5.106087271035764, -4.896855436707289, -4.813698205333914, -4.799519566066893, -4.747938165674524, -4.616908082526731, -4.4344773245915, -4.541878754985465, -4.437328759426393, -4.755578863614566, -4.686585992127615, -4.591275812323291, -3.886721769329922, -5.092182961389753, -5.047871915064842, -5.011393706462435, -4.912021232649231, -4.552647231741332, -4.465950369615124, -4.364056061933782, -4.3332844032670295, -4.019801684870515, -3.8199142185286252, -4.030149599048311, -3.69873677027514, -6.334949506327934, -4.706109206747083, -4.840483090455065, -4.063433230325538, -6.945617242633551, -8.876743080235489, -6.274053394791105, -5.698689249887543, -3.4005316050888794, -3.8491684359265594, -6.5213314694474835, -4.705349137197854, -4.805775773794115, -4.0753659465165235, -4.331497855262688, -5.039776387514195, -3.8535770398115385, -4.175990421389996, -5.125488089604216, -6.958504846040052, -5.196129623276725, -5.7913673239637316, -5.610783387068311, -5.529403780799933, -5.499786611096285, -5.421241582300871, -4.7624579005188075, -4.320748395959462, -7.0959603840666094, -6.5597447745010165, -4.736391774002963, -3.9297168076059066, -4.907522654741255], "R1_lo": ["pow", -0.6666666666666666, -9.547900288370853, -10.347152366158955, -9.18162810591226, -10.104783194230297, -12.62099235936005, -10.599433938433503, -10.531955992422105, -9.22812058876685, -11.783007256257694, -11.830311674975341, -10.290617509037729, -8.931727117875429, -8.894685846195078, -9.93849722164411, -9.873464751373255, -10.998370484787628, -10.012213388032336, -10.601791439054374, -9.624874298435373, -10.304481997076754, -10.25343296484746, -10.242562215310546, -9.265502595549307, -9.702014184229053, -9.662008849615354, -8.629975098870352, -8.201538665635134, -8.034484580971966, -7.935683996227874, -7.797557259074279, -8.592324333876409, -8.067347109870209, -7.930145988356725, -9.178776332654472, -8.86007003691121, -7.462141715309399, -11.007441491182139, -10.584050166805822, -9.401300581360697, -9.331395513126434, -9.313954805617946, -7.978701099450433, -7.791489557362286, -8.776488101835824, -8.547398964835232, -7.621677133536355, -7.597396974354245, -8.591251534569606, -8.57562200595405, -9.12168916757902, -9.481896702963024, -8.28564431863589, -8.75701487397002, -9.044035231287356, -8.406457901882222, -9.798708001194402, -9.009438179689994, -8.920806375328226, -8.874286359693333, -8.787274982703703, -8.875203334013136, -8.523911474987466, -8.31464587871929, -8.13854954246564, -7.99990126022817, -7.874195177292349, -11.046473542819353, -9.713289007013408], "R2_hi": ["pir", 10.643868636844893, 10.57861221248885, 12.563742110382424, 13.753581442303012, 11.238725017157229, 10.654281005222224, 12.793320491154446, 12.420698049663866, 10.808038462442305, 12.721650925899851, 13.079428139883163, 11.921092015164216, 10.117843596461288, 13.389417467041202, 13.146845862295233, 12.90521855326336, 12.200124721154378, 12.43214302827542, 13.045435969845826, 12.382478371090162, 12.731175817402448, 11.191928920969602, 12.336739707422929, 9.90222638204239, 13.07482571209141, 14.401735491692925, 13.11003176836649, 14.493736247174702, 14.499475695812773, 11.189318258918139, 12.684858498787584, 13.442424704217075, 13.470715566670023, 14.300043355665021, 12.966055414994134, 14.281527272781695, 14.305777528935447, 14.265023747921681, 13.058556994811482, 14.442401912945318, 14.452422466202272, 12.489985424051351, 13.917677764535682, 11.009011930464833, 13.372757292214757, 14.599243376282637, 14.61787473737975, 11.180777617089056, 11.974515431342535, 11.47986522190676, 12.277471181432695, 13.40616221007885, 12.713048572645086, 14.210644362725336, 14.216137367042833, 11.864084883648335, 11.864487178303197, 10.697410835226815, 13.135923945348708, 13.650940330834818, 13.000039191105326, 13.314532422457685, 13.038407454303435, 14.312537629982483, 14.342807960370084, 13.241361342998449, 14.33823923276682, 13.263147856019128, 13.32548471116613, 14.332834405364316, 13.549260713432492, 13.690065635501924, 11.081475015678514, 12.77090882787785, 12.553231470316707, 13.162891123534767, 13.200658663113071, 12.427255282345868, 14.277895464469438, 14.297819182797245, 11.384836315440207, 12.348415126058441, 9.702674530987462, 11.631630295457555, 12.224940198271046, 12.606195295227835, 12.070638787700023, 12.511783707759303, 13.127353065307897, 12.745590323805125, 9.154708844200485, 12.641008390543174, 12.832714152203653, 12.045209542848756, 12.482111676400343, 9.240651602530207, 12.373992133502451, 12.606607636993377, 12.665590917981692, 12.837593136426154, 11.951167822948992, 11.473324712006658, 11.783483876683274, 9.09895049199418, 9.222043264438017, 12.367098075580262, 11.08711001146317, 11.875656784418343, 12.166467023725694, 11.74132447989387, 9.116441464025513, 12.557221171130053, 12.132014750855824, 9.404862656253655, 11.335555845189134, 12.907167146851034, 11.85680191437184, 11.251434247631785, 11.237948243978192, 8.661439407189995, 12.838700775780598, 13.112600658659279, 9.726717411843303, 13.237447631911682, 11.45607481306467, 11.535016655962195, 13.332236276055514, 12.34295502887731, 13.519852779233638, 11.763703591251506, 12.075509390995485, 9.271868042071585, 12.549825079303364, 8.67527212987304, 10.957178398566771, 11.633472161382514, 13.531382689673812, 10.507057291318311, 12.830871313993065, 10.139097566778037, 13.1533996199842, 13.244601893177684, 13.741307678616202, 12.172541568174935, 10.697441802071157, 12.246418923135153, 12.921375595087916, 10.502454014114821, 10.76737328626374, 11.066761705257278, 12.460999779144359, 12.560327597695448, 12.874727858816126, 11.049022768865925, 11.392925470533406, 13.131895177780134, 13.213124227210965, 13.633219613849999, 11.497086188646819, 11.325979574431425, 12.094863207916315, 12.335695704973148, 11.581836227841947, 12.50131627850438, 12.015009251220757, 11.605949832930527, 11.78511838599599, 12.341381727064565, 11.986322119486257, 12.193614160209577, 13.26539248443327, 10.779970004887502, 12.129902163753059, 11.74385414625733, 10.742245539871423, 12.997360836265244, 13.595677889806403, 13.09942945695229, 7.5859624131325845, 8.50225314500674, 9.47681278500487, 10.399873004934271, 11.32801720618745, 11.326435542816192, 11.729539317981711, 13.039472785015665, 9.951974750571615, 12.927770418497023, 11.36082292611258, 12.54964547185827, 13.874950762908938, 10.390502926036305, 12.482654271124758, 9.46597570073142, 12.385688657946133, 13.418555403184222, 12.786751109260717, 13.106230785591634, 13.146070878469605, 12.297900711592934, 11.635397903447256, 12.910376314424493, 12.986731821229196, 13.077030312271802, 12.94294234321423, 12.22483069142379, 13.327420940403016, 11.91846261717317, 12.899525496331488, 11.97415658605103, 12.830153104085745, 13.639596931945778, 12.846477784115272, 12.445695169903573, 12.053673330780526, 11.45693369600292, 13.469132461083497, 13.808922275056368, 13.435656617517896, 12.626100860449661, 13.065172940821991, 13.326735669048652, 12.870226537132424, 12.277196966331584, 13.376775898146548, 13.791139863947258, 12.079745051695859, 13.047265155912172, 12.752316366534071, 12.923233734428155, 14.334407538165042, 12.212636834976959, 12.943265246868012, 11.797916832945031, 17.0224704233019, 9.551667093206351, 12.44675158181828, 9.895415622545368, 9.951644172016554, 12.959073155350673, 13.320975463854058, 9.887265608410921, 12.182625705885204, 12.30314416041664, 10.347627366389172, 10.495123492615896, 12.170168239522521, 13.034754195821787, 13.131282258907465, 11.070333084614639, 11.18310569570042, 12.548775136123425, 12.663397241084464, 12.348502911093036, 12.478184584095242, 10.806604060090752, 10.838054161338107, 11.782835355165467, 11.748837811354964, 11.782818497043248, 11.12973730974743, 11.200201565808719, 10.582847269675714, 10.685392346142947, 12.475156883142287, 12.579002342482124, 11.470772871077699, 11.576210494346526, 12.698820948715849, 11.9420611547405, 12.146578357664524, 12.30172039633488, 12.333065804860496, 9.599236336274519, 9.646064122158226, 12.348503585613937, 12.49607566478413, 13.374847819852775, 13.478957259875866, 12.215203775806856, 12.47165050213739, 12.236578635391588, 12.99363729843494, 13.025982319444019, 12.680977263030979, 12.717587511519447, 12.162267889782076, 12.8551036930922, 12.544547948277522, 12.669388707596443, 12.868898794313164, 13.574832306034391, 13.805514934521764, 12.865850476087033, 13.451383053822134, 12.068461474756315, 12.941659463890737, 11.941195964193806, 12.68095041161445, 12.00159520849586, 12.632569227144607, 13.52479427345235, 12.257312469987703, 12.383019640767884, 12.107989241114009, 10.963996662999183, 13.267819741030994, 13.682689208863557, 13.727819978495251, 12.66460260987174, 12.916401848460865, 12.898376867888118, 13.597247221175952, 11.66050119414722, 13.126081159990356, 12.410287331946162, 12.23318329685964, 13.280238349681486, 14.036770513465132, 12.865325137372484, 14.26846608096466, 11.801230483274814, 12.822082444797939, 9.522500254620223, 12.556226615377213, 11.75343294986001, 12.98833415425263, 13.268978240673654, 12.303639971562742, 11.611732719450014, 11.504036580261161, 11.754265739165703, 12.712715329418149, 13.376921380783784, 13.217784867011666, 11.587284402842474, 12.085990514489747, 12.69522237020741, 12.090358221939738, 12.36071332935866, 13.110617870774679, 11.71761781959718, 12.531430790310637, 12.687861964894928, 11.100875649334856, 12.229046097347538, 13.51874682935832, 12.278187172524067, 10.56118458750207, 10.795865281412425, 8.996755270033173, 7.984047632975706, 8.27518779053933, 9.61269198748979, 11.503542359362076, 0.13768463548351662, 2.2276829250505337, 6.216167682864654, 8.270327699005303, 8.791711435419959, 9.321520621020383, 9.611441205588136, 9.095596750710204, 6.530540733377794, 9.0649219526472, 9.343741337841134, 9.563913118766187, 9.798420428730712, 9.927232605423587, 10.252287020573476, 10.340394288083743, 10.374843334982515, 10.481155778365725, 10.705250352100638, 10.820071676262693, 10.965565135540398, 11.076420491702923, 11.338058041293259, 8.551240184374787, 9.088462685381955, 9.56266920371657, 10.065215388235266, 10.13713522202622, 11.185738123068134, 12.581725564621387, 12.659339611325887, 12.735701979421453, 1.4300002520289468, 1.9926645877275675, 4.909375433856717, 6.212702682111619, 6.289734466453261, 6.714973730930673, 6.822803007031506, 8.61680905644134, 0.8014863276301369, 7.855468372852496, 9.88476273453631, 10.847893706399738, 11.613362208297794, 7.529929201954467, 1.0614605457592035, -0.18135795199996352, 7.573833889841268, 9.858874673184395, 10.012121928973336, 9.772554950816271, 8.775812563174874, 7.038093396167355, 0.5973926357969717, 0.3476172378237834, 8.607998280679002, 10.272806956897679, 11.36433599484372, 12.030806324657291, 8.201811731318006, 0.27242334462645346, 5.178455247710467, 0.6483605046754946, 9.341386146806364, 10.642311404670949, 11.864676452538298, 12.537455432266995, 13.196140225052275, 14.253045512288395, 14.530717991035111, 14.882180939005885, -2.176179179067333, -0.7175939337615276, 4.740152420319383, 7.427569140567378, 8.457099442161109, 1.5494271040452077, 1.5634454973774297, 2.634559547213506, 3.1173444282154463, 3.7044821564105987, 5.041838365598366, 6.057834904700492, 7.692081282904681, 9.784483726688265, 11.566003636194267, 12.585856580380078, 13.126915468068287, 8.74778654606909, 7.582040609979384, 8.693271362606705, 9.924757904566029, 8.818121118321304, -1.036760410049233, 10.648445665078924, 11.590020724476524, 12.034901523235234, 8.918208380380946, 10.071700085507736, 7.690629018112624, 8.093173178506067], "R2_lo": ["pow", -0.6666666666666666, -14.319412770827302, -13.979674336419468, -12.722223747940545, -13.300829114692188, -12.259915313924031, -11.305669284758928, -11.230683477874365, -12.276516708211336, -11.811627795713513, -15.130663870991821, -11.358781679811381, -13.745267800399374, -11.692423607425528, -11.11979922327595, -10.502051715388884, -11.734670390787889, -9.7519144127441, -11.150875747155307, -11.336942310714162, -14.68443273473449, -13.68715513713801, -12.743998221699385, -12.254084865391192, -11.54734863024937, -13.410445710085895, -13.51224722085544, -12.712802357783577, -12.301064617739296, -11.711416080806135, -13.722358397405378, -12.105333024337726, -11.748133095559323, -11.211681035525821, -8.183278166250249, -13.10510234197599, -10.462444915097873, -10.134651649598798, -10.090976586096136, -9.875277978389388, -11.963882432284596, -11.542719930869945, -11.392958784718576, -11.08132413510312, -10.766193626945185, -9.637721208082048, -9.468052662460138, -11.028604004709731, -10.084385765166555, -9.840609119158067, -10.654775475286968, -9.8436540323889, -9.674960593351026, -10.753892027200116, -9.752817895314065, -9.594580869391804, -9.386883166992572, -12.056786526303263, -12.23385808844916, -11.495111293213427, -11.857700071294769, -8.789825399683213, -11.114865309632274, -11.582325197319456, -10.516386477274628, -12.127035499170077, -11.407685714937099, -10.534091543292181, -10.319962849221795, -11.782709891601968, -11.646936826711933, -10.914281083197263, -10.596991813135656, -11.460596662248154, -11.459909920886158, -11.260837969203527, -10.434517413077462, -10.434080395820276, -10.25544310477381, -14.479555228248806, -12.553447706489674, -11.544181511784155, -11.796693552010181, -11.827540244702167, -9.51119779347719, -11.242335777202953, -10.715426064133915, -10.810457147039108, -11.513740317713172, -10.53374760184727, -9.934172241144385, -9.61432399282307, -10.9341665249002, -10.871590411825181, -10.46903435774751, -7.121233701437887, -9.81285030967583, -9.735076086537031, -11.495827325313224, -10.924359356172012, -10.55258095859892, -10.462876447390595, -6.5960147516719445, -12.126290036236663, -11.466391645861485, -9.818085672901237, -16.521180362950474, -15.39709032682484, -17.02560644767684, -14.210850289437651, -14.160031041041439, -14.133362793959277, -14.09676021498173, -12.903414503230081, -12.537170108275198, -12.476288462668954, -11.472314162920494, -18.05048249140485, -17.759620766035688, -17.581275357621372, -17.42655568773609, -16.824461549857155, -15.141182723623166, -15.98238529071967, -15.933060423460297, -15.112975870542563, -14.440816833341227], "P1_hi": ["pir", 8.59129016192501, 11.030594976412484, 7.4765295790446125, 4.908912279667469, 8.277782916823352, 10.316931908492077, 11.064843512117218, 11.46549242887087, 7.832304323798542, 7.654918247574912, 6.54435906893746, 10.504672440103658, 10.788514739261228, 10.675111676702656, 11.4873533789082, 11.100870512020979, 5.129972021339231, 10.599247186030908, 8.90338654478953, 11.154473530145331, 10.985833117925562, 10.687978001199312, 9.21859868491843, 10.961569864020838, 10.303546286929496, 8.571208979449068, 10.844462395208161, 9.32809414954431, 9.061293791170744, 9.507580893799165, 9.17837880518331, 9.627623209829345, 11.35860181280728, 11.801001665576454, 9.809496885333875, 4.046559777384402, 11.841168559636024, 12.24299174461482, 5.061752524093816, 9.908501976859895, 10.234114196804242, 7.961459756744507, 9.559677471563514, 9.84871945242217, 8.21803524627206, 10.037613143978373, 4.052177800046195, 11.4364997184881, 9.066558936663444, 9.470867094565222, 9.059254917135661, 9.217789370841068, 9.721843276154168, 12.122539007594668, 12.285489465913802, 12.627686746834367, 12.688984809017345, 11.931678251412997, 9.156190266356258, 9.83094985355692, 11.179668085114901, 9.7376603379283, 10.087949132574849, 11.485362433499073, 11.64548416841086, 9.8779154664741, 10.537161095358364, 9.650609395513893, 9.951063589426443, 9.08925572056841, 8.15872421409252, 8.727124574319923, 9.77911467203866, 10.33873045997408, 9.607083358552973, 8.46983998047098, 8.80087249379637, 7.273846500587847, 9.873519508021474, 9.90229078507145, 8.194736690226058, 9.581031051345946, 10.573913439475632, 8.782903214605504, 11.598564754345759, 8.256905853098107, 9.352561969356657, 10.03435016494048, 11.50055300188222, 9.471400592199096, 11.806490012354509, 11.316286012814857, 9.70097521818479, 10.328170342545942, 8.996538812964019, 8.211467100004747, 9.71247509490701, 8.779497882270228, 8.894128849715727, 10.289680905909421, 11.416449041385814, 8.72493242889339, 12.050678577222683, 6.813281055337189, 8.339796491184341, 9.689051209350886, 10.107045547460821, 9.34354494311805, 9.359364459062189, 10.021275890642816, 10.3139840296549, 11.560841610184191, 9.18644126092342, 11.06099695831017, 11.500062138822287, 11.833385871662394, 7.81071711414625, 8.580852239082152, 9.445187264975171, 10.64107042113022, 11.096808962927607, 9.331006211739918, 10.521711228067275, 10.857503056436585, 11.17011005457842, 10.047017611396885, 10.069542386051406, 11.081143297729884, 8.99095572457923, 7.694860063256108, 8.698771190712993, 9.739676711044716, 9.900527883523775, 12.079611631692895, 12.041906492129414, 10.203686643603959, 10.666831260303471, 7.761159982778594, 8.563703123836852, 9.764601409038555, -0.09054319138219569, 7.935552759047521, 8.894668649814573, 9.2128714727077, 10.243443550055279, 10.495531710826217, 10.635741769726767, 10.831305006252546, 7.336711212458017, 10.138227052303893, 11.232206715378378, 12.208190619333667, 12.37894202149442, 9.061403892953301, 9.950159853697485, 9.423043362843654, 8.127658547265991, 7.389796276873387, 8.70423133801875, 9.534545299154289, 9.629985048327342, 9.68251837676484, 11.223317326377966, 7.632553085219012, 8.965743746799724, 9.709282125423922, 10.281672864937683, 10.377067574437746, 11.721093820081826, 9.137928548133424, 9.413816327145224, 9.397127855801177, 9.926970225533104, 9.415203597130091, 9.618873090401273, 9.717217167362037, 11.297667542922884, 10.010392320521596, 10.35429314951923, 11.93474352508008, 10.310680089611221, 10.831629999991002, 12.316781368320466, 9.222793728951277, 11.358658562593462, 10.44068109421871, 9.137578091716549, 11.202925467303224, 11.896928560190037, 12.202374943898455, 9.657422874375019, 9.600865433674848, 6.751967640342325, 7.021816729765934, 6.47275297747845, 6.810794350562464, 11.23644214319236, 6.702061366163164, 7.193721825464593, 10.949136679866513, 11.389086046082888, 1.4180914094355757, 12.031996867669296, 9.3273309591704, 9.404118102384171, 9.85214282491113, 9.98219595315933, 10.029824002148583, 9.869877350625696, 10.524625666940196, 11.365535585805222, 9.957503340568959, 11.372112065222701, 11.872079180180975, 11.496296102150904, 9.384522562918054, 9.913253375230958, 10.028493670254552, 10.503128688175245, 8.406731705629927, 8.409573531660676, 7.277049682771619, 5.1808900962775795, 6.097180828151728, 8.08888121909909, 9.698319131533193, 8.340104606147563, 10.083003104368501, 10.204022814816113, 7.183343636516373, 9.517085747156262, 8.605875620920742, 10.12840354682908, 10.256011921150485, 9.640585911495226, 10.346483265442671, 9.800874704324656, 10.99714892520145, 10.246116923167346, 12.085071449066778, 9.295602034925096, 10.137161604531382, 11.566107413373395, 11.232814737096767, 11.461257474868148, 10.822602068878883, 11.581251132328735, 8.676584630254606, 11.856937250285927, 12.702382329043505, 11.595439833973774, 11.832772525958934, 11.04283645682797, 8.683865667461934, 11.324130292758838, 10.853837959706826, 8.47278374904818, 12.573146383595844, 8.833675143365848, 12.860828456047624, 10.031700228715419, 11.566107413373395, 10.965392953955497, 12.105535242685725, 10.3112230873108, 11.835164806103247, 11.308043740084337, 11.668024087908918, 11.748357521717516, 10.986370807794675, 11.254556988702312, 11.365248469886755, 9.356488519911856, 10.047452662041401, 9.514069344958617, 11.710245244315743, 11.1335631030969, 11.722704484896813, 11.455356080479092, 10.54105678221504, 10.97863932355206, 11.124087810829728, 11.872323760733469, 12.27765863594955, 13.083761300089254, 11.380677969561276, 10.259005645009498, 11.198703396408686, 11.136773953045928, 11.156149755607796, 10.609046200420547, 11.183581227035717, 12.134249473305793, 11.213254745178055, 12.023472213746992, 12.498489146039773, 14.05329645640533, 11.32577027388973, 11.936199007899422, 11.32781685190022, 10.94162614366181, 9.579676074801043, 9.675738142702006, 11.835164806103247, 12.33727639993631, 11.605580106341687, 11.045336576692723, 12.522885525804387, 9.968894317005159, 9.690756666951213, 12.515062647314423, 10.274690358389218, 9.096643791948061, 11.163333997907085, 10.767746354857177, 13.060983017735655, 9.985611946769918, 11.326705818387019, 10.889902132218005, 9.84597829021354, 9.375581319571605, 10.55640787622978, 12.074338277765808, 12.840150354766049, 12.567220651084234, 9.792502567598198, 12.295913198055231, 11.716087896443423, 10.154876353444923, 10.606747030183453, 12.287691974121255, 11.487807857477186, 11.096823966203072, 7.075289799482821, 7.09723797026906, 7.738679745288735], "P1_lo": ["pow", -0.6666666666666666, -10.13042042278164, -9.840301242852526, -9.60782621937167, -11.242094709713648, -10.9336130100912, -15.010183479310978, -10.286832801808906, -9.841136277198938, -9.58865116480271, -10.766056957728999, -10.689629770530596, -10.387936750828946, -14.384270438747823, -13.99545978981092, -13.860280697241599, -13.85851030665533, -12.595150818119706, -11.680656320851082, -12.086643699606423, -12.832074271523066, -11.820750015192193, -12.831703823813118, -11.654683050590258, -14.915393247330249, -13.798025302275075, -13.569052298538141, -13.517214337288149, -13.399233744649326, -13.376713069999335, -13.341227454263297, -13.289587015892431, -13.098948221029334, -12.201418354548538, -13.5415922865434, -13.35871565884781, -12.182621685486428, -10.588605075613332, -12.076046063904236, -12.840545615779227, -14.863529600140684, -13.162588300254928, -12.94291885091172, -12.900529779860936, -12.74572614541578, -11.927257997657456, -17.265435443019122, -11.499228660409944, -15.123596405663104, -11.719217278445365, -15.771943715739488, -14.315523721880002, -13.073828547035646, -11.514475450907227, -12.374801942557351, -14.904499531971258, -14.868131887800384, -14.157285130141037, -13.332801947520004, -12.76225708905239, -10.887116010885286, -13.789268114856185, -13.224725197448478, -12.26709081284248, -11.574617920737811, -11.448631499894056, -10.73988978225329, -15.205626047464179, -14.531170999916387, -13.107835367116145, -12.535316174344814, -11.188242526378207, -13.33803218326113, -12.041293096230351, -11.789070642231842, -11.195389473191543, -13.192861096674225, -12.28519411514612, -14.480991270324404, -14.082083562762401, -13.337643087814904, -12.446670163925038, -12.396659743350378, -11.40975144426227, -14.61170130493578, -14.482615810115972, -14.301335717890515, -12.882391933835319, -12.829803443515322, -12.365254140728073, -11.624324053159027, -11.296604529283139, -12.73727348759582, -12.527255935404993, -10.854677834627264, -10.636442609385234, -10.300382302382381, -10.182731021438697, -13.573831697898616, -15.505825837211075, -14.837996464635419, -14.197493017560896, -13.80107774497265, -12.866768507595816, -12.1385300072246, -16.165033890931575, -15.577247226029456, -14.812641081487367, -13.797910276799957, -13.737285654983523, -12.658475993611592, -13.530695312538551, -10.27973706476034, -9.928683415105267, -12.32738259278965, -12.60928697355115, -11.536852801960855], "P2_hi": ["pir", 5.288094594630671, 7.860737346947076, 8.162579192160674, 3.9196544508944946, 5.658521931218477, 5.431726581454793, 5.695367012999331, 9.090146466209777, 6.791463431908046, 11.848240571354008, 5.147106768963344, 10.73310620796316, 7.153669752301919, 7.935482569947521, 7.529260230316055, 8.510089483327782, 8.005383711166424, 6.262852533175234, 9.533789357669892, 9.019720261552731, 5.017475785710296, 10.538936703572542, 7.150594641537467, 10.417988403745845, 7.971937212165372, 5.610843849732369, 10.418530099683835, 7.498101863153437, 7.1623456808516295, 7.020511551908051, 8.79710091436132, 10.292226015646719, 6.323670272991492, 5.4031387892930915, 5.517371186158066, 10.506932651629466, 8.54077777418011, 9.322679065204227, 7.239377629526622, 6.101270067876765, 8.086923999484469, 6.835705055219165, 6.9136332373699325, 7.070724637599273, 6.20044343980501, 7.042130714170728, 7.163250796918213, 6.205887237335109, 9.493532105978012, 6.333587726051839, 6.406821681876988, 7.581591529831023, 8.192369481523585, 7.964651499838148, 6.2421490055080255, 10.6285383407442, 6.834495896757485, 6.437020433552341, 11.20007983218941, 9.411198595986185, 8.027731506131254, 7.704903860693609, 6.184867365331861, 6.661216582155173, 3.665127250831002, 8.943806277080135, 8.532307439272113, 7.057399334784606, 7.847636737253477, 4.34055270877942, 6.000868719500179, 5.412970188703422, 6.838433747856595, 2.3910354432657854, 3.0750630856348096, 7.543392495011144, 4.024704587425845, 7.162402634208441, 3.7451504998641703, 6.288193827048545, 5.825291275363462, 6.409117279610065, 4.3010360284892855, 5.108688049398104, 5.608688049398104, 5.77787944516497, 6.981852249490906, 7.006544862081277, 7.018666222613625, 7.0996352851472935, 7.121614191866065, 1.497375316200305, 6.669646853088519, 7.328243450464981, 1.4363503680751037, 1.7930253120138389, 2.3038509357798276, 5.35328266457492, 8.949830738555029, 1.5065950691435859, 1.768959333611079, 2.4998468421538718, 2.6697458789492714, 2.8675716222791934, 2.9416795944329124, 3.452505218198901, 3.714869482666394, 3.9044903419419583, 4.214645270245796, 4.502327342697583, 4.801385448119333, 5.144181228869975, 5.1954745232575235, 5.783261188159642, 6.3741295195991725, 7.446766321864018, 7.741005794861962, 2.8515922678809424, 3.190444524289351, 6.5577403542758255, 7.881249343518242, 8.391192857944354, 8.414007535710528, 4.356996276686015, 7.099928926184372, 9.043880210754352, 2.300601747023009, 6.174746245904348, 8.78047873197502, 9.50999355670584, 7.010915649167799, 7.067510869108958, 3.0032592542397545, 4.500767034407293, 7.646945489691248, 7.667148197008768, 8.208781921001048, 7.006180477554139, 7.60618047755414, 7.007346335874114, 8.024280593527955, 8.592973599614496, 4.105490337294128, 5.984874702266897, 6.377917290376502, 6.696371021495036, 7.725539633907186, 8.354148293329562, 5.408724947654136, 6.753546185545776, 9.47022043139133, 0.5361769708622859, 0.910870420303695, 1.899481813757486, 2.7434518840520106, 3.0799241206732226, 3.274080135114179, 3.3853057702244094, 3.4365990646119577, 3.53190924441628, 4.104428437187611, 4.129746245171905, 5.308401241513547, 6.2698124086681695, 6.707005142464613, 8.900810348097043, 6.653081251946396, 6.217596395844581, 5.173685096155339, 6.783123008589438, 7.55631289682292, 3.9503524634796, 9.696156471434485, 9.992312419774855, 8.554300273781589, 8.577114951547763, 4.117276259940141, 7.199563868483427, 4.501327572893622, 4.701327572893618, 2.8078156661867197, 8.757155865335768, 7.8186521743109765, 9.485024008497433, 4.968889978960277, 6.86600996384616, 3.99890893421939, 5.75079227690042, 6.616416093189873, 7.855334562791857, 6.966927199320221, 6.562762688579362, 8.127404025545594, 5.982273075772387, 7.317569753120939, 7.982267773702258, 7.991746517656804, 5.86983730817148, 6.829613151985374, 6.871285848385941, 5.92913585947495, 7.042123777939292, 8.308373492488993, 4.551263177670819, 7.361125270225372, 7.129259850361809, -0.9484389091702283, 1.802301776876785, 2.002301776876781, 5.102301776876782, 6.092145011166824, 8.751405048099603, 8.846715227903932, 8.712806022611812, 7.656506859871346, 7.82713237690211, 7.989651306399885, 8.099999363568752, 5.964244361631522, 5.967475113800262, 4.128097879766248, 9.509969127084933, 9.525876779944387, 9.834630379033626, 5.894362344392402, 6.318176591168761, 6.485230675831932, 4.559095344169716, 2.790182922256893, 10.996024782314585, 6.933045545390129, 3.6538275735338672, 5.040121934653762, 3.6526623645584806, 6.002370011180695, 6.594314482989727, 4.342871936105652, 6.089775642735436, 7.369385861266991, 7.487904461502332, 4.603397823058565, 5.32252049002177, 5.7262747337263065, 6.634312323843741, 7.114279959249824, 7.147896570048811, 8.210039178935528, 8.31825276357576, 8.459128912194323, 9.864177270287534, 10.391263414925305, 7.326443971014356, 7.893228248428393, 7.603125135650991, 8.654584381942119, 8.674387009238295, 6.945868200455461, 2.6930731176480904, 3.9355795859762637, 5.688805391202081, 7.5076202780979955, 7.5280936058059105, 6.206748482736934, 6.674088994563185, 7.14409262380892, 4.018659079793537, 6.811019513004521, 8.46067863892549, 6.282515086740059, 6.2891894973864275, 8.051875394046288, 6.540123401061802, 8.299045429269643, 5.628773304417155, 5.006680423268044, 3.12952627965441, 5.082735731191338, 3.0927689064613553, 8.160169691134136, 3.139750783464553, 4.326656799287715, 1.5394777118816734, 2.4065992341297253, 4.025685320897924, 3.2105642066872804, 3.4325091467325883, 2.323581970320401, 2.658972516078638, 2.9483839618930325, 2.3944852472643525, 4.888470153479247, 5.657972214143786, 9.432037602882694, 4.711664884776383, 2.821952885895186, 3.510234246531663, 2.831781883948345, 5.273341276780393, 10.077019421648536, 5.319255088799363, 6.1091973978887815, 6.953019614486784, 3.078826779996369, 5.525649270804433, 5.829456909283412, 6.72809072643706, 6.084505457089467, 4.857530145439913, 3.3224570092817487, 5.269032108517273, 5.016016806802821, 6.9947759663922895, 6.194457762395768, 6.518417142187381, 4.552375174885277, 7.205246613789633, 6.5902689370202765, 7.68042278757606, 5.94906880474468, 8.315618288907405, 8.033863461098186, 7.18573036436063, 4.56976069178593, 6.844074147238704, 7.865288070558247, 5.937466294581018, 8.843920309455935, 8.867189334105202, 6.425424003361265, 7.308461056750108, 6.350254658591165, 8.175628573754587, 7.618052329757706, 7.06415361512903, 8.217701274385966, 7.700054720855206, 7.225201458630906, 5.185276960903963, 7.399544160887267, 6.9378862947155575, 7.106503177198, 4.739318617799643, 7.010604134482509, 8.534533562961816, 6.433356628484393, 8.503196807057403, 8.744933648373848, 6.0248968931424365, 8.360369459658784, 6.298338080296826, 7.387382814436631, 7.681385225998984, 7.768546941135924, 8.33104702324977, 8.610818980090265, 8.696418441763726, 7.171820962702746, 7.99562470417947, 8.187707175527475, 7.788459725269277, 10.049960488679368, 8.544643865287433, 8.774307555721993, 8.954902464976428, 11.180798692701114, 4.358956112759763, 4.865566326020556, 7.604859957940597, 2.0695895669921747, 7.604868998754398, 6.465121236559831, 4.407365169085772, 3.7203898062580265, 5.003147666742311, 2.2932883315611328, 8.184566583538718, 8.658919297511378, 8.765610688306502, 8.886984651481843, 8.492051283286678, 8.292235971902905, 5.580501213125448, 7.406107577444576, 7.8656399068230165, 5.65562477737879, 6.93130383278039, 9.067991818330587, 4.505331480092117, 6.974844951586988, 10.59699670844007, 9.349206408841507, 7.523402325493183, 7.775721860488485], "P2_lo": ["pow", -0.6666666666666666, -17.6766746374216, -13.310644700308274, -12.975132185061028, -13.348794905405732, -12.656292018727473, -16.557456317198156, -15.014044606226381, -11.990704057269301, -12.018169309244694, -17.145694710707982, -13.359838280482961, -14.703031233003257, -14.058811656978193, -14.01282654373637, -13.979674336419468, -13.747872722362143, -13.903487203977377, -13.422384316269994, -13.27701846599847, -13.20333075020731, -13.028321840259641, -13.241101508887212, -11.460503258087318, -10.643742121560196, -10.568426784333758, -10.731521825357628, -12.439841764314636, -12.404194425584398, -12.239537704970248, -12.151152135102555, -12.400287067571497, -12.116521997046414, -12.066850387249177, -11.978371658565598, -11.674689244767375, -15.923021874370338, -14.594838552800702, -11.379093126963308, -11.274993477979724, -11.170893828996139, -14.850804672174771, -17.043027903856927, -10.491785029259052, -10.625687319840427, -10.179545967053638, -10.826486600754196, -16.37987863943109, -16.178456911263716, -14.530024896862232, -14.173111814632799, -14.426045017369328, -14.327189345849094, -13.706955950251274, -17.41121284025549, -13.863745263132365, -13.36384337101003, -13.730391945012382, -13.077147389690086, -12.830630764434238, -14.889001276380466, -16.081004753209, -17.511626603328597, -13.200077690122281, -12.493797328956457, -13.557454200180594, -15.947818469162904, -15.281037497313713, -16.16834053035547, -13.986639224852878, -15.438794055817556, -14.615485729871661, -13.007379547085375, -13.063383604545312, -14.647584682509134, -14.555595978497475], "P3_hi": ["pir", 4.549441102967979, 4.364058208874219, 4.050621587045185, 8.49162110535421, 5.46437220006332, 2.0769965133706805, 2.1113315537552495, 2.2529966098035246, 2.686443480196843, 2.772297588389236, 3.1504287278552994, 3.2877688893935897, 3.493779131701025, 3.5624492124701703, 4.330679233844037, 4.429392474949687, -6.5918771958617555, 5.208688049398106, 0.615327855184276, 4.396966827039755, 6.4482374917528915, 7.1377398446811995, 6.314352218826592, 7.281381040047631, 6.607111593619031, 4.300601747023009, 0.29372842703229907, 8.386527551294272, 8.406068201950593, 2.900352463479603, 2.039270019279158, 5.1974695401142625, 8.302970188486565, 5.066507549395382, 5.667339408176844, 4.294142594118057, 4.871883816486221, 9.168057397467877, 7.168745445815471, 7.292295287325267, 7.795980430430305, 7.973412723717786, 8.547205774166812, -2.9917985754034504, 6.6242977494054465, 7.270194629881974, 5.970784154162562, 7.202301776876784, 11.569701851311589, 7.834600533129333, 5.501032764494585, 7.50312513565099, 9.711865381031018, 9.817375909491474, 6.7186590797935395, 7.091559705657218, 5.670522396093457, 4.792768906461351, 4.236833887942307, 4.310941860096033, 4.562256288376933, 4.76292698383909, 4.84993836082872, 4.934115186955459, 5.021126563945089, 6.407420925064983, 4.526568721683116, 5.7315002160030595, 4.303251925338628, 4.6397241619598475, 7.724467522894578, 4.912147055243043, 4.750574675516923, 4.999036034815418, 5.404501142923586, 3.917648582941819, 3.954919977739049, 4.41573518093038, 4.683999167525062, 4.986280039397993, 4.930450041849092, 6.474559679747173, 4.589811225437252, 7.443433842039088, 8.26159768651489, 0.5842688919021697, 7.861758547715301, 7.928762542772699, 7.933602214641137, 2.728639066381671, 4.1228103939832685, 1.7022126906146866, 4.666350628734417, 4.896609138033821, 3.9151295276860303, 4.007232931405799, 3.2785505296209223, 3.5318348898502663, 3.1706614235585846, 3.400919932857988, 2.239362598963883, 3.484654104984706, 3.530705806844587, 3.760906621238682, 3.8530100249584436, -0.8266665163739546, 3.304552313238542, -5.482124664898286, 3.7223328169226946, 4.5946474528833505], "P3_lo": ["pow", -0.6666666666666666, -15.72168815744957, -12.857208548249538, -12.82498060473614, -13.381137767525878, -14.318204961323577, -14.539605173040457, -14.305807738635025, -12.702653052078826, -17.03054820145006, -15.247161630783545, -15.234000484208597, -14.961087407255327, -14.929911342155574, -14.581301713587212, -14.465949646785543, -14.359683988377007, -14.255506447633817, -15.053061985350496, -15.016020713522611, -11.403915456999888, -13.362844505377588, -14.15109544633227, -14.01222383309797, -12.903973399037099, -12.87024665411676, -14.21491851406066, -14.796499033521673, -13.815248165255525, -16.432186794386666, -16.355036161819502, -16.32239923250648, -16.189441398830862, -11.503302150309104, -10.98858064094389, -10.966295456448893, -10.904137710199041, -13.840370561533591, -13.817847899727427, -18.14690304032693, -17.718753628236787, -10.433695710998116, -10.381771232070747, -12.271747816468622, -12.099949609159736, -12.088319982899332, -17.12707196660403, -17.081349171278486, -14.93820576438947, -14.86112265649703, -14.257834571185064, -16.466912505760497, -16.532952932495956, -15.567907519229324, -12.264876073757488, -14.438744443510458, -17.794674510683198, -15.977408642841821, -15.69254549475072], "P4_hi": ["pir", 0.9701849950654093, 5.640891404309226, 4.64413662106363, 2.871359393056519, 0.9635813801811466, -4.912124013174747, 0.9739800182754124, -7.3625972285245425, -3.5918174920856103, 4.142616360080996, 0.9245490448163949, 2.5259601808608636, 2.697635382783737, 3.234945750340401, 3.5225182207921506, 4.484757727569814, 4.549135928290887, 5.502378994198548, 5.613951368217457, 4.253861930085229, 0.1937777304079873, 4.276972619164752, 3.924769122351215, 5.322124849046272, 5.869550167417351, -3.4878486521575525, 3.3908353783519267, 8.879332628855789, 6.824841681139922, -5.050319923463292, -4.97027721578975, 3.427664408580295, -0.6318114909958652, 1.9322935263160232, 4.089788525678319, 2.880209317388527, -7.5968537820179165, -5.93264714004205, -5.842834640772708, -1.3530465289034623, -6.510664013348361, -5.817516832788414, -4.802370437341857, 3.089058291547655, 6.661690600821029, -0.7835818201823557, 0.4359462240263383, 2.596253045196036, 3.109955594781759, 3.3098813729239076, 0.3395904888985939, 0.7323489457376411, 0.8594659481845, 0.929059239983701, 0.06272485293845165, 1.6721627653725477, 2.460620125736817, 3.058457126492442, 1.5786534860724402, 1.6158324893141938, -0.2960559149261712, 0.9567070535692039, 1.0902384461937231, 1.4957035543018904, 2.0065291780678756, 4.750589816693118, 4.0481501570638905, 4.482909974525068, -2.605504201499535, -2.3541897732186285, -1.5556820770008528, -0.6393913451267039, 1.8455153046612978, -5.611516531764686, -4.641440070529221, 4.145899881238762, 5.011484739545345], "P4_lo": ["pow", -0.6666666666666666, -15.443458360970702, -12.347397096201558, -19.12575593705386, -11.439264768773361, -13.098285247392084, -14.815004888818722, -20.280424919115188, -15.791427531958956, -15.30661053538811, -14.377968972840433, -16.344591040901612, -17.22718008956586, -19.153906027615466, -14.230044484423466, -14.254367927697817, -14.218809473933295, -11.030000829152485, -14.909645172197703, -14.812583459354574, -15.057804774534716, -14.73772259281024, -13.667884774685481, -13.337643087814904, -13.296844272621492, -13.210875426223874, -15.737569074180946, -10.318202274416876, -10.33492883315145, -11.884844922235507, -16.531278285886458, -16.100495369794004, -14.576000643911884, -14.31748994876038, -13.910738666841473, -14.440948538509135, -13.516251593317694, -16.83959348332869, -16.658891204924878, -17.05315072144229, -16.8231660034738, -16.609608765360203, -16.396051527246602, -15.284414775218803, -16.664323083029743, -17.239284877950965, -16.253636086657433, -15.974368929124275, -14.078700134666361, -14.357967292199527, -15.376471043202839, -15.59002828131644, -15.195768764799025, -14.670089409442477, -19.943310442862852, -20.124012721266666, -18.005165573033654, -17.939455653614086, -19.089379243456534, -18.43228004926085, -12.288521198593195, -13.262186774020893, -13.472709060599854, -13.920068919580153, -14.49900520767229, -12.630644078917452, -15.26217266115447, -13.18454580675985, -14.316103097121765, -14.763487120735501, -13.474062280072815, -13.868791567408369, -14.448501123770768, -12.554259672595588, -13.370033533089064, -14.948974847064719, -13.764811149691507, -14.159540437027061, -14.554269724362612], "G1_hi": ["pow", -2.5613655927361205, -15.774235191870776, -14.537125293361306, -14.986001291000477, -14.801338231083548, -15.809132322797087, -16.91725679709083, -18.86420478676453, -13.453521002329115, -15.39549752544502, -19.950410795307675, -15.523443401113347, -16.17297951056405, -16.312228350881366, -19.52566103276578, -20.84833980673526, -19.987996039004173, -11.785955417164983, -15.913733978912646, -17.016793708487455, -24.40315384683843, -23.515041237838737, -22.64875369672564, -18.46485859141042, -13.450522884402764, -15.168772319620361, -16.577996338912463, -16.167086386734944, -16.05622528967973, -16.37187228132317, -15.429321136186278, -13.329085289464045, -9.737104845768345, -9.700115193845154, -15.593731442110174, -16.550913320632056, -14.023464328875862, -15.989881440443336, -19.344677220607124, -13.92093709468508, -14.568522637700683, -13.590055960282514, -15.97965243026619, -14.044580401459887, -13.823550287482242, -21.758385517785314, -16.362702130133457, -20.549905886611675, -19.2605114293227, -17.560511429322705, -15.609231233649657, -16.043293919835286, -16.645774158534774, -14.106600181775129, -17.94904829350763, -17.649048293507633, -17.44904829350763, -16.94904829350763, -16.749048293507627, -15.949048293507628, -15.149048293507631, -14.616652394267138, -20.014250582707962, -16.605443153227924, -17.35632475533435, -16.676468430953086, -14.18577384266881, -18.074925768709257, -16.63812092192881, -20.89727401483651, -20.09727401483651, -19.99727401483651, -19.697274014836513, -18.697274014836513, -18.288285985876094, -15.782311752657789, -13.105333441343696, -17.654582783414057, -19.902915031146136, -20.912073982606266, -19.84287557914445, -19.347087832743, -16.832574574184473, -16.725541849477246, -16.59639906771107, -16.525439817788047, -16.455690620227255, -15.697670649793622, -15.685433742392973, -19.06927968804245, -19.193324470020045, -9.603573453143822, -20.90940806859812, -21.18858821962334, -20.954973368441834, -20.8749306607683, -20.977394683348628, -21.20765319264803, -20.87118095602682, -20.737649563402293, -15.426655121842954, -19.58587866515061, -19.1986476083771, -21.538084489359164, -20.68893306032264, -20.299791783928214, -17.721371663735344, -20.38255088643521, -20.48553974943131, -24.380172391489097, -23.9021365905461, -22.894010030585996, -23.124268539885392, -22.8619042754179, -22.291359416950293, -20.541632618473137, -16.54432533843297, -14.63389522462329, -20.18501590733782, -20.10552183229997, -22.547435041853934, -22.482896520716363, -22.036609418087938, -21.88818941296967, -21.72912471833998, -21.524984114151383, -20.898687557650923, -19.91110634094951], "G1_lo": ["pow", -0.6666666666666666, -14.559056040518058, -15.336720494823727, -14.051313517547337, -16.62546323302669, -23.323162774886683, -19.31929961182294, -16.351815885731497, -23.19254093095687, -22.892328977491474, -21.773668669890817, -21.19800947499932, -19.44302387760672, -16.32835746057897, -25.66189340664735, -23.86483568281509, -23.53725501880308, -17.920327270125807, -20.050038499178044, -19.13128604869923, -17.317218811616257, -17.153135309736825, -16.637655352584723, -15.678768769808197, -19.814703579852207, -16.005871794730446, -16.394885012044966, -16.29822887157867, -15.766723042575137, -17.27987833491521, -16.294513547335352, -16.034209297515957, -16.757494108076802, -22.31449215592714, -16.70253063048998, -22.098473555569214, -21.73675951266263, -18.750866459309538, -16.696264180111974, -21.273816155178064, -19.19461952982335, -17.831926269202782, -15.959903945829286, -16.289722014687637, -13.769672329026239, -17.699777828731662, -21.62371662802893, -19.506507338912776, -13.538467460728864, -12.704294012659362, -17.28049869730563, -16.415766027123045, -13.728341487410868, -15.204604124421596, -14.416146764057327, -14.387029365486597, -15.720600151909832, -16.2736013666704, -16.16931901823292, -16.23700606112809, -14.768845468391996, -17.64930866041167, -17.38242971558965, -16.94156268043057, -18.032823242568156, -15.431666753969603, -17.828772841543106, -16.969669785821065, -13.39655776651784, -12.707032601023293, -17.93730593615227, -18.186652173628474, -17.87019113662665, -17.292840115527376, -25.998628304717613, -26.186256892041605, -25.811563442600196, -15.075726785869088, -21.6355199389884, -22.75470673031733, -21.987451577603665, -21.5819864694955, -21.08554958318161, -11.538114542113027, -14.082069499571727, -14.007505168274733, -13.502779929501807, -17.673006293198917, -18.655085981743817, -17.044050176633462, -17.150845675534065, -15.269435482863543, -14.989133517709387, -14.965337984146949], "G2_hi": ["pow", -5.192851281053363, -8.30988378236929, -9.162133672082959, -12.94601918469779, -12.55297659658818, -10.027247952279929, -9.49661970121776, -10.57620252041347, -10.025536653329869, -2.7461531748403942, -8.877478595947089, -16.08008631049017, -5.27531208067737, -5.387275164326589, -3.344375430680717, -6.459084882456246, -6.447414798395194, -6.359084882456244, -6.339784134202823, -6.259084882456243, -6.1590848824562485, -12.838965926737288, -10.641741349401066, -10.174734527554154, -7.977509950217932, -9.757376334063327, -11.371932178978327, -9.169430544541264, -11.414605262524187, -9.192062877203679, -10.201240972830899, -7.993966059641178, -15.306620842637816, -15.156047984158445, -12.95524558547434, -6.9351318863768086, -6.439344139975361, -9.745961075086097, -7.538686161896379, -6.691388301509175, -6.440073873228268, -12.269802559829674, -10.077218362049951, -5.3694210998498555, -4.86964531227045, -4.436842438837353, -8.421224854293765, -6.609262677748191, -6.2262704254920855, -5.142925608954766, -5.30834022016732, -11.496499449706505, -10.957502948973818, -8.885818896575927, -8.387980468336746, -8.378466751948661, -7.678466751948658, -11.125883632588636, -10.633407147490846, -12.21934402767182, -10.022119450335598, -7.103348217917738, -12.683245236378792, -12.601899943454693, -10.40109754477059, -7.257500127964217, -7.419160310221184, -6.414846470486587, -5.935273390224701, -3.723521464414187, -8.466978207352554, -6.274934988758329, -5.3204230440639755, -9.614763748103783, -7.412262113666717, -6.495971381792565, -8.386026163091987, -7.629266986569899, -11.283042450201428, -7.992093828646176, -6.2669555782433335, -4.998733207753915, -5.8596478299307755, -5.767544426211007, -12.319806101061072, -7.356071629593789, -7.148838971224318, -7.012831259125317, -6.989805408195377, -11.666937441676879, -9.47948160333253, -9.458253811961619, -8.375396474144953, -7.8423008034237505, -7.681119846914168, -9.342502014538201, -13.09913316202638, -6.691158639229052, -3.925337844062984], "G2_lo": ["pow", -0.6666666666666666, -21.828710628421664, -14.644988336486175, -14.069981398230453, -15.715429748187589, -15.367123053919372, -15.160587239004823, -15.10929394461727, -14.942239859954107, -14.833040567989112, -14.644988336486175, -14.562750238249201, -14.28831339254744, -14.089462533802276, -13.711700028243449, -13.125162582741758, -13.064537960925325, -12.853228867258117, -12.76225708905239, -12.60191443897721, -16.04330808591037, -14.28831339254744, -15.668249569412293, -15.633564011424404, -15.55702393430207, -15.243366375447028, -14.890545000824286, -14.812583459354574, -14.589439908040362, -14.197397820264339, -14.170729573182179, -14.132015061001486, -13.365664476418246, -13.308506062578296, -13.107835367116145, -13.020823990126516, -15.321774449690414, -15.15472036502725, -15.045521073062256, -14.423832856484458, -14.136150784032674, -14.043369050581708, -14.018367748376294, -13.625325160266685, -13.165792830888245, -13.01918935669637, -12.93217797970674, -14.86572472814562, -13.890681403867573, -19.211785527009976, -10.996638999989736, -13.46818533062754, -16.198973017771024, -15.793507909662855, -15.005050549298586, -14.740357995071504, -14.476206420029916, -14.358423384373532, -14.197493017560896, -13.559915688155762, -13.063478801841871, -13.020919187423075, -17.462097118323523, -17.347027788538735, -16.79364255035395, -16.781220030355392, -16.484321302798687, -16.388177442245787, -16.165033890931575, -15.928645112867347, -15.828561654310363, -15.262166179389563, -15.2354979323074, -14.17260372624137, -14.08559234925174, -13.93144166942448, -13.862448797937528, -17.07880433556745, -15.16507522601646, -14.247222523566485, -13.997480889690763, -17.376876740775174, -15.204604124421596, -15.802441125177218, -17.978945974314833, -17.570380347145413, -17.552357393227535, -17.115119075014405, -16.44811998751672, -16.112279898638647, -11.883951432222059, -11.459743481522635, -20.097019291538672, -19.279500574313698, -16.637117530483692, -16.345144848722096, -16.23526395322085, -18.17731054704565, -18.85813785740724, -18.540839481279374, -25.140401657738565, -22.556553976186017, -11.504520143504092, -15.892485895003972, -21.175669185027832, -18.37024061368365, -16.023207285239923, -14.799082684235916], "none_hi": ["pow", -0.6, -8.600721103050565, -8.620519560551742, -8.645125984596751, -8.79628027312896, -8.586480336300855, -8.584659622393898, -8.79934266878208, -8.610673673557304, -8.505606883886376, -8.635620958041649, -8.39974271366038, -8.06173692416405, -8.502705216062544, -8.598185321808485, -8.458387426068077, -8.362662222393924, -8.35439771254403, -8.266259875973192, -8.344932944107125, -8.305434810350656, -8.584806113016523, -8.841043266879321, -8.65946280245499, -8.50609608346789, -7.980396923123506, -8.80543567453492, -8.460976247416342, -8.389394838109896, -8.516223800325054, -7.923792321727381, -8.466819243087992, -8.677407118753987, -8.13733632795244, -8.12291795252817, -8.960675936168357, -8.308973746133397, -8.310343139498517, -8.46809705132185, -8.286288475074414, -8.087837536350577, -7.950061812557169, -8.521149884416358, -8.121712299490838, -8.348352038555598, -8.668031630762192, -8.632891578284744, -8.720623634037464, -8.368343037972155, -8.315776332007374, -8.388380639337436, -8.499802133427618, -8.470008257655657, -8.785096799107958, -8.513596557107963, -8.504669876781826, -8.13270100921667, -8.640196961852265, -8.636649159960566, -8.640626100834645, -8.615047815969609, -8.8204528110913, -8.748429494647473, -8.643861754816792, -8.42221109703559, -8.90586269537075, -8.769776071764392, -8.713765820183955, -8.57883306805488, -8.60677987888404, -8.665029249663036, -8.710672073268924, -8.675905308626177, -8.673762951616098, -8.56728113326632, -8.539525105936823, -8.408061356113265, -8.63943684764641, -8.239718399837498, -8.659108766488576, -8.432335447123787, -8.399990074778712, -8.605193580355486, -8.627427743333723, -8.860512709976366, -8.674691177349253, -8.5634028447884, -8.756532674028257, -8.612917108142202, -8.89469727571521, -8.467525575324533, -8.673128439985067, -8.549732551297407, -8.64657178183816, -7.971701945268629, -8.66852500061989, -8.467865856746345, -8.620322088506073, -8.627294832896105, -8.625763343387232, -8.510699998614099, -8.175419363515086, -8.743695511712373, -8.695488476334036, -8.673176512599632, -8.536588235915845, -8.60603796486083, -8.367574903139868, -8.51299741990497, -8.335016807130161, -8.528642805652327, -8.620624254290302, -8.512219105167578, -8.496365288554191, -8.64633438805555, -8.542988567160155, -9.742374260778726, -8.483001800398128, -7.683532370944743, -9.731279701709155, -9.482818342410654, -9.38750816260633, -9.146346105789442, -9.262879922045395, -9.250120578291634, -9.503021049728174, -9.31561042342675, -9.160734843241542, -8.976000740042203, -8.469718728706535, -8.630789397472391, -8.495671072455476, -8.493518005227127, -8.545454606844249, -7.944079423100636, -7.77702533843747, -8.57323589630671, -8.548852089992046, -8.873667314801077, -9.293876781322428, -9.17481742130644, -8.993346566392798, -8.959870637196408, -9.069970708222426, -8.178751581159284, -8.643634041702162, -8.488950099458748, -8.335051741927435, -8.501473801265169, -8.484999090342583, -8.483155962868787, -8.607998481729773, -8.672600367140362, -8.799603012029205, -8.701541798852993, -9.255115941188635, -8.673711880918075, -8.189566079841743, -8.532885934864884, -8.531590261095305, -8.563504419952412, -8.617489157457829, -8.439924192962973, -8.574287087545756, -8.579343351087068, -8.203515142960429, -8.499748804954034, -8.585495652906024], "none_lo": ["pow", -0.6, -8.600721103050565, -8.620519560551742, -8.645125984596751, -8.79628027312896, -8.586480336300855, -8.584659622393898, -8.79934266878208, -8.610673673557304, -8.505606883886376, -8.635620958041649, -8.39974271366038, -8.06173692416405, -8.502705216062544, -8.598185321808485, -8.458387426068077, -8.362662222393924, -8.35439771254403, -8.266259875973192, -8.344932944107125, -8.305434810350656, -8.584806113016523, -8.841043266879321, -8.65946280245499, -8.50609608346789, -7.980396923123506, -8.80543567453492, -8.460976247416342, -8.389394838109896, -8.516223800325054, -7.923792321727381, -8.466819243087992, -8.677407118753987, -8.13733632795244, -8.12291795252817, -8.960675936168357, -8.308973746133397, -8.310343139498517, -8.46809705132185, -8.286288475074414, -8.087837536350577, -7.950061812557169, -8.521149884416358, -8.121712299490838, -8.348352038555598, -8.668031630762192, -8.632891578284744, -8.720623634037464, -8.368343037972155, -8.315776332007374, -8.388380639337436, -8.499802133427618, -8.470008257655657, -8.785096799107958, -8.513596557107963, -8.504669876781826, -8.13270100921667, -8.640196961852265, -8.636649159960566, -8.640626100834645, -8.615047815969609, -8.8204528110913, -8.748429494647473, -8.643861754816792, -8.42221109703559, -8.90586269537075, -8.769776071764392, -8.713765820183955, -8.57883306805488, -8.60677987888404, -8.665029249663036, -8.710672073268924, -8.675905308626177, -8.673762951616098, -8.56728113326632, -8.539525105936823, -8.408061356113265, -8.63943684764641, -8.239718399837498, -8.659108766488576, -8.432335447123787, -8.399990074778712, -8.605193580355486, -8.627427743333723, -8.860512709976366, -8.674691177349253, -8.5634028447884, -8.756532674028257, -8.612917108142202, -8.89469727571521, -8.467525575324533, -8.673128439985067, -8.549732551297407, -8.64657178183816, -7.971701945268629, -8.66852500061989, -8.467865856746345, -8.620322088506073, -8.627294832896105, -8.625763343387232, -8.510699998614099, -8.175419363515086, -8.743695511712373, -8.695488476334036, -8.673176512599632, -8.536588235915845, -8.60603796486083, -8.367574903139868, -8.51299741990497, -8.335016807130161, -8.528642805652327, -8.620624254290302, -8.512219105167578, -8.496365288554191, -8.64633438805555, -8.542988567160155, -9.742374260778726, -8.483001800398128, -7.683532370944743, -9.731279701709155, -9.482818342410654, -9.38750816260633, -9.146346105789442, -9.262879922045395, -9.250120578291634, -9.503021049728174, -9.31561042342675, -9.160734843241542, -8.976000740042203, -8.469718728706535, -8.630789397472391, -8.495671072455476, -8.493518005227127, -8.545454606844249, -7.944079423100636, -7.77702533843747, -8.57323589630671, -8.548852089992046, -8.873667314801077, -9.293876781322428, -9.17481742130644, -8.993346566392798, -8.959870637196408, -9.069970708222426, -8.178751581159284, -8.643634041702162, -8.488950099458748, -8.335051741927435, -8.501473801265169, -8.484999090342583, -8.483155962868787, -8.607998481729773, -8.672600367140362, -8.799603012029205, -8.701541798852993, -9.255115941188635, -8.673711880918075, -8.189566079841743, -8.532885934864884, -8.531590261095305, -8.563504419952412, -8.617489157457829, -8.439924192962973, -8.574287087545756, -8.579343351087068, -8.203515142960429, -8.499748804954034, -8.585495652906024]}
|
quantity_module/data/param_distribution_50.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"R1_hi": ["pow", -1.6262316789438618, -5.50185410338233, -5.551506081306524, -5.640166932367276, -5.0774720330797845, -4.8465333971262865, -7.306914804413413, -6.551608295949734, -5.31916784160199, -5.2102227021918175, -5.013306057379731, -7.0922522577744616, -5.91857723636671, -5.1341615045459275, -4.855520139300957, -4.838199101387842, -6.870493374411286, -5.520985345829364, -5.505923052233272, -5.386098277027242, -5.354041598337607, -5.085701831388277, -4.689651950926169, -4.623208100695711, -4.066798931985653, -5.260392007120365, -5.19391342320939, -5.125967565987341, -5.0590628287516095, -4.932396995616217, -4.895922347801624, -4.82870981800471, -4.9072533887357945, -4.602954698099427, -4.4908544288401275, -5.497071122681117, -4.844230857942064, -4.765058279916984, -4.15218235313127, -5.452178448601278, -5.351226290108451, -5.247314199936507, -5.178290890942839, -5.126340700502047, -4.995716042532128, -4.942732004984044, -4.9193966605470605, -4.902494480504807, -4.884731588016332, -4.7316504758321924, -4.597259200352506, -4.7773612562390575, -4.619309244720295, -4.597270554973395, -3.690540460864307, -3.956582223951986, -4.349337533455889, -4.900640612377033, -4.392013166495038, -5.00311821868926, -4.558493574576041, -6.4172088816739, -4.465150394483604, -4.388983053975519, -5.007611604833761], "R1_lo": ["pow", -0.6666666666666666, -9.354219240344637, -10.034735047203085, -8.886910933861714, -9.778425944756851, -11.917549913250246, -9.150164778152224, -9.98479500985561, -11.16473105142342, -8.999650038231117, -8.45369159870999, -7.601430807442367, -9.04439626164664, -7.15701600090834, -10.761186951897901, -10.295734963636324, -9.189154867046767, -9.09590436554236, -7.389281781124428, -8.702775525732017, -7.285553918890487, -9.630383485949146, -8.66949194704732, -7.7291576451378985, -10.765235469715616, -9.55341261158648, -7.922731054562891, -7.81050328459185, -7.65393422390031], "R2_hi": ["pir", 9.977546350668533, 9.825606922020484, 11.449240739008165, 12.542278871371657, 10.168871860281183, 9.820804292080958, 11.728829649860302, 11.377107065350781, 10.090658938470732, 11.637789282982059, 11.947717711060587, 11.055996369508293, 9.60081298030056, 12.287278139270747, 12.03937021620369, 11.832482866326604, 11.138108982811875, 11.374995686140377, 11.897826765214774, 11.096918822893553, 11.621330632168704, 10.11609027417412, 10.979484139661025, 9.519503522062116, 12.041574389694507, 13.314640414096594, 12.03492228462392, 13.378584608348678, 10.354373564549814, 11.616212613630253, 12.32750505834181, 13.093819818513001, 12.076426678942955, 13.254373944845565, 13.181714815581287, 12.007355669304442, 13.292893602514287, 11.55431949057849, 12.735914404096171, 10.148860697751836, 12.274479550923552, 13.389135396548824, 10.203434593165063, 11.102711205092213, 10.590178097545774, 11.367195481341653, 12.234847528633292, 11.610686048479824, 13.02756290511249, 10.945791567043877, 11.133720046210158, 9.744490512781208, 12.037437278097684, 12.51945891065294, 11.89207391445974, 12.21410870792479, 12.001944213346057, 13.269889304075441, 12.105081396645748, 13.181027947609529, 12.253918528372122, 12.179648860983058, 13.188833197015068, 12.441926885456596, 12.550596359621721, 10.454859188402892, 11.679855357643383, 11.45608330362538, 12.071378313085152, 11.454274667278625, 13.093394276297808, 13.117900462197927, 10.821549551860201, 11.432057527187705, 8.88813025199575, 10.823803782948886, 11.257674132046137, 11.54842099149026, 11.134678520350402, 11.461972448572183, 12.020005897977967, 11.61735228568135, 8.480928445712287, 11.534463427331758, 11.749435322980109, 10.868183711037165, 11.36424253249713, 8.582453393128848, 11.368456299365768, 11.510531807863, 11.530312523556102, 11.807351543170377, 10.842636622147214, 10.259671298359851, 10.739550063479566, 8.804061659144736, 8.889110616034113, 11.318904435828419, 10.273801676984704, 10.936638365507061, 11.17775682441205, 10.681524997506237, 8.7542792319571, 11.531706810610569, 11.144621928923886, 8.994447392856188, 10.518197278467785, 11.755249295613446, 10.853087083221016, 10.602382323339583, 10.406555786121675, 8.33055220385856, 11.69691336156978, 12.01265749158787, 9.462241857885193, 12.090665317896875, 10.617861135899318, 10.699378187633652, 12.144482780582972, 11.27995841243671, 12.3401859659199, 10.847211952224232, 11.089547724526021, 8.122930482924879, 11.387279674981038, 8.415421678355315, 10.774738973746281, 9.489446903704302, 11.808487643540658, 12.115776308878107, 12.323512062046436, 12.72937913401011, 11.60117924879539, 11.260609583674544, 9.985335683194869, 11.440496487529607, 11.940463212576276, 11.40776924708339, 9.798730355879133, 9.934075720353121, 10.284646051831764, 11.66123027959426, 11.931536564746317, 12.082802603612013, 10.111637134449612, 10.441154254794167, 12.30352909464381, 12.619144419911969, 10.858661415499455, 10.369946830227835, 11.033567030335892, 11.29683980373019, 10.743206912718932, 11.472136185601965, 10.974806122442182, 10.67620539672351, 10.70210436148436, 11.30175720482736, 10.996040416768416, 11.28484762435119, 12.094192228818876, 10.056032774808578, 11.102064661412754, 10.997808186685749, 9.889611058346166, 11.844281845347211, 12.468272282864685, 11.987481993234152, 10.641370392730607, 10.48482045838428, 10.775943707766725, 11.985330666518696, 9.02419133039993, 11.8055876957612, 10.390682329227868, 11.487516841656824, 12.722262976223305, 9.857759374873744, 11.471974838288443, 8.784219875814799, 11.298461749602456, 12.111767837006017, 12.026927567051334, 11.365344422652893, 11.759394555577558, 12.009129683496113, 11.960311751509025, 11.808671043600146, 12.165460276638825, 10.749242138454534, 11.910992413136963, 10.889989222651042, 11.781263658021569, 12.420193595967078, 11.702401747870834, 11.373409817163093, 11.109871814535623, 10.588031568924873, 12.285887122767122, 12.62185926230585, 12.267383541147286, 11.758551668215908, 12.051980842072748, 12.01199445749565, 12.152404389902447, 12.177922332467784, 12.724004937839148, 11.45725745394462, 11.83438825833376, 11.59321007604255, 11.851245165531594, 13.122085584424887, 11.43497515583526, 11.821257411183112, 16.022658592468222, 16.213378711761596, 8.743716597394869, 11.30084412774535, 9.559447944852963, 9.601699551992088, 11.687078983553448, 12.309097496614445, 9.398883748577113, 10.9625230511806, 11.263569432677553, 9.244250828676225, 9.354403275909597, 11.107419273629137, 11.927099060804796, 11.993794628959488, 10.210982865389639, 10.318408019034074, 11.415738986924747, 11.33154139813993, 11.456917628546044, 10.07256393387004, 10.136841057226746, 10.845814973555893, 10.585154000607172, 10.622698884421009, 9.843718073077781, 9.901647812922342, 10.035167710517953, 11.26843456735222, 11.362816208983158, 10.528011681320141, 10.551306904732513, 11.46562570879783, 11.565049555402137, 11.1790209787648, 11.288863081303191, 11.082609058751896, 11.090154979091558, 9.117040126424275, 9.227755308468272, 11.03477497372566, 11.365404980814684, 12.13524928147568, 12.227501564046637, 11.177523644272686, 11.399974057725625, 11.718385191521438, 11.667430058867552, 11.249660023653437, 11.78155877904786, 11.665875081017955, 11.619324265218111, 11.819456322574997, 12.498397938689852, 12.729080567177224, 11.854941055506544, 12.48571704886444, 10.995814729902374, 11.848259804735918, 10.829147848748743, 11.608165285056291, 10.958414767177832, 11.642737278310953, 12.312792756295273, 11.231296431372577, 11.328349099599748, 11.209601139875481, 10.168287256147092, 12.119995114276989, 12.529058861636923, 12.370564410733348, 11.686675313438652, 11.831363565847948, 11.738197859217518, 12.519435933974783, 10.852737119888097, 11.992350484522404, 11.326920113572715, 11.778566155544812, 13.067337290998065, 11.024559058875482, 11.724489607329048, 8.714179388833315, 11.670548717643882, 10.943198997629711, 11.919062232147446, 12.289773873351137, 11.247913313527754, 10.638428452281548, 10.57602079708516, 10.807934444028433, 11.615826040210791, 12.314154830841211, 12.204600532297437, 10.533833719081695, 11.126528850610821, 11.605702693200733, 11.144172331748386, 11.416310897077576, 12.138639150176491, 10.780000379703797, 11.47113434765529, 11.621694569059137, 9.980872705567482, 11.283859828234217, 12.459493758802438, 11.318083382393809, 9.743873809463743, 10.030888357337943, -0.08990651476169376, 1.3632960735772777, 2.3976195005817296, 5.522689006566512, 6.118145699007176, 8.125043186626439, 8.415572042079205, 8.815052207663307, 8.111823448333446, 9.442267440273401, 10.517777546448166, 9.00108871491669, 9.382864997582011, 9.756816630303838, 11.709156607475343, 11.938759380698585, 11.969563822851637, 6.172673634192563, 2.343508978339244, 7.881163194512613, 9.54246031871584, 10.537270134573731, 11.003911349578672, -0.2118996908717108, 2.6288645539436253, 1.2769126062243146, 1.8562850622937823, 1.382471011926178, 8.559715967274748, 10.075221097000004, 10.872742167521114, 11.449817038420779, 1.943767903608908, 1.76669871938077, 9.596938859918183, 11.311793315098313, 12.216191995127353, 12.448871884594219, 13.584525444942678, 13.718520726229457, 13.999821154345476, -0.7379277734486109, 2.9804217692258668, 1.5772298275177477, -0.7622196084187962, 2.361047952232177, 2.6475031269460203, 3.389960928095462, 4.169919033221049, 5.59875975434263, 8.129332088809612, -0.8505474586704267, 9.599622037459845, 11.362490847493039, 12.128827472821648, 12.542053222153648, 9.19485899806785, -0.47045043549386634, 0.30721254040673784, 9.648942731392275, 10.705688414718654, 11.424441285464852, 6.33337345035072, 8.089139316930872, 9.26335434634193, -1.2741437163267904], "R2_lo": ["pow", -0.6666666666666666, -12.203672829339233, -11.9080523146687, -11.156623185104687, -10.999020209971198, -9.421904654304058, -13.69973467505017, -13.250244777949602, -12.81197776023566, -11.960862672314395, -11.555190988649208, -10.946736704924227, -12.60702975802759, -12.682310742224335, -11.948387180097033, -11.622451143670627, -11.156045053752237, -13.04433314299327, -11.432959674168542, -11.147521170234182, -10.68283053504472, -7.471904041709303, -12.533438788164542, -10.103637790877658, -9.794564897077029, -9.750889833574368, -9.60071252681218, -11.467792582275777, -11.085630855232889, -10.942109832981002, -10.675716081636791, -10.28882414863481, -9.468052662460138, -9.840609119158067, -10.559034681273712, -10.210166647448876, -9.674960593351026, -10.4216054295527, -9.386883166992572, -9.463915338434177, -11.351652525661798, -11.675756364415577, -11.243047867195793, -11.151756648255198, -11.674172599068543, -11.400722088989452, -10.199406827495238, -9.999000918911602, -11.161817563603512, -10.587893407448412, -10.391233689358458, -11.093410527030699, -10.87177824335998, -10.10812973732861, -9.911470019238658, -10.890576877837052, -11.380549265430393, -11.41139595812238, -11.161044918377215, -9.31944503397474, -10.508548546971419, -10.32624820691869, -11.158781234234329, -10.945889042860308, -10.21143977204528, -10.016653149202169, -9.533244280602666, -9.155674886211145, -10.4675199067802, -10.372555373946817, -10.01191984817925, -6.462900630042536, -9.532044734199141, -9.365348745492724, -10.961500175715395, -10.571772737870216, -10.232756813679147, -9.94338613275872, -5.951721959050428, -11.718432160620447, -8.675713572170825, -14.590561742912888, -10.538832960609353, -15.17412530305922, -14.603115544536742, -13.897956207528797], "P1_hi": ["pir", 9.368112487827023, 8.89581321704765, 9.041628056511964, 9.804365694619314, 3.9686007893015898, 7.957906226959334, 9.7476745682665, 7.36877294295649, 10.253572749396778, 11.207784675535073, 8.113611526803318, 10.668858766708432, 12.256926571585929, 9.473965825798242, 9.678712005515571, 7.3698690065580195, 9.254420032481665, 9.216657871713728, 7.805731593269023, 9.651802486794423, 8.09327434866378, 9.042198558265593, 8.677094597178577, 11.244388659265518, 11.292578947737809, 6.919172624411324, 9.925173619682422, 9.942911973600932, 10.864911959051689, 8.938970894078349, 9.443547374780575, 9.99654792359728, 10.616267635602409, 11.988545671489732, 8.51251317980278, 9.10107601865574, 9.546462855747336, 9.12860291015199, 9.16187903128527, 11.1734477750886, 10.400935932834148, 10.83893764490568, 11.04412547864483, 12.43569172541072, 9.185913704611092, 8.56371941430799, 9.348338245660624, 9.891136290828833, 10.172182328329196, 11.494029341002719, 10.27559679299798, 7.86914143116266, 8.366389519798712, -0.3869186686785042, 8.646912448833067, 9.253621369953098, 10.124028888606166, 10.172202045891854, 11.069830888030676, 8.470974109443269, 9.97182467193516, 9.050325801392074, 8.92441729717578, 9.019812006675842, 10.363838252319923, 9.54866152760938, 8.82296655794169, 9.519951547703066, 8.653136752759693, 8.997037581757326, 10.577487957318176, 9.205776218793812, 11.537533397782482, 6.947095770923806, 10.845119376136552, 5.344805798401261, 5.836466257702689, 11.247015293184067, 11.585998344031466, 10.97368457303088, 10.1128543147099, 10.171217704218446, 10.014856497460798, 10.514823612419072, 9.348894445706005, 11.27990205166055, 8.255099710032944, 10.118268434126428, 8.726726017297054, 9.095820191919739, 9.239462894148584, 9.314073757939756, 9.339881641895627, 9.70705585633413, 9.209849173861173, 9.495512969498257, 11.057779106335332, 8.88098001822727, 9.349057465237827, 10.538815070641949, 10.283567416601816, 10.433055401685916, 9.863365662533543, 10.630085425164214, 8.107239419967907, 11.143326763278417, 11.884979176883917, 10.601204992810409, 10.903278760080216, 7.817589107544329, 10.25588210178097, 9.858568745159545, 8.40802027944952, 11.726716439599933, 9.214594645460501, 10.538815070641949, 10.085514307909609, 10.98269353163441, 9.55278196208102, 10.807872463371801, 10.719264173770021, 10.899537694853432, 9.91087695400591, 10.58231524573317, 8.864944877300402, 9.437351486131579, 10.686953988198503, 10.783549776159127, 10.487940433546235, 9.990305253141557, 10.125698101138365, 10.428193397353496, 11.078804441787447, 11.158007006623915, 12.473348921308823, 10.409716258781884, 9.021155978170967, 10.153067390862773, 10.366478520907588, 9.769125270872703, 10.217690891934954, 11.128086396186134, 10.722146776742683, 11.38324962639081, 11.816973638931032, 13.220355487616427, 10.487484596935513, 10.974459611985122, 10.179226477756448, 8.949121444884234, 9.070055699745986, 10.807872463371801, 11.191576922722458, 11.13310346482492, 9.987232262584882, 11.590208693081255, 9.154952718919631, 9.63423972188459, 11.802702053139097, 10.746966555780933, 8.37904009996273, 10.051956832341094, 9.624970543519709, 11.77295015210861, 9.193589955035744, 10.064792264216894, 9.667490767945594, 8.851756922590607, 9.056710011003869, 9.891305389160639, 11.325126897738041, 11.651339005934943, 11.305715695843805, 9.235183972694355, 11.12495759116674, 10.654885505080568, 8.89060406843101, 9.491906057027936, 11.07536840799516, 10.315710928735747, 6.793260676385913, 6.8334295607250795, 7.354374853294033], "P1_lo": ["pow", -0.6666666666666666, -9.63277054179795, -9.39569241501443, -9.110176338387983, -10.551017502185857, -10.527600523222961, -10.264359721871756, -14.560520591137546, -9.865624438593871, -9.607131630968365, -9.201763483034828, -10.148284691680283, -10.110858278853641, -9.732723741383335, -13.784347759228293, -12.992515290571248, -11.77961347670889, -12.65194797994475, -11.08015671786466, -11.440453909436258, -12.055669002888795, -11.116060895869524, -12.054808398327609, -11.028074769213127, -12.832212335887055, -12.85647421956627, -12.819457569110202, -12.73797821030722, -12.694372556338143, -12.563385274633395, -12.23963907385726, -11.769635444611525, -12.260257203194497, -11.15152734060343, -12.543178317436993, -11.432252497145718, -10.203502069350304, -11.455964952124786, -12.286853012553724, -11.499228660409944, -14.113160411799974, -12.717948174523013, -12.205489750381581, -12.015156850471968, -11.930581864588035, -11.059973149079843, -13.980390775517087, -12.460649303122072, -13.23440166592998, -12.551704834103873, -11.131246552687664, -10.997556813854562, -10.92118198138538, -10.244426682565074, -12.684595341643334, -11.535385451621167, -11.26488504401097, -10.675120579316033, -12.702947036150395, -11.955230890115665, -14.156223781335852, -13.948832326807986, -13.580302493990608, -12.320997644333515, -12.163963704803882, -11.869138256982293, -11.113846920146921, -10.801141429594919, -12.31081693370561, -12.197292710374537, -10.522410749329103, -10.37010671390066, -10.152853105373767, -9.990812508515987, -13.475914089264577, -12.954624676541929, -9.713938683362894, -9.727256924111206], "P2_hi": ["pir", 7.278272966438312, 5.583642505571657, 4.841853899413831, 8.614906605660966, 9.703213538305391, 7.408150637295979, 9.127981789385618, 6.792377769018884, 7.906664988334967, 6.87882841536825, 9.560136124058342, 7.283598806792671, 10.358855275271896, 8.901350171582411, 7.88912344671774, 6.996176626065733, 4.416293663879419, 8.106732409553114, 7.712005820733943, 5.421320220696199, 2.811732599758937, 5.33905706023663, 5.137415081178403, 4.590384878045498, 6.500724459951719, 2.5211482667686766, 2.9023060622014896, 3.0949108898993813, 2.4084317546018426, 2.6382121748290572, 3.4136137320143547, 3.6029824698159345, 3.751021379801692, 3.9457217712064505, 4.131502242832646, 4.569044961001055, 4.596832012513062, 4.86143243079016, 4.953735594281326, 5.524942521307537, 5.820845736018185, 5.870452549519406, 6.618430736316327, 7.249387196735249, 7.893338889049922, 8.449455642285315, 9.043367483024909, 4.419194396300977, 4.821500707636574, 6.393617225541572, 6.187225192141369, 7.444192881922405, 3.177224932429535, 10.817099337595394, 2.853512495126644, 4.051469379892232, 8.738520150825604, 1.6523250960776856, 1.8971521887193639, 2.805040089380743, 3.6785910866572102, 3.8618172821914563, 4.001005442816979, 4.1115770908738405, 4.137389756438356, 4.580386249833868, 5.6653485963051615, 6.70465746576448, 5.124109502765755, 6.666647666965183, 6.839183380167231, 6.376977185218152, 3.3473867902977474, 7.80627223280813, 4.6783048411162795, 5.205507120817458, 6.770148457783691, 6.796384619056958, 6.245263494161396, 8.124822642979375, 5.717563048108861, -0.885987297044359, 8.437790943812832, 5.799772196576406, 4.600886986628812, 3.9678543570602436, 6.880772762779944, 5.283987896717164, 7.032131278275234, 7.954721781540062, 7.048531528127661, 5.173073202616177, 5.182867833299898, 6.941476440673075, 5.529908169852728, 3.7254801634294346, 2.9244128553699476, 7.187977980985085, 8.180967148329309, 8.297396364035446, 8.408508627091067, 6.318222090637153, 8.33740894582651, 6.570654107863032, 9.862340463416817, 8.61209569576183], "P2_lo": ["pow", -0.6666666666666666, -12.58506630287015, -12.404160848258428, -12.748182980080593, -12.11496127044741, -11.59836586500137, -11.648917020456867, -15.089943709466777, -12.57670273109797, -13.866854630472668, -13.11255149971803, -12.464206083401706, -10.352434298464097, -11.871436567090397, -15.03688082774281, -15.491695441606963, -12.844952697825153, -13.60345931537168, -13.105796037855574, -13.037244764452439, -12.526419140686446, -12.241585009971896, -14.118485052740876, -12.587008681776489, -14.249352986540924, -12.753908831309321, -11.945458720605863, -13.091004938694315, -15.033640317888796, -14.870749350922774, -13.343133495766098], "P3_hi": ["pir", 5.007161049498308, 4.766971446853848, 4.378260394907155, 4.905613859155629, 1.3798324683535554, 6.236114228293992, 5.725974080860897, 2.919194396300977, 6.257028894089952, 6.775912329352174, 6.792532177414376, 0.8182085201463707, 8.00180752745031, 8.075768511454388, 4.961428017709011, 5.217361391846211, 2.621943136867536, 8.14022778375329, 4.743573227174878, 5.139333633289201, 9.069626911775039, 7.690993576124093, 8.169025646056674, 8.170273969033143, -2.757734007466972, 5.880021747707925, 7.207819902146209, 7.3432293402059265, 7.5630502923216305, 7.981936145239818, 8.585456956684059, 5.9075993523819825, 9.445115267839007, 9.832281450960185, 4.313266828331553, 6.381279674187766, 5.155358236771772, 5.42372312769675, 6.913262493899381, 7.604766770354967, 1.6918792324258867, 7.053649231759369, 2.0821981541985615, 2.4027482071534436, -0.3244728488051791, 3.5499907890532256, 3.9322743294510474, 3.237391885121447], "P3_lo": ["pow", -0.6666666666666666, -14.834030532748255, -12.30183752119564, -12.270171188933475, -12.793692503734817, -13.580634796785912, -13.587746131643506, -13.567913087521276, -12.128561653326484, -15.975385378535051, -14.416657440820742, -14.411195904444902, -14.177581053263395, -14.141043814981224, -14.114015142298303, -13.746120383451913, -13.666755429497407, -13.491399835661214, -13.443611878183196, -13.261290321389241, -13.848900308440651, -14.237165785640691, -14.20012451366534, -11.038868208880189, -12.788753106625245, -13.478354386042234, -13.472481972263601, -12.296946626453005, -12.263394604892136, -13.623360047882759, -10.692547675823647, -17.075047578991544, -16.619982460093482, -10.299238653021085, -11.83766375766473, -16.570498999039742, -14.273259157034952, -13.384348126616775, -14.795411944817351], "P4_hi": ["pir", -3.6315687562696226, -5.075457112464214, -4.834955397579378, -3.8992509353488387, -2.544648204074065, 4.319313750480628, 8.229181372301337, 6.448909276554005, -0.9213093437355653, 1.2389974774341326, 1.7527000270198556], "P4_lo": ["pow", -0.6666666666666666, -11.837266967418902, -11.09293789235211, -12.634956047855546, -15.160794870954248, -14.9046737777287, -13.92737902967985, -15.80404151394386, -17.440746125456986, -13.756461635998878, -13.676146632837384, -10.6515339935846, -14.390177093499776, -13.969885452715829, -12.839280272324338, -12.715520686548427, -15.308984838439617, -10.086468435178686, -9.534753946922752, -13.787274682337403, -13.632075227976246, -12.947559353656029, -19.943310442862852, -20.124012721266666, -12.554259672595588, -13.370033533089064, -14.948974847064719, -13.764811149691507, -14.159540437027061, -14.554269724362612, -13.055530828793245, -13.476599566584614, -13.713437138985945, -14.214563307382925, -14.477716165606626, -12.214625749516237, -12.609355036851792, -13.083030181654454, -13.504074754812379], "G1_hi": ["pow", -4.06903110031264, -10.34773375991358, -6.2878889964560365, -11.796060385646555, -11.424500242777004, -10.270616330075306, -5.2714700041988465, -4.065154225860205, -5.531766059799143, -9.824687097180927, -15.341159987786842, -12.323765902698714, -9.419888782474626, -11.30228440173148, -7.066302902386351, -6.8838359302061285, -8.2036055259459, -7.106426590665578, -8.548012534960154, -7.016093085562996, -7.83756548590469, -5.975283197745451, -6.908061732982304, -11.454542381136832, -9.552269153013246, -8.522188532968979, -8.15970413250491, -6.80160623792808, -9.365797811750568, -9.911597540422992, -9.21159754042299, -8.911597540422992, -8.411597540422992, -7.911597540422992, -9.882256324952387, -7.740000497965461, -7.474701214312564, -6.974701214312564, -9.283298991437544, -8.216417898631963, -10.598913192553539, -11.544330315019565, -9.465861943957272, -9.707770243693382, -7.616053395971154, -4.167129435818428, -9.498761469614784, -9.45881760348314, -9.372308360573857, -9.260065505293088, -9.218947258363617, -9.07363716654648, -8.353513889097915, -8.341276981697266, -1.5779563065409512, -1.816882543012401, -0.8831734926472237, -8.580508298507942, -10.831932702566856, -10.478922347780003, -12.575922278003048, -8.262473785197628, -6.440948750248971, -12.693160514168564, -12.161384583878498, -12.806757513213423, -11.93520741217418], "G1_lo": ["pow", -0.6666666666666666, -14.114360085424003, -14.67717882234837, -13.436083160628156, -15.912978996122945, -22.738094285760216, -22.785556867853156, -19.178006262158775, -15.667288528232469, -22.46464009453732, -25.818060404230664, -22.282814553982902, -20.476400458884285, -19.18705349570882, -15.793999065388157, -24.76104069750174, -23.436119539273434, -19.71208673935386, -18.656904008613086, -16.633036787755895, -16.15155201466665, -19.635399290922866, -15.770833594517423, -17.070260099202876, -16.891117809470675, -14.69342883201887, -15.411071502582843, -18.301672220265488, -15.395925982889285, -15.379707112387017, -13.306782400954603, -17.170804413595036, -18.92625637306329, -13.100244615714045, -12.22627109710948, -15.772885092531046, -16.198935442607258, -13.344737121688407, -15.267092689037554, -15.751025366413188, -14.328917769408749, -17.42327752860827, -15.762480495372824, -12.902706941009498, -12.215622843939084, -15.947961360735142, -14.223949873589794, -11.215188130314834, -13.524672025347526, -12.964569243171486, -17.19988814554771, -16.391830048206614, -14.313245036651079], "G2_hi": ["pow", -5.839544516115287, -0.2658952466153792, -4.413457938820287, -3.923432393539528, -6.238361619299116, -5.748301999507181, -5.490762946050403, -5.000737400769644, -1.7217911656133822, -11.928104401494934, -1.8322035512890835, -7.95241872288965, -5.755838084039045, -6.016516641940758, -3.809833584723197, -4.582474565736234, -6.382055079378183, -4.183443823337257, -6.393489908417486, -4.185976946053344, -6.386335022313677, -4.187264091694217, -10.599459648899664, -9.472075223338845, -8.400501519412604, -3.3921539300295933, -5.508255575548354, -3.304766280528689, -7.352678689412208, -5.15770250269663, 0.45127620245418143, -0.34411815978451443, -4.271546252573028, -1.680220875328633, -1.8442810044087246, -4.23850526863486, -7.369655527650984, -3.9568056651102097, -3.3720250682296644, -8.004043849516815, -5.805085720029755, -3.506489796546145, 0.11899601230543055, -4.504216781543011, -2.311481498368618, -5.693561135765773, -3.4957584645035134, -4.590790297716168, -3.7987181371240766, -7.722319111911574, -5.127458799632365, -8.18823552853977, 0.20852893747556678, -14.500457530584512], "G2_lo": ["pow", -0.6666666666666666, -20.943377057208604, -13.957571830635214, -13.267241860829726, -18.482880807711645, -16.470014480180463, -14.750538081418457, -13.665972594660495, -13.466526441734963, -16.970656712605987, -16.615857509878175, -19.27847986199169, -15.658931083783093, -19.279401376501454, -18.864560189536068, -15.885182600596112, -15.716819231136522, -15.633018148223748, -18.026628915570306, -24.069835803339778, -16.208947782993846, -16.172107213772776, -15.384853089810395, -14.115271317017335], "none_hi": ["pow", -0.6, -8.309308735260476, -8.311695419316637, -8.335065935935951, -8.45316793573321, -8.29830866573294, -8.297518271617095, -8.518084069515533, -8.236267604712202, -8.34846430308719, -8.134372793753904, -7.811732220276344, -8.214909547934909, -8.324008836059072, -7.973040546590248, -8.100349409923341, -8.052610172448743, -8.311015936664287, -8.554919571355093, -8.109955059913457, -8.570686718243746, -8.017949917143985, -8.220030618132387, -8.230454034358422, -8.194438207026593, -8.388105493716674, -8.376781644933992, -8.805892105375065, -8.021436801365567, -8.050970224017457, -8.174449669633917, -7.671228742399134, -8.238807522067528, -7.818483627967848, -8.083838381456694, -8.40735171185924, -8.297460287414333, -8.375437694421652, -8.072172006915782, -8.043143272516552, -8.095900769746818, -8.205130075447304, -8.226014350403075, -8.22214050798684, -7.863909125925597, -8.334935262093525, -8.285206446803835, -8.332822404108443, -8.322783171998388, -8.567738059343991, -8.544672609766218, -8.147134849793506, -8.544227538877404, -8.487411256052049, -8.316295352353944, -8.375478085271656, -8.516598275611006, -8.440744304225817, -8.414335951182611, -8.36088974247969, -8.285627066858549, -8.367047962363314, -8.288256376782968, -8.13042071395526, -8.329402092334384, -7.947465732974619, -7.987260842702368, -8.128967779940385, -8.308912104051704, -8.339712601412538, -8.33569320115851, -8.27862454351892, -8.578281611479447, -8.587350009492177, -8.182768516070894, -8.398879683793446, -8.283337591733758, -8.340324354157424, -7.676012559401206, -8.391520697893291, -8.020854112325047, -8.339293194504963, -8.319356727027603, -8.33999197578046, -8.227878283841138, -7.847074395732447, -8.395235547004313, -8.24671123217423, -8.31397152914776, -8.088661585172762, -8.293855402130326, -8.061819619627713, -8.260582015532028, -8.33001480238102, -8.217480206667432, -8.203530324752414, -8.363347415817653, -9.651079599782808, -8.230874485740792, -7.2647369546662315, -9.28396748366549, -9.07735323430249, -8.952190091348484, -8.820130369335418, -8.184916853573501, -8.349825020336521, -8.223192142955114, -8.179070897607403, -8.261901182726087, -7.250768579206312, -8.289786715703102, -8.397552856600218, -8.279188256519184, -8.76721293969941, -7.971621461943785, -8.356762803811604, -8.036439192539282, -8.03791909526152, -8.207759108602854, -8.187594616625429, -8.328441582500854, -8.375990994569843, -9.022746563343414, -8.397130422912086, -7.899459704756639, -8.310093123302707, -8.233869025495393, -8.260219515034553, -8.248856920504878, -8.35072680186568, -8.080551505021901, -8.435390228232006, -8.336105917293473, -8.2840036423467, -7.9276702252107665, -8.215000237513609, -8.311629975822482], "none_lo": ["pow", -0.6, -8.309308735260476, -8.311695419316637, -8.335065935935951, -8.45316793573321, -8.29830866573294, -8.297518271617095, -8.518084069515533, -8.236267604712202, -8.34846430308719, -8.134372793753904, -7.811732220276344, -8.214909547934909, -8.324008836059072, -7.973040546590248, -8.100349409923341, -8.052610172448743, -8.311015936664287, -8.554919571355093, -8.109955059913457, -8.570686718243746, -8.017949917143985, -8.220030618132387, -8.230454034358422, -8.194438207026593, -8.388105493716674, -8.376781644933992, -8.805892105375065, -8.021436801365567, -8.050970224017457, -8.174449669633917, -7.671228742399134, -8.238807522067528, -7.818483627967848, -8.083838381456694, -8.40735171185924, -8.297460287414333, -8.375437694421652, -8.072172006915782, -8.043143272516552, -8.095900769746818, -8.205130075447304, -8.226014350403075, -8.22214050798684, -7.863909125925597, -8.334935262093525, -8.285206446803835, -8.332822404108443, -8.322783171998388, -8.567738059343991, -8.544672609766218, -8.147134849793506, -8.544227538877404, -8.487411256052049, -8.316295352353944, -8.375478085271656, -8.516598275611006, -8.440744304225817, -8.414335951182611, -8.36088974247969, -8.285627066858549, -8.367047962363314, -8.288256376782968, -8.13042071395526, -8.329402092334384, -7.947465732974619, -7.987260842702368, -8.128967779940385, -8.308912104051704, -8.339712601412538, -8.33569320115851, -8.27862454351892, -8.578281611479447, -8.587350009492177, -8.182768516070894, -8.398879683793446, -8.283337591733758, -8.340324354157424, -7.676012559401206, -8.391520697893291, -8.020854112325047, -8.339293194504963, -8.319356727027603, -8.33999197578046, -8.227878283841138, -7.847074395732447, -8.395235547004313, -8.24671123217423, -8.31397152914776, -8.088661585172762, -8.293855402130326, -8.061819619627713, -8.260582015532028, -8.33001480238102, -8.217480206667432, -8.203530324752414, -8.363347415817653, -9.651079599782808, -8.230874485740792, -7.2647369546662315, -9.28396748366549, -9.07735323430249, -8.952190091348484, -8.820130369335418, -8.184916853573501, -8.349825020336521, -8.223192142955114, -8.179070897607403, -8.261901182726087, -7.250768579206312, -8.289786715703102, -8.397552856600218, -8.279188256519184, -8.76721293969941, -7.971621461943785, -8.356762803811604, -8.036439192539282, -8.03791909526152, -8.207759108602854, -8.187594616625429, -8.328441582500854, -8.375990994569843, -9.022746563343414, -8.397130422912086, -7.899459704756639, -8.310093123302707, -8.233869025495393, -8.260219515034553, -8.248856920504878, -8.35072680186568, -8.080551505021901, -8.435390228232006, -8.336105917293473, -8.2840036423467, -7.9276702252107665, -8.215000237513609, -8.311629975822482]}
|
quantity_module/data/solvent-viscosity.xlsx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:64b17f91b472ef9b99721bcc01c233e168e0e2eec883867c17539c5d6865052a
|
| 3 |
+
size 16550
|
quantity_module/data/vrentas-duda-params.xlsx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:56a52df0ca74da211a93de2ca5e7c735a1265026bf954f967ea21a01831bd8bb
|
| 3 |
+
size 23473
|
quantity_module/quantity.py
ADDED
|
@@ -0,0 +1,180 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import sys,numbers
|
| 2 |
+
import numpy as np
|
| 3 |
+
import pandas as pd
|
| 4 |
+
from flask import render_template, request
|
| 5 |
+
from functions import SigFigs, Piringer, WilkeChang, CdfPlot
|
| 6 |
+
from functions import Piecewise, PowerLaw
|
| 7 |
+
from qrf_functions import QRF_Apply, QRF_Ceramic
|
| 8 |
+
from . import blueprint
|
| 9 |
+
from polymers import Polymers, Polymers3
|
| 10 |
+
from ChemID import *
|
| 11 |
+
from quantity_functions import *
|
| 12 |
+
import rdkit
|
| 13 |
+
from rdkit.Chem import AllChem as Chem
|
| 14 |
+
|
| 15 |
+
# get additional physical properties, options are: logp, rho, mp
|
| 16 |
+
#get_properties = [] # don't get any; this breaks ceramics logic
|
| 17 |
+
#get_properties = ['logp','rho','mp'] # get all three
|
| 18 |
+
get_properties = ['mp'] # only get mp
|
| 19 |
+
# show additional physical properties
|
| 20 |
+
show_properties = False
|
| 21 |
+
# output additional info for physical properties
|
| 22 |
+
debug = False
|
| 23 |
+
|
| 24 |
+
# load polymer data including Ap values
|
| 25 |
+
polymers, categories, params = Polymers3()
|
| 26 |
+
|
| 27 |
+
# load the index page for the exposure module
|
| 28 |
+
@blueprint.route('/quantity', methods=['GET'])
|
| 29 |
+
def exposure():
|
| 30 |
+
return render_template('quantity_index.html', polymers=polymers, solvents=solvents) ## NOTE solvents are defined in quantity_functions.py
|
| 31 |
+
|
| 32 |
+
|
| 33 |
+
# build the report page for the exposure module
|
| 34 |
+
@blueprint.route('/quantity', methods=['POST'])
|
| 35 |
+
def exp_post():
|
| 36 |
+
|
| 37 |
+
Polymer_Tg = float(request.form['Polymer_Tg']) ## NOTE Tg is provided in C
|
| 38 |
+
T = float(request.form['T'])
|
| 39 |
+
|
| 40 |
+
if T<Polymer_Tg:
|
| 41 |
+
return render_template('quantity_temperatureError.html')
|
| 42 |
+
|
| 43 |
+
chemName = request.form['chemName']
|
| 44 |
+
IDtype = request.form['IDtype']
|
| 45 |
+
|
| 46 |
+
if debug:
|
| 47 |
+
iupac, cas, smiles, MW, LogP, LogP_origin, rho, rho_origin, mp, mp_origin, molImage, error = ResolveChemical(chemName, IDtype, debug=debug, get_properties=['logp','rho','mp'])
|
| 48 |
+
LogP_origin, rho_origin, mp_origin = f' ({LogP_origin})', f' ({rho_origin})', f' ({mp_origin})',
|
| 49 |
+
else:
|
| 50 |
+
LogP_origin, rho_origin, mp_origin = '','',''
|
| 51 |
+
iupac, cas, smiles, MW, LogP, rho, mp, molImage, error = ResolveChemical(chemName, IDtype, get_properties=get_properties)
|
| 52 |
+
|
| 53 |
+
if error > 0:
|
| 54 |
+
# TODO output more useful info
|
| 55 |
+
return render_template('quantity_chemError.html')
|
| 56 |
+
|
| 57 |
+
#MW = SigFigs(MW, 6)
|
| 58 |
+
if 'logp' not in get_properties:
|
| 59 |
+
LogP = 'Not searched'
|
| 60 |
+
elif LogP is np.nan or LogP is None:
|
| 61 |
+
LogP = 'Not found'
|
| 62 |
+
else:
|
| 63 |
+
LogP = SigFigs(LogP, 4)
|
| 64 |
+
if 'rho' not in get_properties:
|
| 65 |
+
rho = 'Not searched'
|
| 66 |
+
elif rho is np.nan or rho is None:
|
| 67 |
+
rho = 'Not found'
|
| 68 |
+
else:
|
| 69 |
+
rho = SigFigs(rho, 4)
|
| 70 |
+
if 'mp' not in get_properties:
|
| 71 |
+
mp = 'Not searched'
|
| 72 |
+
elif mp is np.nan or mp is None:
|
| 73 |
+
mp = 'Not found'
|
| 74 |
+
|
| 75 |
+
# metals/ceramics logic
|
| 76 |
+
if isinstance(mp, numbers.Number):
|
| 77 |
+
is_metal, is_ceramic = CeramicOrMetal(smiles,mp)
|
| 78 |
+
else:
|
| 79 |
+
is_metal, is_ceramic = CeramicOrMetal(smiles,100)
|
| 80 |
+
if is_metal:
|
| 81 |
+
return render_template('quantity_metalError.html', show_properties=show_properties, chemName=chemName, MW=MW,
|
| 82 |
+
LogP=LogP, rho=rho, mp=mp, iupac=iupac,
|
| 83 |
+
cas=cas, smiles=smiles, molImage=molImage,
|
| 84 |
+
LogP_origin=LogP_origin, rho_origin=rho_origin, mp_origin=mp_origin)
|
| 85 |
+
if is_ceramic:
|
| 86 |
+
MW = 1100.
|
| 87 |
+
|
| 88 |
+
M_expt = float(request.form['amount']) # amount
|
| 89 |
+
units = request.form['units']
|
| 90 |
+
mass = float(request.form['mass'])
|
| 91 |
+
PolymerDensity = float(request.form['density'])
|
| 92 |
+
PolymerVolume = mass / PolymerDensity # vol
|
| 93 |
+
SurfaceArea = float(request.form['area']) # area
|
| 94 |
+
SolventVolume = float(request.form['solventvol'])
|
| 95 |
+
SolventName = request.form['solventname']
|
| 96 |
+
Swelling_percent = float(request.form['swelling'])
|
| 97 |
+
Swelling_wtfrac = Swelling_percent/100
|
| 98 |
+
ExtractionTime = float(request.form['time'])
|
| 99 |
+
K_expt = float(request.form['K'])
|
| 100 |
+
SolventMW = SolventMWs[SolventName]
|
| 101 |
+
SoluteMW = MW
|
| 102 |
+
|
| 103 |
+
polymer = request.form['polymer']
|
| 104 |
+
pIndex = np.argmax(polymers == polymer)
|
| 105 |
+
|
| 106 |
+
use_qrf = False
|
| 107 |
+
if polymer == 'Other polymer':
|
| 108 |
+
use_qrf = True
|
| 109 |
+
|
| 110 |
+
## TODO implement total quantity prediction with QRF
|
| 111 |
+
if use_qrf and False:
|
| 112 |
+
method = 'qrf'
|
| 113 |
+
if is_ceramic:
|
| 114 |
+
diff,domain_extrap = QRF_Ceramic(PolymerDensity, Polymer_Tg, quantiles=[0.03,0.5,0.97])
|
| 115 |
+
else:
|
| 116 |
+
diff,domain_extrap = QRF_Apply(PolymerDensity, Polymer_Tg, smiles, quantiles=[0.03,0.5,0.97])
|
| 117 |
+
diff = diff[2] # upper bound
|
| 118 |
+
if domain_extrap:
|
| 119 |
+
# outside training domain, default to Wilke-Chang
|
| 120 |
+
diff = Piecewise(MW, params[None])
|
| 121 |
+
method = 'qrf/wc'
|
| 122 |
+
else:
|
| 123 |
+
## use categories
|
| 124 |
+
## TODO what is the correct worst-case for a generic polymer? G2?
|
| 125 |
+
CHRIS_category = categories[pIndex]
|
| 126 |
+
D_dist_noswell, D_dist_swell = get_D_dists(Swelling_wtfrac, T+273.15, Polymer_Tg+273.15, SolventName, SolventMW, SoluteMW, CHRIS_category, return_DCs=False, N=N_sample)
|
| 127 |
+
M0_pred = get_M_dist(D_dist_swell, M_expt, PolymerVolume, SurfaceArea, SolventVolume, ExtractionTime*3600, K_expt=K_expt)
|
| 128 |
+
if 1:
|
| 129 |
+
print('Swelling_wtfrac, T+273.15, Polymer_Tg+273.15, SolventName, SolventMW, SoluteMW, CHRIS_category')
|
| 130 |
+
print(Swelling_wtfrac, T+273.15, Polymer_Tg+273.15, SolventName, SolventMW, SoluteMW, CHRIS_category)
|
| 131 |
+
print(np.nanquantile(D_dist_swell, [0.05,0.5,0.95]))
|
| 132 |
+
print('M_expt, PolymerVolume, SurfaceArea, SolventVolume, ExtractionTime*3600, K_expt')
|
| 133 |
+
print(M_expt, PolymerVolume, SurfaceArea, SolventVolume, ExtractionTime*3600, K_expt)
|
| 134 |
+
print(np.nanquantile(M0_pred, [0.05,0.5,0.95]))
|
| 135 |
+
if CHRIS_category:
|
| 136 |
+
method = 'category'
|
| 137 |
+
else:
|
| 138 |
+
method = 'wc'
|
| 139 |
+
|
| 140 |
+
# Generate the rate plot using matplotlib
|
| 141 |
+
pngImageB64String = CdfPlot(M0_pred[~np.isnan(M0_pred)], units=units)
|
| 142 |
+
# release = SheetRelease(amount, vol, area, time, diff)
|
| 143 |
+
#
|
| 144 |
+
# MOS = TTC / release
|
| 145 |
+
#
|
| 146 |
+
# # Generate the rate plot using matplotlib
|
| 147 |
+
# #tarray = np.arange(1., 31., 1.)
|
| 148 |
+
# #rates = SheetRates(amount, vol, area, tarray, diff)
|
| 149 |
+
# #pngImageB64String = RatePlot(tarray, rates)
|
| 150 |
+
#
|
| 151 |
+
# # Generate cumulative release at given times
|
| 152 |
+
# tlist = [1.]
|
| 153 |
+
# if len(request.form.getlist('exposure30d')):
|
| 154 |
+
# tlist.append(30.)
|
| 155 |
+
# if len(request.form.getlist('exposureuser')):
|
| 156 |
+
# tlist.append(float(request.form['exposureuserbox']))
|
| 157 |
+
# release_list = [SheetRelease(amount, vol, area, t*24, diff) for t in tlist]
|
| 158 |
+
# #print(release_list, file=sys.stderr)
|
| 159 |
+
# frac_list = [str(SigFigs(r/amount*100,2))+'%' for r in release_list]
|
| 160 |
+
# release_list = [SigFigs(r,2) for r in release_list]
|
| 161 |
+
# df_rel = pd.DataFrame(np.transpose([tlist,release_list,frac_list]),columns=['Exposure duration (days)',f'Cumulative exposure ({units})','Cumulative exposure (%)'])
|
| 162 |
+
# df_rel['Exposure duration (days)'] = df_rel['Exposure duration (days)'].astype(float)
|
| 163 |
+
# release_table = df_rel.sort_values(by='Exposure duration (days)').to_html(index=False)
|
| 164 |
+
#
|
| 165 |
+
# release = SigFigs(release, 2)
|
| 166 |
+
# MOS = SigFigs(MOS, 2)
|
| 167 |
+
# diff = SigFigs(diff, 2)
|
| 168 |
+
|
| 169 |
+
tau = np.nanquantile(D_dist_swell,0.5) * (ExtractionTime*3600) / (PolymerVolume/SurfaceArea)**2
|
| 170 |
+
|
| 171 |
+
M0_out = SigFigs(np.nanquantile(M0_pred,0.5),6)
|
| 172 |
+
tau_out = SigFigs(tau,6)
|
| 173 |
+
|
| 174 |
+
return render_template('quantity_report.html', show_properties=show_properties, polymers=polymers, pIndex=pIndex,
|
| 175 |
+
area=SurfaceArea, vol=PolymerVolume, units=units, M=M_expt, M0=M0_out, time=ExtractionTime, image=pngImageB64String,
|
| 176 |
+
solventvol=SolventVolume, solventname=SolventName, swelling=Swelling_percent, K=K_expt, T=T, tau=tau_out,
|
| 177 |
+
chemName=chemName, MW=MW, LogP=LogP, rho=rho, mp=mp, iupac=iupac, cas=cas, smiles=smiles, molImage=molImage,
|
| 178 |
+
LogP_origin=LogP_origin, rho_origin=rho_origin, mp_origin=mp_origin, ceramic=is_ceramic, methods=[method,Polymer_Tg,PolymerDensity],
|
| 179 |
+
mass=mass, density=PolymerDensity)
|
| 180 |
+
|
quantity_module/static/Changelog.html
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html>
|
| 2 |
+
<html lang="en">
|
| 3 |
+
<head>
|
| 4 |
+
<title>CHRIS-COU</title>
|
| 5 |
+
<link rel="stylesheet" href="styles.css">
|
| 6 |
+
<meta charset="UTF-8">
|
| 7 |
+
|
| 8 |
+
</head>
|
| 9 |
+
|
| 10 |
+
<header>
|
| 11 |
+
<h1 style="text-align:center"><font color="#0070C0">CH</font>emical <font color="#0070C0">RIS</font>k calculators (CHRIS) - Extraction efficiency</h1>
|
| 12 |
+
</header>
|
| 13 |
+
<h2 id="change-log">Change Log</h2>
|
| 14 |
+
<h3 id="version-0.1---2025-04-29">Version 0.1 - 2025-04-29</h3>
|
| 15 |
+
<ul>
|
| 16 |
+
<li>Development version released</li>
|
| 17 |
+
</ul>
|
quantity_module/static/Changelog.md
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
```{=html}
|
| 2 |
+
<!DOCTYPE html>
|
| 3 |
+
<html lang="en">
|
| 4 |
+
<head>
|
| 5 |
+
<title>CHRIS-COU</title>
|
| 6 |
+
<link rel="stylesheet" href="styles.css">
|
| 7 |
+
<meta charset="UTF-8">
|
| 8 |
+
|
| 9 |
+
</head>
|
| 10 |
+
|
| 11 |
+
<header>
|
| 12 |
+
<h1 style="text-align:center"><font color="#0070C0">CH</font>emical <font color="#0070C0">RIS</font>k calculators (CHRIS) - Extraction efficiency</h1>
|
| 13 |
+
</header>
|
| 14 |
+
```
|
| 15 |
+
## Change Log
|
| 16 |
+
|
| 17 |
+
### Version 0.1 - 2025-04-29
|
| 18 |
+
|
| 19 |
+
* Development version released
|
quantity_module/static/images/FDAgraphic.png
ADDED
|
Git LFS Details
|
quantity_module/static/images/FDAlogo.png
ADDED
|
Git LFS Details
|
quantity_module/static/md2html.sh
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
pandoc quantity_COU.md > quantity_COU.html
|
| 4 |
+
pandoc Changelog.md > Changelog.html
|
| 5 |
+
|
quantity_module/static/quantity_COU.html
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html>
|
| 2 |
+
<html lang="en">
|
| 3 |
+
<head>
|
| 4 |
+
<title>Total Quantity-COU</title>
|
| 5 |
+
<link rel="stylesheet" href="../../static/styles.css">
|
| 6 |
+
<meta charset="UTF-8">
|
| 7 |
+
</head>
|
| 8 |
+
|
| 9 |
+
<header>
|
| 10 |
+
<img src="images/FDAlogo.png" style="float: left;" height="100"/>
|
| 11 |
+
<img src="images/FDAgraphic.png" style="float: right;" height="100"/>
|
| 12 |
+
<br clear="all" />
|
| 13 |
+
<h1 style="text-align:center">CHRIS: <font color="#0070C0">CH</font>emical <font color="#0070C0">RIS</font>k calculators - Total Quantity </h1>
|
| 14 |
+
</header>
|
| 15 |
+
<h2 id="context-of-use-cou">Context of Use (COU)</h2>
|
| 16 |
+
<p>The total quantity module of the CHemical RISk calculator (CHRIS)
|
| 17 |
+
allows the user to …</p>
|
| 18 |
+
<p>The CHRIS - Total Quantity module outputs a predicted … For
|
| 19 |
+
additional details on the model please see this <a
|
| 20 |
+
href="https://www.sciencedirect.com/science/article/pii/S0273230023000739">article</a>.</p>
|
| 21 |
+
<p>The tool is limited by the assumptions upon which the model is based.
|
| 22 |
+
The salient limitations are enumerated below:</p>
|
| 23 |
+
<ol type="1">
|
| 24 |
+
<li>The extractable is macroscopically homogeneous within the matrix.
|
| 25 |
+
Therefore, the output is only applicable to compounds that are
|
| 26 |
+
introduced either intentionally or unintentionally during synthesis
|
| 27 |
+
(e.g., residual monomers and oligomers, catalysts, initiators) or
|
| 28 |
+
compounding (e.g., stabilizers, antioxidants, plasticizers). The model
|
| 29 |
+
is not appropriate for surface residuals from processing, cleaning, and
|
| 30 |
+
sterilization.</li>
|
| 31 |
+
<li>The solvent is “perfectly mixed”. This should be a reasonable
|
| 32 |
+
assumption provided the samples are adequately agitated over the
|
| 33 |
+
timeframe of the testing. However, this assumption may not be
|
| 34 |
+
appropriate if sufficient agitation is not applied and a signficant
|
| 35 |
+
boundary layer develops that slows the release rate or if the extraction
|
| 36 |
+
is conducted under flow conditions.</li>
|
| 37 |
+
<li>Possible chemical reactions are not considered. Therefore, if the
|
| 38 |
+
polymer matrix undergoes substantive degradation during the extraction
|
| 39 |
+
test, the predictions may not be relevant. Further, the model does not
|
| 40 |
+
consider the potential for individual extractable compounds to degrade
|
| 41 |
+
over the selected timeframe.</li>
|
| 42 |
+
<li>The test article is comprised of a single polymer matrix. In
|
| 43 |
+
practice, complex devices may be comprised of multiple components and/or
|
| 44 |
+
polymer matrices. In these scenarios, careful consideration of the
|
| 45 |
+
potential contributions of each material constituent of the test article
|
| 46 |
+
to the extractables profile is critical when attempting to leverage the
|
| 47 |
+
model predictions.</li>
|
| 48 |
+
</ol>
|
quantity_module/static/quantity_COU.md
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
```{=html}
|
| 2 |
+
<!DOCTYPE html>
|
| 3 |
+
<html lang="en">
|
| 4 |
+
<head>
|
| 5 |
+
<title>Total Quantity-COU</title>
|
| 6 |
+
<link rel="stylesheet" href="../../static/styles.css">
|
| 7 |
+
<meta charset="UTF-8">
|
| 8 |
+
</head>
|
| 9 |
+
|
| 10 |
+
<header>
|
| 11 |
+
<img src="images/FDAlogo.png" style="float: left;" height="100"/>
|
| 12 |
+
<img src="images/FDAgraphic.png" style="float: right;" height="100"/>
|
| 13 |
+
<br clear="all" />
|
| 14 |
+
<h1 style="text-align:center">CHRIS: <font color="#0070C0">CH</font>emical <font color="#0070C0">RIS</font>k calculators - Total Quantity </h1>
|
| 15 |
+
</header>
|
| 16 |
+
```
|
| 17 |
+
|
| 18 |
+
## Context of Use (COU)
|
| 19 |
+
|
| 20 |
+
The total quantity module of the CHemical RISk calculator (CHRIS) allows the user to ...
|
| 21 |
+
|
| 22 |
+
The CHRIS - Total Quantity module outputs a predicted ... For additional details on the model please see this [article](https://www.sciencedirect.com/science/article/pii/S0273230023000739).
|
| 23 |
+
|
| 24 |
+
The tool is limited by the assumptions upon which the model is based. The salient limitations are enumerated below:
|
| 25 |
+
|
| 26 |
+
1. The extractable is macroscopically homogeneous within the matrix. Therefore, the output is only applicable to compounds that are introduced either intentionally or unintentionally during synthesis (e.g., residual monomers and oligomers, catalysts, initiators) or compounding (e.g., stabilizers, antioxidants, plasticizers). The model is not appropriate for surface residuals from processing, cleaning, and sterilization.
|
| 27 |
+
2. The solvent is "perfectly mixed". This should be a reasonable assumption provided the samples are adequately agitated over the timeframe of the testing. However, this assumption may not be appropriate if sufficient agitation is not applied and a signficant boundary layer develops that slows the release rate or if the extraction is conducted under flow conditions.
|
| 28 |
+
3. Possible chemical reactions are not considered. Therefore, if the polymer matrix undergoes substantive degradation during the extraction test, the predictions may not be relevant. Further, the model does not consider the potential for individual extractable compounds to degrade over the selected timeframe.
|
| 29 |
+
4. The test article is comprised of a single polymer matrix. In practice, complex devices may be comprised of multiple components and/or polymer matrices. In these scenarios, careful consideration of the potential contributions of each material constituent of the test article to the extractables profile is critical when attempting to leverage the model predictions.
|
quantity_module/templates/quantity_chemError.html
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html>
|
| 2 |
+
<html lang="en">
|
| 3 |
+
<head>
|
| 4 |
+
<meta charset="UTF-8">
|
| 5 |
+
<title>CHRIS-ChemError</title>
|
| 6 |
+
<link rel= "stylesheet" type= "text/css" href= "{{ url_for('static',filename='styles.css') }}">
|
| 7 |
+
|
| 8 |
+
</head>
|
| 9 |
+
|
| 10 |
+
<img src="{{ url_for('static',filename='images/FDAlogo.png') }}" style="float: left;" height="100"/>
|
| 11 |
+
<img src="{{ url_for('static',filename='images/FDAgraphic.png') }}" style="float: right;" height="100"/>
|
| 12 |
+
<br clear="all" />
|
| 13 |
+
|
| 14 |
+
<body>
|
| 15 |
+
|
| 16 |
+
<div style="font-size:5rem;text-align:center"> 🤦 </div>
|
| 17 |
+
|
| 18 |
+
<p style="font-size:2rem;text-align:center">
|
| 19 |
+
Uh-oh! Something went wrong. We were unable to match your chemical. Please return to the previous page and try a
|
| 20 |
+
different identifier.
|
| 21 |
+
</p>
|
| 22 |
+
|
| 23 |
+
|
| 24 |
+
</body>
|
quantity_module/templates/quantity_index.html
ADDED
|
@@ -0,0 +1,238 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html>
|
| 2 |
+
<html lang="en">
|
| 3 |
+
<head>
|
| 4 |
+
<meta charset="UTF-8">
|
| 5 |
+
<title>CHRIS</title>
|
| 6 |
+
<!-- <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> -->
|
| 7 |
+
<!-- <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script> -->
|
| 8 |
+
<!-- <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.min.js" integrity="sha384-VHvPCCyXqtD5DqJeNxl2dtTyhF78xXNXdkwX1CZeRusQfRKp+tA7hAShOK/B/fQ2" crossorigin="anonymous"></script> -->
|
| 9 |
+
<script src="{{ url_for('static',filename='jquery.slim.min.js') }}" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
|
| 10 |
+
<script src="{{ url_for('static',filename='popper.min.js') }}" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
|
| 11 |
+
<script src="{{ url_for('static',filename='bootstrap.min.js') }}" integrity="sha384-VHvPCCyXqtD5DqJeNxl2dtTyhF78xXNXdkwX1CZeRusQfRKp+tA7hAShOK/B/fQ2" crossorigin="anonymous"></script>
|
| 12 |
+
<link rel= "stylesheet" type= "text/css" href= "{{ url_for('static',filename='styles.css') }}">
|
| 13 |
+
|
| 14 |
+
</head>
|
| 15 |
+
|
| 16 |
+
<img src="{{ url_for('static',filename='images/FDAlogo.png') }}" style="float: left;" height="100"/>
|
| 17 |
+
<img src="{{ url_for('static',filename='images/FDAgraphic.png') }}" style="float: right;" height="100"/>
|
| 18 |
+
<br clear="all" />
|
| 19 |
+
|
| 20 |
+
<header>
|
| 21 |
+
<h1 style="text-align:center"><font color="#0070C0">CH</font>emical <font color="#0070C0">RIS</font>k calculators (CHRIS) - Total Quantity</h1>
|
| 22 |
+
</header>
|
| 23 |
+
|
| 24 |
+
<p> For details on how to use the CHRIS total quantity module, please click the information icons next to each section header and read the
|
| 25 |
+
<a href="{{url_for('.static', filename='exposure_COU.html')}}"> context of use (COU)</a>, which includes limitations of use.
|
| 26 |
+
For a history of updates, please see the <a href="{{url_for('.static', filename='Changelog.html')}}"> changelog</a>. </p>
|
| 27 |
+
|
| 28 |
+
<body>
|
| 29 |
+
|
| 30 |
+
<form method="POST">
|
| 31 |
+
|
| 32 |
+
<!-- Chemical input section -->
|
| 33 |
+
|
| 34 |
+
<h3> Chemical identity <button type="button" class="Info_btn" data-toggle="modal" data-target="#LeachModal" >ⓘ</button> </h3>
|
| 35 |
+
|
| 36 |
+
Identifier type: <select name="IDtype">
|
| 37 |
+
<option value="CAS" selected>CAS</option>
|
| 38 |
+
<option value="SMILES" >SMILES</option>
|
| 39 |
+
<option value="common" >Common name</option>
|
| 40 |
+
</select> <br>
|
| 41 |
+
|
| 42 |
+
Identifier: <input name="chemName" id="chemName" type="text" value="" required><br>
|
| 43 |
+
|
| 44 |
+
Extracted amount: <input name="amount" id="amount" value="1.0" step="any" min="0.000001" type="number" required>
|
| 45 |
+
Amount units: <select name="units">
|
| 46 |
+
<option value="mg" selected>mg</option>
|
| 47 |
+
<option value="µg">µg</option>
|
| 48 |
+
</select>
|
| 49 |
+
<br>
|
| 50 |
+
|
| 51 |
+
<!-- Modal -->
|
| 52 |
+
<div id="LeachModal" class="modal fade" role="dialog">
|
| 53 |
+
<div class="modal-dialog">
|
| 54 |
+
|
| 55 |
+
<!-- Modal content-->
|
| 56 |
+
<div class="modal-content">
|
| 57 |
+
<div class="modal-header">
|
| 58 |
+
<h4 class="modal-title">Bulk chemical</h4>
|
| 59 |
+
</div>
|
| 60 |
+
<div class="modal-body">
|
| 61 |
+
<p><em>Identifier type and identifier</em> - Please select the identifier type and enter the chemical identifier.
|
| 62 |
+
For example, if the CAS number is known, select CAS from the pull down menu and enter the CAS number in the identifier field.
|
| 63 |
+
If the CAS number is unknown, CHRIS can identify the molecular structure through the SMILES code, which can
|
| 64 |
+
be found for many chemicals using <a href="https://pubchem.ncbi.nlm.nih.gov">PubChem</a> or generated based on
|
| 65 |
+
the molecular structure using tools such as <a href="https://cactus.nci.nih.gov/cgi-bin/osra/index.cgi">OSRA</a>.
|
| 66 |
+
Alternatively, CHRIS can attempt to identify the chemical using a common name for the chemical.</p>
|
| 67 |
+
<p><em>Extracted amount</em> - Enter the mass of the substance extracted from the device. </p>
|
| 68 |
+
<p><em>Amount units</em> - Select the appropriate units for the amount, micrograms (µg) or milligrams (mg).</p>
|
| 69 |
+
</div>
|
| 70 |
+
<div class="modal-footer">
|
| 71 |
+
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
|
| 72 |
+
</div>
|
| 73 |
+
</div>
|
| 74 |
+
|
| 75 |
+
</div>
|
| 76 |
+
</div>
|
| 77 |
+
|
| 78 |
+
<!-- Polymer matrix input section -->
|
| 79 |
+
|
| 80 |
+
<h3> Polymer matrix <button type="button" class="Info_btn" data-toggle="modal" data-target="#PolymerModal">ⓘ</button> </h3>
|
| 81 |
+
Matrix: <select name="polymer" id="polymer">
|
| 82 |
+
<option value="{{polymers[0]}}" selected>{{polymers[0]}}</option>
|
| 83 |
+
{% for polymer in polymers[1:] %}
|
| 84 |
+
<option value="{{polymer}}">{{polymer}}</option>
|
| 85 |
+
{% endfor %}
|
| 86 |
+
</select> <br>
|
| 87 |
+
Mass (g): <input name="mass" id="mass" step="any" value="1.0" min="0.000001" type="number" required> <br>
|
| 88 |
+
Density (g/cm<sup>3</sup>): <input name="density" id="density" step="any" value="1.0" min="0.01" type="number" required><br>
|
| 89 |
+
Glass transition temperature (°C): <input name="Polymer_Tg" id="Polymer_Tg" step="any" min="-273.15" max="500" value="0" type="number" required><br>
|
| 90 |
+
</span>
|
| 91 |
+
|
| 92 |
+
<!-- Modal -->
|
| 93 |
+
<div id="PolymerModal" class="modal fade" role="dialog">
|
| 94 |
+
<div class="modal-dialog">
|
| 95 |
+
|
| 96 |
+
<!-- Modal content-->
|
| 97 |
+
<div class="modal-content">
|
| 98 |
+
<div class="modal-header">
|
| 99 |
+
<h4 class="modal-title">Polymer Matrix</h4>
|
| 100 |
+
</div>
|
| 101 |
+
<div class="modal-body">
|
| 102 |
+
<p><em>Matrix</em> - Please select your polymer matrix from the list. If your polymer is
|
| 103 |
+
not listed below, please select "Other polymer". For polymer mixtures/blends, co-polymers, or composites (e.g. glass fiber reinforced matrices), the component or phase that is worst-case for exposure, i.e. the softest or least glassy (lowest T<sub>g</sub>) component can be selected if listed (which, in turn, assumes the entire system is composed of the worst-case component or phase). In these scenarios, a justification should be provided for the choice of worst-case component of the polymer system. </p>
|
| 104 |
+
<p><em>Mass</em> - Enter the mass of the polymer matrix in grams.</p>
|
| 105 |
+
<p><em>Density</em> - Enter the estimated density of the polymer matrix in grams per cubic centimeter. Note that a rough estimate (e.g. +/- 10%) is acceptable.</p>
|
| 106 |
+
<p><em>Glass transition temperature</em> - Enter the T<sub>g</sub> of the polymer matrix in degrees Celsius. Note that the extraction temperature must be higher than T<sub>g</sub> to use this module. </p>
|
| 107 |
+
</div>
|
| 108 |
+
<div class="modal-footer">
|
| 109 |
+
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
|
| 110 |
+
</div>
|
| 111 |
+
</div>
|
| 112 |
+
|
| 113 |
+
</div>
|
| 114 |
+
</div>
|
| 115 |
+
|
| 116 |
+
<!-- Extraction parameters input section -->
|
| 117 |
+
|
| 118 |
+
<h3> Extraction parameters <button type=button class="Info_btn" data-toggle="modal" data-target="#ExtractionModal">ⓘ</button> </h3>
|
| 119 |
+
Device surface area (cm<sup>2</sup>): <input name="area" id="area" step="any" value="5.0" min="0.001" type="number" required><br>
|
| 120 |
+
Duration (hours): <input name="time" id="time" step="any" value="24.0" min="0.001" type="number" required><br>
|
| 121 |
+
Temperature (°C): <input name="T" id="T" step="any" value="50.0" min="-273.15" type="number" required><br>
|
| 122 |
+
Solvent: <select name="solventname" id="solventname">
|
| 123 |
+
<option value="{{solvents[0]}}" selected>{{solvents[0]}}</option>
|
| 124 |
+
{% for solvent in solvents[1:] %}
|
| 125 |
+
<option value="{{solvent}}">{{solvent}}</option>
|
| 126 |
+
{% endfor %}
|
| 127 |
+
</select> <br>
|
| 128 |
+
Solvent volume (mL): <input name="solventvol" id="solventvol" step="any" value="10.0" min="0.001" type="number" required><br>
|
| 129 |
+
Swelling amount (wt%): <input name="swelling" id="swelling" step="any" value="10.0" max="100.0" min="0.0" type="number" required><br>
|
| 130 |
+
Partition coefficient: <input name="K" id="K" step="any" value="10.0" min="0.00001" type="number" required><br>
|
| 131 |
+
|
| 132 |
+
<!-- Modal -->
|
| 133 |
+
<div id="ExtractionModal" class="modal fade" role="dialog">
|
| 134 |
+
<div class="modal-dialog">
|
| 135 |
+
|
| 136 |
+
<!-- Modal content-->
|
| 137 |
+
<div class="modal-content">
|
| 138 |
+
<div class="modal-header">
|
| 139 |
+
<h4 class="modal-title">Extraction parameters</h4>
|
| 140 |
+
</div>
|
| 141 |
+
<div class="modal-body">
|
| 142 |
+
<p><em>Device surface area</em> - Enter the solvent-contacting surface area of the component being evaluated in square centimeters.
|
| 143 |
+
<p><em>Duration</em> - Enter the duration of the extraction experiment in hours.
|
| 144 |
+
<p><em>Temperature</em> - Enter the temperature of the extraction experiment in degrees Celsius.
|
| 145 |
+
<p><em>Solvent</em> - Select the extraction solvent from the list.
|
| 146 |
+
<p><em>Solvent volume</em> - Enter the volume of solvent used for extraction.
|
| 147 |
+
<p><em>Swelling amount</em> - Enter the amount of swelling by the extraction solvent in weight percent (i.e., change in mass divided by initial mass times 100).
|
| 148 |
+
Adjust the measured weight percent to account for crystallinity, if any (i.e., divide the measured about by the amorphous fraction).
|
| 149 |
+
<p><em>Partition coefficient</em> - If known, enter the polymer/solvent partition coefficient of the extractable.
|
| 150 |
+
If not known, the default worst-case value of 10 can be used for typical device polymers, hydrophobic extractables, and semi- or non-polar extraction solvents.
|
| 151 |
+
</div>
|
| 152 |
+
<div class="modal-footer">
|
| 153 |
+
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
|
| 154 |
+
</div>
|
| 155 |
+
</div>
|
| 156 |
+
|
| 157 |
+
</div>
|
| 158 |
+
</div>
|
| 159 |
+
|
| 160 |
+
<p><button type="submit">Estimate total quantity</button></p>
|
| 161 |
+
|
| 162 |
+
<!--
|
| 163 |
+
<h3> Exposure assessment <button type=button class="Info_btn" data-toggle="modal" data-target="#ExposureModal">ⓘ</button> </h3>
|
| 164 |
+
Cumulative exposure duration(s):
|
| 165 |
+
<input type="checkbox" id="exposure1d" name="exposure1d" value="exposure1d" checked=True, disabled=True>
|
| 166 |
+
<label for="exposure1d">1 day</label>
|
| 167 |
+
<input type="checkbox" id="exposure30d" name="exposure30d" value="exposure30d" checked=True>
|
| 168 |
+
<label for="exposure30d">30 days</label>
|
| 169 |
+
<input type="checkbox" id="exposureuser" name="exposureuser" value="exposureuser" checked=True onclick="javascript:exposureuserCheck();">
|
| 170 |
+
<label for="exposureuser">Other duration (days)</label>
|
| 171 |
+
<span id="exposureuserspan" style="visibility:hidden">
|
| 172 |
+
<input name="exposureuserbox" id="exposureuserbox" step="any" min="0.001" max="36500" value="365" type="number" size=5 required><br><br>
|
| 173 |
+
</span>
|
| 174 |
+
<div id="ExposureModal" class="modal fade" role="dialog">
|
| 175 |
+
<div class="modal-dialog">
|
| 176 |
+
<div class="modal-content">
|
| 177 |
+
<div class="modal-header">
|
| 178 |
+
<h4 class="modal-title">Exposure assessment</h4>
|
| 179 |
+
</div>
|
| 180 |
+
<div class="modal-body">
|
| 181 |
+
<p><em>Cumulative exposure duration(s)</em> Check the boxes for the exposure duration(s) to use for cumulative release estimates. 1-day exposure is always calculated.
|
| 182 |
+
If the "Other duration" box is checked, enter the desired exposure duration in days (e.g., the maximum use duration of the device).
|
| 183 |
+
Note that this calculation assumes a single device is used for the entire duration. If multiple devices are used concurrently or sequentially (e.g., daily replacement), this should be accounted for during toxicological risk assessment.</p>
|
| 184 |
+
</div>
|
| 185 |
+
<div class="modal-footer">
|
| 186 |
+
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
|
| 187 |
+
</div>
|
| 188 |
+
</div>
|
| 189 |
+
</div>
|
| 190 |
+
</div>
|
| 191 |
+
-->
|
| 192 |
+
|
| 193 |
+
</form>
|
| 194 |
+
|
| 195 |
+
<!-- Javascript to reveal/hide polymer input box (show/hide Tg)
|
| 196 |
+
|
| 197 |
+
<script type="text/javascript">
|
| 198 |
+
function polymerCheck() {
|
| 199 |
+
if (document.getElementById('polymer').value == 'Other polymer') {
|
| 200 |
+
document.getElementById('otherpolymer').style.visibility = 'visible';
|
| 201 |
+
} else {
|
| 202 |
+
document.getElementById('otherpolymer').style.visibility = 'hidden';
|
| 203 |
+
document.getElementById('polytg').value = '';
|
| 204 |
+
}
|
| 205 |
+
}
|
| 206 |
+
$(window).on('pageshow', function() { polymerCheck(); });
|
| 207 |
+
</script> -->
|
| 208 |
+
|
| 209 |
+
<!-- Javascript to reveal/hide exposure duration input box (limited contact)
|
| 210 |
+
|
| 211 |
+
<script type="text/javascript">
|
| 212 |
+
function exposureCheck() {
|
| 213 |
+
if (document.getElementById('limited').checked) {
|
| 214 |
+
document.getElementById('limitedtime').style.visibility = 'visible';
|
| 215 |
+
} else {
|
| 216 |
+
document.getElementById('limitedtime').style.visibility = 'hidden';
|
| 217 |
+
document.getElementById('time').value = '24';
|
| 218 |
+
}
|
| 219 |
+
}
|
| 220 |
+
$(window).on('pageshow', function() { exposureCheck(); });
|
| 221 |
+
</script> -->
|
| 222 |
+
|
| 223 |
+
<!-- Javascript to reveal/hide cumulative exposure duration box
|
| 224 |
+
|
| 225 |
+
<script type="text/javascript">
|
| 226 |
+
function exposureuserCheck() {
|
| 227 |
+
if (document.getElementById('exposureuser').checked) {
|
| 228 |
+
document.getElementById('exposureuserspan').style.visibility = 'visible';
|
| 229 |
+
} else {
|
| 230 |
+
document.getElementById('exposureuserspan').style.visibility = 'hidden';
|
| 231 |
+
document.getElementById('exposureuserspan').value = '365';
|
| 232 |
+
}
|
| 233 |
+
}
|
| 234 |
+
$(window).on('pageshow', function() { exposureuserCheck(); });
|
| 235 |
+
</script> -->
|
| 236 |
+
|
| 237 |
+
</body>
|
| 238 |
+
</html>
|
quantity_module/templates/quantity_metalError.html
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html>
|
| 2 |
+
<html lang="en">
|
| 3 |
+
<head>
|
| 4 |
+
<meta charset="UTF-8">
|
| 5 |
+
<title>CHRIS-MetalError</title>
|
| 6 |
+
<link rel= "stylesheet" type= "text/css" href= "{{ url_for('static',filename='styles.css') }}">
|
| 7 |
+
|
| 8 |
+
<style>
|
| 9 |
+
* {
|
| 10 |
+
box-sizing: border-box;
|
| 11 |
+
}
|
| 12 |
+
|
| 13 |
+
/* Create two equal columns that floats next to each other */
|
| 14 |
+
.column {
|
| 15 |
+
float: left;
|
| 16 |
+
width: 50%;
|
| 17 |
+
padding: 10px;
|
| 18 |
+
vertical-align: top;
|
| 19 |
+
align: center;
|
| 20 |
+
}
|
| 21 |
+
|
| 22 |
+
/* Clear floats after the columns */
|
| 23 |
+
.row:after {
|
| 24 |
+
content: "";
|
| 25 |
+
display: table;
|
| 26 |
+
clear: both;
|
| 27 |
+
}
|
| 28 |
+
</style>
|
| 29 |
+
|
| 30 |
+
</head>
|
| 31 |
+
|
| 32 |
+
<img src="{{ url_for('static',filename='images/FDAlogo.png') }}" style="float: left;" height="100"/>
|
| 33 |
+
<img src="{{ url_for('static',filename='images/FDAgraphic.png') }}" style="float: right;" height="100"/>
|
| 34 |
+
<br clear="all" />
|
| 35 |
+
|
| 36 |
+
<body>
|
| 37 |
+
|
| 38 |
+
<div style="font-size:5rem;text-align:center"> 🤦 </div>
|
| 39 |
+
|
| 40 |
+
<h2> Compound </h2>
|
| 41 |
+
|
| 42 |
+
<div class="container">
|
| 43 |
+
<div class="row">
|
| 44 |
+
<div class="column">
|
| 45 |
+
Input :: {{chemName}} <br> <br>
|
| 46 |
+
IUPAC Name :: {{iupac}} <br> <br>
|
| 47 |
+
CAS :: {{cas}} <br> <br>
|
| 48 |
+
Molecular weight (g/mol) :: {{'%0.4f'%MW|float}} <br> <br>
|
| 49 |
+
{% if show_properties %}
|
| 50 |
+
LogKow :: {{LogP}}{{LogP_origin}} <br> <br>
|
| 51 |
+
Density (g/cm<sup>3</sup>) :: {{rho}}{{rho_origin}} <br> <br>
|
| 52 |
+
Melting point (°C) :: {{mp}}{{mp_origin}} <br> <br>
|
| 53 |
+
{% endif %}
|
| 54 |
+
SMILES :: {{smiles}}
|
| 55 |
+
</div>
|
| 56 |
+
<div class="column">
|
| 57 |
+
<img src="{{molImage}}"/>
|
| 58 |
+
</div>
|
| 59 |
+
</div>
|
| 60 |
+
</div>
|
| 61 |
+
|
| 62 |
+
<p style="font-size:2rem;text-align:center">
|
| 63 |
+
Unfortunately, CHRIS cannot be used for metals. Please return to the previous page to evaluate
|
| 64 |
+
a different chemical.
|
| 65 |
+
</p>
|
| 66 |
+
|
| 67 |
+
|
| 68 |
+
</body>
|
quantity_module/templates/quantity_report.html
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html>
|
| 2 |
+
<html lang="en">
|
| 3 |
+
<head>
|
| 4 |
+
<meta charset="UTF-8">
|
| 5 |
+
<title>CHRIS Report</title>
|
| 6 |
+
|
| 7 |
+
<!-- <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script> -->
|
| 8 |
+
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
|
| 9 |
+
<!-- <script id="MathJax-script" async src="{{ url_for('static',filename='tex-mml-chtml.js') }}"></script> -->
|
| 10 |
+
<link rel= "stylesheet" type= "text/css" href= "{{ url_for('static',filename='styles.css') }}">
|
| 11 |
+
|
| 12 |
+
<style>
|
| 13 |
+
* {
|
| 14 |
+
box-sizing: border-box;
|
| 15 |
+
}
|
| 16 |
+
|
| 17 |
+
/* Create two equal columns that floats next to each other */
|
| 18 |
+
.column {
|
| 19 |
+
float: left;
|
| 20 |
+
width: 50%;
|
| 21 |
+
padding: 10px;
|
| 22 |
+
vertical-align: top;
|
| 23 |
+
align: center;
|
| 24 |
+
}
|
| 25 |
+
|
| 26 |
+
/* Clear floats after the columns */
|
| 27 |
+
.row:after {
|
| 28 |
+
content: "";
|
| 29 |
+
display: table;
|
| 30 |
+
clear: both;
|
| 31 |
+
}
|
| 32 |
+
</style>
|
| 33 |
+
|
| 34 |
+
</head>
|
| 35 |
+
|
| 36 |
+
<img src="{{ url_for('static',filename='images/FDAlogo.png') }}" style="float: left;" height="100"/>
|
| 37 |
+
<img src="{{ url_for('static',filename='images/FDAgraphic.png') }}" style="float: right;" height="100"/>
|
| 38 |
+
<br clear="all" />
|
| 39 |
+
|
| 40 |
+
<header>
|
| 41 |
+
<h1 style="text-align:center"><font color="#0070C0">CH</font>emical <font color="#0070C0">RIS</font>k calculators (CHRIS) Report - Total Quantity</h1>
|
| 42 |
+
</header>
|
| 43 |
+
|
| 44 |
+
<body>
|
| 45 |
+
|
| 46 |
+
<p> The following report was generated using CHRIS-Total Quantity v.0.1 on
|
| 47 |
+
<script> document.write(new Date().toLocaleDateString()); </script>.
|
| 48 |
+
</p>
|
| 49 |
+
|
| 50 |
+
<h2> Compound </h2>
|
| 51 |
+
|
| 52 |
+
<div class="container">
|
| 53 |
+
<div class="row">
|
| 54 |
+
<div class="column">
|
| 55 |
+
Input :: {{chemName}} <br> <br>
|
| 56 |
+
IUPAC Name :: {{iupac}} <br> <br>
|
| 57 |
+
CAS :: {{cas}} <br> <br>
|
| 58 |
+
Molecular weight (g/mol) :: {{'%0.4f'%MW|float}}
|
| 59 |
+
{% if ceramic %} :: inorganic detected, assume insoluble particle and slow diffusion (e.g., maximum Mw) {% endif %}
|
| 60 |
+
<br> <br>
|
| 61 |
+
{% if show_properties %}
|
| 62 |
+
LogKow :: {{LogP}}{{LogP_origin}}<br> <br>
|
| 63 |
+
Density (g/cm<sup>3</sup>) :: {{rho}}{{rho_origin}}<br> <br>
|
| 64 |
+
Melting point (°C) :: {{mp}}{{mp_origin}}<br> <br>
|
| 65 |
+
{% endif %}
|
| 66 |
+
SMILES :: {{smiles}}
|
| 67 |
+
</div>
|
| 68 |
+
<div class="column">
|
| 69 |
+
<img src="{{molImage}}"/>
|
| 70 |
+
</div>
|
| 71 |
+
</div>
|
| 72 |
+
</div>
|
| 73 |
+
|
| 74 |
+
<h2> Exposure </h2>
|
| 75 |
+
|
| 76 |
+
<p>
|
| 77 |
+
{% if methods[0]=="category" %}
|
| 78 |
+
<u> Modeling extraction from {{polymers[pIndex]}} estimates the total quantity \( M_0 \) = {{M0}} {{units}}. </u>
|
| 79 |
+
{% elif methods[0]=="wc" %}
|
| 80 |
+
<u> Modeling extraction from the polymer (with worst-case diffusion in water assumed because no T<sub>g</sub> was specified) estimates the total quantity \( M_0 \) = {{M0}} {{units}}. </u>
|
| 81 |
+
{% elif methods[0]=="qrf" %}
|
| 82 |
+
<u> Modeling extraction from the polymer (with density = {{methods[2]}} g/cm<sup>3</sup> and T<sub>g</sub> = {{methods[1]}} °C) estimates the total quantity \( M_0 \) = {{M0}} {{units}}. </u>
|
| 83 |
+
{% elif methods[0]=="qrf/wc" %}
|
| 84 |
+
<u> Modeling extraction from the polymer (with worst-case diffusion in water assumed because this system is outside the model training domain) estimates the total quantity \( M_0 \) = {{M0}} {{units}}. </u>
|
| 85 |
+
{% endif %}
|
| 86 |
+
<p>
|
| 87 |
+
|
| 88 |
+
<!-- <p>
|
| 89 |
+
This estimate was derived using solutions to the conservative plane sheet model for mass release, \( M \):
|
| 90 |
+
|
| 91 |
+
\[
|
| 92 |
+
M(\tau)= \left\{
|
| 93 |
+
\begin{array}{cr}
|
| 94 |
+
2 M_0 \sqrt{\tau/\pi} & \tau \leq 0.2 \\
|
| 95 |
+
M_0\left(1-8 \exp\left[-\tau \pi^2/4 \right]/\pi^2\right) & \tau > 0.2
|
| 96 |
+
\end{array} \right.
|
| 97 |
+
\]
|
| 98 |
+
|
| 99 |
+
where \( \tau= D t A^2 / V^2 \) and \( A \) and \( V \) are the surface area and volume of the polymer matrix, respectively, \( M_0 \) is total mass initially contained in the polymer, \( D \) is a conservative estimate of the diffusion coefficient of the leachable within the polymer matrix, and \( t \) is time. Based on the input provided, the calculation was based on the following values:
|
| 100 |
+
</p>
|
| 101 |
+
|
| 102 |
+
<p>
|
| 103 |
+
\( A \) = {{area}} cm<sup>2</sup> <br>
|
| 104 |
+
\( V \) = {{vol}} cm<sup>3</sup> <br>
|
| 105 |
+
\( M_0 \) = {{amount}} {{units}} <br>
|
| 106 |
+
\( D \) = {{diff}} cm<sup>2</sup>/s <br>
|
| 107 |
+
\( t \) = {{time}} h <br>
|
| 108 |
+
</p>
|
| 109 |
+
|
| 110 |
+
<p>
|
| 111 |
+
It can be helpful to examine the cumulative amount released over various exposure durations. For example, the 30-day cumulative exposure may be compared to the TSL<sub>≤30 d</sub> as recommended in ISO 10993-17:2023. Note that this calculation assumes a single device is used for the entire duration. If multiple devices are used concurrently or sequentially (e.g., daily replacement), this should be accounted for during toxicological risk assessment.
|
| 112 |
+
</p>
|
| 113 |
+
|
| 114 |
+
<div>
|
| 115 |
+
{{ release_table | safe }}
|
| 116 |
+
</div> -->
|
| 117 |
+
|
| 118 |
+
<p>
|
| 119 |
+
This estimate was derived using the solution to the conservative plane sheet model for mass release, \( M \):
|
| 120 |
+
|
| 121 |
+
\[
|
| 122 |
+
\frac{M}{M_0} = \frac{1}{1+1/\Psi}\left[1-\sum^\infty_{n=1} \frac{2\Psi(1+\Psi)}{1+\Psi+\Psi^2q_n^2}\exp\left(-\tau q_n^2\right)\right]
|
| 123 |
+
\]
|
| 124 |
+
|
| 125 |
+
where \( \tau= D t A^2 / V_p^2 \), \( A \) and \( V_p \) are the surface area and volume of the polymer matrix, respectively, \( D \) is a conservative estimate of the diffusion coefficient of the extractable within the polymer matrix, and \( t \) is time. The quantity \( \Psi = V_s/V_p K \), where \( V_s \) is the solvent volume and \( K \) is the polymer-solvent partition coefficient for the extractable. \( M_0 \) is total quantity initially contained in the polymer. Based on the input provided, the calculation used the following values:
|
| 126 |
+
</p>
|
| 127 |
+
|
| 128 |
+
<p>
|
| 129 |
+
Extracted amount \( M \) = {{M}} {{units}} <br>
|
| 130 |
+
Surface area \( A \) = {{area}} cm<sup>2</sup> <br>
|
| 131 |
+
Duration \( t \) = {{time}} h <br>
|
| 132 |
+
Temperature = {{T}} °C <br>
|
| 133 |
+
Solvent = {{solventname}} <br>
|
| 134 |
+
Solvent volume \( V_s \) = {{solventvol}} cm<sup>3</sup> <br>
|
| 135 |
+
Polymer volume \( V_p \) = {{vol}} cm<sup>3</sup> (based on polymer mass = {{mass}} g and density = {{density}} g/cm<sup>3</sup> <br>
|
| 136 |
+
Partition coefficient = {{K}} <br>
|
| 137 |
+
Swelling = {{swelling}} wt% (used to estimate \( D \))<br>
|
| 138 |
+
</p>
|
| 139 |
+
|
| 140 |
+
<p>The total quantity reported above is the median of this predicted distribution:</p>
|
| 141 |
+
|
| 142 |
+
<p><img src="{{ image }}"/></p>
|
| 143 |
+
|
| 144 |
+
<p>The progress of the extraction can be expressed through the dimensionless time \( \tau = Dt/L^2 \), where \( D \) is the solute diffusivity in the polymer, \( t \) is the extraction duration, and \( L = V_p/A \) is the characteristic length scale. For your extraction, \( \tau \) = {{tau}}. Extractions with \( \tau \) ≥ 0.1 result in more accurate estimates of the total quantity, and when \( \tau \) ≥ 1.0 the extracted amount may be used directly as the total quantity.</p>
|
| 145 |
+
|
| 146 |
+
<p><button type="button" onclick="javascript:history.back()">Back</button></p>
|
| 147 |
+
|
| 148 |
+
</body>
|
| 149 |
+
</html>
|
quantity_module/templates/quantity_temperatureError.html
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html>
|
| 2 |
+
<html lang="en">
|
| 3 |
+
<head>
|
| 4 |
+
<meta charset="UTF-8">
|
| 5 |
+
<title>CHRIS-Temperature Error</title>
|
| 6 |
+
<link rel= "stylesheet" type= "text/css" href= "{{ url_for('static',filename='styles.css') }}">
|
| 7 |
+
|
| 8 |
+
</head>
|
| 9 |
+
|
| 10 |
+
<img src="{{ url_for('static',filename='images/FDAlogo.png') }}" style="float: left;" height="100"/>
|
| 11 |
+
<img src="{{ url_for('static',filename='images/FDAgraphic.png') }}" style="float: right;" height="100"/>
|
| 12 |
+
<br clear="all" />
|
| 13 |
+
|
| 14 |
+
<body>
|
| 15 |
+
|
| 16 |
+
<div style="font-size:5rem;text-align:center"> 🤦 </div>
|
| 17 |
+
|
| 18 |
+
<p style="font-size:2rem;text-align:center">
|
| 19 |
+
Unfortunately, the CHRIS-Total Quantity module can only be used for polymers with glass transition temperatures lower than the extraction temperature.
|
| 20 |
+
</p>
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
</body>
|
templates/main.html
CHANGED
|
@@ -88,6 +88,13 @@ An updated version of the color additive module that can address additional poly
|
|
| 88 |
An updated version of the bulk chemicals module that can address additional polymers using a machine learning method.
|
| 89 |
</p>
|
| 90 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 91 |
<!--<h2> Future modules <button type=button class="Info_btn" data-toggle="modal" data-target="#FutureModal">ⓘ</button> </h2>
|
| 92 |
|
| 93 |
• Updates to exposure model modules to increase the range of applicable systems <br>
|
|
|
|
| 88 |
An updated version of the bulk chemicals module that can address additional polymers using a machine learning method.
|
| 89 |
</p>
|
| 90 |
|
| 91 |
+
• <a href="/quantity"> Total quantity estimator </a>
|
| 92 |
+
|
| 93 |
+
<p>
|
| 94 |
+
This module can be used to leverage the results of device extraction testing (either exhaustive or non-exhaustive) to estimate the total quantity of an extractable present in the device,
|
| 95 |
+
which can subsequently be used for exposure estimation using the color additives or bulk chemicals modules.
|
| 96 |
+
</p>
|
| 97 |
+
|
| 98 |
<!--<h2> Future modules <button type=button class="Info_btn" data-toggle="modal" data-target="#FutureModal">ⓘ</button> </h2>
|
| 99 |
|
| 100 |
• Updates to exposure model modules to increase the range of applicable systems <br>
|