[Rdkit-discuss] chirality assignment

2017-02-06 Thread Suzuki, Rintarou
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.

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
-


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 = 1, 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?


Regards,
Rintarou


Suzuki, Rintarou
National Agriculture and Food Research Organization
Tsukuba, Japan

--
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


Re: [Rdkit-discuss] chirality assignment

2017-02-07 Thread Suzuki, Rintarou
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 = 1, confId=0)
>>>>> ff = AllChem.UFFGetMoleculeForceField( m, confId = 0 )
>>>>> ff.Minimize