rcsb_search_strucmotif
Search for structures sharing a specific 3D residue arrangement (structural motif) from a reference entry, enabling discovery of catalytic sites, binding pockets, or metal-coordination geometries.
Instructions
Find structures containing a 3D STRUCTURAL MOTIF — a geometric arrangement of specific residues — like the one in a reference structure.
This is geometry-based and DIFFERENT from rcsb_search_by_structure (whole-shape similarity) and from rcsb_search_by_seqmotif (sequence pattern). Use it for catalytic triads, binding sites, metal-coordination geometries, etc.
Args:
entry_id: Reference PDB entry defining the motif, e.g. "2MNR".
residue_ids: 2-10 residues defining the motif, each a dict
{"label_asym_id": , "label_seq_id": , "struct_oper_id"?: }.
IMPORTANT: these are the mmCIF label identifiers (the internal numbering),
which often DIFFER from the author residue numbers seen in papers/the PDB
site. If you only have author numbering, resolve the label_asym_id/label_seq_id
first (e.g. via rcsb_get_polymer_entity_instances) — author numbers give wrong/no hits.
Example (enolase catalytic residues):
[{"label_asym_id":"A","label_seq_id":162},
{"label_asym_id":"A","label_seq_id":193},
{"label_asym_id":"A","label_seq_id":219}]
backbone_distance_tolerance: Backbone distance tolerance in Å, integer 0-3 (default 1).
side_chain_distance_tolerance: Side-chain distance tolerance in Å, integer 0-3 (default 1).
angle_tolerance: Angle tolerance in multiples of 20°, integer 0-3 (default 1).
rmsd_cutoff: Maximum RMSD of accepted hits (default 2.0).
atom_pairing_scheme: ALL, BACKBONE, SIDE_CHAIN (default), or PSEUDO_ATOMS.
motif_pruning_strategy: NONE or KRUSKAL (default).
return_type: What to return (default "assembly"); see the "Return types and fetching
details" note in the server instructions.
limit: Max hits (1-100).
offset: Number of hits to skip, for paging; pass the response's next_offset back with
the same query to fetch the next page.
all_hits: Return the COMPLETE result set in one call (for an explicit "ALL ..." request);
ignores limit, can't be combined with offset, and is refused above 10000 hits.
Ignored when facets is set.
attributes: Optional structured filters AND/OR-combined with this match — a list of
AttributeFilter {attribute, operator, value, negation?, case_sensitive?} (e.g.
restrict to an organism or resolution). See rcsb_search_by_attribute /
rcsb_list_pdb_search_attributes for paths and operators.
logical_operator: Combine this match and the attribute conditions with "and"
(default) or "or".
facets: Optional aggregation specs to return a breakdown / distribution instead of hits
(see the faceting note in the server instructions for the spec).
group_by, group_by_ranking: Collapse redundant polymer_entity hits into clusters, one
representative each (needs return_type="polymer_entity") — see the grouping note in
the server instructions.
sort_by: Attribute path to order the hits by, replacing the default score ordering (each
hit's score is still returned); omit to keep it. Only SORTABLE attributes work: those
listing exact_match (strings) or equals (numbers/dates) in
rcsb_list_pdb_search_attributes; full-text-only attributes (e.g. struct.title) and
return_type="mol_definition" are rejected.
sort_direction: "asc" (default) or "desc"; applies only when sort_by is set.
Returns:
{total_count, returned, offset, has_more, next_offset, hits:[{id, score}],
editor}; with facets, instead returns {total_count, facets, editor}.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| facets | No | ||
| offset | No | ||
| sort_by | No | ||
| all_hits | No | ||
| entry_id | Yes | ||
| group_by | No | ||
| attributes | No | ||
| residue_ids | Yes | ||
| return_type | No | assembly | |
| rmsd_cutoff | No | ||
| sort_direction | No | asc | |
| angle_tolerance | No | ||
| group_by_ranking | No | ||
| logical_operator | No | and | |
| atom_pairing_scheme | No | SIDE_CHAIN | |
| motif_pruning_strategy | No | KRUSKAL | |
| backbone_distance_tolerance | No | ||
| side_chain_distance_tolerance | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||