I read document about RDKit for the first time in a while and found nice snippet.
A 3D Pharmacophore finger print can be caluclated very easily.
from rdkit import Chem, DataStructs, RDConfig from rdkit.Chem import AllChem from rdkit.Chem.Pharm2D import Gobbi_Pharm2D, Generate mol = Chem.MolFromSmiles( 'O=C2C(Cc1ccc(cc1)C(C(=O)O)C)CCC2' ) AllChem.EmbedMolecule( mol ) #gen 3d factory = Gobbi_Pharm2D.factroy #calc 3d p4 fp fp = Generate.Generate2DFingerPrint( mol, factory, dMat = Chem.Get3DDistanceMatrix(mol ) # dMat option is Key!
If dMat = None( default setting), fp means 2D Pharamcophore fingerprint, but now I passed dMat so the fingerprint has 3D information.
Now 3D pharmacophore fingerprint in hand, it means I can try to 3D QSAR or 3D fingerprint based filtering.
I’ll try to do it ASAP. 😉