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 [ ]: