
This course applies bioinformatics tools to the drug discovery pipeline and precision medicine applications. Students learn target identification, virtual screening, QSAR modelling, and pharmacogenomics analysis — skills in high demand in pharmaceutical companies, biotech startups, and academic drug discovery labs globally.
1. Identify and validate drug targets using genomics and proteomics data.
2. Build and validate QSAR models for bioactivity prediction using RDKit and scikit-learn.
3. Execute virtual screening campaigns and rank compounds by predicted binding affinity.
4. Analyse pharmacogenomics data from TCGA and GDSC to identify biomarkers of drug response.
• Drug target classes: enzymes, GPCRs, ion channels, nuclear receptors, protein-protein interactions.
• Target identification strategies: phenotypic screening data analysis, GWAS-derived targets (Mendelian randomisation), proteomics of disease tissues.
• Target validation: genetic association (loss-of-function variants), essentiality databases (DepMap), druggability assessment (ChEMBL target report).
• ChEMBL database: bioactivity data (IC50, Ki, Kd, EC50), assay descriptions, molecular descriptors.
• Molecular descriptors: fingerprints (Morgan/ECFP, MACCS keys), physicochemical properties (MW, logP, TPSA, H-bond donors/acceptors), 3D descriptors.
• Lipinski's Rule of Five and drug-likeness: oral bioavailability prediction, ADMET properties.
• QSAR model building: random forest and SVM on fingerprint features; model validation (cross-validation, test set, applicability domain).
• RDKit: molecule reading/writing (SMILES, SDF), fingerprint computation, descriptor calculation, similarity search.
• Virtual screening pipeline: target preparation → library preparation → docking → ADMET filtering → hit selection.
• Compound libraries: ZINC database (commercially available), DrugBank (approved drugs, repurposing), Enamine building blocks.
• Rescoring and post-docking analysis: MM-GBSA rescoring; pharmacophore filtering; pan-assay interference compound (PAIN) filter.
• Molecular dynamics (MD) basics: GROMACS/AMBER setup; trajectory analysis; binding free energy calculation.
• Pharmacogenomics: PGx variants (CYP2D6, CYP2C19, TPMT, DPYD); PharmGKB annotations; clinical actionability.
• TCGA analysis: somatic mutation profiles, copy number variation, expression subtypes, patient survival analysis.
• GDSC (Genomics of Drug Sensitivity in Cancer): drug response (IC50) correlated with genomic features; biomarker identification.
• Precision oncology case studies: BRCA1/2 and PARP inhibitors, EGFR mutations and tyrosine kinase inhibitors, MSI-H and pembrolizumab.
# QSAR model building with RDKit and scikit-learn
from rdkit import Chem
from rdkit.Chem import AllChem, Descriptors
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score
import pandas as pd, numpy as np
# Load ChEMBL bioactivity data (IC50 for target of interest)
df = pd.read_csv("chembl_bioactivity.csv")
# Compute Morgan fingerprints (radius=2, nBits=2048)
def get_fingerprint(smiles):
mol = Chem.MolFromSmiles(smiles)
if mol: return list(AllChem.GetMorganFingerprintAsBitVect(mol, 2, 2048))
return None
df["fp"] = df["smiles"].apply(get_fingerprint)
df = df.dropna(subset=["fp"])
# Binary classification: active (IC50 <= 1000 nM) vs inactive
df["active"] = (df["IC50_nM"] <= 1000).astype(int)
X = np.array(df["fp"].tolist())
y = df["active"].values
# Random Forest with 5-fold CV
rf = RandomForestClassifier(n_estimators=200, random_state=42)
scores = cross_val_score(rf, X, y, cv=5, scoring="roc_auc")
print(f"Mean AUC-ROC: {scores.mean():.3f} ± {scores.std():.3f}")