CRISPR Sanger Analysis: Indels vs. Base Edits vs. Knock-ins
13 min read · Updated September 11, 2026
The same pair of .ab1 files can support three different CRISPR questions, and choosing the wrong one can return a beautifully fitted wrong answer. A nuclease indel shifts every peak downstream of the cut. A base edit changes the mixture of colours at one position without shifting anything. A knock-in asks whether one exact intended allele is present among wild type and repair byproducts.
No single decomposition safely answers all three. This guide shows what signal each edit leaves in a mixed Sanger trace, which model belongs to it, how to read the fit checks, and where the data runs out. The percentages are estimates of a real sample's composition, not measurements made true by a green gate.
First decide whether you have a clone or a pool
A clean read from one clonal allele is a comparison problem. Align it to the reference, list the substitutions and indels, and report exactly what that sequence says. There is no reason to estimate an allele fraction when one sequence is the object in front of you.
A bulk-edited population is different. Its Sanger electropherogram is the superposition of many alleles in one capillary. The base caller chooses one letter per peak position, but the four dye-channel intensities still carry the mixture underneath. Recovering proportions from that mixture is an inference problem: you declare which allele shapes are allowed, fit their contributions, and ask how much of the observed trace that basis explains.
That distinction is why "verify this clone" and "quantify this edited pool" need different tools even when both inputs are Sanger files. Use a reference alignment for a clone. Use a composition model for a pool, and choose that model from the kind of edit you made.
Three edit types leave three different signals
The categories are about signal, not which nuclease protein was delivered. Cas9 nuclease usually belongs in the shifted-indel model. A Cas9-based cytosine editor does not. A prime editor can install a substitution with no shift, an insertion with a shift, or a replacement with both novel bases and a length change; if the question is the intended edit rather than total disruption, the intended-allele model is the right one.
- Nuclease indels — after the cut, a deletion makes the allele read ahead of wild type and an insertion makes it lag behind. The mixed trace goes out of register downstream, so shifted copies of the control are the natural basis.
- Cytosine or adenine base edits — no length changes. At the edited coordinate, part of the pool contributes the reference dye and part contributes the converted dye; downstream peaks stay in register. The signal is a position-specific colour mixture.
- HDR or prime-edit knock-ins — the question names one exact intended allele: a substitution, insertion, deletion or replacement. That allele must be a basis column of its own alongside wild type and unintended indel shifts.
The control trace is part of the model
All three SeqBench quantifiers use an untreated control from the same amplicon. That is not merely a baseline picture. For indels, shifted copies of its four-channel trace are the allele basis. For base editing, its alternate-colour fraction at each position is the background subtracted at that exact position. For a knock-in, it supplies both wild type and the sequence context from which the intended allele is constructed.
Use the same PCR amplicon, sequencing primer, read direction and capillary chemistry for control and edited samples. The clean sequence before the cut is where the two reads are registered and where the tool checks they are probably the same amplicon. The region after the cut has to remain long and clean enough for the model to distinguish one shift from another.
A control from another cell line, another isoform or the opposite sequencing direction can still look biologically related and be mathematically unusable. The upstream-identity check exists to catch that class of mistake before a percentage is read.
Nuclease indels: shifted-control decomposition
The indel model is the one introduced by TIDE — Tracking of Indels by DEcomposition (Brinkman et al., Nucleic Acids Res 2014;42:e168, doi:10.1093/nar/gku936). Over a window downstream of the cut, the edited trace is fitted as a non-negative sum of control traces shifted by each allowed indel length. A zero shift is wild type, a positive shift is a deletion and a negative shift is an insertion. The fitted weights are normalised to sum to one.
Non-negativity is load-bearing. An unconstrained least-squares fit can improve its residual by assigning a negative fraction to an allele, which is not a slightly wrong biological answer but an impossible one. The constrained solve never reports less than zero of a genotype.
SeqBench fits every length from a 1 bp insertion through a 20 bp deletion at most, over 20-300 downstream bases (70 by default), after a short guard region immediately after the cut. It resolves length, not sequence: two different 3 bp deletions produce the same downstream shift and land in one column. Large deletions, rearrangements and alleles whose informative sequence falls outside the window are not recovered.
One numerical difference matters when comparing software. Original TIDE documentation defines its headline overall efficiency using the fit and wild-type contribution; SeqBench reports one minus the normalised wild-type share and reports R² separately. When the fit is imperfect, those headlines are not guaranteed to be interchangeable. Compare the spectra and fit definition, not only two percentages carrying the same label.
The high-R² false negative: why an indel model cannot see a base edit
A substitution shifts nothing. Feed a pure C-to-T or A-to-G base-editing experiment into a shifted-control model and the zero-shift column explains almost the whole trace; one mixed peak contributes little to the hundreds of channel values in the window. The result can be approximately 0% edited with a high R².
That is more dangerous than an obvious failure because the fit looks reassuring. R² says the selected basis explains the data overall. It does not say the basis contains the biological event you care about. A model can fit well while being structurally blind to the edit.
Use an indel decomposition for double-strand-break repair. Use a base-edit model for a CBE or ABE conversion, and run both separately when you need to quantify the intended conversion and the indel byproduct produced by nicking and repair.
Base edits: compare the two dye fractions at each eligible position
For a base editor, let a be the converted-base channel as a fraction of all four channels in the edited trace, and b the same fraction in the untreated control at that position. SeqBench reports 100 × (a − b) / (1 − b), clamped to the physical 0-100% range. Subtracting b removes position-specific dye bleed; dividing by 1 − b rescales the remaining signal.
The method is inspired by the same peak-mixture idea as EditR (Kluesner et al., CRISPR J 2018;1:239-250, doi:10.1089/crispr.2018.0014), but it is not an implementation of EditR. Original EditR models noise from one edited trace with a zero-adjusted gamma distribution. SeqBench uses a matched untreated control, subtracts background position by position and derives z-scores and a noise floor from other control positions carrying the same editable base.
That null needs at least ten usable background positions outside the editor window. A position where the control already contributes more than 25% of the alternate channel is reported but not quantified, because dividing by the small remainder would amplify noise into a confident number. Its displayed zero means no estimate, not no editing.
The output is per position. Two sites each reported at 40% do not reveal whether one 40% population carries both changes or two separate populations carry one each, and adding bystander percentages can legitimately exceed 100%. A Sanger trace has no phase information; haplotypes require sequencing individual molecules.
Knock-ins: put the intended allele into the basis
An HDR or prime-edit experiment asks a more specific question than total editing: what fraction carries this exact replacement? The basis therefore contains wild type, a constructed trace for the intended substitution, insertion, deletion or replacement, and shifted-control columns for unintended indels. Non-negative fitting separates those three categories when their expected traces are distinguishable.
This follows the intended-allele logic of TIDER (Brinkman et al., Nucleic Acids Res 2018;46:e58, doi:10.1093/nar/gky164), but the inputs differ and the distinction matters. Original TIDER uses a third physical reference trace representing the intended edit. SeqBench uses two physical traces plus the edit sequence you specify, constructing expected peaks for novel inserted bases. Call it TIDER-like, not equivalent, and do not transfer TIDER's published validation numbers to it.
Some alleles are mathematically inseparable. If your intended outcome is a 6 bp deletion at the cut, an unintended 6 bp deletion creates the same net shift and can create the same basis column; no solver can decide which mechanism produced it. The result names that degeneracy rather than inventing a split. An insertion byproduct with the same length as the intended insert can also absorb part of its signal when the novel-base region is weak.
The percentage also cannot establish that donor DNA integrated only at the target, whether every cell is heterozygous or half are homozygous, or which byproducts share one chromosome. Those are locus and haplotype questions outside one bulk amplicon.
Read the fit checks before the editing percentage
For indel and knock-in decomposition, R² is the share of variation in the chosen window explained by the basis on this run. SeqBench's hard gate requires R² of at least 0.70; TIDE's own user guidance recommends aiming above 0.90. Those are two different thresholds for two different implementations. The first is the point below which SeqBench refuses interpretation, not a claim that 0.71 is publication-quality evidence.
The second hard check asks whether the control and edited base calls agree by at least 90% upstream of the cut at the alignment offset actually used. That is an identity check on the input pair, not a confidence interval. Knock-in analysis adds an identifiability check asking whether the intended column is too similar to a byproduct column. Base-edit analysis instead reports the size and spread of its background null and the detection floor implied by this run.
None of these gates should pass or fail on whether the editing percentage is high. They test whether the input and model can support an estimate. Whether 12% is enough for your experiment is a biological and operational decision the trace does not know.
What the synthetic examples prove — and what they do not
The indel regression fixture mixes clean synthetic traces at known proportions: 35% unedited, 40% carrying a 3 bp deletion and 25% carrying a 1 bp insertion. The solver recovers those proportions, 65% total edited and R² above 0.999. That proves the shift construction, coordinate handling and constrained arithmetic work when the data obey the model.
The base-edit example seeds a BE4max trace with 62% C-to-T at protospacer position 5 and 18% at position 6, plus dye bleed and noise. The knock-in fixture mixes 50% wild type, 30% intended 6 bp insertion and 20% unintended 4 bp deletion. They exercise the position-specific correction and the intended-allele split in the same way.
None is validation against a real capillary sample or amplicon sequencing. Synthetic traces are generated from assumptions close to the ones the models fit, so recovering them tests implementation and cannot establish biological accuracy. SeqBench has no published agreement study against real NGS samples for these implementations, and it does not borrow one from TIDE, TIDER or EditR.
Choose the readout from the question
The plate tool accepts up to 384 samples and isolates a bad well as a failed row while preserving the rest, but one run still has one mode. A plate containing base-edit and indel questions is two analyses over the same files, not one score that blends them.
- Bulk Cas9/Cas12 nuclease knockout, where total small-indel burden and the size spectrum matter — use the indel model.
- CBE or ABE experiment, where conversion at the intended base and bystanders matter — use the base-edit model; run the indel model separately only for indel byproducts.
- HDR or prime editing with one specified intended allele — use the knock-in model, while reading any same-shift identifiability warning.
- A plate of edited pools — run one of those same three modes across the plate against one matched control; do not compare rows whose fit checks failed.
- One isolated clone — align its sequence to the reference and describe the allele directly instead of estimating a pool composition.
When Sanger is a screen and amplicon sequencing is the answer
Sanger decomposition is useful for fast ranking: did a guide create a substantial indel mixture, which editor condition moved the target base, which donor concentration enriched the intended allele? It is inexpensive, uses files most labs already generate and gives a same-day answer.
Move to amplicon sequencing when the decision depends on low-frequency alleles, exact junction sequences, large deletions, phased combinations of bystander edits, zygosity, rare off-target outcomes or a quantitative result that must stand as the measurement in a paper. Clone individual molecules when the question is which edits coexist on one allele.
"Without NGS" therefore means a screening estimate without amplicon deep sequencing. It does not mean without sequencing, and it does not make the estimate equivalent to NGS. Sanger supplies the signal; the model supplies the separation; an independent method is what tests whether that separation described the sample correctly.
Frequently asked questions
Can Sanger sequencing quantify CRISPR editing efficiency?
It can estimate allele proportions in a mixed pool when you have a matched untreated control and choose a model that contains the edit's signal. Small nuclease indels can be decomposed as shifted control traces, base edits from position-specific dye mixtures, and one specified knock-in from an intended-allele basis. The result is a model-based estimate, not a direct count of molecules.
Why can a base-editing sample look 0% edited in TIDE-style analysis?
Because a base substitution shifts no downstream peaks. A shifted-control basis gives the zero-shift wild-type column almost all the weight, and one mixed position contributes little across a long window, so the fit can return approximately 0% edited with a high R². Use a per-position base-edit model for C-to-T or A-to-G conversion; a good indel fit does not make the model able to see substitutions.
What does R² mean in a Sanger decomposition?
It is the fraction of variation in the selected trace window explained by the basis on that run. It is a goodness-of-fit statistic, not an accuracy percentage, confidence interval or external validation. SeqBench refuses indel or knock-in interpretation below 0.70; TIDE's own guidance recommends aiming above 0.90. Neither threshold says the reported editing magnitude is biologically sufficient.
Do I need an untreated control trace?
Yes for these methods. The control is the shifted basis for indels, the position-specific dye background for base editing, and the source of wild type and sequence context for knock-in analysis. It should be the same amplicon, sequencing primer, direction and chemistry as the edited sample; a related reference sequence is not a replacement for the four-channel control trace.
Does an indel spectrum tell me the exact edited sequences?
No. It resolves net length shifts: every allele that behaves as a 3 bp deletion downstream of the cut shares one column, even if the three deleted bases start at different positions. Exact junction sequences, microhomology and phased combinations require amplicon sequencing or clonal sequencing.
Can Sanger distinguish an intended knock-in from NHEJ?
Sometimes, when the intended allele's expected trace differs from all byproduct columns. A specified substitution or novel insertion gives the model extra sequence signal. An intended deletion can be identical to an unintended deletion with the same net shift, and a same-length insertion can be partly confounded when the novel-base signal is weak. The identifiability warning is the result to read before the percentage.
Why can base-editing bystander percentages add up to more than 100%?
Because each position is estimated independently. Two positions at 70% could both occur in the same 70% of molecules, in partly overlapping populations, or in different alleles; the trace has no phase information. Summing them measures per-position edit burden, not a fraction of cells, so a total above 100% is possible and should never be labelled the edited-cell percentage.
Is Sanger deconvolution as accurate as amplicon NGS?
That has not been established for SeqBench's implementations. TIDE, TIDER and EditR published validation for their own methods, but those figures do not transfer to code with different inputs and estimators. SeqBench reports per-run fit and background diagnostics and has synthetic arithmetic tests; confirm accuracy-sensitive conclusions with amplicon sequencing or clonal genotyping.
Can I quantify a whole plate of edited samples?
Yes. The plate quantifier runs one selected mode — indel, base or knock-in — across up to 384 wells against one control, preserves a failed sample as a failed row, and excludes inadequate rows from its summary. It does not run all three models at once, and percentages from rows with different or failed fit checks should not be ranked as if they were comparable.
Related tools
Drop in an unedited control trace and your edited pool's trace and get the indel spectrum, the unedited fraction, and the R² that says whether the decomposition means anything.
Load an unedited control trace and your edited pool's trace and get per-position C→T or A→G percentages, their z-scores against your own run's background, and the detection limit those numbers sit on.
Put the intended allele itself in the basis: measure what fraction of the pool carries your knock-in, what fraction is still wild type, and what fraction is NHEJ byproduct — from one control trace and one edited trace.
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.
View an .ab1 / .abi Sanger chromatogram, read the base calls and export the trace.