-
I want to check if a pair of isomers are enantiomers. An examples is below. mol4_1 = "C[C@@H](/C=C\C[C@H](Br)C)C(O)=O"
mol4_2 = "C[C@@H](C(O)=O)/C=C\C[C@H](C)Br" My thought is as follows: First find the chiral center indexes and their chiral tags, then comparing the tags of the same atoms. If all chiral centers have opposite chiral tags, then this pair of isomer is a pair of enantiomers. However, the indexes of corresponding atoms in the two isomers are different. For this example, the indexes and chiral tags are print(Chem.FindMolChiralCenters(Chem.MolFromSmiles(mol4_1), useLegacyImplementation=False)) # output [(1, 'S'), (5, 'R')]
print(Chem.FindMolChiralCenters(Chem.MolFromSmiles(mol4_2), useLegacyImplementation=False)) # output [(1, 'R'), (8, 'S')] Does anyone have ideas about identifying enantiomers? That would be super helpful. Thanks in advance! My rdkit version is as follows: (py39) tmpry$mamba list rdkit
# packages in environment at /Users/liu5/miniforge3/envs/py39:
#
# Name Version Build Channel
rdkit 2023.03.3 py39h40f44b6_1 conda-forge |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 2 replies
-
@LiuCMU Converting both SMILES to their canonical form and then checking that both molecules are chiral and that all their parities are opposite should work.
|
Beta Was this translation helpful? Give feedback.
-
You should probably also check that their non isomeric smiles are the same as well:
|
Beta Was this translation helpful? Give feedback.
@LiuCMU Converting both SMILES to their canonical form and then checking that both molecules are chiral and that all their parities are opposite should work.