Re: [Rdkit-discuss] EnumerateStereoisomers fails without notice after using MolStandardize.Standardizer()

2021-04-08 Thread Paolo Tosco
Hi Zhenting,

It looks like you need to reassign stereochemistry after calling
fragment_parent:

smi = 'CC(F)Cl'
mol1 = Chem.MolFromSmiles(smi)
s = MolStandardize.Standardizer()
mol2 = s.fragment_parent(mol1)
Chem.AssignStereochemistry(mol2, True, True, True)
mol3 = Chem.AddHs(mol2)

isomers1 = list(EnumerateStereoisomers(mol1))
print('{} isomers generated for mol1'.format(len(isomers1)))
isomers2 = list(EnumerateStereoisomers(mol2))
print('{} isomers generated for mol2'.format(len(isomers2)))
isomers3 = list(EnumerateStereoisomers(mol3))
print('{} isomers generated for mol3'.format(len(isomers3)))

2 isomers generated for mol1
2 isomers generated for mol2
2 isomers generated for mol3


Cheers,

p.


On Thu, Apr 8, 2021 at 12:11 PM Gao Zhenting  wrote:

> Dear group members,
>
> Before using RDkit to enumerate stereoisomers, I'd like to keep the
> largest fragment of input SMILES. However, when
> MolStandardize.Standardizer() is used to keep the largest fragment,
> EnumerateStereoisomers() does not generate the correct isomers and does not
> show error.
>
> Any idea?
>
> Please check the following code:
>
> smi = 'CC(F)Cl'
> mol1 = Chem.MolFromSmiles(smi)
> s = MolStandardize.Standardizer()
> mol2 = Chem.AddHs(s.fragment_parent(mol1))
>
> isomers1 = list(EnumerateStereoisomers(mol1))
> print('{} isomers generated for mol1'.format(len(isomers1)))
> isomers2 = list(EnumerateStereoisomers(mol2))
> print('{} isomers generated for mol2'.format(len(isomers2)))
>
> Output:
>
> 2 isomers generated for mol1
> 1 isomers generated for mol2
>
>
> Best regards
> Zhenting
> ___
> Rdkit-discuss mailing list
> Rdkit-discuss@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
>
___
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss


[Rdkit-discuss] EnumerateStereoisomers fails without notice after using MolStandardize.Standardizer()

2021-04-08 Thread Gao Zhenting
Dear group members,

Before using RDkit to enumerate stereoisomers, I'd like to keep the largest
fragment of input SMILES. However, when  MolStandardize.Standardizer() is
used to keep the largest fragment,  EnumerateStereoisomers() does not
generate the correct isomers and does not show error.

Any idea?

Please check the following code:

smi = 'CC(F)Cl'
mol1 = Chem.MolFromSmiles(smi)
s = MolStandardize.Standardizer()
mol2 = Chem.AddHs(s.fragment_parent(mol1))

isomers1 = list(EnumerateStereoisomers(mol1))
print('{} isomers generated for mol1'.format(len(isomers1)))
isomers2 = list(EnumerateStereoisomers(mol2))
print('{} isomers generated for mol2'.format(len(isomers2)))

Output:

2 isomers generated for mol1
1 isomers generated for mol2


Best regards
Zhenting
___
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss