Merge remote-tracking branch 'origin/smiles' into smiles
Browse files- ChemID.py +32 -20
- exposure_module/templates/exposure_report.html +1 -0
ChemID.py
CHANGED
|
@@ -81,6 +81,7 @@ def ResolveChemical(chemName, IDtype):
|
|
| 81 |
im64 = None
|
| 82 |
error = 0
|
| 83 |
|
|
|
|
| 84 |
smiles = name2smiles(name)
|
| 85 |
|
| 86 |
if smiles:
|
|
@@ -155,10 +156,10 @@ def smiles2name(smiles):
|
|
| 155 |
# first try chemicals package
|
| 156 |
try:
|
| 157 |
cm = chemicals.search_chemical(smiles)
|
| 158 |
-
if cm.
|
| 159 |
-
name = cm.common_name
|
| 160 |
-
elif cm.iupac_name:
|
| 161 |
name = cm.iupac_name
|
|
|
|
|
|
|
| 162 |
except:
|
| 163 |
name = None
|
| 164 |
# then try pubchem for compounds
|
|
@@ -167,6 +168,9 @@ def smiles2name(smiles):
|
|
| 167 |
compounds = pcp.get_compounds(smiles, namespace='smiles')
|
| 168 |
c = compounds[0]
|
| 169 |
name = c.iupac_name
|
|
|
|
|
|
|
|
|
|
| 170 |
except:
|
| 171 |
name = None
|
| 172 |
# next try cirpy
|
|
@@ -234,12 +238,14 @@ def cas2name(cas):
|
|
| 234 |
#if not is_cas(cas):
|
| 235 |
# name = 'INVALID CAS'
|
| 236 |
# first try chemicals package
|
| 237 |
-
|
| 238 |
-
|
| 239 |
-
|
|
|
|
|
|
|
| 240 |
name = cm.common_name
|
| 241 |
-
|
| 242 |
-
|
| 243 |
# then try cirpy
|
| 244 |
if not name:
|
| 245 |
try:
|
|
@@ -261,14 +267,17 @@ def cas2name(cas):
|
|
| 261 |
name = None
|
| 262 |
return name
|
| 263 |
|
| 264 |
-
# function to convert chemical
|
| 265 |
-
def
|
| 266 |
name = None
|
| 267 |
origin = None
|
| 268 |
# try chemicals package
|
| 269 |
try:
|
| 270 |
cm = chemicals.search_chemical(string)
|
| 271 |
-
|
|
|
|
|
|
|
|
|
|
| 272 |
origin = 'chemicals'
|
| 273 |
except KeyboardInterrupt:
|
| 274 |
raise
|
|
@@ -280,10 +289,10 @@ def string2name(string):
|
|
| 280 |
try:
|
| 281 |
compounds = pcp.get_compounds(string, namespace='name')
|
| 282 |
c = compounds[0]
|
| 283 |
-
|
| 284 |
-
|
| 285 |
-
|
| 286 |
-
|
| 287 |
origin = 'PubChem'
|
| 288 |
except:
|
| 289 |
name = None
|
|
@@ -291,8 +300,8 @@ def string2name(string):
|
|
| 291 |
# next try cirpy
|
| 292 |
if not name:
|
| 293 |
try:
|
| 294 |
-
name = cirpy.resolve(string, 'names')
|
| 295 |
-
|
| 296 |
if name: origin = 'CIRPY'
|
| 297 |
except:
|
| 298 |
name = None
|
|
@@ -319,8 +328,10 @@ def string2name(string):
|
|
| 319 |
try:
|
| 320 |
compounds = pcp.get_compounds(string_strip, namespace='name')
|
| 321 |
c = compounds[0]
|
| 322 |
-
name = c.
|
| 323 |
-
|
|
|
|
|
|
|
| 324 |
origin = 'PubChem'
|
| 325 |
except:
|
| 326 |
name = None
|
|
@@ -328,7 +339,8 @@ def string2name(string):
|
|
| 328 |
# next try cirpy
|
| 329 |
if not name:
|
| 330 |
try:
|
| 331 |
-
name = cirpy.resolve(string_strip, 'names')
|
|
|
|
| 332 |
if name: origin = 'CIRPY'
|
| 333 |
except:
|
| 334 |
name = None
|
|
|
|
| 81 |
im64 = None
|
| 82 |
error = 0
|
| 83 |
|
| 84 |
+
name, name_origin = name2iupac(name)
|
| 85 |
smiles = name2smiles(name)
|
| 86 |
|
| 87 |
if smiles:
|
|
|
|
| 156 |
# first try chemicals package
|
| 157 |
try:
|
| 158 |
cm = chemicals.search_chemical(smiles)
|
| 159 |
+
if cm.iupac_name:
|
|
|
|
|
|
|
| 160 |
name = cm.iupac_name
|
| 161 |
+
elif cm.common_name:
|
| 162 |
+
name = cm.common_name
|
| 163 |
except:
|
| 164 |
name = None
|
| 165 |
# then try pubchem for compounds
|
|
|
|
| 168 |
compounds = pcp.get_compounds(smiles, namespace='smiles')
|
| 169 |
c = compounds[0]
|
| 170 |
name = c.iupac_name
|
| 171 |
+
if not name:
|
| 172 |
+
# have seen empty iupac_name before, try synonyms if this happens
|
| 173 |
+
name = c.synonyms[0]
|
| 174 |
except:
|
| 175 |
name = None
|
| 176 |
# next try cirpy
|
|
|
|
| 238 |
#if not is_cas(cas):
|
| 239 |
# name = 'INVALID CAS'
|
| 240 |
# first try chemicals package
|
| 241 |
+
try:
|
| 242 |
+
cm = chemicals.search_chemical(cas)
|
| 243 |
+
if cm.iupac_name:
|
| 244 |
+
name = cm.iupac_name
|
| 245 |
+
elif cm.common_name:
|
| 246 |
name = cm.common_name
|
| 247 |
+
except:
|
| 248 |
+
name = None
|
| 249 |
# then try cirpy
|
| 250 |
if not name:
|
| 251 |
try:
|
|
|
|
| 267 |
name = None
|
| 268 |
return name
|
| 269 |
|
| 270 |
+
# function to convert chemical name to iupac name
|
| 271 |
+
def name2iupac(string):
|
| 272 |
name = None
|
| 273 |
origin = None
|
| 274 |
# try chemicals package
|
| 275 |
try:
|
| 276 |
cm = chemicals.search_chemical(string)
|
| 277 |
+
if cm.iupac_name:
|
| 278 |
+
name = cm.iupac_name
|
| 279 |
+
elif cm.common_name:
|
| 280 |
+
name = cm.common_name
|
| 281 |
origin = 'chemicals'
|
| 282 |
except KeyboardInterrupt:
|
| 283 |
raise
|
|
|
|
| 289 |
try:
|
| 290 |
compounds = pcp.get_compounds(string, namespace='name')
|
| 291 |
c = compounds[0]
|
| 292 |
+
name = c.iupac_name
|
| 293 |
+
if not name:
|
| 294 |
+
# have seen empty iupac_name before, try synonyms if this happens
|
| 295 |
+
name = c.synonyms[0]
|
| 296 |
origin = 'PubChem'
|
| 297 |
except:
|
| 298 |
name = None
|
|
|
|
| 300 |
# next try cirpy
|
| 301 |
if not name:
|
| 302 |
try:
|
| 303 |
+
#name = cirpy.resolve(string, 'names')
|
| 304 |
+
name = cirpy.resolve(string, 'iupac_name')
|
| 305 |
if name: origin = 'CIRPY'
|
| 306 |
except:
|
| 307 |
name = None
|
|
|
|
| 328 |
try:
|
| 329 |
compounds = pcp.get_compounds(string_strip, namespace='name')
|
| 330 |
c = compounds[0]
|
| 331 |
+
name = c.iupac_name
|
| 332 |
+
if not name:
|
| 333 |
+
# have seen empty iupac_name before, try synonyms if this happens
|
| 334 |
+
name = c.synonyms[0]
|
| 335 |
origin = 'PubChem'
|
| 336 |
except:
|
| 337 |
name = None
|
|
|
|
| 339 |
# next try cirpy
|
| 340 |
if not name:
|
| 341 |
try:
|
| 342 |
+
#name = cirpy.resolve(string_strip, 'names')
|
| 343 |
+
name = cirpy.resolve(string, 'iupac_name')
|
| 344 |
if name: origin = 'CIRPY'
|
| 345 |
except:
|
| 346 |
name = None
|
exposure_module/templates/exposure_report.html
CHANGED
|
@@ -50,6 +50,7 @@
|
|
| 50 |
<div class="container">
|
| 51 |
<div class="row">
|
| 52 |
<div class="column">
|
|
|
|
| 53 |
IUPAC Name :: {{iupac}} <br> <br>
|
| 54 |
CAS :: {{cas}} <br> <br>
|
| 55 |
Molecular weight :: {{MW}} <br> <br>
|
|
|
|
| 50 |
<div class="container">
|
| 51 |
<div class="row">
|
| 52 |
<div class="column">
|
| 53 |
+
Input :: {{chemName}} <br> <br>
|
| 54 |
IUPAC Name :: {{iupac}} <br> <br>
|
| 55 |
CAS :: {{cas}} <br> <br>
|
| 56 |
Molecular weight :: {{MW}} <br> <br>
|