Hi Jorgen,

use the MMFF94s variant of the forcefield if you wish to force trigonal nitrogens to be planar:

AllChem.MMFFOptimizeMolecule(m2, mmffVariant="MMFF94s")

More information here:

https://doi.org/10.1002/(SICI)1096-987X(199905)20:7%3C720::AID-JCC7%3E3.0.CO;2-X

Cheers,
p.

On 10/08/19 15:27, Jorgen Simonsen wrote:
Cheers Paolo,

It looks like that it keeps sp3 as the optimal geometry and not sp2.
The optimization did converge :

AllChem.MMFFOptimizeMolecule(m2,)

#returned 1

I think it is getting the types wrong or I have to specify the types?



On Tue, Oct 8, 2019 at 10:10 AM Paolo Tosco <paolo.tosco.m...@gmail.com <mailto:paolo.tosco.m...@gmail.com>> wrote:

    Hi Jorgen,

    optimizing your molecule geometry with UFF or MMFF should fix the
    problem:

    AllChem.UFFOptimizeMolecule(m2)

    or

    AllChem.MMFFFFOptimizeMolecule(m2)

    see rdkit.Chem.rdForceFieldHelpers.UFFOptimizeMolecule
    
<https://www.rdkit.org/docs/source/rdkit.Chem.rdForceFieldHelpers.html?highlight=optimize#rdkit.Chem.rdForceFieldHelpers.UFFOptimizeMolecule>
    or rdkit.Chem.rdForceFieldHelpers.MMFFOptimizeMolecule
    
<https://www.rdkit.org/docs/source/rdkit.Chem.rdForceFieldHelpers.html?highlight=optimize#rdkit.Chem.rdForceFieldHelpers.MMFFOptimizeMolecule>.

    Cheers,
    p.

    On 10/08/19 14:41, Jorgen Simonsen wrote:
    Hi all,

    I am trying to built 3D structures from SMILES which for most of
    the molecules works fine - I get the SMILES from pubchem
    ('canonical_smiles' and 'isomeric_smiles') but some of the
    molecules they hydrogens are not added correctly and are out of
    plane - e.g. amide group in ATP ( see below for an example or
    arginine in a peptide).

    I use the following code to generate the 3D structure :

    from rdkit import Chem
    from rdkit.Chem import AllChem
    m1 =
    
Chem.MolFromSmiles('C1=NC(=C2C(=N1)N(C=N2)C3C(C(C(O3)COP(=O)(O)OP(=O)(O)OP(=O)(O)O)O)O)N')

    m2 = Chem.AddHs(m1)
    AllChem.EmbedMolecule(m2)

    w = Chem.SDWriter('foo.sdf')
    w.write(m2)

    # or to mol file

    print(Chem.MolToMolBlock(m2),file=open('foo.mol','w+'))

    How to insure that the atomtype are correct ?

    Thanks in advance

    Best
    Jorgen











    _______________________________________________
    Rdkit-discuss mailing list
    Rdkit-discuss@lists.sourceforge.net
    <mailto:Rdkit-discuss@lists.sourceforge.net>
    https://lists.sourceforge.net/lists/listinfo/rdkit-discuss


_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to