I don't know how to do that with PyBel only, but you can access OB from it and 
get roughly the same results with something like this:

import pybel
ob=pybel.ob

pmol=pybel.readfile('sdf', 'filename.sdf').next()
mol=pmol.OBMol
ring_list=list(mol.GetSSSR())
size=len(ring_list)
print "size", size
for ring in ring_list:
    members=tuple(ring._path)
    print "members", members
On 09/13/2018 06:01 PM, tayeb...@gmail.com wrote:
Hi,

Does anybody know how I can use pybel to find rings (sssr) in compounds and 
output the indices of the atoms in those rings?

I have already figured out how to do it using rdkit, but I am interested in 
accomplishing the same thing with pybel:

 >>> *m = Chem.MolFromMolFile('temp.mol')*

 >>> *ssr = Chem.GetSymmSSSR(m)*

# and then I can print the indices of the atoms in the rings:

 >>> *list(ssr[0])*# print for the first ring for example

[6, 5 , 2, 1, 3, 0]

 >>> *len(ssr)*# or print the number of rings

3





_______________________________________________
OpenBabel-discuss mailing list
OpenBabel-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-discuss


--

 Stefano Forli, PhD

 Assistant Professor
 Dept. of Integrative Structural
 and Computational Biology, MB-112A
 The Scripps Research Institute
 10550  North Torrey Pines Road
 La Jolla,  CA 92037-1000,  USA.

    tel: +1 (858)784-2055
    fax: +1 (858)784-2860
    email: fo...@scripps.edu
    http://www.scripps.edu/faculty/forli/



_______________________________________________
OpenBabel-discuss mailing list
OpenBabel-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-discuss

Reply via email to