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

import timeit
import numpy as np

In [2]:
mol = Molecule(SMILES="c1c(C)cc(CC)cc1O")
ignoreList = []
neighbors = []
startingAtoms = [mol.atoms[0]]

for atom in startingAtoms:
    neighbors.extend(mol.getBonds(atom).keys())
neighbors = list(set(neighbors)-set(ignoreList))
neighbors = [neighbor for neighbor in neighbors if neighbor.isNonHydrogen()]
print neighbors


[<Atom 'C'>, <Atom 'C'>]

In [3]:
setup = """\
from rmgpy.molecule.molecule import Molecule
mol = Molecule(SMILES="c1c(C)cc(CC)cc1O")
ignoreList = []
neighbors = []
startingAtoms = [mol.atoms[0]]
"""
test = """\
for atom in startingAtoms:
    neighbors.extend(mol.getBonds(atom).keys())
neighbors = list(set(neighbors)-set(ignoreList))
neighbors = [neighbor for neighbor in neighbors if neighbor.isNonHydrogen()]
"""
np.mean(timeit.repeat(test, setup, repeat=5, number=100000))


Out[3]:
0.15684132575988768

In [4]:
setup = """\
from rmgpy.molecule.molecule import Molecule
mol = Molecule(SMILES="c1c(C)cc(CC)cc1O")
ignoreList = []
neighbors = []
startingAtoms = [mol.atoms[0]]
"""
test = """\
for atom in startingAtoms:
    newNeighbors = [neighbor for neighbor in mol.getBonds(atom) if neighbor.isNonHydrogen()]
    neighbors.extend(newNeighbors)
neighbors = list(set(neighbors)-set(ignoreList))
"""
np.mean(timeit.repeat(test, setup, repeat=5, number=100000))


Out[4]:
0.13632574081420898

In [5]:
setup = """\
from rmgpy.molecule.molecule import Molecule
mol = Molecule(SMILES="c1c(C)cc(CC)cc1O")
ignoreList = []
neighbors = []
startingAtoms = [mol.atoms[0]]
"""
test = """\
for atom in startingAtoms:
    for neighbor in mol.getBonds(atom):
        if neighbor.isNonHydrogen():
            neighbors.append(neighbor)
neighbors = list(set(neighbors)-set(ignoreList))
"""
np.mean(timeit.repeat(test, setup, repeat=5, number=100000))


Out[5]:
0.13701438903808594

In [ ]: