Skip to main content
Glama

Jean — Molecular Biology & Genomics

genotype_pca

Read-only

Principal components of a call set's genotypes, the population-structure picture: biallelic sites above a minor-allele count, LD-pruned by sliding windows, scaled per site (Patterson, standard or centring) and decomposed; every sample's coordinates with its population, and the variance each component explains (scikit-allel pca).

Input Schema

NameRequiredDescriptionDefault
vcfYesthe call set as VCF text (a .vcf, or a .vcf.gz already decompressed); every record's GT is read, ploidy 2.
pruneNodrop sites in LD before the decomposition (locate_unlinked), as scikit-allel's PCA assumes.
_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.
minMacNokeep biallelic sites whose REF and first ALT are each seen at least this many times.
scalerNoper-site scaling before the decomposition: Patterson divides the centred dosage by √(p(1−p)); standard by its standard deviation; center only centres. Values: patterson (Patterson (√(p(1−p)))), standard (Standard deviation), center (Centre only).patterson
groupByNowhich column of the sample table groups the samples; empty is its first grouping column.
_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.
precisionNofloat64, or float16: scikit-allel's own path when handed integer genotypes, which rounds the scaled matrix to half precision. Values: float64 (Double precision), float16 (Half precision (as scikit-allel on integer genotypes)).float64
pruneSizeNopruning window, in sites. Only applies when prune is true.
pruneStepNosites the pruning window advances. Only applies when prune is true.
nComponentsNocomponents to report.
populationsNoa sample table: a header row with a `sample` column and one or more grouping columns (tab-separated, as 1000 Genomes' .panel). Samples it does not list belong to no group.
pruneThresholdNoprune the later site of a pair whose Rogers–Huff r² exceeds this. Only applies when prune is true.

Output Schema

NameRequiredDescriptionDefault
sitesYeshow many sites qualified, how many pruning kept, and their positions
coordsYesone row per sample: sample, its group, and its coordinate on each component
explainedVarianceYesthe variance each reported component explains, in the data's own units (the eigenvalues)
explainedVarianceRatioYesthe share of variance each reported component explains

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / explainedVariance
      Added value: +{
      +  "description": "the variance each reported component explains, in the data's own units (the eigenvalues)"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "coords",
      -  "explainedVarianceRatio",
      -  "sites"
      -]New value: +[
      +  "coords",
      +  "explainedVarianceRatio",
      +  "explainedVariance",
      +  "sites"
      +]
  2. First observed

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuine value by disclosing the internal pipeline (site filtering, LD pruning, per-site scaling, decomposition) and summarizing what comes back. It stops short of noting compute cost or behaviour when the call set has too few sites or too few samples to yield nComponents.

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?

Everything is front-loaded into a single dense sentence with no filler, and each clause maps to a real pipeline stage. The semicolon-heavy run-on makes it harder to parse than a short ordered list would be, but no sentence is wasted.

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 13-parameter tool with nested objects, the description covers the analytical intent and the default preprocessing path, and an output schema already exists so return-value detail is not required. The gaps are minor but real: no guidance on how populations/groupBy interact with the reported "population" per sample, and no hint about minimum data requirements.

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?

With 100% schema description coverage, the baseline is 3, and the prose largely restates what the schema already documents: minor-allele count filtering (minMac), sliding-window LD pruning (prune/pruneSize/pruneStep/pruneThreshold) and the three scalers. It frames these as a coherent pipeline, which aids interpretation, but adds no format or edge-case semantics beyond the schema. Notably, groupBy and populations receive no mention in the description.

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 description names a specific verb+resource ("Principal components of a call set's genotypes") and frames the analytical output (population-structure picture, per-sample coordinates plus variance explained), which separates it in spirit from siblings like alignment_pca or population_fst. It never names those siblings explicitly, so the differentiation is inferred from the words "genotypes" and "population-structure" rather than stated.

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?

No explicit when-to-use, when-not, or alternative-tool routing is given; the agent must infer that this is the genotype-based dimensionality reduction versus the alignment-based one. The pipeline description (biallelic filtering, LD pruning, scaling) implies the use case but never states preconditions such as needing a sample table for population labels.

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