Small-molecule and polymer datasets for machine learning, mapped by what they measure and linked to the original study, the original data host, and every benchmark that redistributes them.
>>> from torch_molecule.datasets import load_dataset >>> train = load_dataset("moleculeace_chembl204_ki", split="train") >>> len(train.data), train.target_names (2201, ['y [pEC50/pKi]']) >>> train.data[0] 'CC(=N)N1CCC(N(CC(N)=O)c2ccc3nc(C)n(Cc4ccc5ccc(C(=N)N)cc5c4)c3c2)CC1' >>>
>>> from datasets import load_dataset >>> ds = load_dataset("liuganghuggingface/moldata-moleculeace_chembl204_ki") # train: 2,201 rows · test: 553 rows · Ki for CHEMBL204 · ChEMBL data CC BY-SA 3.0 >>> ds["train"][0]["SMILES_canonical"] 'CC(=N)N1CCC(N(CC(N)=O)c2ccc3nc(C)n(Cc4ccc5ccc(C(=N)N)cc5c4)c3c2)CC1' >>>
Click a ring to zoom in from domain to category to subcategory, then pick a dataset to see where its data comes from.
Molecules from every dataset in a category are pooled and deduplicated by canonical structure; mirror releases are left out. Downloads hold the published datasets' molecules. Redundancy is the share of dataset-molecule entries that repeat a molecule already counted. Labels are not pooled, because the same endpoint name can mean different assays.
Tags are measured from the processed tables, following the benchmark critiques behind the Polaris initiative. They flag what to check before modelling; they do not certify a dataset.
torch-molecule reads this collection's index at load time, so a dataset published here can be loaded right away, without upgrading torch-molecule.
>>> from torch_molecule.datasets import list_datasets, load_dataset >>> list_datasets(category="adme", grade="ready") # browse >>> name = "moleculeace_chembl204_ki" >>> train = load_dataset(name, split="train") >>> test = load_dataset(name, split="test") # test drops molecules seen in train · NaN = unmeasured >>> train.info["targets"], train.info["license"] >>> load_dataset("qm9", targets=["gap"], release="v2026.10.22")
SMILESDataset: canonical SMILES, a label matrix, target names, a structure key per row for group-aware splits, and info with units, license, sources, and quality tagspip install torch-moleculehuggingface-cli login and accept the terms on the dataset page oncelocal_dir= to choose where they are keptNaN, never 0; censored values such as <10 are NaN unless include_censored=Trueload_dataset("qm9", targets=["gap"])load_dataset("toxcast")"chembl2k", "broad6k"load_dataset("admet_ai")load_dataset("zinc250k", targets=[])load_dataset("polymer_gas_permeability")The old functions still work for now; they call load_dataset and warn that they will be removed.
Every dataset keeps its original license. Each one's panel above says which route applies.
Processed tables with source splits, every original row, and a card with provenance and quality tags. Collection ↗
19 datasets carry noncommercial licenses. Accept the terms on the dataset page while logged in to Hugging Face; access is granted at once.
load_dataset("moleculeace_chembl204_ki", split="train") returns SMILES, labels, units, and license, and drops test molecules seen in training.
164 datasets are not redistributed because their license is unverified or forbids it. Their panels link to the original study and data host.