Stacks is a software pipeline for building loci from short-read sequences, such as those generated on the Illumina platform. Stacks was developed to work with restriction enzyme-based data, such as RAD-seq, for the purpose of building genetic maps and conducting population genomics and phylogeography.

Download Stacks

Version 1.34
Recent Changes [updated July 26, 2015]

Stacks Pipeline

Genetic Maps

Stacks can be used to generate mappable markers from RAD-seq data. Thousands of markers can be generated from a single generation, F1 map as well as markers for traditional F2 and backcross designs. Stacks can export data to JoinMap, OneMap, or R/qtl. These data can be used for examining genomic structure as well as assembling genomic assemblies.

Population Genomics

Stacks can be used to identify SNPs within or among populations. Stacks provides tools to generate summary statistics and to compute population genetic measures such as FIS and π within populations and FST between populations, allowing for genome scans. Data can be exported in VCF format and for use in programs such as STRUCTURE or GenePop.


Stacks can be used to identify SNPs fixed within and variable among populations. These SNPs can be exported to Phylip format which can be fed into any standard phylogenetics package.

Getting started with Stacks

Frequently Asked Questions

Pipeline components

The Stacks pipeline is designed modularly to perform several different types of analyses. Programs listed under Raw Reads are used to clean and filter raw sequence data. Programs under Core represent the main Stacks pipeline -- building loci (ustacks or pstacks), creating a catalog of loci (cstacks, and matching samples back against the catalog (sstacks), followed by assignment of genotypes (genetic mapping) or population genomics analysis. Programs under Execution Control will run the whole pipeline, followed by a number of Utility programs for things such as building paired-end contigs.

Raw Reads


Execution control


Web Interface

The output from the Stacks pipeline is meant to be loaded into a MySQL database and viewed online, facilitating data mining, and data correction. A database schema is provided along with a set of PHP files to display the results of the Stacks pipeline, resulting in an interface like this:



Stacks is implemented in C++, with some helper programs in Perl, and is parallelized using the OpenMP libraries. It will compile on GNU-based Linux systems or BSD-based OS X systems. Stacks is released under the GNU GPL license.

Stacks was developed by Julian Catchen <> with contributions from Angel Amores <>, Paul Hohenlohe <>, and Bill Cresko <>.

Mailing List

Subscribe to the stacks-user mailing list to discuss the use and development of Stacks.


Here are a few publications that have used the Stacks pipeline for data analysis. These papers show a variety of uses for the Stacks pipeline.