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

Reply via email to