Dear all,
sorry but I am really new at using RDkit. By looking at the scripts and
tutorial available I wrote the following script. The idea is to generate a
number of conformers for a big and flexible ligand, but with constraints.
This script generate a set of conformers but I can't write a SDF file with
all of them. The error I get is:
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
Boost.Python.ArgumentError: Python argument types in
SDWriter.write(SDWriter, int)
did not match C++ signature:
write(RDKit::SDWriter {lvalue} self, RDKit::ROMol {lvalue} mol, int
confId=-1)
Thanks in advance for any help
felipet
The script is:
from rdkit import Chem
from rdkit.Chem import AllChem
import os
mols = [x for x in Chem.SDMolSupplier('out.CRC.sdf',removeHs=False) if x is
not None]
core = Chem.MolFromSmarts('CCCCCCCCCCCCCCC(O)=O')
em = Chem.EditableMol(mols[0])
match = mols[0].GetSubstructMatch(core)
for idx in range(mols[0].GetNumAtoms()-1,-1,-1):
if idx not in match:
em.RemoveAtom(idx)
coreMol = em.GetMol()
Chem.SanitizeMol(coreMol)
newMol = Chem.MolFromSmiles('CCCCCCCCCCCCCCCCCCCCCCCCCC(O)=O')
newMol=Chem.AddHs(newMol)
newMol3D=AllChem.ConstrainedEmbed(newMol,coreMol)
cids=AllChem.EmbedMultipleConfs(newMol3D,numConfs=100,pruneRmsThresh=1.0,enforceChirality=True)
for cid in cids: AllChem.UFFOptimizeMolecule(newMol3D,confId=cid)
nMol = len(cids)
w = Chem.SDWriter('conf_output.sdf')
for prbNum in range(0, nMol):
prbMol = cids[prbNum]
w.write(prbMol)
w.close()
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss