search_pdb_entity
Search PDBj for structures, chemical components, or BIRD molecules using keywords and structured filters such as experimental method, resolution, ligand, formula, or SMILES.
Instructions
Search PDBj for structures, chemical components, or BIRD molecules.
Returns rich, named fields per hit (not just the title) — for pdb,
each result carries the experimental method, resolution, bound ligands,
and citation; for cc, the formula, SMILES, and InChI.
Args:
db (str): The database to search in. Allowed values are:
- "pdb" (Protein Data Bank, macromolecular structures)
- "cc" (Chemical Component Dictionary, ligands / small molecules)
- "prd" (BIRD, Biologically Interesting Reference Molecule
Dictionary, mostly peptides).
query (str): Free-text keywords. May be empty when at least one
structured filter is supplied. Accepts aliases: search, term,
keyword, keywords, search_term, name. If both query and
an alias are given with different values, this raises ValueError (pass only one).
limit (int): Max results to return, in [0, 500]. Default 20.
offset (int): Number of leading results to skip (server-side
pagination). Default 0.
Structured filters for db="pdb" (combine freely with `query`):
method (str): Experimental method — one of "xray", "nmr", "em"
(cryo-EM), "neutron", "fiber", "electron-crystallography",
"solid-state-nmr".
res_min / res_max (float): Resolution bounds in Å.
source (str): Source organism (e.g. "Homo sapiens").
ligand (str): Keep entries whose ligand list contains this string.
Matching is a substring, not an exact CCD code — `ATP` also
matches `dATP`. Pass the exact ligand name for precision.
Structured filters for db="cc" (chemical search):
formula (str): Molecular formula in the canonical spaced,
element-counted form (e.g. "C8 H10 N4 O2"). The unspaced form
("C8H10N4O2") is not matched by PDBj.
smiles (str): SMILES substructure query.Note:
PDBj search hits multiple fields (title, authors, keywords,
citation metadata), not just the title — an entry can match even
when its title does not contain the query. Verify relevance against
the returned fields. Filters that don't apply to the chosen db
are ignored.
Returns:
str: JSON string {"total": int | null, "results": [ {…fields…} ]}.
total is null when PDBj does not provide a count (typical for
structured-filter searches) — it is not zero and does not mean
"no results"; consult results directly in that case.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| db | Yes | ||
| name | No | ||
| term | No | ||
| limit | No | ||
| query | No | ||
| ligand | No | ||
| method | No | ||
| offset | No | ||
| search | No | ||
| smiles | No | ||
| source | No | ||
| formula | No | ||
| keyword | No | ||
| res_max | No | ||
| res_min | No | ||
| keywords | No | ||
| search_term | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |