In the paper: "Graph Networks as a Universal Machine Learning Framework for Molecules and Crystals", authors introduce chirality as an atom feature input to analyze QM9 dataset. I was trying to recreate this atom feature as following
Chirality: (categorical) R, S, or not a Chiral center (one-hot encoded).
The code I used is:
from chainer_chemistry import datasets
from chainer_chemistry.dataset.preprocessors.ggnn_preprocessor import GGNNPreprocessor
from rdkit import Chem
import numpy as np
dataset, dataset_smiles = datasets.get_qm9(GGNNPreprocessor(), return_smiles=True)
for i in range(len(dataset_smiles)):
mol = Chem.MolFromSmiles(dataset_smiles[i])
Chem.AssignAtomChiralTagsFromStructure(mol)
chiral_cc = Chem.FindMolChiralCenters(mol)
if not len(chiral_cc) == 0:
print(chiral_cc)
The output shows no Chiral centers for this dataset. When I use includeUnassigned=True
, code gives a list of tuples, but instead of "R/S", I get "?". I was wondering if there is a mistake in my implementation. If this is expected, any thoughts on how chirality was assigned in the above paper?