Demonstration only. Corollary is a non-commercial research demo — no warranty, no support, not for commercial use or clinical decisions. Read the disclaimer

All tools

Statistical genetics · Software

PLINK

A statistical genetics toolset for whole-genome association studies and large-scale population genetic analyses.

What PLINK is

PLINK is an open-source toolset designed to execute large-scale whole-genome association studies (GWAS) and population genetics calculations efficiently. It was developed by Christopher Chang with support from the Purcell Lab and the Laboratory of Biological Modeling at the National Institute of Diabetes and Digestive and Kidney Diseases (NIH-NIDDK), building upon the original PLINK 1.07 package developed by Shaun Purcell.

The software addresses the computational challenges of manipulating and statistically testing large genetic cohorts. It provides functionality across genotype data management, sample and variant quality-control filtering, linkage disequilibrium calculation, relatedness and population stratification analysis, and both family-based and population-based association testing.

PLINK 1.9 functions as an updated replacement for PLINK 1.07 designed to scale to larger datasets using the binary fileset format (.bed/.bim/.fam), while the companion PLINK 2.0 toolset focuses on variant call format (VCF) files, multiallelic variants, phase, and dosage data.

How it works

PLINK relies on custom low-level algorithmic optimisations for processing binary genotype data, including bit population counts, vertical population counts, ternary dot products, partial sum lookups, exact statistical tests, and multithreaded compression routines. It processes genotypes stored in packed binary formats, such as standard two-bit representations where each byte encodes four individual genotypes.

The 2.0 series introduces the .pgen format, implemented in the LGPL-licensed pgenlib library, accompanied by plink2_text for fast text reading and stream decompression using zlib and Zstandard. The tool reads genotype files, applies user-specified quality control and coordinate filters, computes intermediate summary or distance matrices, and performs association models or linkage metrics directly from packed arrays.

Key facts

Primary binary formats
.bed, .bim, .fam (PLINK 1.9); .pgen, .pvar, .psam (PLINK 2.0)
Other supported formats
VCF (.vcf, .vcf.gz), BCF, Oxford (.gen, .gen.gz, .bgen), text (.ped, .map, .tped), 23andMe text
Software dependencies
C/C++ compiler, zlib, zstd, BLAS, and LAPACK
Available language bindings
C/C++ (pgenlib), Python (pgenlib), R (pgenlibr)
Operating systems
Linux, macOS, Windows

What you can use it for

Genome-wide association studies
Running basic case/control association, quantitative trait association, and linear or logistic regressions with covariates across whole-genome cohorts.
Genotype quality control
Filtering variants and samples based on missingness rates, minor allele frequencies, Hardy-Weinberg equilibrium test p-values, and Mendel error rates.
Population stratification and relatedness analysis
Computing identity-by-state, identity-by-descent, genomic relationship matrices, and principal component analysis (PCA) to detect kinship and population structure.
Linkage disequilibrium and clumping
Calculating pairwise linkage disequilibrium statistics (such as r and r-squared), pruning variants, and clumping association summary statistics to identify independent index variants.
Copy number variation analysis
Testing copy number variant regions and deletions/duplications for association, enrichment, and segment overlap.

Run it here

PLINK is preinstalled on the machine behind every research conversation. Ask the agent in plain language, or give it the exact command — it runs it, reads the output and explains it.

Try asking

“Run a basic case-control association test on these genotypes with PLINK.”

Strengths and limits

Good at

  • Executes broad genome-wide analyses and data manipulation tasks with high computational efficiency using optimised bit-level algorithms.
  • Provides native support for a wide range of standard genetic data formats including VCF, BCF, Oxford .gen/.bgen, and binary PED files.
  • Offers programming interfaces to its underlying .pgen data structures via C++, Python, and R libraries.

Watch out for

  • PLINK 1.9 lacks active feature development and only receives bugfixes.
  • Haplotype phasing and imputation commands from PLINK 1.07 (--hap, --proxy-assoc, --proxy-impute) are not supported in PLINK 1.9.
  • PLINK 2.0 remains under development and has not completed multiallelic-dosage support.

Questions

Can I run PLINK online without installing it?

PLINK is preinstalled on the machine behind every research conversation. Ask the agent in plain language, or give it the exact command — it runs it, reads the output and explains it.

What licence is PLINK under?

PLINK is published under its authors' own licence; the project page at https://www.cog-genomics.org/plink/ states it.

What is the difference between PLINK 1.9 and PLINK 2.0?

PLINK 1.9 uses the standard .bed/.bim/.fam format and acts as a faster, more scalable drop-in replacement for PLINK 1.07. PLINK 2.0 is designed around the .pgen/.pvar/.psam format to natively support phased genotypes, multiallelic variants, and dosage data from VCFs.

Can PLINK 1.9 and PLINK 2.0 exchange datasets?

Yes, PLINK 2.0 can read and write the binary PLINK 1 fileset (.bed, .bim, .fam), in addition to its own .pgen format.

Which association tests are available in PLINK 1.9?

PLINK 1.9 supports basic case/control models, quantitative trait association, linear and logistic regressions with covariates, family-based tests (such as TDT, DFAM, and QFAM), stratified Cochran-Mantel-Haenszel tests, and epistasis tests.

Are Python or R bindings available for working with PLINK data?

Yes, the pgenlib library provides Python bindings via pip, and R bindings are provided through the pgenlibr package on CRAN.

How to cite it

Second-generation PLINK (GigaScience, 2015)

Written from PLINK's own README and project page. Statements citing a figure that does not appear there are removed before publication. Licence and running details come from our registry.