Drug Discovery & Precision Medicine
ServiceSales closed

Drug Discovery & Precision Medicine

(0 Ratings)
1
Sales for this product are now closed.
Free

Course Overview

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.


Learning Outcomes

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.


Curriculum Content

Week 1: Target Identification & Validation

•      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.


Week 2: QSAR Modelling & Cheminformatics

•      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.


Week 3: Virtual Screening

•      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.


Week 4: Pharmacogenomics & Precision Medicine

•      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.


Hands-On Practicals

# 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}")

Frequently bought together

© 2026 Noblekinmat Ltd. All Rights Reserved.

Powered By