Demonstration only. Corollary is a non-commercial research demo — no warranty, no support, not for commercial use or clinical decisions. Read the disclaimer

All datasets

Chemical Components · LiteFold

PDB-CCD

A Parquet dataset of the Protein Data Bank Chemical Component Dictionary for structural machine learning.

What PDB-CCD is

PDB-CCD is a tabular dataset containing the Chemical Component Dictionary used by the Protein Data Bank (PDB). It documents the monomers, residues, modified amino acids, ligands, and solvent molecules found within experimentally resolved macromolecular structures. Packaged by LiteFold into Apache Parquet format, it provides structured access to chemical definitions that are typically distributed across complex macromolecular Crystallographic Information File (mmCIF) dictionaries.

Structural biologists and computational chemists rely on consistent chemical references to interpret small molecules, cofactors, and unnatural residues bound to proteins and nucleic acids. The dataset organises 50,054 components into standardised records with explicit chemical graphs, identifiers, and stereochemical details, facilitating large-scale data loading for structural machine learning pipelines.

How it was made

The dataset extracts chemical definitions from the PDB Chemical Component Dictionary and structures them into tabular rows. Each record captures molecular formula properties, formal charges, synonyms, systematic nomenclature, and linear representations such as SMILES, InChI, and InChIKey. Topological structures are encoded via parallel arrays detailing atom identifiers, element symbols, formal charges, aromatic flags, leaving atom flags, stereochemical configurations, and bond connectivity with bond orders.

Data splits are assigned deterministically using the SHA-256 hash of each component identifier modulo 10. Components assigned to bucket zero form the test set of 5,009 rows, while components in buckets one to nine form the training set of 45,045 rows. Protein modification annotations and related parent component references are retained to trace non-standard monomers.

Key facts

Total components
50,054
Released components
49,292
Obsolete components
762
Training rows
45,045
Test rows
5,009
Data format
Parquet
Modality
Tabular, text
Latest source modification
2026-04-24

What you can use it for

Structural machine learning
Train and evaluate deep learning models on small molecules and macromolecular building blocks using the predefined deterministic train and test splits.
Ligand property and identifier retrieval
Look up canonical SMILES, InChIKeys, chemical formulas, and formula weights for cofactors, metabolites, and ligands observed in the PDB.
Molecular graph construction
Reconstruct complete 2D molecular graphs from atom element arrays, bond connectivity lists, bond orders, and stereochemical annotations.
Residue and post-translational modification analysis
Identify modified residues and map them to their parent amino acids using non-standard monomer parent IDs and protein modification annotations.

Explore the data

The schema, real rows, full-text search and a SQL filter — read in your browser, nothing downloaded.

Explore

Read the real rows without downloading anything

Reading rows…

LiveRead from LiteFold/PDB-CCD at the moment you asked. Nothing is cached or stored — every row above came from that request.

How the columns are distributed

Over 45,045 rows of default/train

ambiguous_flag

string_label
  • N97%
  • Y0%

2.4% empty

atom_alt_ids

list
min
0
median
44
mean
47.72
max
440

atom_aromatic_flags

list
min
0
median
44
mean
47.72
max
440

atom_charges

list
min
0
median
44
mean
47.72
max
440

atom_count

int
min
0
median
44
mean
47.72
max
440

atom_elements

list
min
0
median
44
mean
47.72
max
440

atom_ids

list
min
0
median
44
mean
47.72
max
440

atom_leaving_flags

list
min
0
median
44
mean
47.72
max
440

atom_stereo_configs

list
min
0
median
44
mean
47.72
max
440

audit_actions

list
min
0
median
2
mean
2.63
max
13

audit_dates

list
min
0
median
2
mean
2.63
max
13

audit_processing_sites

list
min
0
median
2
mean
2.62
max
13

bond_aromatic_flags

list
min
0
median
46
mean
49.65
max
446

bond_atom_id_1

list
min
0
median
46
mean
49.65
max
446

bond_atom_id_2

list
min
0
median
46
mean
49.65
max
446

bond_count

int
min
0
median
46
mean
49.65
max
446

bond_orders

list
min
0
median
46
mean
49.65
max
446

bond_stereo_configs

list
min
0
median
46
mean
49.65
max
446

canonical_smiles

string_text
min
1
median
48
mean
53.48
max
907

0.00% empty

component_id

string_text
min
1
median
3
mean
3.23
max
5

component_type

string_label
  • NON-POLYMER52%
  • non-polymer39%
  • L-PEPTIDE LINKING2%

descriptor_program_versions

list
min
0
median
7
mean
6.68
max
11

descriptor_programs

list
min
0
median
7
mean
6.68
max
11

descriptor_types

list
min
0
median
7
mean
6.68
max
11

descriptors

list
min
0
median
7
mean
6.68
max
11

feature_types

list
min
0
median
0
mean
0.07
max
4

feature_values

list
min
0
median
0
mean
0.07
max
4

formal_charge

int
min
-11
median
0
mean
0.03
max
13

formula

string_text
min
1
median
13
mean
13.64
max
26

0.00% empty

formula_weight

float
min
1.01
median
358.29
mean
380.82
max
12,016

0.01% empty

heavy_atom_count

int
min
0
median
25
mean
26.10
max
240

hydrogen_atom_count

int
min
0
median
19
mean
21.62
max
240

ideal_coordinates_missing_flag

string_label
  • N99%
  • Y1%

0.01% empty

identifier_program_versions

list
min
0
median
2
mean
1.42
max
6

identifier_programs

list
min
0
median
2
mean
1.42
max
6

identifier_types

list
min
0
median
2
mean
1.42
max
6

identifiers

list
min
0
median
2
mean
1.42
max
6

inchi

string_text
min
10
median
138
mean
146.04
max
1,215

0.02% empty

inchikey

string_text
min
25
median
27
mean
26.99
max
27

0.02% empty

initial_date

datetime

model_coordinates_db_code

string_text
min
4
median
4
mean
4.00
max
19

4.2% empty

model_coordinates_missing_flag

string_label
  • N96%
  • Y4%

modified_date

datetime

mon_nstd_parent_comp_id

string_label
  • LYS0%
  • CYS0%
  • ALA0%

95.4% empty

name

string_text
min
3
median
75
mean
83.16
max
873

one_letter_code

string_label
  • C0%
  • A0%
  • G0%

96.6% empty

pcm_categories

list
min
0
median
0
mean
0.03
max
42

pcm_ids

list
min
0
median
0
mean
0.03
max
42

pcm_modified_residue_ids

list
min
0
median
0
mean
0.03
max
42

pcm_positions

list
min
0
median
0
mean
0.03
max
42

pcm_types

list
min
0
median
0
mean
0.03
max
42

pdbx_synonyms

string_text
min
2
median
35
mean
61.94
max
625

82.8% empty

pdbx_type

string_label
  • HETAIN91%
  • ATOMP4%
  • ATOMS2%

0.51% empty

processing_site

string_label
  • RCSB60%
  • EBI15%
  • PDBE12%

0.01% empty

related_component_ids

list
min
0
median
0
mean
0
max
0

related_relationship_types

list
min
0
median
0
mean
0
max
0

release_status

string_label
  • REL98%
  • OBS2%

replaced_by

string_label
  • 6MA0%
  • BAP0%
  • NVA0%

99.3% empty

replaces

string_label
  • FS30%
  • ITS0%
  • 980%

99.4% empty

smiles

string_text
min
1
median
44
mean
47.68
max
896

0.00% empty

split_bucket

int
min
1
median
5
mean
4.99
max
9

synonym_names

list
min
0
median
0
mean
0.09
max
10

synonym_provenances

list
min
0
median
0
mean
0.07
max
10

synonym_types

list
min
0
median
0
mean
3.1e-4
max
2

systematic_names

list
min
0
median
2
mean
1.40
max
3

three_letter_code

string_text
min
1
median
3
mean
3.23
max
5

0.42% empty

Strengths and limits

Good at

  • Provides tabular Parquet packaging optimised for fast querying, filtering, and streaming without parsing raw mmCIF files.
  • Contains detailed graph representations including atom-level charges, aromaticity, stereochemistry, and explicit bond connectivity.
  • Includes a deterministic hash-based data split to standardise training and evaluation benchmarks.
  • Covers a diverse array of chemical species including non-polymers, peptides, saccharides, and nucleic acid linkers.

Watch out for

  • Includes 762 obsolete chemical components that require filtering for active structural analyses.
  • Protein modification annotations are available for only 613 components across the dictionary.

Questions

Can I look inside PDB-CCD without downloading it?

Yes. This page reads its schema, real rows and per-column statistics in the browser, with full-text search and a SQL filter. Nothing is downloaded to your machine.

What licence is PDB-CCD under?

Its authors declare other. Read the terms on the original page before reusing the data.

What classes of chemical entities are present in PDB-CCD?

The dataset covers non-polymer ligands, L-peptide linking residues, peptide-like molecules, D-saccharides, DNA linking monomers, RNA linking monomers, and solvent components.

How are the training and test splits constructed?

The partition is calculated deterministically as sha256(component_id) % 10. Components in bucket 0 are assigned to the test set, while components in buckets 1 through 9 form the training set.

How can obsolete components be filtered out?

Rows can be filtered by checking the release_status field, where valid active components are marked with REL and superseded entries are marked with OBS.

What linear chemical descriptors are included?

The dataset provides standard SMILES, canonical SMILES, InChI, and InChIKey descriptors, alongside systematic names and synonyms.

How to cite it

Westbrook, John D. and Shao, Chuming and Feng, Zukang and Zhuravleva, Maria and Velankar, Sameer and Young, Jasmine (2015). The chemical component dictionary: complete descriptions of constituent molecules in experimentally determined 3D macromolecules in the Protein Data Bank. Bioinformatics, 31(8), 1274–1278. doi:10.1093/bioinformatics/btu789

Written from PDB-CCD's own dataset card. Statements citing a figure that does not appear there are removed before publication. Licence and running details come from our registry.