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

Reply via email to