compare_reads_to_reference
Compare a SET of sequencing reads against one reference in ONE shared frame: align every read to the reference, vote a consensus column by column, and report the positions where the reads differ from it, each with the change it makes to the protein. This is the whole-plate answer that grading reads one at a time cannot give — a variant is accepted only when every covering read agrees, so a single bad call does not become a mutation. Reads arrive as records or bases; the reference is the record this step runs on.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| reads | No | the reads to compare — wire a batch of trace RECORDS in (their names come with them, and the per-read table is keyed by name), wire plain sequences, or name project documents. | |
| _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. | |
| _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. | |
| end_phred | No | end trimming: the read becomes readable where three consecutive bases reach this score, and everything outside is masked. A Sanger read is unreliable at both ends by construction, which is why the ends are trimmed by RUN rather than per base. Only applies when quality_filter is true. | |
| min_phred | No | mask any single base below this phred score. Only applies when quality_filter is true. | |
| genetic_code | No | NCBI genetic-code table id, used to say what a variant does to the protein of a CDS on the reference. Advanced. | |
| quality_filter | No | mask low-quality bases before the vote. Off by default, deliberately: a comparison shows what the FILES say before it shows what a filter says. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| gaps | Yes | stretches of the reference no read covers, as 1-based inclusive runs. A clean comparison over 60% of a construct is not a verified construct, and this is the half that says so | |
| record | Yes | the consensus as a linear record, ready for any downstream step | |
| perRead | Yes | each read's own coverage, identity and substitution / deletion / insertion counts, plus how often it disagrees with the accepted consensus — the row that says WHICH read is the problem | |
| accepted | Yes | how many of those the vote accepted — every covering read agreed | |
| cautions | Yes | every caution this comparison raises, each naming its own subject: uncovered stretches, reads that reach across only part of the frame, reads that dissent from the accepted consensus, insertions the reads could not resolve, mixed peaks | |
| variants | Yes | one row per column where a read differs from the reference: its position, the reference base, the voted base, whether the vote ACCEPTED it, the coverage behind it and the consequence for the protein | |
| consensus | Yes | the voted consensus as a sequence, gaps and unresolved insertions removed — the sequence to hand on | |
| conclusion | Yes | the run's headline in one sentence, generated from THIS result and identical to the words the panel shows | |
| derivation | Yes | the chain behind the numbers: what identity was measured over (and that an indel does not lower it), the unanimity rule, how one frame came out of N pairwise alignments, the quality gate, the genetic code and the inputs | |
| coveragePct | Yes | how much of the reference any read covers at all | |
| identityPct | Yes | of the covered columns, how many match the reference |