# Lipinski rule of five violations among approved drugs

Data behind the ProteinIQ guide [Lipinski's rule of five](https://proteiniq.io/guides/lipinski-rule-of-five).

Last checked: October 29, 2026. We plan to rerun the analysis after each new ChEMBL release.

## Files

- `approved-drugs-ro5.csv`: one row per approved drug (2,104 rows) with its ChEMBL ID, name, first approval year, route flags, ATC class, rule-of-five properties, violation counts under two donor and acceptor definitions and Veber properties. Structures (SMILES) are in the [approved drug library](https://proteiniq.io/datasets/small-molecule-drugs) under the same ChEMBL IDs.
- `summary.json`: every aggregate quoted in the guide, including the counts by decade, route and drug class, and comparisons over the same windows as published analyses.
- `analyze.py`: the script that produced both files. It is a copy of `scripts/lipinski-ro5-chembl.py` in the ProteinIQ repository.

## Source and population

ChEMBL release 37 (ChEMBL_37, released May 1, 2026), read through the ChEMBL REST API on October 29, 2026. We took every molecule with `max_phase` 4, which ChEMBL uses for compounds approved in at least one jurisdiction it tracks, and collapsed salts, hydrates and solvates into their ChEMBL parent compound (2,996 parents).

We kept parents that ChEMBL types as small molecules, plus structurally defined peptides and oligosaccharides of at most 900 Da typed as protein, oligosaccharide or unknown. We excluded biologics, parents without a structure, structures without carbon or flagged inorganic, structures with metals or other elements outside H, B, C, N, O, F, Si, P, S, Cl, Se, Br and I, and parents with several disconnected components. This leaves 2,104 drugs, the same set as ProteinIQ's [approved drug library](https://proteiniq.io/datasets/small-molecule-drugs). Cyclic peptides above 900 Da, such as cyclosporine, and drugs without a single defined structure, such as ivermectin, are therefore not counted.

## Definitions

All properties were recalculated with RDKit 2025.03.5 from the ChEMBL parent structure.

| Column | Definition |
|---|---|
| `mw` | Average molecular weight of the neutral parent (Da) |
| `clogp` | Wildman–Crippen logP. Lipinski used CLogP above 5 or MLogP above 4.15; neither is available in RDKit |
| `hbd`, `hba` | Lipinski's counts: OH plus NH groups, and N plus O atoms |
| `ro5_violations` | Number of MW > 500, cLogP > 5, `hbd` > 5 and `hba` > 10 (0 to 4) |
| `ro5_alert` | Two or more violations, the point at which Lipinski said poor absorption or permeation is more likely |
| `hbd_rdkit`, `hba_rdkit`, `ro5_violations_rdkit` | The same rule with RDKit's pharmacophore donors and acceptors, the definition ChEMBL and many calculators use |
| `oral`, `parenteral`, `topical` | ChEMBL route flags on the parent or any of its salts. ChEMBL sets no route for 321 of these drugs, mostly ones approved outside the US |
| `first_approval` | Earliest ChEMBL first approval year across the parent and its salts; 1,805 drugs have one, the latest is 2024 |
| `atc_level2`, `therapeutic_class` | Most common ATC level 2 group across the drug's ATC codes |
| `kinase_inhibitor` | Any ATC code in L01E (protein kinase inhibitors, which include the mTOR inhibitors) |
| `largest_ring`, `macrocycle` | Size of the largest ring in the smallest set of smallest rings; macrocycle means 12 or more atoms |
| `tpsa`, `rotatable_bonds`, `veber_pass` | Topological polar surface area, rotatable bonds, and whether TPSA ≤ 140 Å² and rotatable bonds ≤ 10 |
| `chembl_num_ro5_violations` | ChEMBL's own precomputed value, blank where ChEMBL gives none |

## Reproduce

```bash
python scripts/lipinski-ro5-chembl.py --cache-dir /tmp/lipinski-ro5
```

The script caches ChEMBL responses in the cache directory. Delete it to read a new release.

## License

ChEMBL is licensed under [CC BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/), so these files are shared under the same license. Please credit ChEMBL (Zdrazil et al., Nucleic Acids Research, 2024) and ProteinIQ, with a link to https://proteiniq.io/guides/lipinski-rule-of-five.
