Skip to content

Commit 2b17b3c

Browse files
committed
use Ar workaround to construct surface molecules
1 parent 551c3eb commit 2b17b3c

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

rmgpy/molecule/molecule.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -981,7 +981,20 @@ def __init__(self, atoms=None, symmetry=-1, multiplicity=-187, reactive=True, pr
981981
self.from_inchi(inchi)
982982
self._inchi = inchi
983983
elif smiles:
984-
self.from_smiles(smiles)
984+
if 'X' in smiles:
985+
self.from_smiles(smiles.replace('X', 'Ar'))
986+
lines = self.to_adjacency_list().split('\n')
987+
for i, line in enumerate(lines):
988+
if 'Ar' in line:
989+
lines[i] = lines[i].replace('Ar', 'X')
990+
# remove any extra electron pairs
991+
lines[i] = lines[i].replace('p3', 'p0')
992+
lines[i] = lines[i].replace('p2', 'p0')
993+
lines[i] = lines[i].replace('p1', 'p0')
994+
adj_list = '\n'.join(lines)
995+
self = self.from_adjacency_list(adj_list)
996+
else:
997+
self.from_smiles(smiles)
985998
self._smiles = smiles
986999

9871000
if multiplicity != -187: # it was set explicitly, so re-set it (from_smiles etc may have changed it)

0 commit comments

Comments
 (0)