Maybe when you have a toolkit as blazingly fast as RDKit it captures the chirality of N center before it has time to interconvert....
-P. On Wed, Aug 19, 2015 at 10:17 PM, John M <[email protected]> wrote: > More odd is the carbon stereocentre with two methyls... > > Generally trivalent nitrogens are not considered chiral due to inversion > of the lone-pair. The two usual exceptions are when they are a bridgehead > or in a tight ring (cyclopropane). This is the same in most toolkits, the > InChI technical documentation provides useful examples. > > InChI actually only sees one stereo centre since it strips the proton off: > > InChI=1S/C13H26N2/c1-4-14-8-5-12(6-9-14)15-10-7-13(15)11(2)3/h11-13H,4-10H2,1-3H3/p+1/t13-/m1/s1 > > It may well be chiral in this case but since it's not you should also > strictly remove the other stereocentre in the para position to the nitrogen > > For the record just tested and ChemAxon/CDK/OpenBabel do the same. > > John > > Regards, > John W May > [email protected] > > On 19 August 2015 at 09:00, 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 > >
------------------------------------------------------------------------------
_______________________________________________ Rdkit-discuss mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

