Tutorials › Statistical Genetics › Sample Call Rate and Missingness Diagnostics

Genotyping Data and Quality Control · Tutorial 87 of 989

Sample Call Rate and Missingness Diagnostics

Calculate each sample’s call rate, summarize variation across samples, and interpret unusual values as diagnostic signals rather than automatic proof of poor data.

Beginner 9 min read

What You'll Learn

  • Define the eligible genotype entries used as each sample’s denominator
  • Calculate sample missingness and call rate from genotype data
  • Distinguish a sample-level summary from missingness at individual variants
  • Summarize and compare call-rate distributions across samples
  • Use relative outliers to flag samples for review without treating them as automatic exclusions
  • Recognize how denominator choices and missingness patterns affect interpretation

Why Summarize Missingness by Sample?

A genotype data set can contain missing entries for many reasons: a sample may have produced weak signals, a genotype may not have met a calling rule, or data may have been lost during processing. Looking at one entry does not reveal whether missingness is isolated or widespread. A sample-level call rate condenses the genotype records for one sample into a summary: the fraction of eligible genotypes that were successfully called.

This summary is useful for locating samples that warrant closer review. It is not a direct measure of whether the recorded genotypes are correct. A sample can have a high call rate and still contain incorrect calls, while a low call rate signals missing data rather than identifying its cause. The aim is to use the calculation and the distribution across samples as diagnostics, not to declare quality from one number alone.

Definition: For sample \(i\), let \(N_i\) be the number of eligible genotype entries and \(M_i\) the number of those entries recorded as missing. The sample missingness proportion is \(m_i=M_i/N_i\), and the sample call rate is \(c_i=(N_i-M_i)/N_i=1-m_i\). Both are proportions, often reported as percentages. An entry belongs in the denominator only if it is an eligible genotype for that sample under the analysis definition.

Defining and Calculating the Summary

First decide which genotype entries count as eligible. For a simple data set of diploid genotypes at a defined set of variants, each sample may have one eligible entry per variant. The denominator is then the number of variants in that set. The missing count is the number of those entries represented as missing according to the data format, such as a VCF missing genotype token. A genotype coded \(0/0\) is a called homozygous genotype, not a missing value; the code must be interpreted according to the file format rather than by whether it contains a zero.

The set of variants and the rules for eligibility should be stated and applied consistently. If some entries are not applicable or are outside the intended analysis set, they should not silently be counted as missing or as called. Different denominators can make sample rates less directly comparable, so a reported rate should be understood together with its denominator and the rule that defined it.

Call rate and missingness are complementary: increasing one by a given amount decreases the other by the same amount. Reporting both is usually redundant, but either can be convenient. A call rate of \(0.975\), for example, means 97.5% of the eligible genotype entries were called and 2.5% were missing.

Worked Example: Counting Missing Entries for Each Sample

Suppose a hypothetical study has six eligible variants for each of four samples. The entries below use “missing” to identify an uncalled genotype; all other entries are called genotypes.

SampleVariant 1Variant 2Variant 3Variant 4Variant 5Variant 6
A0/00/11/10/10/01/1
B0/1missing0/01/10/10/0
C0/00/11/10/00/11/1
Dmissingmissing0/0missing1/1missing

For sample B, five of six entries are called, so \(M_B=1\), \(N_B=6\), and

$$ m_B=\frac{1}{6}=0.1667,\qquad c_B=1-\frac{1}{6}=\frac{5}{6}=0.8333. $$

Thus B has 16.7% missingness and an 83.3% call rate across these six eligible variants. Sample A and sample C have no missing entries, so each has a 100% call rate. Sample D has four missing entries:

$$ m_D=\frac{4}{6}=0.6667,\qquad c_D=\frac{2}{6}=0.3333. $$

D’s 33.3% call rate is much lower than the other three in this small illustration. It is a clear reason to inspect D’s data and processing history, but six entries are far too few to establish a general quality rule.

Summarizing a Distribution Across Samples

A table of individual rates shows exactly which samples contribute to a pattern, while summaries and plots help describe the pattern across the full set. Common summaries include the mean, median, range, and selected quantiles. A histogram or dot plot can reveal whether most samples have similar rates, whether there is a low-rate tail, or whether the distribution has several groups.

The mean call rate is the average of the sample-specific call rates. It gives each sample equal weight. If every sample has the same denominator, this mean also equals the pooled fraction of called entries across all samples. If denominators differ, the pooled fraction gives more weight to samples with more eligible entries and generally differs from the unweighted mean. Neither calculation is inherently wrong; they answer different questions and should be labelled clearly.

Interpretation: A sample-level distribution describes variation in the proportion called across samples. A sample far below the main group is a relative diagnostic flag: it merits investigation, but the rate alone does not establish why the data are missing or whether the sample should be removed.

Worked Example: Reading a Low-Rate Tail

Consider hypothetical call rates, in percent, for 12 samples, sorted from lowest to highest: 72, 91, 96, 97, 97, 98, 98, 98, 99, 99, 99, 99. The mean is

$$ \bar{x}= \frac{72+91+96+97+97+98+98+98+99+99+99+99}{12} =\frac{1143}{12}=95.25\%. $$

The median is the average of the sixth and seventh values, \((98+98)/2=98\%\). The mean is lower than the median because the two lowest rates pull it downward. This contrast, along with the sorted values or a plot, makes the low tail visible in a way the mean alone would not.

As one exploratory description, use the common boxplot rule based on quartiles. For these 12 observations, the median of the lower six is \(Q_1=(96+97)/2=96.5\%\), and the median of the upper six is \(Q_3=(99+99)/2=99\%\). Thus the interquartile range is \(IQR=Q_3-Q_1=2.5\) percentage points. The lower fence is

$$ Q_1-1.5(IQR)=96.5-1.5(2.5)=92.75\%. $$

The rates of 72% and 91% fall below that exploratory fence. This does not prove that either sample is erroneous: the rule flags values unusually low relative to this particular group. The sample size is small, and the group’s composition and data-generation process matter. A sensible next step is to review these samples and the surrounding technical information, not to treat the fence as a universal removal threshold.

Why the Denominator and the Pattern Matter

The denominator defines the scope of the claim. “A 98% call rate” is incomplete unless it is clear which entries were eligible. If a calculation uses one variant set and a later calculation uses a different set, the sample rate can change even when the sample’s raw genotype record has not changed. Comparisons are most interpretable when the same eligibility rules and variant set are used for all samples being compared.

Rates also hide the locations of missing entries. Two samples can have the same missingness proportion while missing calls at entirely different variants. A sample summary therefore does not describe the distribution of missingness across variants, and it cannot show whether missingness is concentrated in a region or associated with a particular data-processing pattern. Those require additional diagnostics.

A pooled rate can also conceal a low-rate sample. For instance, if most samples have nearly all entries called but one has many missing entries, an overall average may still appear high. Inspecting individual rates and a distribution plot together reduces this risk. Conversely, an isolated low value should not be interpreted without checking whether its denominator is unusually small or whether its entries were defined differently.

Worked Example: Equal Sample Weight Versus Pooled Call Rate

Suppose a hypothetical data set contains three samples with different numbers of eligible entries because their eligible sets differ. Sample A has 5 eligible entries and 1 missing; sample B has 10 eligible entries and 2 missing; sample C has 20 eligible entries and 2 missing.

The sample-specific call rates are

$$ c_A=\frac{4}{5}=80\%,\qquad c_B=\frac{8}{10}=80\%,\qquad c_C=\frac{18}{20}=90\%. $$

Giving each sample equal weight, the mean sample call rate is

$$ \bar{c}=\frac{80\%+80\%+90\%}{3}=83.33\%. $$

Pooling all entries instead gives 30 called entries out of 35 eligible entries:

$$ c_{\text{pooled}}= \frac{4+8+18}{5+10+20} =\frac{30}{35}=85.71\%. $$

The pooled value is higher because the sample with the largest denominator also has the highest call rate, so it contributes more entries to that calculation. The mean sample rate answers, “What is the average rate across samples?” The pooled rate answers, “What fraction of all eligible entries are called?” When denominators differ, report which summary is being used and retain the sample-specific rates for diagnostics.

A Short Derivation: Why the Two Rates Are Complements

Among \(N_i\) eligible entries for sample \(i\), exactly \(M_i\) are missing. Therefore \(N_i-M_i\) are called. Dividing the missing count and the called count by the same positive denominator gives

$$ m_i=\frac{M_i}{N_i},\qquad c_i=\frac{N_i-M_i}{N_i} =\frac{N_i}{N_i}-\frac{M_i}{N_i} =1-m_i. $$

This identity depends on the entries being classified consistently as either called or missing within the eligible set. It also shows why the two summaries contain the same numerical information: one can be recovered exactly from the other.

Common Mistakes and Practical Interpretation

  • Treating one cutoff as universal. A low call rate is a reason to review a sample, not proof that it must be excluded. What counts as unusually low depends on the data set and the analysis purpose.
  • Confusing a called genotype with a missing one. A genotype such as \(0/0\) is a call. Missingness is determined by the file’s missing-value representation, not by a genotype containing the digit zero.
  • Reporting a rate without its scope. State the eligible variant set or other denominator definition. Otherwise, two rates may not be comparable.
  • Using an overall average as the only diagnostic. A high pooled or mean rate can obscure a low-rate sample. Inspect sample-specific values and their distribution.
  • Equating call rate with accuracy. Call rate measures how many eligible entries are called, not whether those calls are correct. A high value does not rule out genotype errors.
  • Interpreting the flag as a cause. The proportion missing identifies a pattern, not its mechanism. Follow-up should consider the data and processing context rather than attributing missingness to a specific cause from the rate alone.
Key takeaway: Calculate each sample’s missingness and call rate using a clearly defined, consistent denominator. Examine individual values and the distribution across samples. Treat unusually low rates as prompts for investigation, not as automatic evidence for exclusion or a substitute for other quality checks.

Check Your Understanding

Answer each question using the definitions and distinctions in this tutorial.

  1. A sample has 240 eligible genotype entries, of which 12 are missing. What are its missingness proportion and call rate?
  2. Why is a genotype recorded as \(0/0\) not automatically a missing genotype?
  3. Two samples have different denominators. Why might their unweighted mean call rate differ from the pooled call rate?
  4. A sample falls below an exploratory lower boxplot fence. What conclusion is justified, and what conclusion is not justified from that fact alone?
  5. Can a sample with a 100% call rate still have incorrect genotype calls? Explain what call rate does and does not measure.
Clinical Biostats