# RCSB PDB

> Look up and search the Protein Data Bank's 3D structures of proteins, DNA and RNA: get a structure, its molecules, chains, assemblies and ligands, chemical components, UniProt details and papers; find structures by text, organism, method, resolution, release date, sequence, chemistry or shape; check status; and get file links.

App · 18 actions. Web page: https://docs.lodol.com/docs/integrations/rcsb-pdb

## Actions

### Check structure status

Check up to 100 PDB IDs at once: whether each is released, waiting for release or removed, and what replaced a removed one. IDs the PDB has never had are listed separately.

**Inputs**

- PDB IDs (`pdb_ids`, list, required): Up to 100 structure IDs: a list from an earlier step, or IDs separated by commas, spaces or new lines, such as 4HHB, 1CRN.

**Outputs**

- `current` (number): How many are released
- `entries` (list): Each ID the PDB knows, in the order asked
- `removed` (number): How many were removed
- `unknown` (list): IDs the PDB has never had
- `unreleased` (number): How many are waiting for release

**Example output**

```json
{
  "current": 1,
  "entries": [
    {
      "pdb_id": "4HHB",
      "replaced_by": null,
      "status": "current",
      "status_code": "REL",
      "status_detail": null,
      "url": "https://www.rcsb.org/structure/4HHB"
    },
    {
      "pdb_id": "1JYY",
      "replaced_by": "4V44",
      "status": "removed",
      "status_code": "OBS",
      "status_detail": null,
      "url": null
    },
    {
      "pdb_id": "1ZSM",
      "replaced_by": null,
      "status": "unreleased",
      "status_code": "WDRN",
      "status_detail": "Withdrawn by the authors",
      "url": null
    }
  ],
  "removed": 1,
  "unknown": [
    "0ZZZ"
  ],
  "unreleased": 1
}
```

### Find ligands by chemical structure

Find ligands in the PDB's chemical dictionary from a molecule you describe as SMILES, InChI or a formula: the same molecule, similar ones, or ones that contain it. Use the ligand IDs found with Find structures by organism, method and date to get the structures they are bound in.

**Inputs**

- Describe it as (`input_type`, text): How the molecule is written in **Molecule**. One of: `smiles`, `inchi`, `formula` (Chemical formula). Default: `smiles`.
- Molecule (`value`, text, required): The molecule as SMILES (aspirin is CC(=O)Oc1ccccc1C(=O)O), as InChI, or as a formula such as C9H8O4.
- Match (`match`, text): Which molecules count as a match. Only when Describe it as is SMILES or InChI. One of: `graph-strict` (Exactly this molecule), `graph-relaxed` (This molecule, ignoring stereochemistry and charges), `fingerprint-similarity` (Similar molecules), `sub-struct-graph-relaxed` (Molecules that contain this one). Default: `graph-relaxed`.
- Allow larger formulas (`formula_is_part`, true/false): Also find molecules whose formula contains this one, such as C9H8O4 within C10H10O4. Only when Describe it as is Chemical formula. Default: `false`.
- Max results (`max_results`, number): Return at most this many results. From 1 to 100. Default: `10`.
- Skip (`skip`, number): Leave out this many results from the start, to get the next page. With Max results at 10, a Skip of 10 gives results 11 to 20. From 0 to 10000. Default: `0`.

**Outputs**

- `count` (number): How many came back in this step
- `has_more` (true/false): Whether more results are left after these (raise Skip to get them)
- `match` (text): How molecules were matched
- `results` (list): Ligands found, best first
- `total` (number): How many match in all, across every page

**Example output**

```json
{
  "count": 2,
  "has_more": true,
  "match": "fingerprint-similarity",
  "results": [
    {
      "formula": "C9 H8 O4",
      "image_url": "https://cdn.rcsb.org/images/ccd/labeled/A/AIN.svg",
      "inchikey": "BSYNRYMUTXBXSQ-UHFFFAOYSA-N",
      "ligand_id": "AIN",
      "molecular_weight_da": 180.157,
      "name": "2-(ACETYLOXY)BENZOIC ACID",
      "score": 1.0,
      "smiles": "CC(=O)Oc1ccccc1C(=O)O",
      "url": "https://www.rcsb.org/ligand/AIN"
    },
    {
      "formula": "C10 H10 O4",
      "image_url": "https://cdn.rcsb.org/images/ccd/labeled/M/M3S.svg",
      "inchikey": "XRBMKGUDDJPAMH-UHFFFAOYSA-N",
      "ligand_id": "M3S",
      "molecular_weight_da": 194.184,
      "name": "2-(acetyloxy)-3-methylbenzoic acid",
      "score": 0.9444,
      "smiles": "Cc1cccc(c1OC(=O)C)C(=O)O",
      "url": "https://www.rcsb.org/ligand/M3S"
    }
  ],
  "total": 6
}
```

### Find similar sequences

Find molecules in the PDB whose protein, DNA or RNA sequence is like yours, best match first, with how identical each is and its E-value. Paste a plain sequence or FASTA.

**Inputs**

- Sequence (`sequence`, text, required): The sequence in one-letter codes, at least 10 long, such as MVLSPADKTNVKAAWG... A FASTA header line is ignored.
- Sequence type (`sequence_type`, text): Whether the sequence is a protein, DNA or RNA. One of: `protein`, `dna`, `rna`. Default: `protein`.
- Max E-value (`max_evalue`, number): Leave out matches likelier than this to be chance. Smaller is stricter; 0.1 is the PDB's default. From 0 to 1000. Default: `0.1`.
- Min identity (%) (`min_identity`, number): Leave out matches with fewer identical residues than this, in percent. 0 keeps every match; 90 keeps near copies. From 0 to 100. Default: `0`.
- Max results (`max_results`, number): Return at most this many results. From 1 to 100. Default: `10`.
- Skip (`skip`, number): Leave out this many results from the start, to get the next page. With Max results at 10, a Skip of 10 gives results 11 to 20. From 0 to 10000. Default: `0`.

**Outputs**

- `count` (number): How many came back in this step
- `has_more` (true/false): Whether more results are left after these (raise Skip to get them)
- `results` (list): Molecules with a similar sequence, best first
- `sequence_length` (number): Length of the sequence searched with
- `total` (number): How many match in all, across every page

**Example output**

```json
{
  "count": 2,
  "has_more": true,
  "results": [
    {
      "aligned_length": 141,
      "chains": [
        "A",
        "C"
      ],
      "description": "HEMOGLOBIN (ALPHA CHAIN)",
      "evalue": 2.821e-89,
      "experimental_method": "X-ray",
      "identity_percent": 100.0,
      "key": "1A00_1",
      "length": 141,
      "match_end": 141,
      "match_start": 1,
      "molecule_id": "1",
      "organisms": [
        "Homo sapiens"
      ],
      "pdb_id": "1A00",
      "query_end": 141,
      "query_start": 1,
      "resolution_angstrom": 2.0,
      "structure_title": "HEMOGLOBIN (VAL BETA1 MET, TRP BETA37 TYR) MUTANT",
      "url": "https://www.rcsb.org/structure/1A00"
    },
    {
      "aligned_length": 141,
      "chains": [
        "A",
        "C"
      ],
      "description": "HEMOGLOBIN (ALPHA CHAIN)",
      "evalue": 2.821e-89,
      "experimental_method": "X-ray",
      "identity_percent": 100.0,
      "key": "1A01_1",
      "length": 141,
      "match_end": 141,
      "match_start": 1,
      "molecule_id": "1",
      "organisms": [
        "Homo sapiens"
      ],
      "pdb_id": "1A01",
      "query_end": 141,
      "query_start": 1,
      "resolution_angstrom": 1.8,
      "structure_title": "HEMOGLOBIN (VAL BETA1 MET, TRP BETA37 ALA) MUTANT",
      "url": "https://www.rcsb.org/structure/1A01"
    }
  ],
  "sequence_length": 141,
  "total": 359
}
```

### Find structures by organism, method and date

Find structures that match every filter you set: organism, how they were solved, what they contain, how sharp they are, when they were released, a ligand they bind, and keywords. Set at least one.

**Inputs**

- Organism (`organism`, text): The organism the molecules come from, by its scientific name, such as Homo sapiens or Escherichia coli.
- Methods (`methods`, list): How the structure was solved. Choose none to allow any. One or more of: `X-ray` (X-ray crystallography), `EM` (Cryo-electron microscopy (EM)), `NMR`, `Neutron` (Neutron diffraction), `Multiple methods` (More than one method), `Other` (Other methods).
- Molecule types (`molecule_types`, list): What the structure is made of. Choose none to allow any. One or more of: `Protein (only)` (Protein only), `Protein/NA` (Protein with DNA or RNA), `Nucleic acid (only)` (DNA or RNA only), `Protein/Oligosaccharide` (Protein with sugars), `Oligosaccharide (only)` (Sugars only), `Other`.
- Resolution at least (Å) (`max_resolution`, number): Only structures this sharp or sharper, in ångströms. Smaller numbers are sharper; 2 is a good X-ray structure. Leaves out NMR, which has no resolution. From 0.1 to 100.
- Released on or after (`released_after`, date): Only structures first released on or after this day.
- Released on or before (`released_before`, date): Only structures first released on or before this day.
- Contains ligand (`ligand_id`, text): Only structures with this ligand bound, by its ID, such as HEM for heme or ATP.
- Keywords (`keywords`, text): Only structures whose text mentions these words.
- Sort by (`sort`, text): The order to list structures in. One of: `relevance` (Best match first), `newest` (Newest first), `oldest` (Oldest first), `resolution` (Sharpest resolution first). Default: `newest`.
- Max results (`max_results`, number): Return at most this many results. From 1 to 100. Default: `10`.
- Skip (`skip`, number): Leave out this many results from the start, to get the next page. With Max results at 10, a Skip of 10 gives results 11 to 20. From 0 to 10000. Default: `0`.

**Outputs**

- `count` (number): How many came back in this step
- `filters` (object): The filters the search used
- `has_more` (true/false): Whether more results are left after these (raise Skip to get them)
- `results` (list): The structures found
- `total` (number): How many match in all, across every page

**Example output**

```json
{
  "count": 2,
  "filters": {
    "keywords": null,
    "ligand_id": null,
    "max_resolution": 1.5,
    "methods": [
      "X-ray"
    ],
    "molecule_types": [],
    "organism": "Homo sapiens",
    "released_after": "2024-01-01",
    "released_before": "2024-01-31"
  },
  "has_more": true,
  "results": [
    {
      "doi": "10.1039/d4sc00367e",
      "experimental_method": "X-ray",
      "keywords": "HYDROLASE",
      "molecular_weight_kda": 39.37,
      "organisms": [
        "Homo sapiens"
      ],
      "pdb_id": "8C8B",
      "pubmed_id": 38817593,
      "release_date": "2024-01-31",
      "resolution_angstrom": 1.46,
      "score": 1.0,
      "title": "Crystal structure of human DNA cross-link repair 1A in complex with hydroxamic acid inhibitor (compound 48).",
      "url": "https://www.rcsb.org/structure/8C8B"
    },
    {
      "doi": "10.1039/d4sc00367e",
      "experimental_method": "X-ray",
      "keywords": "HYDROLASE",
      "molecular_weight_kda": 39.77,
      "organisms": [
        "Homo sapiens"
      ],
      "pdb_id": "8C8D",
      "pubmed_id": 38817593,
      "release_date": "2024-01-31",
      "resolution_angstrom": 1.46,
      "score": 1.0,
      "title": "Crystal structure of human DNA cross-link repair 1A in complex with hydroxamic acid inhibitor (compound 44).",
      "url": "https://www.rcsb.org/structure/8C8D"
    }
  ],
  "total": 24
}
```

### Find structures with a similar shape

Find structures whose overall 3D shape is like one structure's assembly, whatever their sequence, best match first.

**Inputs**

- PDB ID (`pdb_id`, text, required): The structure's four-character ID, such as 4HHB for human hemoglobin. Lower case and rcsb.org links work too.
- Assembly (`assembly`, text): The biological assembly: the form the molecules are thought to take in the cell, such as a dimer. Most structures have only assembly 1. Default: `1`.
- How similar (`match`, text): Closely similar finds near copies; broadly similar also finds looser resemblances. One of: `strict_shape_match` (Closely similar shape), `relaxed_shape_match` (Broadly similar shape). Default: `strict_shape_match`.
- Max results (`max_results`, number): Return at most this many results. From 1 to 100. Default: `10`.
- Skip (`skip`, number): Leave out this many results from the start, to get the next page. With Max results at 10, a Skip of 10 gives results 11 to 20. From 0 to 10000. Default: `0`.

**Outputs**

- `assembly_id` (text): The assembly whose shape was compared
- `count` (number): How many came back in this step
- `has_more` (true/false): Whether more results are left after these (raise Skip to get them)
- `pdb_id` (text): The structure's four-character PDB ID, such as 4HHB
- `results` (list): The structures found
- `total` (number): How many match in all, across every page

**Example output**

```json
{
  "assembly_id": "1",
  "count": 2,
  "has_more": true,
  "pdb_id": "4HHB",
  "results": [
    {
      "doi": "10.1016/0022-2836(84)90472-8",
      "experimental_method": "X-ray",
      "keywords": "OXYGEN TRANSPORT",
      "molecular_weight_kda": 64.74,
      "organisms": [
        "Homo sapiens"
      ],
      "pdb_id": "4HHB",
      "pubmed_id": 6726807,
      "release_date": "1984-07-17",
      "resolution_angstrom": 1.74,
      "score": 1.0,
      "title": "THE CRYSTAL STRUCTURE OF HUMAN DEOXYHAEMOGLOBIN AT 1.74 ANGSTROMS RESOLUTION",
      "url": "https://www.rcsb.org/structure/4HHB"
    },
    {
      "doi": "10.1016/0022-2836(89)90579-2",
      "experimental_method": "X-ray",
      "keywords": "OXYGEN TRANSPORT",
      "molecular_weight_kda": 64.61,
      "organisms": [
        "Homo sapiens"
      ],
      "pdb_id": "1COH",
      "pubmed_id": 2738915,
      "release_date": "1990-01-15",
      "resolution_angstrom": 2.9,
      "score": 0.9892,
      "title": "STRUCTURE OF HAEMOGLOBIN IN THE DEOXY QUATERNARY STATE WITH LIGAND BOUND AT THE ALPHA HAEMS",
      "url": "https://www.rcsb.org/structure/1COH"
    }
  ],
  "total": 1406
}
```

### Get a biological assembly

Get the form a structure's molecules are thought to take in the cell: how many chains, its symmetry and stoichiometry (such as A2B2), and who defined it.

**Inputs**

- PDB ID (`pdb_id`, text, required): The structure's four-character ID, such as 4HHB for human hemoglobin. Lower case and rcsb.org links work too.
- Assembly (`assembly`, text): The biological assembly: the form the molecules are thought to take in the cell, such as a dimer. Most structures have only assembly 1. Default: `1`.

**Outputs**

- `assembly_id` (text): The assembly's number
- `atom_count` (number): Atoms in the assembly
- `buried_surface_area` (number): Surface buried between chains, in square ångströms
- `chain_count` (number): Chains in the assembly
- `determined_by` (text): Who defined it: the authors, software, or both
- `interface_count` (number): Contacts between chains
- `ligand_count` (number): Ligand copies in the assembly
- `molecular_weight_kda` (number): Total molecular weight, in kilodaltons
- `oligomeric_state` (text): What it is, such as Hetero 4-mer or Monomer
- `pdb_id` (text): The structure's four-character PDB ID, such as 4HHB
- `software` (text): The program that suggested it, such as PISA
- `stoichiometry` (text): How many of each molecule, such as A2B2
- `symmetry` (text): Its symmetry, such as C2; C1 means none
- `symmetry_type` (text): Kind of symmetry, such as Cyclic or Dihedral
- `url` (text): The structure's page on rcsb.org

**Example output**

```json
{
  "assembly_id": "1",
  "atom_count": 4779,
  "buried_surface_area": 3305.3493,
  "chain_count": 4,
  "determined_by": "author and software defined assembly",
  "interface_count": 5,
  "ligand_count": 6,
  "molecular_weight_kda": 64.74,
  "oligomeric_state": "Hetero 4-mer",
  "pdb_id": "4HHB",
  "software": "PISA",
  "stoichiometry": "A2B2",
  "symmetry": "C2",
  "symmetry_type": "Cyclic",
  "url": "https://www.rcsb.org/structure/4HHB"
}
```

### Get a chain

Get one chain of a structure: which molecule it is, how many residues were modelled, how much is helix and strand, its CATH, SCOP and ECOD domains, and the ligands touching it.

**Inputs**

- PDB ID (`pdb_id`, text, required): The structure's four-character ID, such as 4HHB for human hemoglobin. Lower case and rcsb.org links work too.
- Chain (`chain`, text, required): One copy of a molecule, such as chain A. The letter a paper uses works, and so does the PDB's own chain ID. Fill in **PDB ID** first to pick from its chains.

**Outputs**

- `chain_id` (text): The authors' chain letter, as papers and viewers show it
- `domains` (list): Structural domains assigned to the chain
- `helix_percent` (number): Share of the chain in helices, in percent
- `ligands_nearby` (list): IDs of ligands that touch the chain
- `modeled_residue_count` (number): Residues with coordinates in the model
- `molecule_id` (text): The number of the molecule this chain is a copy of
- `molecule_key` (text): The structure and molecule together, such as 4HHB_1
- `pdb_chain_id` (text): The PDB's own chain ID, which can differ
- `pdb_id` (text): The structure's four-character PDB ID, such as 4HHB
- `strand_percent` (number): Share of the chain in beta strands, in percent
- `url` (text): The structure's page on rcsb.org

**Example output**

```json
{
  "chain_id": "A",
  "domains": [
    {
      "id": "1.10.490.10",
      "name": "Globins",
      "source": "CATH"
    },
    {
      "id": "d4hhba_",
      "name": "Hemoglobin, alpha-chain",
      "source": "SCOP"
    },
    {
      "id": "8039836",
      "name": "Globin-like",
      "source": "SCOP2"
    },
    {
      "id": "e4hhbA1",
      "name": "Bcl-2",
      "source": "ECOD"
    }
  ],
  "helix_percent": 78.0,
  "ligands_nearby": [
    "HEM"
  ],
  "modeled_residue_count": 141,
  "molecule_id": "1",
  "molecule_key": "4HHB_1",
  "pdb_chain_id": "A",
  "pdb_id": "4HHB",
  "strand_percent": 0.0,
  "url": "https://www.rcsb.org/structure/4HHB"
}
```

### Get a chemical component

Look up a ligand in the PDB's chemical dictionary by its ID, such as HEM or ATP: its name, formula, weight, SMILES and InChIKey, its IDs in DrugBank, PubChem, ChEBI and ChEMBL, and the proteins it is known to act on.

**Inputs**

- Ligand ID (`ligand_id`, text, required): The ligand's ID in the PDB's chemical dictionary, up to five letters or digits, such as HEM for heme, ATP, or AIN for aspirin.

**Outputs**

- `atom_count` (number): Atoms, hydrogens included
- `drug_targets` (list): Proteins DrugBank lists it acting on
- `external_ids` (object): Its IDs in other chemistry databases
- `first_released` (text): When it first appeared in the PDB (YYYY-MM-DD)
- `formula` (text): Its formula, such as C34 H32 Fe N4 O4
- `heavy_atom_count` (number): Atoms other than hydrogen
- `image_url` (text): A 2D drawing of it (SVG)
- `inchi` (text): Its InChI
- `inchikey` (text): Its InChIKey, for matching across databases
- `ligand_id` (text): The ligand's ID, such as HEM
- `molecular_weight_da` (number): Molecular weight, in daltons
- `name` (text): Its chemical name
- `sdf_url` (text): Its ideal 3D coordinates as an SDF file
- `smiles` (text): Its structure as SMILES, with stereochemistry
- `synonyms` (list): Other names for it
- `type` (text): Kind of component, such as non-polymer or L-peptide linking
- `url` (text): The ligand's page on rcsb.org

**Example output**

```json
{
  "atom_count": 75,
  "drug_targets": [
    {
      "actions": [
        "inhibitor"
      ],
      "name": "Nitric oxide synthase, inducible",
      "uniprot_id": "P35228"
    },
    {
      "actions": [
        "inhibitor"
      ],
      "name": "Cytochrome P450 3A4",
      "uniprot_id": "P08684"
    },
    {
      "actions": [
        "inhibitor"
      ],
      "name": "Nitric oxide synthase 1",
      "uniprot_id": "P29475"
    },
    {
      "actions": [
        "inhibitor"
      ],
      "name": "Hemoglobin subunit alpha",
      "uniprot_id": "P69905"
    }
  ],
  "external_ids": {
    "cas": null,
    "chebi": null,
    "chembl": null,
    "drugbank": "DB18267",
    "pubchem": null
  },
  "first_released": "1976-05-19",
  "formula": "C34 H32 Fe N4 O4",
  "heavy_atom_count": 43,
  "image_url": "https://cdn.rcsb.org/images/ccd/labeled/H/HEM.svg",
  "inchi": "InChI=1S/C34H34N4O4.Fe/c1-7-21-17(3)25-13-26-19(5)23(9-11-33(39)40)31(37-26)16-32-24(10-12-34(41)42)20(6)28(38-32)15-30-22(8-2)18(4)27(36-30)14-29(21)35-25;/h7-8,13-16H,1-2,9-12H2,3-6H3,(H4,35,36,37,38,39,40,41,42);/q;+2/p-2/b25-13-,26-13-,27-14-,28-15-,29-14-,30-15-,31-16-,32-16-;",
  "inchikey": "KABFMIBPWCXCRK-RGGAHWMASA-L",
  "ligand_id": "HEM",
  "molecular_weight_da": 616.487,
  "name": "PROTOPORPHYRIN IX CONTAINING FE",
  "sdf_url": "https://files.rcsb.org/ligands/download/HEM_ideal.sdf",
  "smiles": "Cc1c2n3c(c1CCC(=O)O)C=C4C(=C(C5=[N]4[Fe]36[N]7=C(C=C8N6C(=C5)C(=C8C)C=C)C(=C(C7=C2)C)C=C)C)CCC(=O)O",
  "synonyms": [
    "PROTOPORPHYRIN IX CONTAINING FE",
    "HEME",
    "3-[(5Z,10Z,14Z,19Z)-18-(2-carboxyethyl)-8,13-bis(ethenyl)-3,7,12,17-tetramethyl-21,23-dihydroporphyrin-2-yl]propanoic acid",
    "[3,3'-(7,12-diethenyl-3,8,13,17-tetramethylporphyrin-2,18-diyl-kappa~4~N~21~,N~22~,N~23~,N~24~)dipropanoato(2-)]iron"
  ],
  "type": "non-polymer",
  "url": "https://www.rcsb.org/ligand/HEM"
}
```

### Get a ligand in a structure

Get one small molecule bound in a structure, such as a heme or a drug: its ligand ID and name, how many copies there are, and which chains they sit on.

**Inputs**

- PDB ID (`pdb_id`, text, required): The structure's four-character ID, such as 4HHB for human hemoglobin. Lower case and rcsb.org links work too.
- Ligand (`ligand_entity_id`, text, required): Which small molecule bound in the structure, such as a heme or a drug. Fill in **PDB ID** first to pick from its ligands.

**Outputs**

- `chains` (list): Chains it is bound to
- `copies` (number): How many copies are bound
- `ligand_entity_id` (text): The ligand's number in the structure
- `ligand_id` (text): Its chemical component ID, such as HEM
- `ligand_url` (text): The ligand's page on rcsb.org
- `molecular_weight_da` (number): Molecular weight, in daltons
- `name` (text): Its chemical name
- `pdb_id` (text): The structure's four-character PDB ID, such as 4HHB

**Example output**

```json
{
  "chains": [
    "A",
    "B",
    "C",
    "D"
  ],
  "copies": 4,
  "ligand_entity_id": "3",
  "ligand_id": "HEM",
  "ligand_url": "https://www.rcsb.org/ligand/HEM",
  "molecular_weight_da": 616.0,
  "name": "PROTOPORPHYRIN IX CONTAINING FE",
  "pdb_id": "4HHB"
}
```

### Get a molecule from a structure

Get one protein, DNA or RNA in a structure: its name, sequence and length, its chains, the organism and genes it comes from, and its UniProt IDs and Pfam families.

**Inputs**

- PDB ID (`pdb_id`, text, required): The structure's four-character ID, such as 4HHB for human hemoglobin. Lower case and rcsb.org links work too.
- Molecule (`molecule_id`, text, required): Which molecule in the structure: each different protein, DNA or RNA has a number, starting at 1, shared by all its copies. Fill in **PDB ID** first to pick from its molecules.

**Outputs**

- `chains` (list): The authors' chain letters for its copies
- `copies` (number): How many copies are in the structure
- `description` (text): What the molecule is, such as Hemoglobin subunit alpha
- `expressed_in` (list): Organisms it was made in for the experiment, if recorded
- `genes` (list): Gene names it comes from, such as HBA1
- `key` (text): The structure and molecule together, such as 4HHB_1
- `length` (number): Number of residues
- `molecular_weight_kda` (number): Molecular weight of one copy, in kilodaltons
- `molecule_id` (text): The molecule's number in the structure
- `mutation_count` (number): Mutations compared with the natural sequence
- `organisms` (list): Scientific names of the organisms the molecules come from
- `pdb_chain_ids` (list): The PDB's own chain IDs for its copies
- `pdb_id` (text): The structure's four-character PDB ID, such as 4HHB
- `pfam_domains` (list): Pfam protein families found in it
- `sequence` (text): Its sequence in one-letter codes
- `taxonomy_ids` (list): NCBI taxonomy IDs of those organisms
- `type` (text): Protein, DNA, RNA or another polymer type
- `uniprot_ids` (list): Matching UniProt accessions, such as P69905
- `url` (text): The structure's page on rcsb.org

**Example output**

```json
{
  "chains": [
    "A",
    "C"
  ],
  "copies": 2,
  "description": "Hemoglobin subunit alpha",
  "expressed_in": [],
  "genes": [
    "HBA1",
    "HBA2"
  ],
  "key": "4HHB_1",
  "length": 141,
  "molecular_weight_kda": 15.15,
  "molecule_id": "1",
  "mutation_count": 0,
  "organisms": [
    "Homo sapiens"
  ],
  "pdb_chain_ids": [
    "A",
    "C"
  ],
  "pdb_id": "4HHB",
  "pfam_domains": [
    {
      "id": "PF00042",
      "name": "Globin (Globin)"
    }
  ],
  "sequence": "VLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHFDLSHGSAQVKGHGKKVADALTNAVAHVDDMPNALSALSDLHAHKLRVDPVNFKLLSHCLLVTLAAHLPAEFTPAVHASLDKFLASVSTVLTSKYR",
  "taxonomy_ids": [
    9606
  ],
  "type": "Protein",
  "uniprot_ids": [
    "P69905"
  ],
  "url": "https://www.rcsb.org/structure/4HHB"
}
```

### Get a removed structure

Get what the PDB still records about a structure it removed: its title, authors, dates, why it was removed and which structures replaced it.

**Inputs**

- PDB ID (`pdb_id`, text, required): The structure's four-character ID, such as 4HHB for human hemoglobin. Lower case and rcsb.org links work too.

**Outputs**

- `authors` (list): Who deposited it
- `deposit_date` (text): When it was deposited (YYYY-MM-DD)
- `pdb_id` (text): The structure's four-character PDB ID, such as 4HHB
- `reason` (text): Why it was removed, when the PDB says
- `release_date` (text): When it was released (YYYY-MM-DD)
- `removed_date` (text): When it was removed (YYYY-MM-DD)
- `replaced_by` (list): IDs that replaced it
- `replacement_url` (text): The page of the first replacement
- `title` (text): The title the authors gave the structure

**Example output**

```json
{
  "authors": [
    "Juers, D.H.",
    "McCarter, J.D.",
    "Withers, S.G.",
    "Matthews, B.W."
  ],
  "deposit_date": "2001-09-13",
  "pdb_id": "1JYY",
  "reason": "This entry with other split entries have been consolidated into a combined file for complete representation. No coordinates have been changed.",
  "release_date": "2001-12-07",
  "removed_date": "2014-12-10",
  "replaced_by": [
    "4V44"
  ],
  "replacement_url": "https://www.rcsb.org/structure/4V44",
  "title": "E. COLI (lacZ) BETA-GALACTOSIDASE IN COMPLEX WITH 2-F-LACTOSE. Chains A-H, see REMARK 400."
}
```

### Get a structure

Get a structure's title, how it was solved and at what resolution, its dates, authors and paper, and the numbers of the molecules, ligands and assemblies in it.

**Inputs**

- PDB ID (`pdb_id`, text, required): The structure's four-character ID, such as 4HHB for human hemoglobin. Lower case and rcsb.org links work too.

**Outputs**

- `assembly_ids` (list): Numbers of its biological assemblies, for Get a biological assembly
- `atom_count` (number): Atoms in the deposited model
- `authors` (list): Who deposited it
- `chain_count` (number): Chains (protein, DNA or RNA) in the deposited model
- `citation` (object): The paper that describes it, if any
- `composition` (text): What it is made of, such as 'heteromeric protein'
- `deposit_date` (text): When it was deposited (YYYY-MM-DD)
- `doi` (text): The structure's own DOI, for citing the data
- `emdb_ids` (list): Electron microscopy maps behind it, such as EMD-5639
- `experimental_method` (text): How the structure was solved: X-ray, EM, NMR, Neutron, Multiple methods or Other
- `is_computed_model` (true/false): True for a computed model (such as AlphaFold), false for an experiment
- `keywords` (text): The PDB's classification, such as OXYGEN TRANSPORT
- `ligand_entity_ids` (list): Numbers of its ligands, for Get a ligand in a structure
- `ligand_ids` (list): IDs of the ligands bound to it, such as HEM, for Get a chemical component
- `methods` (list): Each method in full, such as X-RAY DIFFRACTION
- `molecular_weight_kda` (number): Total molecular weight, in kilodaltons
- `molecule_ids` (list): Numbers of its molecules (proteins, DNA, RNA), for Get a molecule
- `pdb_id` (text): The structure's four-character PDB ID, such as 4HHB
- `release_date` (text): When it was first released (YYYY-MM-DD)
- `replaces` (list): Older PDB IDs this structure replaced
- `resolution_angstrom` (number): Resolution in ångströms (Å); smaller means finer detail. Empty for NMR and computed models
- `revision_date` (text): When it was last revised (YYYY-MM-DD)
- `title` (text): The title the authors gave the structure
- `url` (text): The structure's page on rcsb.org

**Example output**

```json
{
  "assembly_ids": [
    "1"
  ],
  "atom_count": 4779,
  "authors": [
    "Fermi, G.",
    "Perutz, M.F."
  ],
  "chain_count": 4,
  "citation": {
    "authors": [
      "Fermi, G.",
      "Perutz, M.F.",
      "Shaanan, B.",
      "Fourme, R."
    ],
    "doi": "10.1016/0022-2836(84)90472-8",
    "journal": "J Mol Biol",
    "pages": "159-174",
    "pubmed_id": 6726807,
    "title": "The crystal structure of human deoxyhaemoglobin at 1.74 A resolution",
    "volume": "175",
    "year": 1984
  },
  "composition": "heteromeric protein",
  "deposit_date": "1984-03-07",
  "doi": "10.2210/pdb4hhb/pdb",
  "emdb_ids": [],
  "experimental_method": "X-ray",
  "is_computed_model": false,
  "keywords": "OXYGEN TRANSPORT",
  "ligand_entity_ids": [
    "3",
    "4"
  ],
  "ligand_ids": [
    "HEM"
  ],
  "methods": [
    "X-RAY DIFFRACTION"
  ],
  "molecular_weight_kda": 64.74,
  "molecule_ids": [
    "1",
    "2"
  ],
  "pdb_id": "4HHB",
  "release_date": "1984-07-17",
  "replaces": [
    "1HHB"
  ],
  "resolution_angstrom": 1.74,
  "revision_date": "2026-08-12",
  "title": "THE CRYSTAL STRUCTURE OF HUMAN DEOXYHAEMOGLOBIN AT 1.74 ANGSTROMS RESOLUTION",
  "url": "https://www.rcsb.org/structure/4HHB"
}
```

### Get a structure's file links

Get download links for a structure's files: the model as mmCIF, PDB format and BinaryCIF, its sequences as FASTA, each assembly, and the X-ray data or EM maps when they were released. Formats a structure is not published in are left empty.

**Inputs**

- PDB ID (`pdb_id`, text, required): The structure's four-character ID, such as 4HHB for human hemoglobin. Lower case and rcsb.org links work too.

**Outputs**

- `assemblies` (list): Files for each biological assembly
- `bcif_url` (text): The model as BinaryCIF, a compact format for viewers
- `em_maps` (list): Electron microscopy maps
- `fasta_url` (text): The sequences of every molecule, as FASTA
- `has_pdb_format` (true/false): Whether a legacy PDB-format file exists
- `mmcif_gz_url` (text): The same mmCIF file, compressed
- `mmcif_url` (text): The model as mmCIF, the standard format
- `page_url` (text): The structure's page on rcsb.org
- `pdb_id` (text): The structure's four-character PDB ID, such as 4HHB
- `pdb_url` (text): The model in the legacy PDB format; empty for structures too large for it
- `structure_factors_url` (text): The X-ray data (structure factors), when the authors released it

**Example output**

```json
{
  "assemblies": [
    {
      "assembly_id": "1",
      "image_url": "https://cdn.rcsb.org/images/structures/4hhb_assembly-1.jpeg",
      "mmcif_url": "https://files.rcsb.org/download/4HHB-assembly1.cif.gz"
    }
  ],
  "bcif_url": "https://models.rcsb.org/4HHB.bcif",
  "em_maps": [],
  "fasta_url": "https://www.rcsb.org/fasta/entry/4HHB",
  "has_pdb_format": true,
  "mmcif_gz_url": "https://files.rcsb.org/download/4HHB.cif.gz",
  "mmcif_url": "https://files.rcsb.org/download/4HHB.cif",
  "page_url": "https://www.rcsb.org/structure/4HHB",
  "pdb_id": "4HHB",
  "pdb_url": "https://files.rcsb.org/download/4HHB.pdb",
  "structure_factors_url": null
}
```

### Get a structure's paper

Get the paper that describes a structure: title, journal, authors, abstract and subject headings, with links by DOI and on PubMed.

**Inputs**

- PDB ID (`pdb_id`, text, required): The structure's four-character ID, such as 4HHB for human hemoglobin. Lower case and rcsb.org links work too.

**Outputs**

- `abstract` (text): The abstract, from PubMed
- `authors` (list): The paper's authors
- `doi` (text): The paper's DOI
- `doi_url` (text): A link to the paper by its DOI
- `journal` (text): The journal, abbreviated
- `mesh_terms` (list): PubMed's MeSH subject headings
- `pages` (text): Pages
- `pdb_id` (text): The structure's four-character PDB ID, such as 4HHB
- `pmc_id` (text): Its free full text in PubMed Central, if any, such as PMC391849
- `published` (true/false): False while the paper is still 'To be published'
- `pubmed_id` (number): The paper's PubMed ID
- `pubmed_url` (text): The paper on PubMed
- `title` (text): The paper's title
- `volume` (text): Journal volume
- `year` (number): Year published

**Example output**

```json
{
  "abstract": "The structure of human deoxyhaemoglobin was refined at 1.74 A resolution using data collected on film at room temperature from a synchrotron X-ray source. The crystallographic R-factor is 16.0%. The estimated error in atomic positions is 0.1 A overall, 0.14 A for main-chain atoms of internal segments, and 0.05 A for the iron atoms. The effects of intermolecular contacts on the structure were\u2026",
  "authors": [
    "Fermi, G.",
    "Perutz, M.F.",
    "Shaanan, B.",
    "Fourme, R."
  ],
  "doi": "10.1016/0022-2836(84)90472-8",
  "doi_url": "https://doi.org/10.1016/0022-2836(84)90472-8",
  "journal": "J Mol Biol",
  "mesh_terms": [
    "Crystallography",
    "Hemoglobins",
    "Humans",
    "Myoglobin"
  ],
  "pages": "159-174",
  "pdb_id": "4HHB",
  "pmc_id": null,
  "published": true,
  "pubmed_id": 6726807,
  "pubmed_url": "https://pubmed.ncbi.nlm.nih.gov/6726807/",
  "title": "The crystal structure of human deoxyhaemoglobin at 1.74 A resolution",
  "volume": "175",
  "year": 1984
}
```

### Get an unreleased structure

Get a structure that has been deposited but not released: its title, when it was deposited, and why it is waiting, such as being held until its paper is published.

**Inputs**

- PDB ID (`pdb_id`, text, required): The structure's four-character ID, such as 4HHB for human hemoglobin. Lower case and rcsb.org links work too.

**Outputs**

- `authors` (list): Who deposited it
- `deposit_date` (text): When it was deposited (YYYY-MM-DD)
- `hold_until` (text): The date it is held until, if one was set (YYYY-MM-DD)
- `pdb_id` (text): The structure's four-character PDB ID, such as 4HHB
- `sequence_available` (true/false): Whether its sequence is already public
- `status` (text): Why it is not out yet, in words
- `status_code` (text): The PDB's code, such as HPUB
- `title` (text): The title the authors gave the structure

**Example output**

```json
{
  "authors": [],
  "deposit_date": "2005-05-24",
  "hold_until": null,
  "pdb_id": "1ZSM",
  "sequence_available": false,
  "status": "Withdrawn by the authors",
  "status_code": "WDRN",
  "title": "Crystal Structure of the Catalytic Domain of Coagulation Factor XI in complex with 1-(2-Nitro-phenyl)-1H-indole-3-carboxamidine"
}
```

### Get several structures

Get up to 100 structures in one step, each with its title, method, resolution, release date, organisms and paper. IDs the PDB does not have are listed separately.

**Inputs**

- PDB IDs (`pdb_ids`, list, required): Up to 100 structure IDs: a list from an earlier step, or IDs separated by commas, spaces or new lines, such as 4HHB, 1CRN.

**Outputs**

- `count` (number): How many came back in this step
- `entries` (list): The structures found, in the order asked
- `not_found` (list): IDs the PDB has no released structure for

**Example output**

```json
{
  "count": 2,
  "entries": [
    {
      "doi": "10.1016/0022-2836(84)90472-8",
      "experimental_method": "X-ray",
      "keywords": "OXYGEN TRANSPORT",
      "molecular_weight_kda": 64.74,
      "organisms": [
        "Homo sapiens"
      ],
      "pdb_id": "4HHB",
      "pubmed_id": 6726807,
      "release_date": "1984-07-17",
      "resolution_angstrom": 1.74,
      "title": "THE CRYSTAL STRUCTURE OF HUMAN DEOXYHAEMOGLOBIN AT 1.74 ANGSTROMS RESOLUTION",
      "url": "https://www.rcsb.org/structure/4HHB"
    },
    {
      "doi": "10.1073/pnas.81.19.6014",
      "experimental_method": "X-ray",
      "keywords": "PLANT PROTEIN",
      "molecular_weight_kda": 4.74,
      "organisms": [
        "Crambe hispanica subsp. abyssinica"
      ],
      "pdb_id": "1CRN",
      "pubmed_id": 16593516,
      "release_date": "1981-07-28",
      "resolution_angstrom": 1.5,
      "title": "WATER STRUCTURE OF A HYDROPHOBIC PROTEIN AT ATOMIC RESOLUTION. PENTAGON RINGS OF WATER MOLECULES IN CRYSTALS OF CRAMBIN",
      "url": "https://www.rcsb.org/structure/1CRN"
    }
  ],
  "not_found": [
    "0ZZZ"
  ]
}
```

### Get UniProt details for a molecule

Get the UniProt protein a molecule in a structure matches: its accession, name, function, genes, organism, full sequence, keywords and Gene Ontology terms.

**Inputs**

- PDB ID (`pdb_id`, text, required): The structure's four-character ID, such as 4HHB for human hemoglobin. Lower case and rcsb.org links work too.
- Molecule (`molecule_id`, text, required): Which molecule in the structure: each different protein, DNA or RNA has a number, starting at 1, shared by all its copies. Fill in **PDB ID** first to pick from its molecules.

**Outputs**

- `count` (number): How many came back in this step
- `molecule_id` (text): The molecule's number in the structure
- `pdb_id` (text): The structure's four-character PDB ID, such as 4HHB
- `proteins` (list): The UniProt proteins matched to the molecule

**Example output**

```json
{
  "count": 1,
  "molecule_id": "1",
  "pdb_id": "4HHB",
  "proteins": [
    {
      "entry_name": "HBA_HUMAN",
      "function": "Involved in oxygen transport from the lung to the various peripheral tissues.",
      "genes": [
        "HBA1",
        "HBA2"
      ],
      "go_terms": [
        {
          "id": "GO:0005833",
          "name": "hemoglobin complex"
        },
        {
          "id": "GO:0031838",
          "name": "haptoglobin-hemoglobin complex"
        },
        {
          "id": "GO:0042744",
          "name": "hydrogen peroxide catabolic process"
        },
        {
          "id": "GO:0016020",
          "name": "membrane"
        }
      ],
      "keywords": [
        "3D-structure",
        "Acetylation",
        "Direct protein sequencing",
        "Disease variant"
      ],
      "length": 142,
      "organism": "Homo sapiens",
      "other_accessions": [
        "P01922",
        "Q1HDT5",
        "Q3MIF5",
        "Q53F97"
      ],
      "protein_name": "Hemoglobin subunit alpha",
      "sequence": "MVLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHFDLSHGSAQVKGHGKKVADALTNAVAHVDDMPNALSALSDLHAHKLRVDPVNFKLLSHCLLVTLAAHLPAEFTPAVHASLDKFLASVSTVLTSKYR",
      "taxonomy_id": 9606,
      "uniprot_id": "P69905",
      "url": "https://www.uniprot.org/uniprotkb/P69905/entry"
    }
  ]
}
```

### Search structures

Search every structure's titles, descriptions, keywords, authors and papers for words, such as a protein, a disease or a gene, and get each match's title, method, resolution and organisms.

**Inputs**

- Search for (`query`, text, required): Words to look for, such as hemoglobin, spike protein or CDK2 inhibitor.
- Include computed models (`include_computed`, true/false): Also search predicted structures from AlphaFold DB and ModelArchive. Off finds experimental structures only. Default: `false`.
- Sort by (`sort`, text): The order to list structures in. One of: `relevance` (Best match first), `newest` (Newest first), `oldest` (Oldest first), `resolution` (Sharpest resolution first). Default: `relevance`.
- Max results (`max_results`, number): Return at most this many results. From 1 to 100. Default: `10`.
- Skip (`skip`, number): Leave out this many results from the start, to get the next page. With Max results at 10, a Skip of 10 gives results 11 to 20. From 0 to 10000. Default: `0`.

**Outputs**

- `count` (number): How many came back in this step
- `has_more` (true/false): Whether more results are left after these (raise Skip to get them)
- `query` (text): What was searched for
- `results` (list): The structures found
- `total` (number): How many match in all, across every page

**Example output**

```json
{
  "count": 2,
  "has_more": true,
  "query": "hemoglobin",
  "results": [
    {
      "doi": "10.1006/jmbi.1994.1751",
      "experimental_method": "X-ray",
      "keywords": "OXYGEN TRANSPORT",
      "molecular_weight_kda": 64.71,
      "organisms": [
        "Sus scrofa"
      ],
      "pdb_id": "2PGH",
      "pubmed_id": 7990139,
      "release_date": "1994-11-30",
      "resolution_angstrom": 2.8,
      "score": 1.0,
      "title": "STRUCTURE DETERMINATION OF AQUOMET PORCINE HEMOGLOBIN AT 2.8 ANGSTROM RESOLUTION",
      "url": "https://www.rcsb.org/structure/2PGH"
    },
    {
      "doi": "10.1107/S0907444911006044",
      "experimental_method": "X-ray",
      "keywords": "OXYGEN TRANSPORT",
      "molecular_weight_kda": 32.49,
      "organisms": [
        "Canis lupus familiaris"
      ],
      "pdb_id": "3PEL",
      "pubmed_id": 21543841,
      "release_date": "2010-11-03",
      "resolution_angstrom": 1.9,
      "score": 0.9993,
      "title": "Structure of Greyhound Hemoglobin: Origin of High Oxygen Affinity",
      "url": "https://www.rcsb.org/structure/3PEL"
    }
  ],
  "total": 9220
}
```
