Batch Editing Quantification — A Whole Plate of Edited Wells Against One Control
One untreated control against 24-96 edited wells and one sortable table out: indel, base-editing or knock-in percentage per well, each with the fit numbers behind it.
🔒 Nothing you paste is logged or stored
Predicted, not measured
- How good is it?
- None is published for this implementation, and being a batch does not soften that: each row is exactly the claim the corresponding single-sample tool makes. What every row instead reports is what it rests on — R² for the indel and knock-in modes, the background n, sd and noise floor for base mode — plus fitAdequate, which is the single-sample tool's OWN gate verdict on that row rather than a threshold re-invented here. Recovery of known synthetic mixtures is deliberately NOT offered as validation: it tests the arithmetic and the plate plumbing, not whether the model fits a real capillary trace, and for a knock-in with novel inserted bases it is circular, because a synthetic trace is built from the same idealised peaks the basis assumes. Quoting it would be the mistake rbs_predict made when it shipped a calibration residual as held-out skill.
- Only valid for:
- One control read and a set of edited reads that are all the SAME amplicon, chemistry and primer as that control, with each read extending well past the edit site. COMPARING TWO WELLS' PERCENTAGES IS ONLY MEANINGFUL WHEN BOTH ROWS ARE fitAdequate: a percentage from a badly fitting well is not a smaller number than one from a well that fitted, it is a different kind of statement, and the plate summary here is therefore computed over the adequate rows only. Ranking wells also assumes they differ only in the variable under test — the same control is subtracted from all of them, so a well whose read started 30 bases later or whose reaction was dirty carries that difference into its number. Mode-specific limits carry over unchanged: indel mode is blind to substitutions, base mode is blind to indels and its percentages run low by roughly the crosstalk fraction, and knock-in mode cannot separate an intended pure deletion from an NHEJ deletion of the same length at the same site.
- Fitted on:
- Nothing. There are no fitted coefficients anywhere in this tool or in the three it dispatches to: the basis (or the background) is the caller's own control trace, and the only free parameters are the mixing proportions themselves, solved per sample. The models are TIDE's shifted-control decomposition for indels (Brinkman et al., Nucleic Acids Research 2014), TIDER's added intended-allele column for a knock-in, and EditR's two-peak mixture for base editing (Kluesner et al., The CRISPR Journal 2018).
A plate comes back from the facility as one untreated control and 24 to 96 treated wells, and the question is which guide, which editor or which donor concentration won — which is ninety-six single-sample calls stapled together by hand, with a well quietly dropped on the floor as the failure mode. This runs one of three quantifiers over the whole plate against that single control — indel decomposition, base-editing conversion, or an intended knock-in against its byproducts — and returns one row per well carrying the headline percentage, the fit numbers behind it (R², or the background n and noise floor in base mode), and fitAdequate, which is the single-sample tool's own gate verdict on that row rather than a threshold re-invented for the plate. A well whose read is short, mismatched or unfittable becomes a failed row with its own error message while the other ninety-five still come back; an argument that is wrong for every row — an out-of-range limit, an argument belonging to another mode, a plate-wide offset override — is rejected rather than quietly substituted, because at plate scale a substituted setting rewrites all the rows identically and nothing in the table then looks odd.
One mode runs over the whole plate. Indel mode is blind to substitutions and base mode is blind to indels, so a plate that had both done to it is two runs.
0 wells loaded · 0 of 400,000 trace positions
One control against up to 384 wells per call. The same control is measured against every well, so it has to be the same amplicon, primer and chemistry as all of them.
Max indel 1–20 bp, window 20–300 bases downstream of the cut, guard = bases skipped immediately after it. A value outside a range is rejected rather than quietly moved to the nearest legal one, because a substituted limit would rewrite every row identically and nothing in the table would look odd.
How to use the Editing Plate Quantification tool
- 1Choose the mode: indel for a nuclease knockout, base for a CBE/ABE plate, knockin for a specific intended edit. One mode runs over the whole plate.
- 2Load the ONE untreated control trace (.ab1), then select the edited wells — up to 384 in a call, 96 being the natural plate.
- 3Check the plate map before you run it: each well's id keys its row, and two wells sharing a name usually means the map is off by a row or a column.
- 4Give the mode's arguments — a cut position or a protospacer for indel mode; an editor plus protospacer or an explicit window, and the target position, for base mode; the edit kind and its position for knock-in mode.
- 5Sort the table by any column, read each row's fit badge before ranking two wells against each other, then download the CSV for the notebook.
Frequently asked questions
How is this different from Sanger Clone Screening?
They are both plate-scale and they answer different questions. Sanger Clone Screening judges CLONING: it groups a plate of reads into clones and gives each one a verdict — PASS, point mutation, indel, vector only, wrong insert, low coverage, ambiguous — so you know which colony to grow up. This page measures EDITING: each well is a pool of cells, not a clone, and what comes back is a percentage of that pool — how much of it carries an indel, the base conversion, or the intended knock-in. If you are picking colonies, use the screening page; if you are ranking guides, editors or donor concentrations, use this one.
What do the three modes do, and can I run one plate through all of them?
Indel mode decomposes each well onto shifted copies of the control and reports the edited fraction and the dominant indel size. Base mode reports the conversion at the target base against that well's own background, with the bystander summary and noise floor. Knock-in mode fits the intended edit against wild type and unintended indels. One call runs one mode over the whole plate, and each mode is blind to what the others measure — indel mode cannot see a base edit (a substitution makes a mixed base, not a shift), base mode cannot see an indel — so a plate that had both done to it is two runs over the same files.
What does the fit column mean, and why can't I just sort by the percentage?
The fit badge is the single-sample tool's OWN gate verdict on that row, called directly rather than re-implemented here, so the plate can never say a well is fine while the per-well tool says it is not. It is not a small number: a percentage from a well whose model fitted badly is a different kind of statement from one that fitted, so the two must not be ranked against each other. You can still sort every column, and the rows that failed the fit are marked rather than hidden — but the plate summary (min, median, mean, max) is computed over the adequate rows only, and says how many wells that left out.
What happens to a well whose read failed?
It becomes a failed ROW carrying its own error message, and the rest of the plate still comes back — that isolation is the whole reason a plate tool exists, since a batch that aborts on well 37 is useless to someone holding 96 wells. What is NOT isolated is a problem that is wrong for every row: a control trace that cannot support the mode, an argument belonging to another mode, an out-of-range limit or a plate over the work ceilings all raise one error instead, because returning 96 identical failed rows would dress a single mistake up as a plate-wide biological result.
How accurate are these percentages?
No validation is published for this implementation, and being a batch does not soften that: every row is exactly the claim the corresponding single-sample tool makes — a composition of a real pool, checkable only by amplicon sequencing. There are no fitted coefficients anywhere; the basis (or the background) is your own control trace, and the models are TIDE's shifted-control decomposition for indels (Brinkman et al., Nucleic Acids Research 2014), TIDER's added intended-allele column for a knock-in, and EditR's two-peak mixture for base editing (Kluesner et al., The CRISPR Journal 2018). What each row reports instead is what it rests on — R² for indel and knock-in mode, the background n, sd and noise floor for base mode — plus the fit verdict. Recovery of synthetic mixtures is deliberately not offered as validation, because it tests the arithmetic and the plate plumbing rather than whether the model fits a real capillary trace.
How many wells can one run take?
Up to 384 samples per call — 96 is the natural plate — with at most 3,000 called bases per trace and 400,000 trace positions across the whole call, control included. The position ceiling is the one that usually binds, because every channel row is four numbers and 400,000 of them is already an 8-10 MB request. A plate of untrimmed reads is told to split rather than left to fail somewhere in transit, and splitting changes no well's number: every call re-reads the same control.
Two of my wells have the same name — what happens to them?
They are suffixed, never merged, and the second suffix is checked against every id on the plate so it can never land on another well's real name. Both rows survive with distinct keys and the gate reports that it happened, because merging two wells would average two different samples into one confident row. In practice a duplicate id means the plate map is off by a row or a column, so fix the ids on the page before reading the table.
Why is there no offset override for the plate?
An alignment offset is a property of ONE pair of reads — where that well's read happened to start — so a single value imposed on a plate would be right for at most one well and would misregister the rest. Every row finds and reports its own offset instead. Sending one anyway is rejected rather than ignored, since an argument that is accepted and silently dropped changes the answer and says nothing; if you genuinely need to force an offset for one well, quantify that well with the single-sample tool.
More
Related tools
Digest level-0 part plasmids with a Type IIS enzyme and let the overhangs decide the assembly order.
Turn one variant description into one oligo order table: the primers that build it and the primers that genotype it.
Paste the recipe you ran and the sequence you got. It re-runs the assembly from the parts and diffs the whole molecule against your claim.