SKILL.md
Version Compatibility
Reference examples tested with: RDKit 2024.03+, numpy 1.26+, pandas 2.2+
Before using code patterns, verify installed versions match. If versions differ:
- Python:
pip show <package>thenhelp(module.function)to check signatures
If code throws ImportError, AttributeError, or TypeError, introspect the installed package and adapt the example to match the actual API rather than retrying.
Molecular Descriptors
"Calculate molecular fingerprints for my compound library" → Compute structural fingerprints (Morgan/ECFP, MACCS keys) and physicochemical descriptors (Lipinski, QED, TPSA) for molecules, producing feature vectors for similarity analysis or ML models.
- Python:
AllChem.GetMorganFingerprintAsBitVect(),Descriptors.MolWt(),QED.qed()(RDKit)
Calculate fingerprints and physicochemical properties for molecules.
Morgan Fingerprints (ECFP)
Goal: Generate circular fingerprints that encode local chemical environments for similarity searching and ML models.
Approach: Use GetMorganFingerprintAsBitVect with a chosen radius (2 for ECFP4, 3 for ECFP6) and bit length, optionally including chirality information.
from rdkit import Chem
from rdkit.Chem import AllChem
mol = Chem.MolFromSmiles('CCO')
# ECFP4 = radius 2 (diameter = 2 * radius + 2 = 6)
# ECFP6 = radius 3 (diameter = 8)
ecfp4 = AllChem.GetMorganFingerprintAsBitVect(mol, radius=2, nBits=2048)
ecfp6 = AllChem.GetMorganFingerprintAsBitVect(mol, radius=3, nBits=2048)
# With stereochemistry information
ecfp4_chiral = AllChem.GetMorganFingerprintAsBitVect(
mol, radius=2, nBits=2048, useChirality=True
)
# As count vector (for some ML methods)
ecfp4_counts = AllChem.GetMorganFingerprint(mol, radius=2)
# Convert to numpy array
import numpy as np
fp_array = np.array(ecfp4)
MACCS Keys
from rdkit.Chem import MACCSkeys
maccs = MACCSkeys.GenMACCSKeys(mol) # 167 bits
# As numpy array
maccs_array = np.array(maccs)
