Skip to main content
Glama

find_linear_motifs

Read-only

Short linear motifs in a protein: degrons, docking sites, targeting signals, cleavage and modification sites — the three-to-eleven-residue functional sites a profile-HMM domain scan cannot see.

Input Schema

NameRequiredDescriptionDefault
_filesNoThe project: record references shaped like _subject. Their records become library documents a tool names in sequences/parts/document; a trace or alignment is found by file name.
domainsNothe globular domains to bury motifs in, as `start-end` residue ranges (1-based, inclusive), comma-separated, each optionally labeled `start-end@label` so a dropped hit can say what buried it — e.g. `20-153@G3DSA:3.90.180.10, 296-341@G3DSA:3.90.180.10`. Pass the FRAGMENTS of an InterProScan domain match, not its outer span. Empty falls back to the scan the Protein domains panel holds, which is the only source the in-browser doors need. Only applies when filterInDomains is true.
proteinYesthe protein sequence, one-letter codes; wire it from translate_sequence or read it off a CDS.
speciesNothe species the protein comes from, as an NCBI Taxonomy id (e.g. 4932) or a scientific name (e.g. Saccharomyces cerevisiae), for ELM's taxonomic range filter: a motif whose class ELM does not place in that species' lineage is dropped, with its range. Empty runs no taxon filter, which is ELM's own default.
_subjectNoThe record to act on: exactly one of sequence, accession (+source), sample (an id from list_samples) or file ({name, text} or {name, base64}); record_index picks one record of several.
familiesNorestrict to these ELM families, comma-separated, from CLV, DEG, DOC, LIG, MOD, TRG. Empty is no restriction and scans every family; the literal "none" is a restriction to no family and scans nothing, which is what the panel does when every family is unticked.
compartmentsNorestrict to motifs whose class is annotated for these cell compartments, as GO ids, comma-separated (e.g. GO:0005634 for nucleus). Empty runs no compartment filter, which is ELM's own default.
expectCutoffNoELM's class gate: classes whose chance probability per residue exceeds this are not scanned at all. ELM's own default is 0.01; 0 scans every class, which is the resource's “all found (before filtering)” listing.
filterInDomainsNoapply ELM's globular-domain filter, dropping motifs buried inside a folded domain. Takes the domains from `domains` when you pass them, and otherwise from the scan the Protein domains panel currently holds; with neither, the call refuses rather than silently not filtering.
structuralContextNoscore each motif's structural context, as ELM's structure filter does. Empty applies nothing, which is the panel's own default. `alphafold` uses the predicted model and yields Q_acc only. A four-character PDB id (e.g. `1crn`) uses that experimental entry and yields Q_acc, Q_sse and ELM's three-way verdict, because only a real entry has a DSSP file. Either way the protein is resolved to its UniProt entry by sequence checksum first, and the call refuses if it is not an exact match.

Output Schema

NameRequiredDescriptionDefault
hitsYeseach surviving motif, in the engine’s own field names: identifier, accession, functionalSiteName, description, 1-based start/end, the residues that matched, the class chance probability, and how many experimentally annotated instances ELM holds
countYessurviving motifs, after every filter that ran
accountingYeswhat the scan was actually run against — classes scanned, classes skipped by the cutoff, classes skipped by the family selection — so a hit count can be read against its denominator rather than on its own
provenanceYesthe ELM release and date the scan ran against, and the filters that ran

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / species
      Added value: +{
      +  "default": "",
      +  "description": "the species the protein comes from, as an NCBI Taxonomy id (e.g. 4932) or a scientific name (e.g. Saccharomyces cerevisiae), for ELM's taxonomic range filter: a motif whose class ELM does not place in that species' lineage is dropped, with its range. Empty runs no taxon filter, which is ELM's own default.",
      +  "type": "string"
      +}
  2. First observed

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered, and the description adds useful domain context about the output's granularity. It does not disclose that results come from the external ELM resource, that some parameters make the call refuse (domain filter, structure resolution by checksum), or anything about cost/latency — those caveats live only in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that defines the resource and its scope with zero filler. Every clause (motif types, length range, contrast with domain scans) carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a ten-parameter tool with an output schema and full schema coverage, the description supplies the conceptual frame an agent needs to decide to call it. The remaining gaps (no explicit when-to-use routing, no mention of external ELM dependency) are modest given how much the schema and annotations already carry.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the ten parameters, including defaults and refusal conditions, are documented in the schema itself. The description adds no parameter-level meaning beyond that, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names the exact resource — short linear motifs (degrons, docking sites, targeting signals, cleavage/modification sites) of 3-11 residues — and explicitly contrasts it with profile-HMM domain scanning, which is the job of the sibling domain tools. An agent can tell immediately that this finds short functional sites, not folded domains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'the sites a profile-HMM domain scan cannot see' implies when this tool is the right pick over scan_protein_domains, but no sibling is named and no prerequisites (e.g. needing a resolved sequence or an existing domain scan for the filterInDomains fallback) are stated in the description. Usage is inferable rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources