Chemical Databases Every ML Scientist Should Know for Drug Discovery
The model is the last step. Before it, you have to decide which database actually holds the measurement you need.
Five public resources cover most of what a small-molecule project asks for. They are not substitutes. ChEMBL and BindingDB are bioactivity tables. PubChem is the broad assay archive. PDBbind pairs a bound structure with an affinity. BRENDA describes enzymes. Downloading the largest file is not the same as downloading the right one.
ChEMBL
ChEMBL is a manually curated set of bioactive molecules with drug-like properties, joined to the measurements reported for them. Those measurements include Ki, Kd, IC50, percent inhibition, and EC50.
That shape is what you want when the unit of analysis is “a molecule tested on a target.” Filtered well, the table becomes a screening set or a labelled file. A separate note walks through that curation for one target: search the protein, keep one activity type, collapse duplicate compounds, and only then assign a class. See how the acetylcholinesterase table is labelled.
The release notes are the place to read the current size. Quoting a compound count without saying whether it means unique structures or deposition records is how those two numbers get swapped.
BindingDB
BindingDB is a public collection of measured binding affinities, mainly for proteins and small molecules. It also holds protein–protein, protein–peptide, and host–guest measurements.
A 2024 account of the database reported 2.9 million binding measurements spanning 1.3 million compounds and thousands of protein targets [1]. The first version of this note, written in 2022, described a smaller collection: more than 1.2 million measurements, more than 6,400 protein targets, and about 550,000 small molecules. Both figures are snapshots. The live site is the one to quote for a paper.
The practical entry points are searches, prepared datasets, and a similarity screen that takes an external compound set and looks for related bioactivity already in the database. Downloads have included SD files, TSV, and a database dump. Programmatic access has included a REST API, structured URLs, and KNIME. Menus move. The distinction that does not move is the content: affinities, with the target and the ligand identified.
Find My Compound’s Target
This tool takes a query molecule, finds similar compounds already in BindingDB, and returns the targets of those neighbors when they pass a similarity cutoff and an affinity cutoff. It is a neighbor search. It is not a model trained to predict a new mechanism, and a target that appears in the result is only as reliable as the neighbor and the cutoff you set.
Find Compounds for My Target
The companion search goes the other way. You name a target and ask which compounds have measurements against it. The curated rows draw on BindingDB itself and on outside sources, including ChEMBL, PubChem BioAssay, and D3R. Read the source of each row. A Ki from one database and an IC50 imported from another are not the same label.
PubChem
PubChem, at the National Center for Biotechnology Information, is the broad public archive. For a given substance it can hold chemical identity together with biochemical, pharmacological, toxicological, and other deposited description. It is free to search.
PubChem BioAssay stores the experimental records: small-molecule screens and RNAi experiments, each tied to the depositor who submitted it. Every tested substance is given an activity outcome, commonly active, inactive, or inconclusive. The depositor assigns that outcome from the assay. PubChem does not impose one potency cutoff on every record. A reported IC50, EC50, or Ki can sit beside the flag. The flag does not replace the protocol.
You can query by name, by SMILES, or by a structure you draw, and ask for an exact compound, a similar one, or a substructure. The assay page is where you go when two values disagree: the record includes the experiment, not only the number. PubChem also groups assays by protein or gene target, by assay type, by project, and by relationships such as shared active compounds.
PubChemPy
PubChemPy is the Python client. It covers lookup by name, substructure, and similarity, plus standardization, format conversion, depiction, and property retrieval. Use it when the next step is a table in a notebook rather than a page in the browser.
PDBbind
PDBbind collects experimentally measured Kd, Ki, and IC50 values for complexes that are already in the Protein Data Bank. The useful object is the pair. A structure without an affinity, or an affinity without the complex it was measured on, answers a different question.
Basic information on each complex has been open to browse. Downloading the full contents, and some of the site’s tools, has required a free registration under a license agreement, for both academic and industrial users. Access to this resource has changed more than once since this note was first written. Check the current terms before you build a pipeline on a bulk file.
BRENDA
BRENDA is an enzyme information system compiled from the primary literature. The name comes from its start in Braunschweig. It was developed for years at the University of Cologne and remains a public enzyme resource, not a compound-screening warehouse.
An entry is organized around the enzyme. It covers classification and nomenclature, the reaction and its specificity, functional and kinetic parameters, structure and stability, how the enzyme was isolated or prepared, the literature those facts came from, and cross-references to sequence or three-dimensional structure. You search it by EC number, enzyme name, organism, or a combination of those.
Academic and other non-commercial use is free. Commercial use requires a license. The project site states the current terms. BRENDA is the wrong download if the goal is a matrix of drug-like molecules and their IC50 values. It is the right one if the question is what the enzyme does and under which conditions.
Which one to open first
Ask what a row in the training file is supposed to mean.
- A molecule tested on a target, with Ki, IC50, or a related potency: ChEMBL, then curate.
- A binding affinity as the object of interest: BindingDB.
- The original assay, including who decided “active”: PubChem BioAssay.
- A 3D complex that must stay attached to its affinity: PDBbind.
- The enzyme’s reaction, specificity, and kinetics: BRENDA.
ChEMBL, BindingDB, and PubChem can be pulled into a script. PDBbind and BRENDA are still databases you read carefully before you model anything derived from them. The script does not fix a file that answered a different question.
Reference
[1] Liu, T. et al. BindingDB in 2024: a FAIR knowledgebase of protein-small molecule binding data. Nucleic Acids Research, 2025, 53, D1633–D1644. https://doi.org/10.1093/nar/gkae1075