Skip to main content
Glama

load_ensemble

DestructiveIdempotent

Reads cryo-EM heterogeneity job volumes in trajectory order to preserve frame sequence, and detects the generating method so latent plots render correctly.

Instructions

Load a cryo-EM heterogeneity job's volumes in trajectory order.

Every method in this space writes the same thing: a directory of maps plus a table of latent coordinates. This reads them in trajectory order — naturally, so frame 10 does not sort between 1 and 2 and silently reorder the motion.

The generating method is identified from documented on-disk markers and is never guessed. A directory that matches nothing loads its volumes fine and stays unidentified, which makes latent views refuse to render: an unlabelled latent plot is what SPEC invariant I2 forbids, because each method's caveat is different and they are not interchangeable. Pass method= if you know.

Provenance defaults to "generated" rather than "unknown" — nothing observed a decoder's output — and the report says it declared that and on what evidence.

Input Schema

NameRequiredDescriptionDefault
nameNoPrefix for the loaded frame objects (defaults to the directory name)
methodNoDeclare the generating method instead of detecting it: "cryodrgn", "3dva", "recovar", "3dflex", "dynamight", "cryospire"
directoryYesPath to a heterogeneity job directory (cryoDRGN, 3DVA, RECOVAR, 3DFlex, DynaMight)
provenanceNoHow the volumes came to exist. Defaults to "generated" because heterogeneity output is decoder output or subspace interpolation.generated
max_volumesNoCeiling on frames loaded; any excess is reported, not hidden
trust_pickleNoPermit reading a .pkl latent table. Off by default because unpickling runs arbitrary code from the file.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.5.2

TDQS

A3.5/5.0
Behavior3/5

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

The description adds genuine behavior beyond annotations: method identification from documented on-disk markers is never guessed, provenance defaults to 'generated' with the report declaring that evidence, and excess volumes are reported rather than hidden. What it never addresses is destructiveHint=true — it does not say whether loading with an existing name prefix overwrites or replaces existing frame objects, which is the most consequential behavior an agent needs before calling.

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

Conciseness4/5

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

Purpose is front-loaded in the first sentence and the ordering rationale follows immediately. It is somewhat long for six parameters and leans on unexplained jargon ('SPEC invariant I2'), which costs a point but does not bury the actionable content.

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

Completeness3/5

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

An output schema exists, so return values need not be described, and detection, provenance, and ordering are well covered. The remaining gap is the mutation side: with destructiveHint=true and readOnlyHint=false, an agent still cannot tell what gets overwritten in the session or how the loaded frame objects interact with existing objects of the same name.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description earns more by explaining why method exists (declaration versus detection, and that detection is never a guess) and why provenance defaults to 'generated' (nothing observed a decoder's output). It adds meaning on top of the schema's own parameter descriptions rather than restating them.

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

Purpose4/5

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

The opening sentence gives a specific verb and resource — loading a cryo-EM heterogeneity job's volumes in trajectory order — plus the ordering rationale (frame 10 not sorting between 1 and 2). It does not explicitly name a sibling (e.g. load_map, latent_traverse_view) and say what it is not, so sibling differentiation is only implied through the remark that latent views depend on it.

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?

There is real guidance embedded: 'Pass method= if you know', and the note that an unmatched directory still loads but leaves latent views unrenderable. However, it never states the explicit when-to-use/when-not condition against alternatives such as load_map for a single map, so the agent must infer the boundary.

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