Skip to main content
Glama

quantify_dpcr

Read-only

Digital PCR (dPCR) partition counts to absolute concentration, with no standard curve. Positives and accepted partitions become lambda = -ln(1 - k/n), lambda becomes copies per uL through the partition volume and the dilution chain, and the confidence interval is carried on the lambda scale under any of eleven published binomial interval methods. Returns the dMIQE-2020 occupancy QC beside every reading, so a well with no positives, or one saturated past 95% occupancy, is reported as such rather than as a number.

Input Schema

NameRequiredDescriptionDefault
wellsYesthe well table: `Well,Sample,Target,Positives,Partitions`. Instrument column names are accepted as they are printed (Bio-Rad's `AcceptedDroplets`, QIAcuity's `Valid partitions`), so a real export needs no renaming.
_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.
_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.
ci_methodNowhich binomial confidence interval is carried onto the lambda scale. Values: agresti-coull (Agresti–Coull), asymptotic (Asymptotic (normal approximation)), bayes (Bayes (Jeffreys prior, highest-density)), cloglog (Complementary log-log), exact (Exact (Clopper–Pearson)), logit (Logit), lrt (Likelihood ratio), probit (Probit), prop.test (Score test inverted, continuity-corrected), profile (Profile likelihood), wilson (Wilson score). Advanced.wilson
volume_cvNocoefficient of variation of the partition volume, as a percentage. Ignored under the `poisson` model. There is no universal value and inventing one would fabricate the exact quantity the correction consumes - the one figure this repo has a published source for is QuantStudio 3D chip (Majumdar 2017) at 3.03 %, and that paper says the vendor re-estimates it per chip rather than treating it as a platform constant. In %. Only applies when volume_model is normal or truncated.
conf_levelNoconfidence level for the interval. Advanced.
ratio_targetNothe assay whose COPY NUMBER you want, named as it appears in the table's Target column. Leave it and `ratio_reference` unset and no copy number is reported at all — a guessed pair is a fabricated comparison.
volume_modelNohow partition-volume SPREAD is handled (QP-5c). `poisson` is the standard estimator and assumes every partition holds the same volume. The two Poisson-Plus arms (Majumdar 2017) integrate the Poisson negative probability over a normal volume distribution and invert it: `normal` is the closed-form Eq (9), `truncated` the exact Eq (13) over a normal cut off at zero, which is the honest density because a partition cannot hold a negative volume. The spread biases the standard estimate DOWNWARD, hard at high occupancy and not at all at low. Values: poisson (Standard Poisson (no correction)), normal (Poisson-Plus, normal (Eq 9)), truncated (Poisson-Plus, truncated normal (Eq 13)).poisson
dilution_factorNofold dilution applied to the sample before the reaction (2 = diluted 1:2). Advanced.
ratio_referenceNothe assay it is measured against: the single-copy or known-ploidy reference, again by its Target name.
merge_replicatesNopool wells that share a sample and target before quantifying. Replicates of one measurement are one measurement, and pooling the COUNTS is the correct way to combine them, never averaging concentrations.
reference_copiesNocopies of the REFERENCE target per genome. 2 is a diploid autosome, 1 a haploid or single-copy locus. Advanced.
reaction_volume_ulNototal reaction volume, for copies per reaction. In uL.
template_volume_ulNovolume of template added to the reaction. Left at 0 the sample-concentration row is omitted rather than guessed. In uL. Advanced.
partition_volume_nlNomean volume of ONE partition. A per-platform constant, not a universal one (Bio-Rad QX200 approx 0.85 nL, QIAcuity 26k approx 0.34 nL, QuantStudio 3D approx 0.755 nL), and dMIQE 2020 requires it to be reported with the result. In nL.

Output Schema

NameRequiredDescriptionDefault
rowsYesone reading per well, or per pooled replicate group: occupancy, lambda with its interval, and every concentration the supplied volumes support
countYeshow many readings were produced
ratiosYestarget-vs-reference copy number per sample, with the exact Poisson rate ratio and its interval rescaled onto the concentration scale the number is on. Empty when no assay pair was named — never a guessed pair
flaggedYesreadings carrying at least one dMIQE occupancy flag
ciMethodYesthe interval method that produced the bounds: a CI without its method is not comparable
confLevelYesthe confidence level every interval in `rows` was computed at
volumeModelYeshow partition-volume spread was handled. `poisson` means it was not — a concentration without this is not comparable with one that was corrected
volumeCvPercentYesthe volume spread the correction used, echoed for the same reason as the partition volume: it changed the number
partitionVolumeNlYesthe partition volume the concentrations were computed at, echoed because dMIQE requires it to travel with the number

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / confLevel
      Added value: +{
      +  "description": "the confidence level every interval in `rows` was computed at",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "rows",
      -  "count",
      -  "flagged",
      -  "ciMethod",
      -  "partitionVolumeNl",
      -  "ratios",
      -  "volumeModel",
      -  "volumeCvPercent"
      -]New value: +[
      +  "rows",
      +  "count",
      +  "flagged",
      +  "ciMethod",
      +  "partitionVolumeNl",
      +  "ratios",
      +  "volumeModel",
      +  "volumeCvPercent",
      +  "confLevel"
      +]
  2. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so safety is covered. Beyond that, the description adds genuine behavioral content: the QC behavior (wells with zero positives or >95% occupancy are flagged rather than silently numbered) and the fact that the CI is carried on the lambda scale. It does not discuss performance limits or failure modes, but the added context is substantial.

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?

It is a single dense paragraph that is well front-loaded: the purpose comes first, then method, then QC output behavior. Nearly every clause carries information, though the lambda-to-copies chain is written in a somewhat breathless run-on that could be split for readability.

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

Completeness5/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. With annotations covering the safety profile and a 100%-covered schema, the description supplies the remaining missing piece - the definition of what the tool computes and how QC anomalies surface - making the definition complete for a 15-parameter analytical tool.

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 body adds integrative meaning the schema cannot, tying Positives/Partitions to lambda, then lambda to copies/uL through partition_volume_nl and dilution_factor, and naming the eleven ci_method variants as a scale-carried interval. This explains how the parameters interoperate rather than restating each one.

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 opens with a precise verb+resource: converting dPCR partition counts to absolute concentration without a standard curve. It is trivially distinguishable from qPCR siblings (call_cq, bootstrap_cq) and droplet-classification siblings (classify_droplets, gate_droplets). The method chain (positives/accepted partitions -> lambda -> copies/uL) is spelled out, so the agent knows exactly what computation is performed.

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 'with no standard curve' implicitly contrasts it with qPCR-based quantification, and the input shape (a well table) signals the entry condition. However, it never states when to choose this over alternatives, nor any exclusion or prerequisite beyond the obvious. Usage is inferable, not 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