SeqBench

Sequencing Read-Back Verification — NGS/Nanopore Consensus vs Reference

Align many NGS/Nanopore/Sanger reads to a reference with minimap2, call multi-read consensus variants, and build a corrected consensus sequence.

🔒 Nothing you paste is logged or stored

Check what a real sequencer actually read back from a batch of reads, not just one. Paste (or upload) a reference sequence and a set of raw reads — Sanger, NGS or Nanopore, FASTA or FASTQ, auto-detected — and every read is aligned to the reference with the real minimap2 binary. Each read's cs difference string is parsed into exact substitution/insertion/deletion calls, then compared across reads: a disagreement seen in only one read is reported separately as likely sequencing noise, while a disagreement multiple reads agree on is a consensus-supported variant. The tool goes one step further than a diff list and applies every consensus-supported edit back onto the reference, producing a corrected consensus sequence — what the real construct's sequence appears to actually be. This complements verify_construct and verify_assembly, which check a DESIGN against its own stated inputs; this checks what a real sequencer actually read back from the tube.

0 bp

0 characters pasted — up to 2000 reads / 5,000,000 bp per call.

Reads that must agree on the same edit at a position for it to count as consensus-supported rather than single-read noise.

Aligns reads through the reference's arbitrary start instead of cutting them short there, so a variant in the part that would otherwise be clipped away still gets called. Turn this on for whole-plasmid data.

Paste a reference and its reads to align them with minimap2 and build a consensus.

Reads are aligned to the reference with the real minimap2 binary, and each read's difference string is parsed into exact substitution/insertion/deletion calls. This is a mapping/diff tool, not a variant caller: read-quality (Phred) scores are not used to weight calls, and reads that fail to map at all give no positional information about where they diverge. Identity is measured over the aligned part of each read only, so read it next to Read used — the aligner clips freely, and a read it used half of can still show 100% identity. The reference is treated as linear unless you tick Circular reference: without it, a read spanning the reference's arbitrary start (routine for whole-plasmid nanopore data) is reported as its best-scoring single segment with the rest counted as clipped, and any variant in that clipped remainder is never called. With it, reads are aligned against the reference written out twice and every coordinate folded back, so the join is crossed rather than cut — reads that wrap are marked ↻ and their reference span reads high-to-low.

Working on a whole construct rather than one batch of reads? Open SeqStudio — the full editor, with live feature annotation, plasmid maps, restriction and primer panels, undo/redo, multi-document tabs and GenBank / SnapGene import and export.

How to use the Sequencing Read-Back Verification tool

  1. 1Paste the claimed/expected reference sequence, and paste raw reads as FASTA or FASTQ (or click Load example for a small synthetic multi-read dataset).
  2. 2Set the minimum number of reads that must agree on the same edit before it counts as consensus-supported rather than single-read noise.
  3. 3Review the per-read alignment table, the consensus-variant and single-read-only-position tables, the pass/fail gate, and copy or download the corrected consensus sequence as FASTA.

Frequently asked questions

What counts as a "consensus-supported" variant?

A reference position where at least the chosen minimum number of reads (default 2) agree on the exact same edit (the same substitution, insertion, or deletion) relative to the reference. A position where only a single read disagrees with the reference is reported separately as informational, not gated on, since sequencing error versus a real mutation can't be distinguished from one read alone.

How is the corrected consensus sequence built?

Every consensus-supported edit is applied to the reference, working from the highest reference position down to the lowest, which avoids the classic bug where an earlier insertion or deletion shifts the coordinates of every edit after it. If two different edits at the same position are equally well supported, that position is left as the reference base rather than guessed.

Which read types and formats are supported?

Sanger, NGS (Illumina-style short reads) or Nanopore/PacBio long reads, pasted as FASTA or FASTQ — the format is auto-detected. Up to 2,000 reads or 5,000,000 total bp per call. Alignment runs on the real minimap2 binary, not a re-implementation.

Is this a variant caller with quality-score weighting?

No. It's a mapping/diff tool: read-quality (Phred) scores are not used to weight calls, and reads that fail to map at all give no positional information about where they diverge. Treat consensus support as a count of independent reads agreeing, not a quality-weighted confidence score.

Does 100% identity mean the whole read matched?

Not on its own, which is why every alignment also reports how much of the read was used. minimap2 soft-clips, and identity is matches over the aligned block, so a read the aligner only used half of still scores 100% on that half. Each alignment therefore carries readLength, the aligned span of the read (queryStart/queryEnd and alignedLength), clippedBases and queryCoveragePct, and the gate raises a soft check when a mapped read had a meaningful share of it clipped away. Read identity and coverage together.

Why is my whole-plasmid nanopore read reported as partly clipped?

Because by default the reference is treated as linear. A whole-plasmid read starts wherever the molecule happened to be cut, so it usually spans the arbitrary start position of the reference — and only one side of that join can sit in a single linear alignment, leaving the rest counted as clipped and never variant-called. Tick "Circular reference (plasmid)" and re-run: the reads are then aligned against the reference written out twice, so a read crossing the join is aligned right through it in one piece, and every coordinate is folded back to the real sequence. Reads that wrap are marked, and their reference span reads high-to-low (e.g. 2400–400). It is a coordinate artefact, not a problem with the clone.

What does the circular option actually change?

It changes which parts of your reads get compared to the reference at all. Aligning against a doubled copy of the reference gives a read that straddles the join one contiguous place to sit, so minimap2 aligns all of it in a single pass — a real mutation sitting in the part a linear run would have soft-clipped away is then called normally instead of being invisible. Positions are folded back into 1..length afterwards, so everything reported stays in true reference coordinates. The trick covers reads up to the full length of the reference; a longer read (a rolling-circle or concatemer product) still runs off the end and has the excess counted as clipped.

Is my data stored, and can I run this from code?

No. Your reference and reads are used only to run the alignment and are never logged or stored. The same tool, including the gate and the corrected consensus sequence, is available via the REST API and the MCP server.

More