A computational medicinal chemistry project analysing the chemical space of EGFR inhibitors, with emphasis on mutation-context potency, covalent-warhead annotation, physicochemical liabilities, and clinically recognisable EGFR inhibitor design.
This repository combines ChEMBL EGFR bioactivity records, RDKit molecular descriptors, rule-based mutation-context labelling, parent-fragment descriptor curation, covalent-warhead detection, and scaffold analysis to investigate how EGFR inhibitors balance potency, mutant selectivity, covalent mechanism, and drug-like property space.
The final report is available here:
The aim of this project is to examine how covalent and mutant-directed EGFR inhibitors differ from broader EGFR inhibitor chemical space, and to determine whether features such as covalent-warhead status, mutation-labelled assay context, scaffold class, and physicochemical profile are associated with reported EGFR potency.
The project does not simply rank compounds by IC50. Its focus is medicinal chemistry interpretation: how EGFR inhibitor design negotiates the competing demands of potency, mutation context, irreversible target engagement, wild-type sparing, resistance, and drug-like properties.
EGFR is a clinically important kinase target in oncology, particularly in non-small-cell lung cancer. Multiple generations of EGFR tyrosine kinase inhibitors have been developed in response to activating EGFR mutations and acquired resistance mechanisms.
First-generation inhibitors such as gefitinib and erlotinib are reversible ATP-competitive inhibitors. Second-generation inhibitors such as afatinib and dacomitinib introduced irreversible covalent inhibition through electrophilic warheads positioned to react with Cys797 in the EGFR ATP-binding site. Third-generation inhibitors such as osimertinib were developed to improve activity against sensitising EGFR mutations and T790M resistance while reducing wild-type EGFR liability.
This makes EGFR a strong case study for computational medicinal chemistry because potency values cannot be interpreted without considering mutation context, assay type, covalent mechanism, endpoint definition, and physicochemical plausibility.
- Which molecular properties distinguish potent EGFR inhibitors from weaker compounds in curated public bioactivity data?
- Are covalent-warhead-containing compounds enriched among high-potency EGFR inhibitor records?
- How do wild-type and mutation-labelled EGFR assay contexts differ in apparent potency distribution?
- What physicochemical liabilities appear as EGFR inhibitors are pushed toward high potency?
- Which Murcko scaffolds dominate curated EGFR inhibitor chemical space?
- Where do clinically recognisable EGFR inhibitors sit relative to the broader ChEMBL EGFR dataset?
- How much do assay heterogeneity, censored values, and repeated measurements limit interpretation?
Public bioactivity data are heterogeneous, so this project uses a layered data-curation workflow rather than treating all ChEMBL records as directly comparable.
The analysis distinguishes between:
- Raw ChEMBL activity records: direct ChEMBL export, saved unchanged for provenance.
- Cleaned labelled records: valid structures, nM potency values, endpoint labels, censoring flags, and rule-based EGFR mutation-context annotations.
- Descriptor-annotated records: RDKit descriptors, parent-fragment descriptors, covalent-warhead flags, and Bemis-Murcko scaffolds.
- Tier 1 primary analysis set: exact biochemical records only, restricted to plausible small-molecule EGFR inhibitor property space.
- Compound-context summary table: molecule-level summaries using median pActivity to reduce over-weighting from repeated assay records.
Censored values and unsuitable outliers are retained separately for transparency but excluded from primary quantitative figures.
mutant-selective-egfr-cheminformatics/
├── data/
│ ├── raw/ # Unmodified ChEMBL exports
│ ├── interim/ # Intermediate cleaned datasets
│ └── processed/ # Curated analysis-ready datasets
├── docs/ # Project notes and interpretation policy
├── figures/
│ ├── exploratory/ # Diagnostic figures
│ ├── scaffolds/ # Scaffold-analysis outputs
│ └── final/ # Report-ready figures
├── notebooks/ # Reproducible analysis notebooks
├── reports/ # Report outline and references
└── src/ # Reusable project functions
Run the notebooks in this order:
01_data_collection_chembl.ipynb
02_data_cleaning_and_mutation_labelling.ipynb
03_descriptor_generation_rdkit.ipynb
02B_primary_analysis_curation.ipynb
04_exploratory_analysis.ipynb
05_warhead_and_scaffold_analysis.ipynb
06_final_figures.ipynb
The 02B curation notebook is placed after descriptor generation because the primary analysis set depends on endpoint labels, censoring flags, assay type, parent-fragment descriptors, and property-based outlier filtering.
data/processed/egfr_cleaned_with_context_labels.csv
data/processed/egfr_activities_with_descriptors.csv
data/processed/egfr_activity_record_level_audited.csv
data/processed/egfr_primary_exact_binding_records.csv
data/processed/egfr_compound_context_summary_tier1.csv
data/processed/egfr_excluded_or_supplementary_records_for_review.csv
Primary quantitative analysis uses:
data/processed/egfr_primary_exact_binding_records.csv
Molecule-level interpretation uses:
data/processed/egfr_compound_context_summary_tier1.csv
Create the conda environment:
conda env create -f environment.yml
conda activate egfr-cheminformaticsThen launch Jupyter:
jupyter notebookIf using VS Code, select the egfr-cheminformatics interpreter before running the notebooks.
The analysis can identify associations between structure, potency, covalent-warhead status, and mutation-labelled assay context. It cannot by itself prove clinical selectivity, safety, residence time, irreversible target engagement, or therapeutic superiority.
The repository contains the data-extraction, cleaning, descriptor-generation, primary curation, exploratory-analysis, scaffold-analysis, and final-figure workflow. The next stage is final scientific report writing with RSC-style referencing.