In [ ]:
import py_rdl
from py_rdl.wrapper import DataInternal
import timeit
import numpy as np
from IPython.display import display
In [ ]:
from rmgpy.molecule import Molecule
from rmgpy.molecule.graph import Vertex, Edge, Graph
In [ ]:
m = Molecule(SMILES='c1ccccc1')
display(m)
print m.toAdjacencyList()
In [ ]:
sssr = m.getSmallestSetOfSmallestRings()
[atom.label for atom in sssr[0]]
In [ ]:
m.atoms[0].label = '1'
m.atoms[1].label = '2'
m.atoms[2].label = '3'
m.atoms[3].label = '4'
m.atoms[4].label = '5'
m.atoms[5].label = '6'
In [ ]:
m.getSmallestSetOfSmallestRings()
In [ ]:
In [ ]:
setup = """
import py_rdl
from py_rdl.wrapper import DataInternal
from rmgpy.molecule import Molecule
m = Molecule(SMILES='C12C3C4C1C1C2C3C41')
"""
test = """
graph = py_rdl.Graph.from_edges(
m.edges,
lambda x: x.vertex1,
lambda x: x.vertex2,
)
data = DataInternal(graph.get_nof_nodes(), graph.get_edges().iterkeys())
data.calculate()
rc = []
for cycle in data.get_rcs():
rc.append([graph.get_node_for_index(i) for i in cycle.nodes])
"""
In [ ]:
result = timeit.repeat(test, setup, repeat=10, number=100)
result = np.array(result)
print np.mean(result), np.std(result)
In [ ]:
graph = py_rdl.Graph.from_edges(
m.edges,
lambda x: x.vertex1,
lambda x: x.vertex2,
)
data = DataInternal(graph.get_nof_nodes(), graph.get_edges().iterkeys())
data.calculate()
rc = []
for cycle in data.get_rcs():
rc.append([graph.get_node_for_index(i) for i in cycle.nodes])
sssr = []
for cycle in data.get_sssr():
sssr.append([graph.get_node_for_index(i) for i in cycle.nodes])
In [ ]: