In [1]:
import rmgpy
from rmgpy.molecule.resonance import *
from rmgpy.molecule.molecule import Molecule

import numpy as np
import sys
import time
import timeit

In [2]:
specs = ['C1=CC=CC=C1',
         'C1=CC=C2C=CC=CC2=C1',
         '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=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 [5]:
times = []
output = []

for spec in specs:
    mol = Molecule().fromSMILES(spec)
    try:
        t0 = time.time()
        newmol = generateClarStructures(mol)
        t1 = time.time()
        output.append(newmol)
    except:
        output.append(sys.exc_info()[0])
    times.append(t1 - t0)

print np.mean(times)


0.0195145368576

In [4]:
times


Out[4]:
[0.006410837173461914,
 0.0037641525268554688,
 0.005156993865966797,
 0.012536048889160156,
 0.0045201778411865234,
 0.0058400630950927734,
 0.026799917221069336,
 0.02175307273864746,
 0.006505012512207031,
 0.005166053771972656,
 0.008973121643066406,
 0.031475067138671875,
 0.016438961029052734,
 0.02871394157409668,
 0.01974201202392578,
 0.021931171417236328,
 0.010958194732666016,
 0.024166107177734375,
 0.02407097816467285,
 0.1068260669708252]

In [6]:
output


Out[6]:
[[Molecule(SMILES="c1ccccc1")],
 [Molecule(SMILES="C1C=Cc2ccccc2C=1"), Molecule(SMILES="C1C=Cc2ccccc2C=1")],
 [Molecule(SMILES="C1=Cc2cccc3C=CC(=C1)c23"),
  Molecule(SMILES="C1=Cc2cccc3C=CC(=C1)c23")],
 [Molecule(SMILES="C1C=CC2=Cc3ccccc3C=C2C=1"),
  Molecule(SMILES="C1C=Cc2cc3C=CC=Cc3cc2C=1"),
  Molecule(SMILES="C1C=CC2=Cc3ccccc3C=C2C=1")],
 [Molecule(SMILES="C1=Cc2ccccc2-c2ccccc21")],
 [Molecule(SMILES="C1=Cc2cccc3CC=CC(=C1)c23"),
  Molecule(SMILES="C1=Cc2cccc3C=CCC(=C1)c23")],
 [Molecule(SMILES="C1C=CC2=CC3=Cc4ccccc4C=C3C=C2C=1"),
  Molecule(SMILES="C1C=CC2=Cc3cc4C=CC=Cc4cc3C=C2C=1"),
  Molecule(SMILES="C1C=CC2=CC3=Cc4ccccc4C=C3C=C2C=1"),
  Molecule(SMILES="C1C=CC2=Cc3cc4C=CC=Cc4cc3C=C2C=1")],
 [Molecule(SMILES="C1C=Cc2c(C=1)ccc1-c3ccccc3C=Cc12"),
  Molecule(SMILES="C1C=Cc2c(C=1)ccc1-c3ccccc3C=Cc12"),
  Molecule(SMILES="C1=Cc2ccccc2C2C=Cc3ccccc3C=21")],
 [Molecule(SMILES="c1ccc2c(c1)-c1ccccc1-c1ccccc1-2")],
 [Molecule(SMILES="C1=Cc2cccc3C=Cc4cccc1c4-c23")],
 [Molecule(SMILES="C1=Cc2ccccc2C2=Cc3ccccc3C=C12"),
  Molecule(SMILES="C1C=Cc2cc3c(C=Cc4ccccc4-3)cc2C=1")],
 [Molecule(SMILES="C1C=CC2=CC3=CC4=Cc5ccccc5C=C4C=C3C=C2C=1"),
  Molecule(SMILES="C1C=CC2=CC3=Cc4cc5C=CC=Cc5cc4C=C3C=C2C=1"),
  Molecule(SMILES="C1C=CC2=CC3=CC4=Cc5ccccc5C=C4C=C3C=C2C=1"),
  Molecule(SMILES="C1C=CC2=Cc3cc4C=C5C=CC=CC5=Cc4cc3C=C2C=1"),
  Molecule(SMILES="C1C=CC2=CC3=Cc4cc5C=CC=Cc5cc4C=C3C=C2C=1")],
 [Molecule(SMILES="C1C=Cc2c(C=1)cc1C=Cc3cccc4C=Cc2c1-c34"),
  Molecule(SMILES="C1=Cc2ccc3-c4ccccc4C=C4C=CC(=C1)c2c34"),
  Molecule(SMILES="C1=Cc2cccc3C=CC4=C(C1=Cc1ccccc14)c23")],
 [Molecule(SMILES="C1=Cc2ccc3C=Cc4ccc5C=CC1=C1c2c3-c4c51"),
  Molecule(SMILES="C1=Cc2ccc3C=Cc4ccc5C=CC1=C1c2c3-c4c51"),
  Molecule(SMILES="C1=Cc2ccc3C=Cc4ccc5C=CC1=C1c2c3-c4c51"),
  Molecule(SMILES="C1=Cc2ccc3C=Cc4ccc5C=CC1=C1c2c3-c4c51"),
  Molecule(SMILES="C1=Cc2ccc3C=Cc4ccc5C=CC1=C1c2c3-c4c51")],
 [Molecule(SMILES="C1=Cc2cccc3-c4cccc5C=CC=C(C(=C1)c23)c54"),
  Molecule(SMILES="C1=Cc2cccc3C4=CC=Cc5cccc(C(=C1)c23)c54"),
  Molecule(SMILES="C1=Cc2cccc3-c4cccc5C=CC=C(C(=C1)c23)c54"),
  Molecule(SMILES="C1=Cc2cccc3C4=CC=Cc5cccc(C(=C1)c23)c54")],
 [Molecule(SMILES="C1=Cc2cc3C=Cc4cccc5C=C6C=CC(=C1)c2c6c3-c45"),
  Molecule(SMILES="C1=Cc2cccc3C=C4C=Cc5cccc6C=C1C(=C4c56)c23"),
  Molecule(SMILES="C1=Cc2cc3C=Cc4cccc5C=C6C=CC(=C1)c2c6c3-c45")],
 [Molecule(SMILES="C1=Cc2ccc3C=Cc4cccc5-c6cccc1c6-c2c3-c45")],
 [Molecule(SMILES="C1C=Cc2c(C=1)cc1-c3ccccc3-c3cccc4C=Cc2c1-c43"),
  Molecule(SMILES="C1=Cc2cccc3-c4ccccc4C4=Cc5ccccc5C1=C4c23"),
  Molecule(SMILES="C1=Cc2ccc3-c4ccccc4C=C4c5ccccc5C(=C1)c2c34")],
 [Molecule(SMILES="C1=Cc2ccc3C=Cc4ccc5C=Cc6ccc1c1c6-c5c4-c3c2-1"),
  Molecule(SMILES="C1=Cc2ccc3C=Cc4ccc5C=Cc6ccc1c1c6-c5c4-c3c2-1")],
 [Molecule(SMILES="C1=Cc2cc3C=Cc4ccc5C=Cc6cc7C=Cc8ccc1c1c8-c7c7c6-c5c4-c3c-7c2-1")]]

In [7]:
test = generateResonanceIsomers(Molecule().fromSMILES('C1=CC=C2C(=C1)C=C1C=CC3=CC=CC4=CC=C2C1=C34'))

In [18]:
test[0]


Out[18]:

In [17]:
test[5]


Out[17]:

In [19]:
test[6]


Out[19]:

In [ ]:
def simpleRecursion(a=None):
    if a:
        a += 1
    else:
        a = 1
    print a
    if a == 10:
        return []
    else:
        inner = simpleRecursion(a)
    print inner
    return inner + [a]

In [ ]:
simpleRecursion()

In [4]:
pyrene_rad2 = Molecule().fromSMILES('[C]1C=C2C=CC=C3C=CC4=CC=CC=1C4=C23')
pyrene_rad2.isArylRadical()


Out[4]:
True

In [5]:
setup = """\
from rmgpy.molecule.molecule import Molecule
pyrene_rad2 = Molecule().fromSMILES('[C]1C=C2C=CC=C3C=CC4=CC=CC=1C4=C23')
"""

timeit.timeit('pyrene_rad2.isArylRadical()', setup=setup, number=100)


Out[5]:
0.11185693740844727

In [ ]: