Commit ·
412bfc6
1
Parent(s): bd5fb72
report now shows input string and IUPAC name
Browse files- ChemID.py +27 -17
- 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:
|
|
@@ -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.iupac_name
|
| 241 |
-
|
| 242 |
-
name =
|
|
|
|
|
|
|
| 243 |
# then try cirpy
|
| 244 |
if not name:
|
| 245 |
try:
|
|
@@ -261,15 +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 |
-
|
|
|
|
|
|
|
| 273 |
origin = 'chemicals'
|
| 274 |
except KeyboardInterrupt:
|
| 275 |
raise
|
|
@@ -281,10 +289,9 @@ def string2name(string):
|
|
| 281 |
try:
|
| 282 |
compounds = pcp.get_compounds(string, namespace='name')
|
| 283 |
c = compounds[0]
|
| 284 |
-
|
| 285 |
-
name = c.iupac_name
|
| 286 |
if not name:
|
| 287 |
-
|
| 288 |
name = c.synonyms[0]
|
| 289 |
origin = 'PubChem'
|
| 290 |
except:
|
|
@@ -293,8 +300,8 @@ def string2name(string):
|
|
| 293 |
# next try cirpy
|
| 294 |
if not name:
|
| 295 |
try:
|
| 296 |
-
name = cirpy.resolve(string, 'names')
|
| 297 |
-
|
| 298 |
if name: origin = 'CIRPY'
|
| 299 |
except:
|
| 300 |
name = None
|
|
@@ -321,8 +328,10 @@ def string2name(string):
|
|
| 321 |
try:
|
| 322 |
compounds = pcp.get_compounds(string_strip, namespace='name')
|
| 323 |
c = compounds[0]
|
| 324 |
-
name = c.
|
| 325 |
-
|
|
|
|
|
|
|
| 326 |
origin = 'PubChem'
|
| 327 |
except:
|
| 328 |
name = None
|
|
@@ -330,7 +339,8 @@ def string2name(string):
|
|
| 330 |
# next try cirpy
|
| 331 |
if not name:
|
| 332 |
try:
|
| 333 |
-
name = cirpy.resolve(string_strip, 'names')
|
|
|
|
| 334 |
if name: origin = 'CIRPY'
|
| 335 |
except:
|
| 336 |
name = None
|
|
|
|
| 81 |
im64 = None
|
| 82 |
error = 0
|
| 83 |
|
| 84 |
+
name, name_origin = name2iupac(name)
|
| 85 |
smiles = name2smiles(name)
|
| 86 |
|
| 87 |
if smiles:
|
|
|
|
| 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:
|
|
|
|
| 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>
|