In [ ]:
from rmgpy.molecule.resonance import *
from rmgpy.molecule.molecule import Molecule
from IPython.display import display, HTML, Image, display_html
import sys, time
In [ ]:
molList = [
'CC', 'CCC', 'CCCC',
'C=C[CH2]', 'CC=C[CH2]', 'C=CC=C[CH2]', 'C=C[CH]C=CC',
'CC=N[O]', 'CCN=N=[N-]',
'c1ccccc1', 'c1ccccc1C',
'c1ccccc1[CH2]', 'c1ccccc1[C]=C', 'c1ccccc1[CH]C', 'c1ccccc1[CH]C=C',
'C1=CC=C(C=C1)C1C=CC=CC=1',
'C1=CC=C2C=CC=CC2=C1C',
'C1=CC2=CC=CC3C=CC(=C1)C=32',
'C1=CC=C2C=C3C=CC=CC3=CC2=C1',
'C1=CC=C2C(C=CC3=CC=CC=C32)=C1',
'C1=CC=C2C(C=CC3=CC=CC=C32)=[C]1',
'C1=CC=C2C(C=CC3=CC=CC=C32)=C1[CH2]',
'C1=CC2=CC=CC3CC=CC(=C1)C=32',
'C1=CC=C2C=C3C=C4C=CC=CC4=CC3=CC2=C1',
'C1=CC=C2C(C=CC3C2=CC=C2C=CC=CC=32)=C1',
'C1=CC=C2C(=C1)C1=CC=CC=C1C1=CC=CC=C21',
'C1=CC2=CC=C3C=CC=C4C=CC(=C1)C2=C43',
'C1=CC=C2C=C3C(C=CC4=CC=CC=C43)=CC2=C1',
'C1=CC=C2C=C3C=C4C=C5C=CC=CC5=CC4=CC3=CC2=C1',
'C1=CC=C2C(=C1)C=C1C=CC3=CC=CC4=CC=C2C1=C34',
'C1=CC2=CC=C3C=CC4=C5C6=C(C2=C35)C1=CC=C6C=C4',
'C1=CC2=CC=CC3C4=CC=CC5=CC=CC(C(=C1)C=32)=C54',
'C1=CC2=CC=C3C=C4C=CC=C5C=CC6=CC(=C1)C2=C3C6=C54',
'C1=CC2=CC=C3C=CC4=CC=C5C=CC=C6C(=C1)C2=C3C4=C56',
'C1=CC=C2C(=C1)C=C1C3=CC=CC=C3C3=CC=CC4=CC=C2C1=C43',
'C1=CC2=CC=C3C=CC4=CC=C5C=CC6=CC=C1C1=C2C3=C4C5=C61',
'C1=CC2=CC=C3C=C4C=CC5=CC=C6C=CC7=CC8=CC=C1C1=C2C3=C2C4=C5C6=C7C2=C81',
]
In [ ]:
i = 20
mol = Molecule().fromSMILES('CC=C[CH2]')
mol.update()
print mol.toAdjacencyList()
mol.assignAtomIndices()
print [atom.index for atom in mol.atoms]
print '===================='
print 'Original molecule'
display(mol)
print '===================='
print 'Resonance structures'
out = mol.generateResonanceIsomers()
for m in out:
display(m)
print '===================='
for m in out:
m.update()
In [ ]:
[atom.index for atom in out[0].atoms]
In [ ]:
[atom.index for atom in out[1].atoms]
In [ ]:
out[0].isIdentical(out[1])
In [ ]:
from base64 import b64encode
html = '<img src="data:image/png;base64,{}">'.format(b64encode(mol._repr_png_()))
display(HTML(html))
In [ ]:
i = 20
mol = Molecule().fromSMILES(molList[i])
print '===================='
print 'Original molecule'
display(mol)
print '===================='
print 'Resonance structures'
out = mol.generateResonanceIsomers()
for m in out:
display(m)
print '===================='
In [ ]:
i = 21
mol = Molecule().fromSMILES(molList[i])
print '===================='
print 'Original molecule'
display(mol)
print '===================='
print 'Resonance structures'
out = mol.generateResonanceIsomers()
for m in out:
display(m)
print '===================='
In [ ]: