robert-m-elder commited on
Commit
7f77ca2
·
1 Parent(s): 60e7cd3

added basic LogP calculation w/ rdkit

Browse files
ChemID.py CHANGED
@@ -12,21 +12,24 @@ import base64
12
 
13
  import rdkit
14
  from rdkit.Chem import AllChem as Chem
15
- from rdkit.Chem import Descriptors,Descriptors3D, Draw
16
 
17
  def ResolveChemical(chemName, IDtype):
18
 
 
 
19
  if IDtype == 'CAS':
20
  cas = chemName
21
  smiles = None
22
  name = None
23
  Mw = None
 
24
  im64 = None
25
  error = 0
26
 
27
  if not is_cas(cas):
28
  error = 3 #invalid cas
29
- return (name, cas, smiles, Mw, im64, error)
30
 
31
  smiles = cas2smiles(cas)
32
 
@@ -38,6 +41,7 @@ def ResolveChemical(chemName, IDtype):
38
  error = 2 #invalid smiles
39
  if mol:
40
  Mw = Descriptors.MolWt(mol)
 
41
  im = ImageFromSmiles(smiles)
42
  im64 = Imageto64(im)
43
  else:
@@ -49,6 +53,7 @@ def ResolveChemical(chemName, IDtype):
49
  cas = None
50
  name = None
51
  Mw = None
 
52
  im64 = None
53
  error = 0
54
 
@@ -62,6 +67,7 @@ def ResolveChemical(chemName, IDtype):
62
  error = 2
63
  if mol:
64
  Mw = Descriptors.MolWt(mol)
 
65
  im = ImageFromSmiles(smiles)
66
  im64 = Imageto64(im)
67
  else:
@@ -71,6 +77,7 @@ def ResolveChemical(chemName, IDtype):
71
  smiles = None
72
  cas = None
73
  Mw = None
 
74
  im64 = None
75
  error = 0
76
 
@@ -84,6 +91,7 @@ def ResolveChemical(chemName, IDtype):
84
  error = 2
85
  if mol:
86
  Mw = Descriptors.MolWt(mol)
 
87
  im = ImageFromSmiles(smiles)
88
  im64 = Imageto64(im)
89
  else:
@@ -96,6 +104,7 @@ def ResolveChemical(chemName, IDtype):
96
  smiles = None
97
  cas = None
98
  Mw = None
 
99
  im64 = None
100
  error = 4 # invalid IDtype selection, probably not possible
101
 
@@ -106,7 +115,7 @@ def ResolveChemical(chemName, IDtype):
106
  if not cas:
107
  cas = 'Not found'
108
 
109
- return (name, cas, smiles, Mw, im64, error)
110
 
111
  #Generates an image of the molecule represented by the SMILES code given.
112
  #Returns None if the image cannot be generated. From https://github.com/ronaldo-prata/flask-test/blob/master/functions.py
 
12
 
13
  import rdkit
14
  from rdkit.Chem import AllChem as Chem
15
+ from rdkit.Chem import Descriptors,Descriptors3D,Draw,Crippen
16
 
17
  def ResolveChemical(chemName, IDtype):
18
 
19
+ LogP_func = Crippen.MolLogP
20
+
21
  if IDtype == 'CAS':
22
  cas = chemName
23
  smiles = None
24
  name = None
25
  Mw = None
26
+ LogP = None
27
  im64 = None
28
  error = 0
29
 
30
  if not is_cas(cas):
31
  error = 3 #invalid cas
32
+ return (name, cas, smiles, Mw, LogP, im64, error)
33
 
34
  smiles = cas2smiles(cas)
35
 
 
41
  error = 2 #invalid smiles
42
  if mol:
43
  Mw = Descriptors.MolWt(mol)
44
+ LogP = LogP_func(mol)
45
  im = ImageFromSmiles(smiles)
46
  im64 = Imageto64(im)
47
  else:
 
53
  cas = None
54
  name = None
55
  Mw = None
56
+ LogP = None
57
  im64 = None
58
  error = 0
59
 
 
67
  error = 2
68
  if mol:
69
  Mw = Descriptors.MolWt(mol)
70
+ LogP = LogP_func(mol)
71
  im = ImageFromSmiles(smiles)
72
  im64 = Imageto64(im)
73
  else:
 
77
  smiles = None
78
  cas = None
79
  Mw = None
80
+ LogP = None
81
  im64 = None
82
  error = 0
83
 
 
91
  error = 2
92
  if mol:
93
  Mw = Descriptors.MolWt(mol)
94
+ LogP = LogP_func(mol)
95
  im = ImageFromSmiles(smiles)
96
  im64 = Imageto64(im)
97
  else:
 
104
  smiles = None
105
  cas = None
106
  Mw = None
107
+ LogP = None
108
  im64 = None
109
  error = 4 # invalid IDtype selection, probably not possible
110
 
 
115
  if not cas:
116
  cas = 'Not found'
117
 
118
+ return (name, cas, smiles, Mw, LogP, im64, error)
119
 
120
  #Generates an image of the molecule represented by the SMILES code given.
121
  #Returns None if the image cannot be generated. From https://github.com/ronaldo-prata/flask-test/blob/master/functions.py
exposure_module/exposure.py CHANGED
@@ -21,7 +21,7 @@ def exp_post():
21
  chemName = request.form["chemName"]
22
  IDtype = request.form["IDtype"]
23
 
24
- iupac, cas, smiles, MW, molImage, error = ResolveChemical(chemName, IDtype)
25
 
26
  if error > 0:
27
  return render_template('chemError.html')
@@ -62,6 +62,7 @@ def exp_post():
62
  MOS = SigFigs(MOS, 2)
63
  diff = SigFigs(diff, 2)
64
  MW = SigFigs(MW, 6)
 
65
 
66
  # Generate the rate plot using matplotlib
67
  tarray = np.arange(1., 31., 1.)
@@ -70,4 +71,4 @@ def exp_post():
70
 
71
  return render_template('exposure_report.html', polymers=polymers, pIndex=pIndex, release=release,
72
  assume=assume, area=area, vol=vol, amount=amount, diff=diff, time=time, exposure=exposure, TTC=TTC,
73
- MOS=MOS, chemName=chemName, image=pngImageB64String, MW=MW, iupac=iupac, cas=cas, smiles=smiles, molImage=molImage)
 
21
  chemName = request.form["chemName"]
22
  IDtype = request.form["IDtype"]
23
 
24
+ iupac, cas, smiles, MW, LogP, molImage, error = ResolveChemical(chemName, IDtype)
25
 
26
  if error > 0:
27
  return render_template('chemError.html')
 
62
  MOS = SigFigs(MOS, 2)
63
  diff = SigFigs(diff, 2)
64
  MW = SigFigs(MW, 6)
65
+ LogP = SigFigs(LogP, 6)
66
 
67
  # Generate the rate plot using matplotlib
68
  tarray = np.arange(1., 31., 1.)
 
71
 
72
  return render_template('exposure_report.html', polymers=polymers, pIndex=pIndex, release=release,
73
  assume=assume, area=area, vol=vol, amount=amount, diff=diff, time=time, exposure=exposure, TTC=TTC,
74
+ MOS=MOS, chemName=chemName, image=pngImageB64String, MW=MW, LogP=LogP, iupac=iupac, cas=cas, smiles=smiles, molImage=molImage)
exposure_module/templates/exposure_report.html CHANGED
@@ -53,6 +53,7 @@
53
  IUPAC Name :: {{iupac}} <br> <br>
54
  CAS :: {{cas}} <br> <br>
55
  Molecular weight :: {{MW}} <br> <br>
 
56
  SMILES :: {{smiles}}
57
  </div>
58
  <div class="column">
 
53
  IUPAC Name :: {{iupac}} <br> <br>
54
  CAS :: {{cas}} <br> <br>
55
  Molecular weight :: {{MW}} <br> <br>
56
+ LogKow :: {{LogP}} <br> <br>
57
  SMILES :: {{smiles}}
58
  </div>
59
  <div class="column">