Genotyping by allelic discrimination
All methods · September 19, 2026 · Jan Hellemans
How to turn an allelic-discrimination qPCR run into a sample-by-marker genotype table in Clarida, and how the calls are made: the marker that carries the assay design, calling by ΔCq, melting temperature or end-point fluorescence, the cut-offs behind each call, and the controls that tell you how far to trust it.
A genotyping run looks, to an instrument, like any other qPCR run. Wells amplify, dyes fluoresce, Cq values come out. What turns those numbers into genotypes is the assay design: which dye, in which well, reports which allele. Clarida asks you to declare that design once, as a marker, and calls the genotypes from it. It calls per marker, never per dye or channel: without a marker, there is nothing to call.
This page has two parts. How to takes you from plate to genotype table, step by step. How it works explains the reasoning behind each step; read it when a step raises a question. Both follow one example: HBB rs16911905, a diploid SNP with two alleles, G and C, typed on a 96-well plate.
How to
1. Start from the Genotyping preset
On the qPCR page, start the experiment from the Genotyping preset. Its layout shows the sections genotyping needs and leaves out Cq processing, Exploration and Statistics. If the plate has already run and you start from the run file, choose Genotyping – analysis only instead: it skips Design and Execute.
2. Add your markers
Clarida only calls genotypes for markers; there is no generic calling by dye. Markers are built from the assays' targets and dyes, so add the assays in Assay Prep first. Then open Marker Setup and pick an Input method:
- Derive from assays turns the assays you select into markers. Choose the Method (a wand marks the one Clarida suggests) and, where there is a choice, How targets become markers. Clarida shows the proposed markers for confirmation before it adds anything.
- From library adds markers you saved earlier, or that came with a kit.
- Manual builds one marker at a time: name, method, and an allele row per allele with its target.
Then check the Marker list. Every allele needs a real name: a Name alleles badge marks positional names such as "Allele 1". The Alleles view shows which target reads which allele; for our marker, G is read by one target and C by the other.
For a ΔCq marker, the ⇄ arrow in the Calling cell sets which allele sits at the low end of the axis. For an end-point marker, the same cell sets whether it is Called in X–Y or polar space.
See Why Clarida needs a marker, The marker and Choosing a calling method.
3. Enter the cut-offs
A marker is only called once it has cut-offs. Enter them in the Calling cell of the Marker list: a ΔCq window on the marker row, and a Tm range or an RFU threshold per allele in the Alleles view. End-point markers have optional quality values in the QC cell.
Cut-offs you don't know yet can wait. Clarida does not call a marker without one, but still plots its data, so you can read the cut-off off the plate in step 5.
See Where cut-offs come from and Why a marker without a cut-off is not called.
4. Give your positive controls an expected genotype
Under Expected control genotypes in Marker Setup, pick the expected genotype of each positive control for each marker. A control with a known genotype is what catches a plate where the alleles were swapped. A positive control saved in the Library can carry its expected genotypes, so you set them once.
See Detecting a mirrored plate.
5. Check the calls
Import the run under Import & annotate. Genotype calling then calls every marker on its own, and calls again whenever the data, a marker or a cut-off changes. Step through the markers with ‹ › and check, for each one:
- Quality control reads Pass, Attention or Fail. Its Controls line says whether the marker's controls passed, and its Calls line counts clean and flagged calls. Click a count, such as "flagged", to filter the table to those samples; the Call QC column marks each one.
- The plot (Separation for ΔCq, Melt peaks for Tm, Clusters for end point) shows whether the genotypes separate cleanly within the cut-offs.
- Not called: missing cut-off at the top means the marker has no cut-off yet. Read the cut-off off the plot and enter it in the Settings card.
- This marker's alleles look inverted means every known-genotype control came back as its mirror image. Check which target each allele is bound to in Marker Setup.
A value typed in the Settings card is saved on the experiment's marker. On a marker from the Library, whose design is locked, it applies to this analysis only.
See Calling by ΔCq, Calling by melting temperature, Calling by end-point fluorescence and Quality sits beside the call.
6. Read the genotype table
Genotyping report shows the samples × markers table, with each sample's Sample QC and each marker's Control QC. Its Quality control card sums them up for the whole experiment. Show genotypes as switches between alleles (G/C), A/B, WT/HET/MUT and numeric (0/1/2). A column badge marks a marker that was Declined, one where All no call came back, and one whose controls failed (QC). Save analysis keeps a read-only record of the calls.
7. Keep your markers for next time
Use Add to library in the Marker list to save a marker, with its cut-offs, to your Library. The next experiment adds it with From library.
Setting up common designs
- TaqMan biallelic SNP: two allele components in two dyes on one assay, method ΔCq. Our running example.
- KASP or TaqMan end-point read: the same two components, method End point. Start in X–Y with a threshold per allele; switch to polar when low-input heterozygotes fall below one allele's threshold, and set the θ window from where the clusters sit.
- Melt-based SNP assay: two allele components, possibly on one target, method Tm, with a Tm range per allele. A heterozygote shows two peaks.
- DMAS-qPCR: two allele-specific primer sets in the same dye, in two wells, often on two assays. Method ΔCq; the marker spans both assays, and a 2 assays badge marks it.
- Detection panel: four targets for four organisms are not alleles. Four allele-specific targets at one locus are one marker with four alleles; Clarida cannot tell the two apart, so derivation shows every proposed grouping for you to confirm.
How it works
Why Clarida needs a marker
Most instrument software genotypes by channel. It reads the two dyes in each well and reports the call by position: Allele 1, Allele 2 or Heterozygote on a Bio-Rad CFX, Allele 1/Allele 2 in Thermo's software, Allele X or Both Alleles on a Roche LightCycler. Which allele is "allele 1" is left for you to remember, usually from the plate setup or a note in the sample name.
Clarida does not call by channel, for three reasons:
- The dye does not always identify the allele. In a DMAS or ARMS assay both alleles are read in the same dye, in different wells. Channel order carries no information there.
- A positional label can be wrong without anything looking wrong. If allele 1 and allele 2 are swapped, every well still amplifies and every homozygote is reported as the other one. Only a stated binding can be checked, against a control with a known genotype (see Detecting a mirrored plate).
- A call should mean the same thing everywhere. A result in allele terms (
G/C) can be compared across runs and plates, reported, and checked against expected genotypes.Allele 1/Allele 2means something only next to the plate it came from.
A marker is that stated binding. The minimum is small: which target reads which allele, and the calling method. Locus, rsID and wild type are optional, and Derive from assays proposes markers from the assays in one step. Where a target name does not say which allele it reads, the alleles arrive as "Allele 1" and "Allele 2" and a Name alleles badge asks you to name them.
The marker
A marker is the genotyping design for one polymorphic site. It carries three things:
- Alleles are the reportable outcomes. Ours has two,
GandC. A deletion marker has two named+and−; a star-allele marker may have several. A genotype is a multiset of alleles, so a heterozygote isG/Cand a homozygoteG/G. - Components are what gets measured. Each component binds to one target on one assay and reads one allele.
- Method and cut-offs are how the reading is taken (ΔCq, end point or melting temperature) and the thresholds that turn it into a genotype.
A marker refers to targets; it does not own them, and deleting a marker leaves its targets in place.
The locus
A marker's locus says where on the genome it sits. Clarida stores it as four fields that compose into one coordinate, here rs16911905's on GRCh38:
locus_reference type position ref_allele
NC_000011.10 : g. 5228060 G
- Reference sequence: an accession with its version, since positions and reference bases move between assembly versions.
- Sequence type: the HGVS prefix saying how to read the position (
g.genomic,c.coding DNA). The accession usually gives it away:NC_is genomic,NM_coding DNA. - Position on that sequence.
- Reference allele at that position. Each allele's variant detail supplies the change, so the locus plus
>Cis the variant (NC_000011.10:g.5228060G>C).
Strand follows from the reference sequence, so two independent designs for the same rsID compare as plain strings. Allele nucleotides are stored in reference orientation; a vendor's design strand is applied once at import and kept as provenance.
A partial locus is a complete answer. A gene symbol, an in-house build id or chr7 on its own is a locus, and a copy-number or presence/absence marker has a locus and no position: CYP2D6*5 is a whole-gene deletion, and its locus is the gene.
Where a reference allele is recorded, the wild-type allele follows from it: it is the allele whose variant detail matches the reference base, and Clarida offers it for confirmation. Star alleles, allele groups and presence/absence markers declare their wild type directly.
Grouped and star alleles
Most alleles are a single nucleotide change. Two shapes carry more:
- A grouped allele is one the assay reports as a unit. An allele named
LoFstands for several loss-of-function variants that the chemistry reads together. - A star allele is a haplotype.
NAT2*5Bis defined byc.341T>C+c.481C>T+c.803A>Gin combination.
For both, covers lists the variants the group stands for, as rs IDs or HGVS descriptions. The call reports the group itself: *1/LoF states what the assay measured. Resolving LoF into one of its members would claim more than the measurement supports.
Choosing a calling method
The method is a property of the marker and names the physical readout the genotype is taken from:
| Method | What is measured | Typical chemistry | Calling cut-off |
|---|---|---|---|
| ΔCq | The Cq difference between two allele-specific components | Allele-specific real-time PCR in one well (two dyes) or two (DMAS, ARMS) | A ΔCq window per allele pair |
| Tm | The melting temperature of each melt peak | Assays whose allele products melt at different temperatures | A Tm range per allele |
| End point | End-point fluorescence of each allele's dye, read in one well | A FAM/HEX duplex such as KASP or TaqMan allelic discrimination | An RFU threshold per allele, or a θ window and a minimum R |
Choose the method from the assay, not from the data. A ΔCq cancels anything that shifts both components equally, input amount included. A melt peak's temperature depends on the product's sequence, not on how much of it formed. End-point fluorescence needs no Cq, which is how KASP and TaqMan genotyping assays are designed to be read.
Calling by ΔCq
For the ΔCq method, described in Lefever et al. 2019, a genotype is read from the difference between the two allele components:
ΔCq = Cq(C component) − Cq(T component)
A G/G sample amplifies early on the G component and late, or not at all, on C, giving a large ΔCq of one sign. A C/C sample gives a large ΔCq of the other sign. A G/C heterozygote amplifies on both at roughly equal efficiency, giving a ΔCq near zero. The three genotypes occupy three separable regions of one axis, and the cut-offs decide where the boundaries lie.
Because it is a difference, the ΔCq needs no standard curve: anything that shifts both components equally, such as input amount, pipetting volume or plate position, cancels.
Orientation. The order of subtraction decides the sign. Clarida stores it as a property of the marker, defaulting to wild-type first where a wild-type allele is declared; a neutral SNP has no wild type, so you set it. Flipping the orientation turns the axis over without changing any genotype. The cut-off window turns over with it: −1.50 < ΔCq < 2.00 becomes −2.00 < ΔCq < 1.50, the same window seen from the other side, and a value set for one analysis turns over too. Calls already made are recalculated by themselves: each ΔCq changes sign, and every sample keeps its genotype.
The bands carry the allele they call. Two designs of the same variant can produce mirrored axes carrying identical information, so Clarida labels each band with the allele it calls. Reading the label gives the genotype on any design; reading the sign gives it on one.
A one-sided ΔCq is a bound. When one component stayed silent, the difference is only known to be at least, or at most, some value. A bound settles a homozygote: a sample that amplified strongly on G and not at all on C is the cleanest G/G there is. A heterozygote needs both sides. Clarida calls on a bound where the bound decides the genotype and shows these samples in their own lanes beside the axis, since they have no finite value to plot.
Calling by melting temperature
A Tm marker carries one acceptance range per allele, in °C, and the ranges may not overlap. An allele is present in a well when one of the well's melt peaks falls inside its range, and the genotype is the set of alleles present: one allele gives a homozygote, both a heterozygote. This is peak matching; it does not model curve shape, which is the domain of high-resolution melting.
Replicates combine per allele. When the wells disagree on which alleles are present, the cell is inconclusive, since the disagreement changes the genotype.
Three cases have their own outcome:
- A peak outside every range leaves the genotype as the in-range peaks define it, and raises a caution: a primer dimer, an unexpected variant under the probe, or a range drawn too narrowly all look like this.
- Amplification without a melt peak is a no call. The sample is not silent, but the melt gives nothing to call from.
- No amplification and no peak is no amplification.
Calling by end-point fluorescence
Suppose rs16911905 is typed as a single-well end-point duplex instead, FAM reporting G and HEX reporting C. Each well yields two numbers, one per allele, read after the final cycle. Clarida uses the experiment's end-point values, whether imported from the instrument or calculated from the amplification curves, and calls in one of two spaces:
- X–Y space (the default): a threshold per allele. An allele is present when its end-point fluorescence reaches its RFU threshold. The two thresholds divide the plot into four quadrants:
G/G(FAM only),C/C(HEX only),G/C(both) and no amplification (neither). - Polar space: a θ window and a minimum R. The two numbers,
xfor the first allele andyfor the second, become an angle and a total. A well whose R is below the minimum R is reported as no amplification. Otherwise θ below the θ window calls the first allele's homozygote, θ inside it (edges included) the heterozygote, and θ above it the second allele's homozygote.
θ = (2/π) · arctan(y / x) 0 = first allele only, 1 = second allele only
R = x + y total end-point signal
Replicate wells that call different genotypes make the cell inconclusive. R = x + y is a fair measure of total signal in a competitive single-well duplex, where both allele-specific probes share one template, so the total stays roughly the same whichever genotype the sample carries.
Why polar calling exists. θ is a ratio, so it does not move with the amount of template. A low-input heterozygote slides toward the origin along its own ray. Per-allele RFU thresholds can let the weaker of its two signals drop below threshold and read it as a homozygote; a θ window keeps it a heterozygote, and the minimum R decides separately whether there was enough signal to call at all. That is why large-scale end-point genotyping tools call by angle, as LGC's Kraken does with its angular linkage. X–Y thresholds remain the default because they are easier to set and explain on a panel of many markers and few samples.
Set the θ window from the data. θ is not corrected for dye balance: when FAM runs brighter than HEX, the heterozygote cluster sits below 0.5, and a window centered on 0.5 would measure dye balance rather than genotype. An end-point marker that is not called yet still plots every sample's θ and R, so you can read the window off the plate before you set it.
The view is not the rule. The cluster plot switches freely between X–Y and polar, and switching never changes a call. The plot opens in the space that calls, and the calling rule is drawn in both views.
End-point calling reads both alleles in the same well and calls with the cut-offs or windows you set: Clarida does not call designs that read the alleles in separate wells, does not call by clustering, and does not normalize θ per channel.
Where cut-offs come from
A reading becomes a genotype once you say which ranges mean which genotype. Those ranges are the marker's cut-offs, and they describe the assay design: a well-designed allelic-discrimination assay gives the same separation on every plate it runs on.
A cut-off comes from one of two places:
- A value set for this analysis, which overrides the marker's own value. The marker itself is untouched, and resetting brings its value back.
- The marker's own value, whether the marker belongs to this experiment or comes from the Library. A kit's markers arrive as Library markers carrying the kit's values.
The Settings card in Genotype calling shows which of the two supplied the cut-off in force.
Why a marker without a cut-off is not called
When no cut-off resolves for a marker, Clarida does not call it: the marker produces no calls, and the screen gives the reason. The Genotyping report marks its column Declined.
The alternative would be to derive boundaries from the plate by clustering the samples. But clustering describes the sample set: on a plate where every sample shares one genotype, it finds boundaries anyway and splits one real group in two. The result would read as an ordinary genotype table while its boundaries belonged to the plate, not the assay. A marker that is not called states the gap instead, and fixing it takes one step.
Genotype calling gives one of two reasons, with different remedies:
- Not called: missing cut-off: supply a cut-off and the marker is called.
- Not called: marker shape not supported: the marker's shape is outside what the engine handles, such as three alleles against a two-allele method.
This applies to one marker. Its neighbors on the same plate are called normally.
Detecting a mirrored plate
Most qPCR failures are visible in the data. A failed reaction gives no signal, a contaminated no-template control amplifies, inhibition shifts Cq values.
A swapped allele-to-target binding is silent. If our marker's G component is bound to the C target and vice versa, every well amplifies normally, every quality metric passes, and every homozygote in the table is mirrored: G/G samples report as C/C. Heterozygotes are their own mirror image, so they report correctly.
A sample whose genotype you already know detects it. Record an expected genotype for a reference material, per marker, and Clarida compares. The failure is systematic, so the signature is unambiguous: every known-genotype control returns its own mirror image. Clarida reports that as one finding and leaves the calls as they are; correcting the marker is your decision.
Two other controls answer different questions:
- A no-template control that stays silent shows the reaction is clean. It carries no genotype, so it says nothing about orientation.
- A heterozygote-only control set verifies that both components work. Heterozygotes mirror onto themselves, so orientation stays unverified, and Clarida passes the marker and says so.
Quality sits beside the call
Clarida answers two questions separately:
- What genotype does the data support? The call.
- How far should you trust it? The quality verdict.
Quality never changes a call. A flagged call has been called, and the flag says how heavily to lean on it. A failing control leaves the genotypes in place and withdraws the evidence for them.
The second question is answered at two separate levels, because a weak call and a failed control are different problems:
- Call QC judges one call: one sample at one marker. It is Clean, Flagged or n/a. A call is flagged when its replicates disagree, or when one of its call-level checks failed: a signal below the detection cut-off, an end-point signal below the signal floor or radial floor, or a melt peak outside every Tm range. A cell without a genotype (no call, no amplification, not measured, over range) is n/a: it is counted on its own, never as a QC failure.
- Control QC judges one marker's controls. It is Pass, Incomplete or Fail. It fails when a known-genotype control disagrees with its expected genotype, a no-template control amplifies, or, for end point, a genotype cluster is wider than the angular cluster width. It is incomplete when there is no genotype control or no-template control to evaluate, an expected genotype is unresolved, or an allele was not exercised by any control. A marker that is not called is incomplete, never failed: a missing cut-off is not a control disagreement.
These two combine into a verdict for the marker, and the report rolls them up further. Each level takes the worst of what it is built from, by fixed rules:
- Marker QC, the headline of the Quality control card in Genotype calling: Fail when Control QC fails, Attention when Control QC is incomplete or any call is flagged, Pass otherwise. The card's Controls line shows Control QC; its Calls line counts the marker's calls, such as
18 clean · 2 flagged · 1 no call. - Sample QC, a column in the Genotyping report: Flagged when any of that sample's calls is flagged.
- Control QC again, in the report's marker header row. The report shows Control QC there rather than Marker QC, so a flagged call is counted once, in its sample's row.
- Experiment QC, the report's Quality control card: Fail when any marker's Control QC fails, Attention when any Control QC is incomplete or any sample is flagged, Pass otherwise.
A control's own result, agreeing with its expected genotype or not, shows on the control sample's icon. A failing control affects its own marker's Control QC and no other sample's Sample QC.
A check you have not switched on is not part of QC. Several checks only run once you set their threshold: the detection cut-off, and the end-point values below. Until then the check is off: it is listed under Checks with the setting that would switch it on, and it never makes a call flagged or a marker incomplete. A check that is switched on but could not run is listed as not assessed, with its reason.
End point has its own quality values. It has no Cq, so four values judge how far to trust an end-point call. None of them changes a call:
| Value | Unit | What it does |
|---|---|---|
| Radial floor | Fraction of the full radius | A call below it is flagged (Call QC). |
| Signal floor | RFU, per allele | A call is flagged (Call QC) when its strongest allele signal stays below that allele's floor. |
| NTC radial ceiling | Fraction of the full radius | A no-template control above it fails Control QC. |
| Angular cluster width | Degrees | A genotype cluster spread wider than this fails Control QC. Only clusters of 3 or more samples are judged. |
The full radius is the largest R among the marker's unknown samples, so the data define it, not the plot; no-template controls never set it. A value left empty switches its check off. These values live on the marker, apart from its cut-offs, can be overridden for one analysis, and apply in both calling spaces.
Cells without a genotype
The finished table is samples × markers, one genotype per cell. Five outcomes describe a cell without a genotype, and each points somewhere different:
| Outcome | Meaning | Where to look |
|---|---|---|
| No call | Called, and the value landed in no band | The marker: its cut-offs, its separation |
| Inconclusive | Replicates disagree, and the readings imply different genotypes | The wells, and the NTC |
| No amplification | Measured, and affirmatively nothing | The sample |
| Not measured | Nothing to call from: the well was never measured, or every replicate was excluded | The plate layout |
| Over range | A value outside the range the marker's cut-offs cover | The assay |
Each outcome has its own shape as well as its own color, so the table reads in grayscale and for color-blind readers.
A Declined column and an All no call column look alike and have different remedies. In the first, the marker was never called because no cut-off resolved: supply one. In the second, it was called normally and separated nothing: look at the assay.
