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). Validated on 1000 Genomes phase 3 APOL1, all 2,504 samples.

Input Schema

TableJSON 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

TableJSON 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
explainedVarianceRatioYesthe share of variance each reported component explains

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly/openWorld=false/destructive=false, so the safety profile is covered and the description earns credit for adding real behavioural context: the algorithmic path (Patterson/standard/centre scaling, LD pruning, float16 rounding), what is returned (per-sample coordinates plus variance explained), and calibration at 1000 Genomes scale. It stops short of operational caveats such as runtime or memory behaviour on large call sets, keeping it out of the top band.

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?

Two dense sentences with the purpose front-loaded and the validation footnote last; almost every clause carries information. It is jargon-heavy but not padded, and 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, nested-object, read-only analytical tool with an output schema present, the description covers the algorithm, the input assumptions and the expected result shape without needing to restate return values. The main omission is any routing between this tool and the other population-genetics siblings, which is minor for a correctly-scoped definition.

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 description coverage is 100%, so the schema already documents each of the 13 parameters and the baseline is 3. The description adds beyond that by weaving the key parameters into a coherent procedure (sites above a minor-allele count, LD pruning by sliding windows, per-site scaling then decomposition), clarifying how minMac/prune/scaler interact rather than restating them individually.

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 spells out the exact pipeline that produces them, so the agent knows precisely what computation happens. It is clearly distinguishable in substance from population_fst/site_stats, but it never names an alternative sibling, so sibling routing is left implicit.

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?

Usage is implied through the methodological narrative (population-structure decomposition, validated on 1000 Genomes), which tells the agent the intended context. However there is no explicit when-to-use/when-not guidance and no mention of population_ancestry or the other population-genetics siblings, so an agent must infer the choice.

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