Skip to main content
Glama

simulate_characters

Simulate character matrices for lineage tracing using stochastic Cas9-style mutations on a simulated tree, with configurable rates, cassettes, and optional missing data or noise.

Instructions

Simulate a lineage-tracing character matrix on a dataset's simulated tree.

Populates obsm["characters"] via stochastic Cas9-style tracing, optionally adding heritable/stochastic missing data and sequencing noise.

Args: dataset_id: Dataset handle containing a simulated tree. mutation_rate: Per-site mutation (cut) rate. number_of_cassettes: Number of independent cassettes. size_of_cassette: Number of characters per cassette. number_of_states: Number of possible indel states per character. add_missing: Apply cassiopeia.sim.missing_data after tracing. add_noise: Apply cassiopeia.sim.noise (miscalls) after tracing. extra_options: Extra kwargs forwarded to stochastic_tracing.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
add_noiseNo
dataset_idYes
add_missingNo
extra_optionsNo
mutation_rateNo
number_of_statesNo
size_of_cassetteNo
number_of_cassettesNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
n_obsYesNumber of observations (cells/leaves).
treesNoKeys in tdata.obst.
layersNo
n_varsYesNumber of variables (e.g. genes).
sourceNoOrigin path or generator.
uns_keysNo
obsm_keysNo
dataset_idYes
obs_columnsNo
Behavior3/5

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

With no annotations provided, the description carries the full burden of disclosing behavior. It mentions the main action (stochastic tracing) and optional post-processing (missing data, noise). However, it does not state whether the tool modifies the dataset in place, overwrites existing characters, or requires specific permissions. The description is adequate but lacks details on side effects and error conditions.

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?

The description is well-structured: a two-sentence summary followed by a detailed parameter list. It front-loads the purpose and provides necessary details for each parameter. While slightly long, the length is justified given the lack of schema descriptions. A minor improvement would be to shorten redundant phrases in the parameter descriptions.

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 tool with 8 parameters and no annotations, the description covers the main functionality and parameter semantics. It does not explicitly state preconditions (e.g., dataset must have a simulated tree) or side effects (e.g., modifies dataset). However, since the tool has an output schema, the lack of return-value explanation is acceptable. Overall, it is fairly complete but could be more explicit about dependencies.

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

Parameters5/5

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

Since the input schema has 0% description coverage (only titles, no descriptions), the description's 'Args' section fully compensates by explaining each parameter's meaning and role. For example, it clarifies that 'dataset_id' must contain a simulated tree and defines each simulation parameter. This adds significant value beyond the schema.

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?

The description clearly states the tool's purpose: 'Simulate a lineage-tracing character matrix on a dataset's simulated tree.' It specifies the exact output ('populates obsm["characters"]') and the method ('stochastic Cas9-style tracing'). This distinguishes it from sibling tools like simulate_tree (which creates the tree) or import_character_matrix (which imports existing data).

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

Usage Guidelines2/5

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

The description does not explicitly state when to use this tool or when to avoid it. It does not mention prerequisites (e.g., that the dataset must already have a simulated tree) or provide alternatives. The context of sibling tools suggests it is used after simulate_tree, but this is not stated, making it less helpful for decision-making.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/colganwi/lineageverse-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server