SeqBench

Sanger Clone Screening — One Verdict per Clone for a Whole Plate

Drop a plate of Sanger reads against one construct and get one row per clone: which colonies to grow up, and why.

🌐 Nothing you paste is logged or stored — every tool is also callable via REST & MCP, and in bulk from the batch tools

The facility sends back 24 or 96 traces for one construct and the question is which colonies to grow up. Reading them one at a time is where clone picking goes wrong, in three specific ways this page is built around: a lone read's base call is taken for a mutation, a stretch nobody sequenced is taken for correct, and two clones' reads get filed under one name and then share a single confident verdict. So reads are grouped into clones from their record names — facility conventions like PlateA_A01_pXY-1_M13F or pXY_clone3_R, plus the sample name and well the .ab1 itself carries — with the confidence and the reason for every assignment shown and editable. Each clone's reads are then piled up in the reference's own coordinates, so a difference one read reports where the other covering reads read the reference is reported as the sequencing error it is, with the counts under it; and a position no read covered is never PASS. Every verdict cites the positions it rests on, and the table comes out as CSV.

1 · The construct you meant to build

GenBank, SnapGene .dna or FASTA. A GenBank or .dna also brings its features, which is where the insert already has coordinates.

Drop the reference constructor click to browse

A FASTA record and a pasted sequence say nothing about topology, so they load as linear. Tick the box for a plasmid: a read crossing the arbitrary linear start otherwise loses its tail.

2 · The plate the facility sent back

The zip is unpacked here in the browser — the archive is never uploaded, only the base calls it holds.

Drop the plate: a .zip, or the .ab1 / FASTA / FASTQ filesOne archive, 96 traces, or a single multi-record FASTA — all three are the same plate

3 · What has to be right

Mark the insert and every clone is judged over that span alone — which is also the only way a missing insert can be told from a large deletion.

The insert is not marked, so two verdicts cannot be reached: VECTOR_ONLY (the insert is absent) and WRONG_INSERT (the backbone matches and the insert does not). Both are statements about a stretch of the reference that only you can point at, so a clone with no insert will be reported as a large deletion — true, and less useful. Nothing here guesses where the insert is.

Drop the archive the sequencing facility sent and the construct you meant to build, and this returns one row per clone: the verdict, how much of the span was actually read, and every difference with the reads behind it.

How to use the Sanger Clone Screening tool

  1. 1Paste the intended construct, or load it from a GenBank/FASTA file, and tick 'circular' for a plasmid so a read crossing the arbitrary start is aligned through the join.
  2. 2Drop the plate: the facility's zip, or the .ab1 / FASTA / FASTQ files themselves.
  3. 3Check the grouping before you read any verdict — which clone a read belongs to is read off its name, and a merged pair of clones gives one confident wrong answer over both.
  4. 4Give the insert's start and end to have clones judged over the insert alone; that is also what makes 'vector only' and 'wrong insert' reachable at all.
  5. 5Work down the table: PASS rows are the colonies to grow up, and every other row names the positions and the reads behind it. Download the CSV for the notebook.

Frequently asked questions

How does it know which reads belong to which clone?

From the record name, and from the sample name and well an .ab1 carries in its own header. Facility conventions are parsed — plate and well, a clone number, a primer name like M13F or T7-F, a date prefix — and each assignment comes back with a confidence and the reason it was made, both shown next to the read. A name that identifies nothing is judged alone under its own key rather than merged into a neighbour: that understates coverage, which is the safe direction, because merging two clones produces one confident verdict that is wrong for both. Every assignment is editable before you run it.

Why isn't a single mismatch called a mutation?

Because Sanger produces plenty of them. Each clone's reads are aligned into one pileup in reference coordinates, so a difference is judged against the other reads that cover the same position: one read disagreeing where two others read the reference is reported as a sequencing error, with the counts and the reason beside it, rather than failing the clone. A difference every covering read agrees on is a difference. Where only one read covers a position at all, that is what the row says — it is not upgraded to a consensus.

What does LOW_COVERAGE mean, and why isn't it a pass?

It means the reads were clean over everything they reached and did not reach the rest. A 900 bp read cannot cover a 6 kb plasmid, so most plates have clones like this, and calling them PASS is the single most damaging thing a screening table can do. The uncovered ranges are named so you can see whether the gap matters — often it does not, because the part you care about is the insert, which is what the insert span is for.

How do I get 'vector only' or 'wrong insert' instead of a huge deletion?

Give the insert's start and end. Without them there is nothing to distinguish 'the insert is absent' from 'a very long deletion', so an empty-vector clone is reported as an INDEL and the gate says so in what it did not check. With them, each clone is judged over the insert alone, an absent insert is VECTOR_ONLY, and a clone whose backbone matches while the insert does not is WRONG_INSERT. Which sequence the wrong insert actually is takes candidate constructs, and nothing here aligns a read against alternatives.

Can I drop the zip the facility sent?

Yes — a zip, or the .ab1 / .abi / FASTA / FASTQ files themselves, mixed together. Traces are decoded to their base calls and, where the file carries quality, both ends of the read are trimmed on Phred score using BWA's rule before anything is aligned; the threshold and the quality offset (33 for anything modern, 64 for pre-1.8 Illumina) are yours to set. Pasted FASTA carries no quality at all, and the result says so.

How big a plate can it take?

One call takes up to 384 reads, 400,000 read bases and a 20,000 bp reference, and the reference length times the total read bases has to stay under 200 million alignment cells — every read is aligned against the whole construct, so that product is the real cost. This page runs a clone at a time, which keeps a 96-clone plate against a 6 kb plasmid inside the ceiling; the API is the same tool and will tell you to split rather than time out.

Does a PASS mean the clone is correct?

It means every base the reads covered, over the span being judged, matched the construct you gave — and that the reads covered all of it. It says nothing about the stretch nobody sequenced, so if you judged over the insert then the marker, the origin and the rest of the backbone are untested, which the result states rather than implies. It also cannot tell you whether the sequence you pasted is the construct you meant to build; for that, check the design itself with the Construct Verifier.

More