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

refactor error handling of invalid SMILES

Browse files
Files changed (1) hide show
  1. ChemID.py +19 -10
ChemID.py CHANGED
@@ -18,29 +18,32 @@ def ResolveChemical(chemName, IDtype):
18
 
19
  if IDtype == 'CAS':
20
  cas = chemName
21
- if not is_cas(cas):
22
- name = 'INVALID CAS'
23
- error = 3
24
- return (name, cas, None, None, None, error)
25
  smiles = None
26
  name = None
27
  Mw = None
28
  im64 = None
29
  error = 0
30
 
 
 
 
 
31
  smiles = cas2smiles(cas)
32
 
33
  if smiles:
34
  name = cas2name(cas)
35
  try:
36
  mol = Chem.MolFromSmiles(smiles)
 
 
 
37
  Mw = Descriptors.MolWt(mol)
38
  im = ImageFromSmiles(smiles)
39
  im64 = Imageto64(im)
40
- except:
41
- error = 2
42
  else:
43
- error = 1
44
  elif IDtype == 'SMILES':
45
  smiles = chemName
46
  cas = None
@@ -55,10 +58,13 @@ def ResolveChemical(chemName, IDtype):
55
 
56
  try:
57
  mol = Chem.MolFromSmiles(smiles)
 
 
 
58
  Mw = Descriptors.MolWt(mol)
59
  im = ImageFromSmiles(smiles)
60
  im64 = Imageto64(im)
61
- except:
62
  error = 2
63
  elif IDtype == 'common':
64
  name = chemName
@@ -74,10 +80,13 @@ def ResolveChemical(chemName, IDtype):
74
  cas = name2cas(name)
75
  try:
76
  mol = Chem.MolFromSmiles(smiles)
 
 
 
77
  Mw = Descriptors.MolWt(mol)
78
  im = ImageFromSmiles(smiles)
79
  im64 = Imageto64(im)
80
- except:
81
  error = 2
82
  else:
83
  error = 1
@@ -88,7 +97,7 @@ def ResolveChemical(chemName, IDtype):
88
  cas = None
89
  Mw = None
90
  im64 = None
91
- error = 4
92
 
93
  # if we couldn't find a name or CAS (but do have SMILES)
94
  if not error:
 
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
 
33
  if smiles:
34
  name = cas2name(cas)
35
  try:
36
  mol = Chem.MolFromSmiles(smiles)
37
+ except:
38
+ error = 2 #invalid smiles
39
+ if mol:
40
  Mw = Descriptors.MolWt(mol)
41
  im = ImageFromSmiles(smiles)
42
  im64 = Imageto64(im)
43
+ else:
44
+ error = 2 #invalid smiles
45
  else:
46
+ error = 1 # no smiles found
47
  elif IDtype == 'SMILES':
48
  smiles = chemName
49
  cas = None
 
58
 
59
  try:
60
  mol = Chem.MolFromSmiles(smiles)
61
+ except:
62
+ error = 2
63
+ if mol:
64
  Mw = Descriptors.MolWt(mol)
65
  im = ImageFromSmiles(smiles)
66
  im64 = Imageto64(im)
67
+ else:
68
  error = 2
69
  elif IDtype == 'common':
70
  name = chemName
 
80
  cas = name2cas(name)
81
  try:
82
  mol = Chem.MolFromSmiles(smiles)
83
+ except:
84
+ error = 2
85
+ if mol:
86
  Mw = Descriptors.MolWt(mol)
87
  im = ImageFromSmiles(smiles)
88
  im64 = Imageto64(im)
89
+ else:
90
  error = 2
91
  else:
92
  error = 1
 
97
  cas = None
98
  Mw = None
99
  im64 = None
100
+ error = 4 # invalid IDtype selection, probably not possible
101
 
102
  # if we couldn't find a name or CAS (but do have SMILES)
103
  if not error: