David Saylor commited on
Commit
24e3c55
·
2 Parent(s): d47d8f8412bfc6

Merge remote-tracking branch 'origin/smiles' into smiles

Browse files
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.common_name:
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
- if not name:
238
- try:
239
- cm = chemicals.search_chemical(cas)
 
 
240
  name = cm.common_name
241
- except:
242
- name = None
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 entity string to iupac name
265
- def string2name(string):
266
  name = None
267
  origin = None
268
  # try chemicals package
269
  try:
270
  cm = chemicals.search_chemical(string)
271
- name = cm.common_name
 
 
 
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
- #name = c.iupac_name
284
- #if not name:
285
- # have seen empty iupac_name before, try synonyms if this happens
286
- name = c.synonyms[0]
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
- #name = cirpy.resolve(string, 'iupac_name')
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.synonyms[0]
323
- #name = c.iupac_name
 
 
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>