check_assay_decay
Check a published PCR or sequencing assay against the sequences that are circulating now: for each oligo, where its best binding site is in each genome, how many positions mismatch, and whether a mismatch sits in the 3′ end a polymerase has to extend through. It answers the question an assay's age raises — the design was made against the genomes available on the day, and the target has drifted under it since — as a RATE per oligo with an exact binomial interval, plus the mismatch count at each position of the oligo, which is the shape a manufacturer's own in-silico inclusivity table takes. IUPAC codes in an oligo are read as the breadth its designers meant, so a position a code covers is never a mismatch; a site overlapping ambiguous bases in a submitted assembly is missing data and leaves that genome out of that oligo's denominator rather than counting as a match or a mismatch. A probe gets no 3′-end rate, because it is not extended. Graded against EMBOSS fuzznuc on every oligo of twelve published SARS-CoV-2 assays over 400 genomes.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| assay | No | what the assay is called, for the result to name. | assay |
| _files | No | The 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. | |
| probes | No | the assay's probes, 5′→3′. Scored the same way but with no 3′-end rule: a probe is not extended. | |
| primers | No | the assay's primers, 5′→3′, IUPAC allowed. Written `name=SEQUENCE` to carry the published name. | |
| _subject | No | The 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. | |
| sequences | Yes | the genomes to check against: wire upstream records here, or list library document names. | |
| include_subject | No | also check the node's subject (the open or wired record). | |
| three_prime_window | No | how many bases from a primer's 3′ end count as its 3′ end. 5 is the window Primer-BLAST's own specificity rule uses. In bp. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sites | Yes | every (oligo, genome) site: strand, start, the mismatching positions and whether the genome could be scored | |
| worst | Yes | the oligo with the highest mismatch rate, which is the one that decides the assay | |
| oligos | Yes | per oligo: genomes scored, genomes with a mismatch, the rate and its exact 95% interval, the 3′-end count, and the mismatch count at each position | |
| result | Yes | the full result | |
| worstRate | Yes | that oligo's mismatch rate, for a threshold downstream | |
| threePrime | Yes | how many (primer, genome) pairs carry a mismatch in the 3′-end window |