[Rdkit-discuss] EmbedMultipleConfs & enforceChirality
Hi RDKitters, I've been playing around with the EmbedMultipleConfs function (in the 2016.03.3 version of RDKit), to generate conformers for some molecules, and have come across something that may be a bug/typo. When I've been using the enforceChirality tag - it appeared to do the reverse of what I thought it would, ie setting this to True meant that any existing chirality in the molecule was ignored (and was scrambled), setting it to False meant the chirality was kept consistent with the originating molecule. Is this expected behaviour? (and hence am I reading the documentation wrong at http://www.rdkit.org/Python_Docs/rdkit.Chem.rdDistGeom-module.html#EmbedMultipleConfs ) Thanks, Rob -- ___ Rdkit-discuss mailing list Rdkit-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
Re: [Rdkit-discuss] Stereochemistry Perception
Thank you very much Peter & Peter. The result makes perfect sense now. As I suspected, I did miss something obvious - the mirror plane. Best regards, Rob On Fri, May 27, 2016 at 3:14 PM, Peter Gedeck <peter.ged...@gmail.com> wrote: > Hello Rob > > The compound is not chiral. There is a mirror plane that contains the > 5-ring and the C-NH3 bond. There is a cis / trans stereoisomers here like > in 1,4-dichloro-cyclohexane. That cannot be defined using the @symbols. > However I cannot tell you how to do this for cases like this in SMILES. > > Best > > Peter > On Fri, 27 May 2016 at 21:38, Rob Smith <robtsm...@gmail.com> wrote: > >> Hi all, >> >> I know there's been a lot of discussion about stereochemistry in RDKit, >> and I don't really want to open the can of worms particularly, but I would >> appreciate gaining a little more understanding to help explain an >> observation I've had (and it could be I've missed something really obvious). >> >> If I run the following Python RDKit code: >> >> from rdkit.Chem import AllChem as Chem >> >> AllMolecules = Chem.MolFromSmiles('CC[C@@]1(NC)CC[C@H](N)CC1.N[C@ >> @H]1CC[C@]2(CC1)CCCN2.N[C@H]1CCC[C@@]2(C1)CCCN2.N[C@H]2[C@@]12CCCN1') >> molecules = Chem.GetMolFrags(AllMolecules, asMols=True) >> for eachMolecule in molecules: >> print(Chem.MolToSmiles(eachMolecule, isomericSmiles=True)) >> >> The output I get is: >> CC[C@]1(NC)CC[C@@H](N)CC1 >> NC1CCC2(CCCN2)CC1 >> N[C@H]1CCC[C@]2(CCCN2)C1 >> N[C@H]1[C@]12CCCN2 >> >> The second molecule appears to be perceived as having no steroechemistry, >> however when a bond is broken in the pyrollidine to remove the spirocentre >> (the first molecule), the molecule is perceived as having stereochemistry. >> Also moving the pyrollidine spiro centre away from the 4 position of the >> cyclohexyl ring appears to enable the stereocentre to be 'perceived'. >> >> Thanks in advance for your help, >> >> Kind regards, >> >> Rob >> >> -- >> What NetFlow Analyzer can do for you? Monitors network bandwidth and >> traffic >> patterns at an interface-level. Reveals which users, apps, and protocols >> are >> consuming the most bandwidth. Provides multi-vendor support for NetFlow, >> J-Flow, sFlow and other flows. Make informed decisions using capacity >> planning reports. >> https://ad.doubleclick.net/ddm/clk/305295220;132659582;e >> ___ >> Rdkit-discuss mailing list >> Rdkit-discuss@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss >> > -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e___ Rdkit-discuss mailing list Rdkit-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
[Rdkit-discuss] Stereochemistry Perception
Hi all, I know there's been a lot of discussion about stereochemistry in RDKit, and I don't really want to open the can of worms particularly, but I would appreciate gaining a little more understanding to help explain an observation I've had (and it could be I've missed something really obvious). If I run the following Python RDKit code: from rdkit.Chem import AllChem as Chem AllMolecules = Chem.MolFromSmiles('CC[C@@]1(NC)CC[C@H](N)CC1.N[C@@H]1CC[C@ ]2(CC1)CCCN2.N[C@H]1CCC[C@@]2(C1)CCCN2.N[C@H]2[C@@]12CCCN1') molecules = Chem.GetMolFrags(AllMolecules, asMols=True) for eachMolecule in molecules: print(Chem.MolToSmiles(eachMolecule, isomericSmiles=True)) The output I get is: CC[C@]1(NC)CC[C@@H](N)CC1 NC1CCC2(CCCN2)CC1 N[C@H]1CCC[C@]2(CCCN2)C1 N[C@H]1[C@]12CCCN2 The second molecule appears to be perceived as having no steroechemistry, however when a bond is broken in the pyrollidine to remove the spirocentre (the first molecule), the molecule is perceived as having stereochemistry. Also moving the pyrollidine spiro centre away from the 4 position of the cyclohexyl ring appears to enable the stereocentre to be 'perceived'. Thanks in advance for your help, Kind regards, Rob -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e___ Rdkit-discuss mailing list Rdkit-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
[Rdkit-discuss] Stereochemistry - Differences between RDKit Indigo
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 Rdkit-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rdkit-discuss