Stairway plot

The stairway plot is a method for inferring detailed population demographic history using the site frequency spectrum (SFS) from DNA sequence data. It does not need a pre-defined population model and can be applied to hundreds of unphased sequences.

You can download a java program package implemented the method from this website. The current version is 2.1.1. See all updates below.

The first version (v0.2) including source codes can be downloaded here. A readme file is here. A data set simulated assuming a two-epoch model can be downloaded here. If you have questions about the usage of the package, please contact the author (Xiaoming Liu). Note: This version does not support missing data.

UPDATE (May 29, 2015): Some users with Java 1.6 on their system cannot run java classes with simpleGUI.jar, which is compiled with Java 1.7. For those users please download this simpleGUI.jar and replace the original one coming with the package. As some users asked for help regarding the usage of the package, I compiled a FAQ and will keep updating it.

UPDATE (June 5, 2015): Some users may have trouble running the program Stairway_plot_output_summary because of the GUI. Here I provide a commandline version of the program. It asks for the folder containing all the .addTheta files, mutation rate, generation time and output file name. Just type "java Stairway_plot_output_summary_commandline" to see a brief usage guidance.

UPDATE (October 9, 2015): Some users asked for a commandline version of the Stairway_plot_input_bootstrap. You can download it from here. It asks for the original input file and the number of bootstrap sample. Just type "java Stairway_plot_input_bootstrap_commandline" to see a brief usage guidance.

UPDATE: Stairway plot v2 is now released for beta test. The new version can be applied to both unfolded SFS and folded SFS and uses subsampling to control overfitting.

UPDATE (February 26, 2018): A bug is fixed for Stairway plot v2 beta. For the folded SFS, if you actually set the largest_size_of_SFS_bin_used_for_estimation, i.e. remove the "#" before largest_size_of_SFS_bin_used_for_estimation in the blueprint file, the bugged Stairbuilder.class will create a wrong input file. This is true even when the number is exactly the default number, nseq/2. The bug fixed beta2 version can be downloaded here. We thank Dr. Alison Cleary for reporting this bug.

UPDATE (April 8, 2018): Stairway plot v2 is released. It is based on the beta 2 version with a slightly modified readme file. It can be downloaded here. A readme file is here.

UPDATE (May 15, 2020): Stairway plot v2.1 is released. The running speed has been significantly improved. A small bug in Stairway_output_summary_plot2.class has been fixed. I thank Oliver Kersten for reporting the issue. Stairway plot v2.1 can be downloaded here. A readme file is here.

UPDATE (August 19, 2020): Stairway plot v2.1.1 is released. A bug in Stairway_output_summary_plot2.class, causing plotting error when xrange=0,0, has been fixed. I thank Chia-Wei Lu for reporting the issue. Stairway plot v2.1.1 can be downloaded here or here.

Cite the work:

  1. Liu X and Fu YX. (2015) Exploring population size changes using SNP frequency spectra. Nature Genetics 47(5):555-559.

  2. Liu X. (2020) Human prehistoric demography revealed by the polymorphic pattern of CpG transitions. Molecular Biology and Evolution 37(9):2691-2698.

  3. Liu X and Fu YX. (2020) Stairway Plot 2: demographic history inference with folded SNP frequency spectra. Genome Biology 21:280.