Hi Rob,

The results below are quite strange. As John has already pointed out: there
really shouldn't be chirality present on either the N+ or the C that has
two methyls attached.

I tried to reproduce the problem by running corina myself using the same
command-line options you provided (from SMILES instead of SDF, but I don't
think that should make a difference), but I get sensible results;

In [5]: s = Chem.SDMolSupplier('sample.sdf')

In [6]: for m in s:
    Chem.AssignAtomChiralTagsFromStructure(m)
    Chem.AssignStereochemistry(m,cleanIt=True,force=True)
   ...:     print Chem.MolToSmiles(m,True)
   ...:
CCN1CCC([N@@H+]2CC[C@@H]2C(C)C)CC1
CCN1CCC([N@@H+]2CC[C@@H]2C(C)C)CC1
CCN1CCC([N@H+]2CC[C@@H]2C(C)C)CC1
CCN1CCC([N@H+]2CC[C@@H]2C(C)C)CC1
CCN1CCC([N@@H+]2CC[C@H]2C(C)C)CC1
CCN1CCC([N@@H+]2CC[C@H]2C(C)C)CC1
CCN1CCC([N@H+]2CC[C@H]2C(C)C)CC1
CCN1CCC([N@H+]2CC[C@H]2C(C)C)CC1

In [7]: s = Chem.SDMolSupplier('sample.sdf')

In [8]: for m in s:
    Chem.AssignAtomChiralTagsFromStructure(m)
    print Chem.MolToSmiles(m,True)
   ...:
CCN1CCC([N@@H+]2CC[C@@H]2C(C)C)CC1
CCN1CCC([N@@H+]2CC[C@@H]2C(C)C)CC1
CCN1CCC([N@H+]2CC[C@@H]2C(C)C)CC1
CCN1CCC([N@H+]2CC[C@@H]2C(C)C)CC1
CCN1CCC([N@@H+]2CC[C@H]2C(C)C)CC1
CCN1CCC([N@@H+]2CC[C@H]2C(C)C)CC1
CCN1CCC([N@H+]2CC[C@H]2C(C)C)CC1
CCN1CCC([N@H+]2CC[C@H]2C(C)C)CC1


Could you please send the SDF that corina generates so I can try to
reproduce the problem (or at least try to understand what's gong on) from
that?

Thanks,
-greg

On Wed, Aug 19, 2015 at 3:00 PM, Rob Smith <[email protected]> wrote:

> Dear RDKit community,
>
> I'm trying to use RDKit to read in Corina generated stereoisomers (from a
> Mol file), assign chiral tags and stereochemistry to the structure and
> output the canonical smiles string for each isomer of a given molecule (in
> Python), when I do this, half the canonical smiles strings are not unique.
>
> When I read in the output from Corina into an Indigo instance, then use
> the canonical smiles from Indigo to create an RDKit molecule, canonical
> smiles strings generated from the molecule objects are all unique.
>
> I may be missing an option to enable RDKit to 'visualise' the chiral
> centre adjacent to the protonated nitrogen, so if someone can spot where
> I've made a mistake, I'd really appreciate it. I've included the output and
> Python script below. If you require any further information, please let me
> know.
>
> Many thanks,
> Rob
>
> Output:
>
> RDKit Read in of Molecule
> RDKit Output -  CCN1CC[C@@H]([N@@H+]2CC[C@@H]2[C@H](C)C)CC1
> RDKit Output -  CCN1CC[C@@H]([N@@H+]2CC[C@@H]2[C@H](C)C)CC1
> RDKit Output -  CCN1CC[C@@H]([N@H+]2CC[C@@H]2[C@H](C)C)CC1
> RDKit Output -  CCN1CC[C@@H]([N@H+]2CC[C@@H]2[C@H](C)C)CC1
> RDKit Output -  CCN1CC[C@@H]([N@@H+]2CC[C@H]2[C@H](C)C)CC1
> RDKit Output -  CCN1CC[C@@H]([N@@H+]2CC[C@H]2[C@H](C)C)CC1
> RDKit Output -  CCN1CC[C@@H]([N@H+]2CC[C@H]2[C@H](C)C)CC1
> RDKit Output -  CCN1CC[C@@H]([N@H+]2CC[C@H]2[C@H](C)C)CC1
>
> INDIGO Read in of Molecule
> RDKit Output -  CC[N@]1CC[C@@H]([N@@H+]2CC[C@@H]2C(C)C)CC1
> RDKit Output -  CC[N@]1CC[C@H]([N@@H+]2CC[C@@H]2C(C)C)CC1
> RDKit Output -  CC[N@]1CC[C@@H]([N@H+]2CC[C@@H]2C(C)C)CC1
> RDKit Output -  CC[N@]1CC[C@H]([N@H+]2CC[C@@H]2C(C)C)CC1
> RDKit Output -  CC[N@]1CC[C@@H]([N@@H+]2CC[C@H]2C(C)C)CC1
> RDKit Output -  CC[N@]1CC[C@H]([N@@H+]2CC[C@H]2C(C)C)CC1
> RDKit Output -  CC[N@]1CC[C@@H]([N@H+]2CC[C@H]2C(C)C)CC1
> RDKit Output -  CC[N@]1CC[C@H]([N@H+]2CC[C@H]2C(C)C)CC1
>
> Python script :
>
> from rdkit import Chem
> import subprocess # Used to run Corina
> from indigo import *
>
> def runCorinaTest(inputMol):
>     indigo = Indigo()
>
>     molFile = Chem.MolToMolBlock(inputMol)
>
>     corinaCommand = "echo \'" + molFile + "\' | "
>     # Then Corina - generate stereoisomers...
>     corinaCommand = corinaCommand + "/apps/corina/corina -t n -d
> canon,stergen,preserve,names,wh,flapn,msc=7,msi=128 -i t=sdf"
>     corinaResult = subprocess.check_output([corinaCommand], shell=True) #
> Gives the stereoisomer species as an SDF string
>
>     allMoleculeObjects = []
>     allMolecules = corinaResult.split("$$$$\n") # Separate Corina output
> into individual molecules
>     allMolecules = allMolecules[0:len(allMolecules)-1]
>
>     print("RDKit Read in of Molecule")
>
>     for eachMolecule in allMolecules:
>         eachMolecule = eachMolecule + "$$$$\n"
>         mol = Chem.MolFromMolBlock(eachMolecule, sanitize=True,
> removeHs=True, strictParsing=False)
>         Chem.rdmolops.AssignAtomChiralTagsFromStructure(mol,
> replaceExistingTags=True)
>         Chem.rdmolops.AssignStereochemistry(mol)
>         print("RDKit Output -  " + Chem.MolToSmiles(mol,
> isomericSmiles=True))
>
>     print("INDIGO Read in of Molecule")
>     for eachMolecule in allMolecules:
>         eachMolecule = eachMolecule + "$$$$\n"
>         mol = indigo.loadMolecule(eachMolecule)
>         # print("Indigo Output - " + mol.canonicalSmiles())
>         # Use Indigo Canonical Smiles to create RDKit molecule
>         mol = Chem.MolFromSmiles(mol.canonicalSmiles())
>         if mol is not None:
>             print("RDKit Output -  " + Chem.MolToSmiles(mol,
> isomericSmiles=True))
>
>     return 0
>
> mol = Chem.MolFromSmiles("CC(C)C1[NH+](C2CCN(CC)CC2)CC1")
> z = runCorinaTest(mol)
>
>
> ------------------------------------------------------------------------------
>
> _______________________________________________
> Rdkit-discuss mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
>
>
------------------------------------------------------------------------------
_______________________________________________
Rdkit-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to