rcsb_search_fulltext
Search Protein Data Bank structures using free-text keywords, and refine results with structured attribute filters for targeted discovery.
Instructions
Search the PDB by free-text keywords (e.g. "CRISPR Cas9", "hemoglobin"), optionally refined with structured attribute filters.
Best for broad or exploratory keyword lookups. Pass attributes to AND/OR the keyword
with structured conditions (organism, resolution, method, dates, ...) in one query. When a
request has NO keyword (only attributes), use rcsb_search_by_attribute; when it resolves to
a clear attribute/value, prefer structured search (call rcsb_list_pdb_search_attributes for
the exact path — more precise, avoids spurious keyword matches). For a sequence, structure,
chemical or motif match, use the matching rcsb_search_by_* tool (each also takes attributes).
BEFORE keyword-searching a biological CONCEPT (disease/function/domain/enzyme/organism),
resolve it to an ontology id and filter on the annotation instead — see the resolver and
assembly/multimer guidance in the server instructions. Matching spans ALL text annotations,
so judge each hit yourself; a high score is text-relevance, NOT biological importance —
never tell the user one hit is better than another because its score is higher.
Args:
query: Free-text terms matched (case-insensitively) against all text annotations. Quote
a phrase to require adjacency (e.g. '"DNA polymerase"'); separate words narrow the
results; trailing '' is a prefix wildcard. AND/OR/NOT are NOT boolean operators here.
attributes: Optional structured conditions combined with the keyword — AttributeFilter
{attribute, operator, value, negation?, case_sensitive?} (see
rcsb_search_by_attribute / rcsb_list_pdb_search_attributes for paths and operators).
logical_operator: Combine the keyword with the attribute conditions (default "and").
return_type: What to return (default "entry"); see the "Return types and fetching
details" note in the server instructions.
limit: Max number of hits to return (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 and omits paging; can't be combined with offset (the Search API rejects
pagination here); refused above 10000 hits — narrow, aggregate with facets, or page.
include_computed_models: Also search computed structure models (AlphaFold etc.).
chemical: Set True when attributes target chemical-component attributes (the text_chem
service; usually pair with return_type="mol_definition").
facets: Optional aggregation specs to return a breakdown / distribution instead of hits
(see the faceting note in the server instructions for the spec).
sort_by: Attribute path to order the hits by; omit to sort by relevance score. 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.
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.
Returns:
{total_count, returned, offset, has_more, next_offset, hits:[{id, score}],
editor}; hits are ids only — batch them into rcsb_get_entries (or the
rcsb_get_ tool matching return_type). all_hits/facets response variants: see the
server instructions.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| facets | No | ||
| offset | No | ||
| sort_by | No | ||
| all_hits | No | ||
| chemical | No | ||
| group_by | No | ||
| attributes | No | ||
| return_type | No | entry | |
| sort_direction | No | asc | |
| group_by_ranking | No | ||
| logical_operator | No | and | |
| include_computed_models | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||