Robert Elder commited on
Commit
25ef50a
·
1 Parent(s): 76da1b2

added total quantity estimator module

Browse files
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

  • SHA256: 309a923bc8a29fa479d28c5421f671274bf5c08667207630467bce622fa635fb
  • Pointer size: 130 Bytes
  • Size of remote file: 90.2 kB
quantity_module/static/images/FDAlogo.png ADDED

Git LFS Details

  • SHA256: b77c9db36215bee929580dba4ba52fe335ab4d35c750cc60e1d1922d348a4dd3
  • Pointer size: 130 Bytes
  • Size of remote file: 26.2 kB
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"> &#129318; </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" >&#9432;</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">&#9432;</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 (&deg;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 &#34;Other polymer&#34;. 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">&#9432;</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 (&deg;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">&#9432;</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
+ &nbsp; <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"> &#129318; </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 (&deg;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 (&deg;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]}} &deg;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>&le;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}} &deg;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 \) &geq; 0.1 result in more accurate estimates of the total quantity, and when \( \tau \) &geq; 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"> &#129318; </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">&#9432;</button> </h2>
92
 
93
  &#x2022; 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
+ &#x2022; <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">&#9432;</button> </h2>
99
 
100
  &#x2022; Updates to exposure model modules to increase the range of applicable systems <br>