Mixed Samples, Contamination, or Heterozygosity? How to Tell the Difference

February 26, 2026 AILabAssistant Team 11 min read

TL;DR

You see double peaks in your chromatogram. Before you re-streak, re-prep, or re-sequence: stop. The cause determines the response. Contamination shows abrupt onset of secondary signal near restriction sites and degrades downstream. Mixed templates show uniform double peaks across the entire trace with consistent secondary intensity. True heterozygosity shows clean secondary peaks at specific positions with ~50/50 allele ratios. This article walks through each pattern, what to look for, and how AILabAssistant's Sequence Deconvolution pipeline distinguishes between them automatically — with contamination scanning, statistical mixed base detection, shift-based indel deconvolution, and allele quantification.


You're staring at a chromatogram and there are double peaks. Two signals where there should be one. The trace looked clean for the first hundred bases, and now it's a mess — or maybe it's been messy from the start. Or maybe there are just a few positions with clear secondary peaks and the rest is pristine.

Each of those scenarios means something completely different. And each one requires a completely different response.

Contamination? Re-streak the clone, re-prep, re-sequence. Mixed template from a mixed clone? Go back to the plate and pick new colonies. Genuine heterozygosity? That's not a problem — that's data. You need to separate the alleles, not repeat the experiment.

Getting this wrong costs you days to weeks. Re-streaking a clone that was actually heterozygous doesn't fix anything — you'll see the exact same double peaks next time. Ignoring contamination because you thought it was "just heterozygosity" means you build downstream experiments on compromised template. And misidentifying a mixed clone as contamination sends you down a troubleshooting rabbit hole looking for a contamination source that doesn't exist.

So let's walk through the three scenarios, what the trace patterns actually look like, and how to make the call.

Scenario 1: Contamination

What it looks like

The defining feature of contamination in a Sanger chromatogram is a sharp transition point. The trace is clean upstream — single peaks, good resolution, strong signal. Then at a specific position, secondary peaks appear abruptly. From that point on, the trace looks like two overlapping sequences, and signal quality degrades progressively downstream.

The transition point often coincides with a restriction enzyme site — SalI (GTCGAC), EcoRI (GAATTC), BamHI (GGATCC), HindIII (AAGCTT) — because the most common source of this pattern is incomplete restriction digestion during cloning. A small amount of uncut or re-ligated vector backbone is present in the sequencing reaction alongside your insert, and once the sequencing read passes the cloning junction, both templates contribute signal simultaneously.

Other contamination sources produce different patterns. Sequencing adapter read-through (Illumina TruSeq adapter AGATCGGAAGAGC, Nextera adapter CTGTCTCTTATAC) creates recognizable motifs mid-sequence. Primer contamination from M13 forward or reverse primers in the prep shows up as known sequences superimposed on your target. PhiX control DNA contamination — rare but real — produces a 25-mer signature from the PhiX174 genome.

What to do about it

Re-prep the template. If the transition point maps to a restriction site in your cloning strategy, you likely have incomplete digestion or re-ligation. If it maps to an adapter or primer sequence, you have a purification problem.

How AILabAssistant handles this

The Contamination tab in the Chromatogram Analysis Tool runs two independent detection methods:

Pattern-based scanning checks your sequence against a library of known contaminant signatures — the restriction enzyme sites listed above, Illumina and Nextera adapter sequences, M13 forward and reverse primer sequences, and PhiX control DNA. Every hit is reported with the exact position, length, contaminant type, and the matched sequence. If contaminant regions are found, the tool also generates a clean sequence with those regions removed, so you can see what your actual insert looks like underneath.

Statistical complexity analysis takes a different approach — it uses a sliding window to measure local sequence complexity and flags regions where the signal pattern deviates from what a single clean template would produce. This catches contamination sources that aren't in the pattern library.

Both methods run independently. The combined summary tells you whether your sequence is clean, how much of it is affected, and what the likely source is.

Scenario 2: Mixed Template (Mixed Clones)

What it looks like

Mixed template contamination looks fundamentally different from single-source contamination. Instead of a sharp transition from clean to messy, you see double peaks distributed across the entire trace — from the first base to the last. There's no clean region. The secondary signal intensity is roughly consistent throughout, because both templates are present at similar concentrations in the sequencing reaction.

This happens when your colony pick contained cells from two different clones. On a standard LB plate, colonies that look like single picks to the naked eye can easily contain two genotypes — especially if the plate is dense, the colonies are close together, or you picked at the edge.

The key distinguishing feature: the heterozygosity rate (fraction of positions with detectable secondary signal) is high and uniformly distributed. If 15–30% of positions show mixed bases and those positions are spread evenly across the read rather than clustered, you're almost certainly looking at a mixed template.

What to do about it

Pick new colonies. Ideally, re-streak to single colonies first and then pick from well-isolated clones. The template prep itself is fine — the problem is upstream at the colony level.

How AILabAssistant handles this

The Sequence Deconvolution tab's mixed base detection pipeline processes every peak position in the trace using a statistical framework — not manual inspection.

For each position, the algorithm calculates the local background noise level (mean and standard deviation of signal intensity in a ±40-point window around the peak, excluding known peak positions). A secondary peak is only called as a mixed base if it exceeds μ + 3σ of the local background AND shows proper peak morphology — a genuine local maximum within ±3 data points of the peak center.

The result is a table of every mixed position with the primary and secondary alleles, IUPAC ambiguity codes (R, Y, S, W, K, M), the secondary-to-primary intensity ratio, and a confidence score. Critically, it also reports the overall heterozygosity rate — the fraction of total positions with detected mixed bases.

That heterozygosity rate, combined with the distribution pattern, is what separates mixed template from true heterozygosity. A uniformly high rate across the entire read = mixed clones. A low rate concentrated at specific reproducible positions = something else.

The Allele Quantification section takes this a step further. It calculates confidence-weighted allele frequency estimates and a sample purity score. A pure single-clone template shows >95% purity. A mixed template typically shows 55–80% purity, depending on the ratio of the two clones in the pick. The purity number gives you an objective measurement instead of "this trace looks kind of messy."

Scenario 3: True Heterozygosity

What it looks like

Heterozygous positions in a chromatogram produce clean, well-resolved secondary peaks at specific, reproducible positions. The rest of the trace is pristine. Unlike contamination (which degrades downstream) or mixed template (which affects everything), true heterozygosity is position-specific.

The hallmark is the allele ratio. In a diploid organism, each allele contributes roughly 50% of the template molecules to the sequencing reaction. So the secondary peak at a heterozygous position is substantial — typically 40–60% of the primary peak intensity, not a borderline signal buried in noise.

For heterozygous SNPs (single nucleotide polymorphisms), the pattern is straightforward: clean double peaks at isolated positions with consistent ratios. You see the same positions with the same alleles every time you sequence that region, because they reflect genuine genomic variation.

Heterozygous indels (insertions or deletions) are harder. An indel on one allele causes a frameshift in the trace: from the indel position onward, the two alleles are out of register. The chromatogram downstream of the indel looks like overlapping sequences — similar to contamination at first glance. The critical difference is that the overlapping signal starts cleanly, maintains consistent intensity on both alleles, and the shift between the two is a fixed number of bases.

What to do about it

Nothing is wrong. These are your real alleles. What you need is to separate them — determine the sequence of each individual allele so you can work with them independently.

How AILabAssistant handles this

This is where the platform's heterozygous indel deconvolution comes in — the algorithm inspired by the Tracy method (Rausch et al. 2020, Genome Research).

The pipeline works in three steps:

Step 1 — Breakpoint detection. The algorithm scans the trace for a position where the secondary-to-primary intensity ratio jumps sharply. This is the indel breakpoint — the position where one allele has an insertion or deletion that the other doesn't. It computes a smoothed ratio profile across the trace and identifies the position of maximum gradient change. If the gradient exceeds a minimum threshold (0.05), a breakpoint is called.

Step 2 — Shift-based trace decomposition. Starting from the breakpoint, the algorithm tests all possible integer shifts from −30 to +30 base positions. For each shift, it mathematically decomposes the observed signal at each downstream position into a reference component and an alternate component:

alternate = (observed − weight × reference) / (1 − weight)

The optimal shift is selected by entropy minimization — the shift that produces the cleanest (lowest Shannon entropy) alternate signal is the one that best explains the observed mixture. The decomposition score must show at least 10% improvement over the no-indel baseline, preventing false positive calls.

Step 3 — Allele sequence reconstruction. Once the optimal shift is found, the algorithm base-calls both the reference and alternate traces independently, producing two separated allele sequences. You get the full sequence of each allele, the indel type (insertion or deletion), the indel size in base pairs, and the breakpoint position.

The Separated Sequences section in the Deconvolution tab displays both allele sequences side by side — color-coded, with every difference position highlighted. A difference details table shows each position where the alleles diverge, with IUPAC codes and mix ratios. You can see exactly where and how the two alleles differ without any manual trace interpretation.

The Decision Tree

When you see double peaks in a chromatogram, here's the sequence:

1. Check contamination first. Are secondary peaks concentrated downstream of a specific position? Does that position coincide with a restriction site, adapter, or primer sequence? If yes → contamination. Re-prep.

2. Check the distribution. Are mixed bases spread uniformly across the entire trace? Is the heterozygosity rate high (>15%) and the purity score low (<85%)? If yes → mixed template. Re-pick colonies.

3. Check position specificity and allele ratios. Are secondary peaks limited to specific positions with ~50/50 ratios? Is there a consistent frameshift downstream of a breakpoint? If yes → true heterozygosity. Separate the alleles and proceed.

In AILabAssistant, you don't have to run this decision tree manually. Upload the .ab1 file, navigate to the Sequence Deconvolution tab, and run the analysis. The contamination scan, mixed base detection, indel deconvolution, and allele quantification all run as part of the same pipeline. The results tell you which scenario you're in, with the data to back it up — not a guess based on how the peaks look.

The Cost of Getting It Wrong

Here's the thing that makes this worth caring about: misidentifying the cause of double peaks doesn't just waste a sequencing reaction. It wastes everything downstream.

If you misidentify contamination as heterozygosity, you proceed with a contaminated template. Your cloning, your expression, your functional assays — all built on compromised starting material. You'll spend weeks troubleshooting results that never made sense because the input was wrong.

If you misidentify heterozygosity as contamination, you re-streak and re-pick — but you'll see the same double peaks every time, because the allelic variation is real. You burn through plates, preps, and sequencing reactions trying to "fix" something that isn't broken.

If you misidentify mixed template as either of the above, you're in a different kind of trouble. You might try to "deconvolve" a mixture that isn't heterozygosity, or you might assume contamination from a source that doesn't exist.

The diagnosis has to be right. The response follows from the diagnosis. And making the diagnosis from raw trace data — objectively, with statistical thresholds and pattern matching instead of eyeballing — is exactly what the Sequence Deconvolution pipeline is designed to do.

Try It On Your Own Data

Next time you see double peaks in a chromatogram, upload the .ab1 before you re-streak. Let the contamination scanner, the mixed base detector, and the indel deconvolution algorithm give you an answer. Then decide what to do next based on data, not vibes.

If you're doing clone verification, genotyping, or any work where sequence purity matters, this is the difference between catching problems on day one and discovering them three weeks into a failed experiment.

See what your double peaks actually mean. Request a demo at ailabassistant.com/demo or reach out at [email protected].


AILabAssistant's Chromatogram Analysis Tool — including contamination detection, statistical mixed base analysis, heterozygous indel deconvolution, and allele quantification — is available in Version 2.0 as part of the InSilico Bioinformatics suite. All features described in this article are fully implemented and production-ready.

chromatogram troubleshootingSanger sequencingcontamination detectionmixed base detectionheterozygositysequence deconvolutionbioinformaticsmolecular biologysequencing QClab troubleshootingLIMSbiotechnology

Ready to Transform Your Lab Operations?

Experience the power of AI-enhanced laboratory management with AILabAssistant. Join laboratories worldwide in modernizing their data management and compliance workflows.