Approved Drugs - ATC Classification

3,039 drugschemistrypharmacologydrug-discovery

A TMAP of 3,039 approved small-molecule drugs from ChEMBL (max_phase = 4), filtered to exclude non-drug-like entries (MW < 100 or fewer than 5 heavy atoms - removes elements like Helium, simple salts, and gases). Built from Morgan fingerprints (Jaccard metric) with kc=200 for better connectivity. Color layers include ATC therapeutic class (Nervous system, Cardiovascular, Anti-infectives, Antineoplastic, etc.), molecular weight, LogP, TPSA, QED drug-likeness, and hydrogen bond donors/acceptors. 62.8% of tree edges cross ATC class boundaries (mean subtree purity 0.47), reflecting the structural diversity within therapeutic classes. SMILES tooltips render chemical structures, and drug names and ChEMBL IDs are searchable in the side panel.

Approved Drugs - ATC ClassificationOpen full page
Loading interactive demo…

How it was made

generate.pypython
from tmap import TMAP
from tmap.utils.chemistry import fingerprints_from_smiles, molecular_properties

fps = fingerprints_from_smiles(smiles, fp_type="morgan", radius=2, n_bits=2048)
props = molecular_properties(smiles, properties=["mw", "logp", "tpsa", "qed"])
model = TMAP(metric="jaccard", n_neighbors=20, seed=42).fit(fps)

viz = model.to_tmapviz()
viz.add_smiles(smiles)
viz.add_color_layout("ATC class", atc_classes, categorical=True, color="tab20")
viz.add_color_layout("MW", props["mw"].tolist(), color="viridis")
viz.add_color_layout("QED", props["qed"].tolist(), color="RdYlGn")
viz.add_label("Drug name", drug_names)
viz.add_label("ChEMBL ID", chembl_ids)
viz.write_html("approved_drugs.html")