Sanger plate clone verdicts
sanger_plate_verifyJudge a whole plate of Sanger reads against one construct and return one row per clone: PASS, POINT_MUTATION, INDEL, VECTOR_ONLY (the insert is absent), WRONG_INSERT (the backbone matches and the insert does not), LOW_COVERAGE, or AMBIGUOUS. Reads are grouped into clones from their FASTA/FASTQ record names (facility conventions like PlateA_A01_pXY-1_M13F, pXY-1_T7-F, 2026-08-01_pXY_clone3_R), and every read's assignment is reported with a confidence so a grouping can be corrected rather than trusted. Each clone's reads are piled up in reference coordinates, so a difference one read reports where other covering reads read the reference is reported as the sequencing error it is, not as a mutation — and a position no read covered is never PASS. Every verdict cites the positions it rests on. Give insertStart/insertEnd to have clones judged over the insert alone, which is also what VECTOR_ONLY and WRONG_INSERT need.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| reads | Yes | All the plate's reads as FASTA or FASTQ (auto-detected). The record name is what the clone grouping is read from. Up to 384 reads / 400,000 total bases, and (reference length x total read bases) must stay under 200,000,000 — split a 96-clone plate across calls. | |
| circular | No | Treat the construct as a plasmid, so a read crossing its arbitrary linear start is aligned through the join instead of having its tail discarded. | |
| grouping | No | How reads become clones. "auto" parses the record names; "one-clone" treats every read as being of one clone (use when the names carry nothing); "per-read" judges each read on its own. | auto |
| insertEnd | No | 1-based last base of that stretch. | |
| reference | Yes | The intended construct (raw or FASTA). Up to 20,000 bp. | |
| insertLabel | No | What to call it in the verdicts. Default "the insert". | |
| insertStart | No | 1-based first base of the stretch that has to be right (the insert). With insertEnd, every clone is judged over this span alone — the only honest framing when one 900 bp read cannot cover a 6 kb plasmid — and VECTOR_ONLY/WRONG_INSERT become reachable. May be greater than insertEnd on a circular construct, meaning the span crosses the origin. | |
| qualityOffset | No | ASCII offset of the FASTQ quality string. 33 for anything modern, 64 for pre-1.8 Illumina. | |
| trimThreshold | No | Phred threshold for trimming both ends of a read (BWA's rule). Only applies to FASTQ input, which is the only input that carries quality. |