No, what I am suggesting is you to use a scheme similar to that applied in
ConstrainedEmbed, namely, to add restraints between atoms you know the
position. If you call ConstrainedEmbed several times, you will obtain the
same confirmation again and again.

Sincerely,
Luan Carvalho


Atenciosamente, Luan Carvalho Martins
luancarvalhomart...@gmail.com

On Fri, Mar 23, 2018 at 6:58 PM, Felipe Trajtenberg <felipet...@gmail.com>
wrote:

> Hi Luan!
> thanks!
>
> I was trying to use it but I am still struggling with very basic problems.
> What you are saying is that I can delete the UFFOptimizeMolecule and add a
> loop with ConstrainedEmbed to minimize with constraints?
>
> in my script, using:
>
> for cid in cids:
>     AllChem.ConstrainedEmbed(cid,coreMol,useTethers=True)
>
> I get the error:
>
> Traceback (most recent call last):
>   File "<stdin>", line 2, in <module>
>   File "/export/home/felipet/.conda/envs/my-rdkit-env/lib/python2.
> 7/site-packages/rdkit/Chem/AllChem.py", line 274, in ConstrainedEmbed
>     match = mol.GetSubstructMatch(core)
> AttributeError: 'int' object has no attribute 'GetSubstructMatch'
>
> what I am missing?
>
> thanks!
>
> 2018-03-23 16:19 GMT-03:00 Luan Carvalho Martins <
> luancarvalhomart...@gmail.com>:
>
>> When you used AllChem.UFFOptimizeMolecule(newMol3D,confId=cid) the
>> minimization proceeded without constraints, therefore, the core embedding
>> was lost. Read the source of ConstrainedEmbed [
>> http://www.rdkit.org/Python_Docs/rdkit.Chem.AllChem-pysrc.h
>> tml#ConstrainedEmbed]. This function does a restricted minimization
>> using AddDistanceConstraint.
>>
>> Sincerely,
>> Luan Carvalho.
>>
>> Atenciosamente, Luan Carvalho Martins
>> luancarvalhomart...@gmail.com
>>
>> On Fri, Mar 23, 2018 at 3:56 PM, Felipe Trajtenberg <felipet...@gmail.com
>> > wrote:
>>
>>> Hi Paolo
>>>
>>> great! it was a very simple thing. Now the sdf file with the conformers
>>> is generated but the conformers were not constraints at the core of the
>>> ligand...as I was trying? can you tell me why?
>>>
>>> thanks a lot!
>>>
>>> felipet
>>>
>>> 2018-03-23 15:37 GMT-03:00 Paolo Tosco <paolo.to...@unito.it>:
>>>
>>>> Dear Felipe,
>>>>
>>>> cids is a list of conformer ids, i.e. integer numbers. Therefore
>>>>
>>>> prbMol = cids[prbNum]
>>>>
>>>> sets prbMol to the integer value of the prbNum element of the cids list.
>>>>
>>>> The reason of the error message you are getting:
>>>> 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)
>>>>
>>>> is that you are passing only an int to SDWriter.write(), rather than a
>>>> mol and an int as the function expects.
>>>> What you need is:
>>>>
>>>> nMol = len(cids)
>>>> w = Chem.SDWriter('conf_output.sdf')
>>>>
>>>> for prbNum in range(0, nMol):
>>>>     prbMol = cids[prbNum]
>>>>     w.write(newMol3D, prbMol)
>>>> w.close()
>>>>
>>>> or, more simply:
>>>>
>>>> w = Chem.SDWriter('conf_output.sdf')
>>>>
>>>> for cid in cids:
>>>>     w.write(newMol3D, cid)
>>>> w.close()
>>>>
>>>> Cheers,
>>>> p.
>>>>
>>>> On 03/23/18 18:04, Felipe Trajtenberg wrote:
>>>>
>>>> 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,pruneR
>>>> msThresh=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 
>>>> listRdkit-discuss@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/rdkit-discuss
>>>>
>>>>
>>>>
>>>
>>> ------------------------------------------------------------
>>> ------------------
>>> 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
>>>
>>>
>>
>
> ------------------------------------------------------------
> ------------------
> 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
>
>
------------------------------------------------------------------------------
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

Reply via email to