Written and maintained by CASRAI Editorial Board
Last updated
A genome-wide association study (GWAS) scans genetic markers across the genomes of many people to find variants linked to a disease or trait. This guide is for researchers who need to design, quality-control and read one: it gives the quality-control thresholds in filter order, a worked allelic association with the arithmetic shown, the usual significance threshold, and code to reproduce the test.
What is a genome-wide association study (definition of GWAS)?
The U.S. National Human Genome Research Institute describes a GWAS as an approach that rapidly scans markers across the genomes of many people to find genetic variations associated with a particular disease. It is most useful for common complex conditions such as asthma, cancer, diabetes, heart disease and mental illness. In the classic case-control design, researchers compare people who have the disease with similar people who do not. DNA from blood or cheek cells is read on chips that capture single nucleotide polymorphisms (SNPs); a variant that is significantly more frequent in the disease group is said to be “associated” with the disease.
The NHGRI fact sheet gives a landmark example: in 2005, three independent studies linked age-related macular degeneration to variation in the complement factor H gene. It also states the main limit of the method: an associated variant may only be “tagging along” with the causal variant, so follow-up work such as sequencing the region is often needed. That tagging happens because nearby variants are inherited together, a property called linkage disequilibrium.
What are examples of genotypes?
A genotype is the pair of alleles a person carries at one position. For a SNP with alleles A and a, the three possible genotypes are AA, Aa and aa. A GWAS codes each person’s genotype as the number of copies of one chosen allele (0, 1 or 2) and tests whether that count differs between cases and controls, or tracks a quantitative trait. At a different SNP with alleles C and T, the genotypes would be CC, CT and TT. Counting alleles instead of genotypes is what makes the worked example below a simple 2 x 2 table.
How does a GWAS work, step by step?
- Define the phenotype and recruit cases and controls (or a quantitative-trait sample) from the same population.
- Genotype the samples on a SNP chip or other platform.
- Apply quality control to markers and then to individuals (table below).
- Correct for population structure and test every SNP for association.
- Apply a genome-wide significance threshold and display results, usually in a Manhattan plot.
- Replicate, fine-map and deposit summary statistics, for example in the GWAS Catalog.
Which quality-control thresholds does a GWAS use?
Marees and colleagues (2018, International Journal of Methods in Psychiatric Research 27(2):e1608) publish a widely used tutorial on GWAS quality control with PLINK. Their recommended order and thresholds are below; treat them as starting points that depend on sample size and design.
| Step | Recommended filter (Marees et al. 2018) |
|---|---|
| SNP and individual missingness | Filter SNPs before individuals; SNP call rate first relaxed (0.2 missing), then stricter (0.02) |
| Sex check | Males: X-chromosome homozygosity estimate above 0.8; females: below 0.2 |
| Minor allele frequency (MAF) | About 0.01 for a sample near 100,000; about 0.05 for a sample near 10,000 |
| Hardy-Weinberg equilibrium (HWE) | Binary traits: exclude p below 1e-10 in cases and below 1e-6 in controls. Quantitative traits: p below 1e-6 |
| Heterozygosity | Remove individuals more than 3 standard deviations from the mean |
| Relatedness | IBD pi-hat of 0.2 on LD-pruned SNPs (population samples) |
| Population stratification | Multidimensional scaling on pruned SNPs, anchored to 1000 Genomes; up to 10 components as covariates |
Worked example: one SNP tested for association
This is an illustrative calculation with invented numbers, not data from a real study. Suppose 1,000 cases and 1,000 controls are genotyped at one SNP, giving 2,000 alleles per group. The risk allele appears 1,200 times among case alleles and 1,000 times among control alleles.
| Risk allele | Other allele | Total | |
|---|---|---|---|
| Cases | 1,200 | 800 | 2,000 |
| Controls | 1,000 | 1,000 | 2,000 |
| Total | 2,200 | 1,800 | 4,000 |
Odds ratio. OR = (1,200 x 1,000) / (800 x 1,000) = 1,200,000 / 800,000 = 1.50. The standard error of ln(OR) is the square root of (1/1,200 + 1/800 + 1/1,000 + 1/1,000) = 0.0639, giving a 95% confidence interval of 1.32 to 1.70.
Chi-square test (1 degree of freedom). Expected counts under no association: cases with the risk allele 2,000 x 2,200 / 4,000 = 1,100 and with the other allele 900; controls have the same expectations. The statistic is (1,200 – 1,100)2/1,100 + (800 – 900)2/900 + (1,000 – 1,100)2/1,100 + (1,000 – 900)2/900 = 9.09 + 11.11 + 9.09 + 11.11 = 40.40, so p = 2.07 x 10-10.
This p-value is below 5 x 10-8, so it would be called genome-wide significant. Treating alleles as independent observations assumes Hardy-Weinberg equilibrium, which is one reason the HWE filter above matters; most GWAS software instead fits a regression on allele dose with covariates.
What is the genome-wide significance threshold?
Because a GWAS tests hundreds of thousands to millions of variants, the conventional 0.05 cut-off would flood the results with false positives. The Marees tutorial gives 5 x 10-8 as the genome-wide significance threshold for European-ancestry samples (from simulations by Dudbridge and Gusnanto, 2008) and cites about 1.0 x 10-8 for African-ancestry samples (Hoggart et al., 2008). A plain Bonferroni correction of 0.05 divided by the number of SNPs is described as too conservative, because SNPs in linkage disequilibrium are not independent tests. See genome-wide significance thresholds and Bonferroni correction and multiple comparisons for the full treatment.
How to read GWAS results
| Result | What it means |
|---|---|
| p below 5 x 10-8 | Genome-wide significant for European-ancestry samples; a candidate locus, not proof of a causal variant |
| Odds ratio above 1 | The tested allele is more frequent in cases than in controls |
| Associated variant | May only be tagging along with the causal variant (NHGRI), so follow-up such as sequencing the region is often needed |
Common mistakes in a GWAS
The Marees tutorial lists these pitfalls: inadequate quality control (it cites a retracted Science paper as a warning); ignoring population stratification; being underpowered; applying one HWE threshold to all samples instead of separating cases from controls; relying on Bonferroni alone; and, in PLINK, reusing an output name with –out, which overwrites earlier files. The tutorial does not cover genotype imputation.
How to report a GWAS result
State the sample size and ancestry, the genotyping platform, every QC filter and threshold, the covariates (such as principal components), the test and software, the significance threshold, and the effect size with confidence interval for each reported locus. A sentence in this style works: “The locus was associated with the trait (OR = 1.50, 95% CI [1.32, 1.70], p = 2.1 x 10-10), exceeding the genome-wide threshold of 5 x 10-8.” Replace the figures with your own results.
How to run the allelic test in Excel, R or Python
Excel: compute the chi-square statistic from observed and expected counts as above, then use =CHISQ.DIST.RT(40.404,1) for the p-value.
R:
m <- matrix(c(1200, 800, 1000, 1000), nrow = 2, byrow = TRUE)
chisq.test(m, correct = FALSE) # X-squared = 40.404, df = 1
(1200 * 1000) / (800 * 1000) # odds ratio 1.5
Python:
from scipy.stats import chi2_contingency
chi2, p, dof, expected = chi2_contingency([[1200, 800], [1000, 1000]], correction=False)
print(chi2, p) # 40.40..., 2.07e-10
A real GWAS runs this kind of test (usually as logistic or linear regression with covariates) for every SNP in PLINK or similar software, not one SNP by hand.
FAQ
What is the definition of GWAS?
A GWAS is a study that scans genetic markers across the genomes of many people to find variants associated with a disease or trait (NHGRI).
What are 5 examples of genotypes?
AA, Aa and aa at a SNP with alleles A and a, plus CC, CT and TT at a SNP with alleles C and T. Each is the pair of alleles a person carries at that position.
How much of your IQ is inherited?
A GWAS finds associated variants; it does not by itself give a percentage of a trait that is inherited. For how genetic influence on behavioural traits is studied and interpreted, see genes and behaviour.
Sources
- National Human Genome Research Institute, Genome-Wide Association Studies fact sheet (read 2026-11-07).
- Marees AT et al. (2018), A tutorial on conducting genome-wide association studies: quality control and statistical analysis, Int J Methods Psychiatr Res 27(2):e1608, doi:10.1002/mpr.1608 (read 2026-11-07).
- NHGRI-EBI GWAS Catalog, About (read 2026-11-07).







