Data QC
Data Quality Control (Missingness, MAF, HWE)
Catch bad markers and bad samples before they corrupt downstream analysis.
How it works
Every genomics pipeline lives or dies by QC. We compute per-marker missingness, minor allele frequency (MAF), and Hardy–Weinberg equilibrium p-values, plus per-sample missingness and heterozygosity. We flag outliers and apply user-configurable filters before any GWAS or genomic-selection run.
Formula
MAF = min(p, 1−p). HWE χ² = Σ (observed − expected)² / expected, with expected from Hardy–Weinberg proportions.
What you get
- ▸Per-marker MAF, missingness, and HWE p-value distributions
- ▸Per-sample missingness and heterozygosity outliers
- ▸Filtered marker and sample lists
When to use it
- ▸On every new genotype dataset, immediately after upload
- ▸Before running GWAS, GS, or population-structure analyses
- ▸When troubleshooting unexpected results from downstream modules
Inputs
| Genotype matrix | VCF / HapMap / numeric CSV |
Parameters
| Name | Default | Description |
|---|---|---|
| Marker call-rate | ≥ 0.95 | Drop markers missing in more than 5% of samples. |
| Sample call-rate | ≥ 0.90 | Drop samples missing in more than 10% of markers. |
| MAF | ≥ 0.05 | Filter rare variants that inflate downstream noise. |
| HWE p | ≥ 1e−6 | Flag markers deviating strongly from HWE; investigate before dropping. |
| Heterozygosity | ±3σ | Sample heterozygosity outliers likely reflect contamination. |
Workflow
- 1. Compute per-marker statsMAF, call-rate, HWE p across all samples.
- 2. Compute per-sample statsCall-rate and heterozygosity across all markers.
- 3. Preview filtersInteractive preview shows how many markers/samples each threshold drops.
- 4. Apply & snapshotFiltered matrix stored as an immutable QC snapshot for downstream reruns.
Interpreting results
- ▸MAF distribution skewed to zero = ascertainment bias in the array or over-imputed rare variants.
- ▸Heterozygosity outliers cluster at contamination events — check sample IDs against the plate layout.
- ▸HWE deviations in a subpopulation are expected; run QC per subpopulation on structured panels.
Common pitfalls
- ✕Over-filtering HWE strips real selection signal; treat HWE as a flag, not an automatic drop.
- ✕QC on a merged multi-origin panel drops markers that are fine within each origin.
Worked example
Rice-413 fresh upload
413 lines × 44k markers. Defaults drop 1,842 markers (call-rate) + 3 samples (heterozygosity). Diff panel shows exactly which markers move between reruns.
Try it — interactive example
Preview how QC thresholds trim your genotype matrix before analysis.
Expected outputs
Markers retained
42500 / 50000
Samples retained
490 / 500
Analysis matrix size
490 × 42500
Rows × columns after QC.
Numbers are quick analytical estimates for planning — actual runs incorporate the full data, covariates, and QC pipeline.
References
Run Data QC on your data
Open the module and upload a CSV.