Hi Greg, Thanks for your quick response. I look forward to more flexible version of the command.
For the second point, atoms 6 and 8 can be inverted by RDKit_2015_03_1. RDKit_2015_03_1 --------------------------------- >>> mol=Chem.MolFromSmiles('C1[C@H]2[C@@H]3O[C@@H]3[C@@H]1[C@]13O[C@]21[C@@H]1C[C@H]3[C@@H]2O[C@@H]21') >>> m=Chem.AddHs(mol) >>> Chem.FindMolChiralCenters( copy(m), includeUnassigned=True ) [(1, 'S'), (2, 'S'), (4, 'R'), (5, 'R'), (6, 'S'), (8, 'S'), (9, 'R'), (11, 'S'), (12, 'S'), (14, 'R')] >>> AllChem.EmbedMolecule( m, randomSeed = 256, maxAttempts = 1, clearConfs = >>> False ) 0 >>> Chem.MolToSmiles(Chem.RemoveHs(m), isomericSmiles=True) 'C1[C@H]2[C@@H]3O[C@@H]3[C@@H]1[C@]13O[C@]21[C@@H]1C[C@H]3[C@@H]2O[C@@H]21' --------------------------------- This conformation is different from that of 'C1[C@H]2[C@@H]3O[C@@H]3[C@@H]1[C@@]13O[C@@]21[C@@H]1C[C@H]3[C@@H]2O[C@@H]21' in previous mail. It is strange at first glance that such atoms on the axis of symmetry have chirality. But RDKit judges atoms 6 and 8 as achiral in the following two isomers with lower symmetry. C1[C@@H]2[C@@H]3O[C@@H]3[C@H]1C13OC21[C@@H]1C[C@H]3[C@H]2O[C@H]21 C1[C@@H]2[C@H]3O[C@H]3[C@H]1C13OC21[C@@H]1C[C@H]3[C@@H]2O[C@@H]21 Rigards, Rintarou On 2017/02/07 14:42, Greg Landrum wrote: > Hi Rintarou, > > On Tue, Feb 7, 2017 at 6:23 AM, Suzuki, Rintarou <rsuz...@affrc.go.jp> > wrote: > >> Dear All, >> >> I'm generating conformation of a molecule: >> >> C1C2C3OC3C1C13OC21C1CC3C2OC21 >> >> >> This molecule has many chiral centers and 10 possible isomers. >> >> EmbedMolecule command of RDKit_2015_03_1 can generate every isomer but >> RDKit_2016_09_3 fails in 9 of 10. >> > > There are two things going on here. > > In the first case: > > >> For example, >> >> RDKit_2015_03_1 >> --------------------------------- >>>>> mol=Chem.MolFromSmiles('C1[C@H]2[C@@H]3O[C@@H]3[C@@H]1[C@@]13O[C@ >> @]21[C@@H]1C[C@H]3[C@@H]2O[C@@H]21') >>>>> Chem.FindMolChiralCenters( copy(m), includeUnassigned=True ) >> >> [(1, 'S'), (2, 'S'), (4, 'R'), (5, 'R'), (6, 'R'), (8, 'R'), (9, 'R'), >> (11, 'S'), (12, 'S'), (14, 'R')] >> >>>>> m=Chem.AddHs(mol) >>>>> AllChem.EmbedMolecule( m, randomSeed = 256, maxAttempts = 1, >> clearConfs = False ) >> >> 0 >> --------------------------------- >> >> >> RDKit_2016_09_3 >> --------------------------------- >>>>> mol=Chem.MolFromSmiles('C1[C@H]2[C@@H]3O[C@@H]3[C@@H]1[C@@]13O[C@ >> @]21[C@@H]1C[C@H]3[C@@H]2O[C@@H]21') >>>>> m=Chem.AddHs(mol) >>>>> Chem.FindMolChiralCenters( copy(m), includeUnassigned=True ) >> >> [(1, 'S'), (2, 'S'), (4, 'R'), (5, 'R'), (6, 'R'), (8, 'R'), (9, 'R'), >> (11, 'S'), (12, 'S'), (14, 'R')] >> >>>>> AllChem.EmbedMolecule( m, randomSeed = 256, maxAttempts = 100, >> clearConfs = False ) >> >> -1 >> > > I will need to check, but this is likely due to one of the checks added in > the last release that was designed to prevent ugly structures in systems > like this one. It looks like those checks are a bit too strict and need to > be made more flexible (or, likely better, you should be able to turn them > off) I'll add something for that. Thanks for reporting the problem. > > --------------------------------- >> >> >> Two chiral centers in this molecule are stereo-dependent (6th and 8th >> atoms). >> Conformation of molecule without assignment for these atoms can be >> generated, but the chiralities remain unassigned. >> >> RDKit_2016_09_3 >> --------------------------------- >>>>> mol=Chem.MolFromSmiles('C1[C@H]2[C@@H]3O[C@@H]3[C@@H]1C13OC21[C@ >> @H]1C[C@H]3[C@@H]2O[C@@H]21') >>>>> Chem.FindMolChiralCenters( copy(m), includeUnassigned=True ) >> >> [(1, 'S'), (2, 'S'), (4, 'R'), (5, 'R'), (6, '?'), (8, '?'), (9, 'R'), >> (11, 'S'), (12, 'S'), (14, 'R')] >> >>>>> m=Chem.AddHs(mol) >>>>> AllChem.EmbedMolecule( m, randomSeed = 256, maxAttempts = 100, >> clearConfs = False ) >> >> 0 >> >>>>> Chem.AssignAtomChiralTagsFromStructure(m) >>>>> Chem.FindMolChiralCenters( copy(m), includeUnassigned=True ) >> >> [(1, 'S'), (2, 'S'), (4, 'R'), (5, 'R'), (6, '?'), (8, '?'), (9, 'S'), >> (11, 'R'), (12, 'S'), (14, 'R')] >> >>>>> opt = AllChem.UFFOptimizeMolecule( m, maxIters = 10000, confId=0) >>>>> ff = AllChem.UFFGetMoleculeForceField( m, confId = 0 ) >>>>> ff.Minimize() >> >> 0 >> >>>>> Chem.AssignAtomChiralTagsFromStructure(m) >>>>> Chem.FindMolChiralCenters( copy(m), includeUnassigned=True ) >> >> [(1, 'S'), (2, 'S'), (4, 'R'), (5, 'R'), (6, '?'), (8, '?'), (9, 'R'), >> (11, 'S'), (12, 'S'), (14, 'R')] >> --------------------------------- >> >> How can I assign chiralities of these atoms in RDKit_2016_09_3? >> > > I believe that the current behavior is correct. Atoms 6 and 8 are not > chiral due to the dependent stereochemistry. What would you expect to > happen? > > -greg > -- ---------------------------------------------------------------------- 鈴木倫太郎 E-mail: rsuz...@affrc.go.jp Tel: 029-838-7900 / Fax: 029-838-7408 国立研究開発法人 農業・食品産業技術総合研究機構 高度解析センター 生体高分子解析チーム 〒305-8602 茨城県つくば市観音台2-1-2 4月より、所属、メールアドレスが変わりました。 旧所属 国立研究開発法人 農業生物資源研究所 農業生物先端ゲノム研究センター 生体分子研究ユニット E-mail:rsuz...@nias.affrc.go.jp ---------------------------------------------------------------------- ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ Rdkit-discuss mailing list Rdkit-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rdkit-discuss