On 11/10/2015 05:23 PM, Maciek Wójcikowski wrote: > Hi Filip, > > OBMol has a Separate method, which does exactly what you'd > like. > http://openbabel.org/dev-api/classOpenBabel_1_1OBMol.shtml#a1e5c6955a32c0ec2317a8de12ab7ba5a > > import pybel > mol = pybel.readfile('mol2', 'ligand.mol2').next() > for m in mol.OBMol.Separate(): > print m > > > Note that m is an OBMol object, so to get pybel molecule you need to > initiate it via Molecule class: > > for m in mol.OBMol.Separate(): > print pybel.Molecule(m) > >
Thanks once more. Just for future reference, here is the full script for splitting molecule and saving it to separate files: https://gist.github.com/filipsPL/5c810a452559a7fcc99e import pybel from openbabel import * mol = pybel.readfile('mol2', 'ligand.mol2').next() separated = mol.OBMol.Separate() def writeOut( theConformer, outputPath ): myConversion = OBConversion() outputFormat = myConversion.FormatFromExt( outputPath ) myConversion.SetOutFormat( outputFormat ) myConversion.WriteFile( theConformer, outputPath ) i = 0 for singlemol in separated: i+=1 print "Writing part %i" % (i) writeOut(singlemol, "output-%i.mol2" %(i) ) bests, Filip -- Filip Stefaniak Uptime: 13187 dni 13 godzin W lodówce ma 9.7stC, na działce w sadku 11.2stC ------------------------------------------------------------------------------ _______________________________________________ OpenBabel-discuss mailing list OpenBabel-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbabel-discuss