Chapter 8: Small Molecule Cheminformatics & Chemical Databases
Chapter 8: Small Molecule Cheminformatics & Chemical Databases
Structure-based drug design requires representing small molecule drug candidates in computational formats. Cheminformatics provides the algorithms and mathematical graph representations needed to search chemical space, evaluate drug-likeness, and calculate molecular fingerprints.
Chemical Notation: SMILES & InChIKey
- SMILES (Simplified Molecular Input Line Entry System): Human-readable ASCII string representing molecular graph connectivity (e.g. Aspirin:
CC(=O)Oc1ccccc1C(=O)O). - InChIKey: Fixed-length 27-character SHA-256 hashed unique chemical digital identifier (e.g.
BSYNRYMUTXBXSQ-UHFFFAOYSA-N).
1. Cheminformatics with RDKit in Python
from rdkit import Chem
from rdkit.Chem import Descriptors, Lipinski, AllChem
# Parse SMILES string into an RDKit Mol object
aspirin = Chem.MolFromSmiles("CC(=O)Oc1ccccc1C(=O)O")
# Calculate physicochemical properties
mw = Descriptors.MolWt(aspirin) # Molecular Weight: 180.16 g/mol
logp = Descriptors.MolLogP(aspirin) # Octanol-water partition coefficient: 1.31
hbd = Lipinski.NumHDonors(aspirin) # Hydrogen bond donors: 1
hba = Lipinski.NumHAcceptors(aspirin) # Hydrogen bond acceptors: 3
tpsa = Descriptors.TPSA(aspirin) # Topological Polar Surface Area: 63.6 A^2
# Lipinski's Rule of 5 Check (Oral Bioavailability)
is_drug_like = (mw <= 500) and (logp <= 5) and (hbd <= 5) and (hba <= 10)
print(f"Drug-like: {is_drug_like}")
# Generate Morgan Circular Fingerprint (ECFP4 equivalent)
fp = AllChem.GetMorganFingerprintAsBitVect(aspirin, radius=2, nBits=2048)2. Major Chemical Databases
- ChEMBL: Curated database of bioactive molecules with quantitative binding affinities (IC50, Ki, Kd) against biological targets.
- PubChem: Massive repository of >110 million chemical substances and biological assay results.
- ZINC20: Curated collection of >1 billion commercially available compounds ready for virtual screening.