This is a Preprint and has not been peer reviewed. This is version 1 of this Preprint.
psmc-rs: fast PSMC inference that reproduces the reference implementation
Downloads
Supplementary Files
- Source code (GitHub)
- psmc-rs 0.2.0 software archive (Zenodo)
- Inputs of the 1000 Genomes analysis (Zenodo)
Authors
Abstract
The pairwise sequentially Markovian coalescent (PSMC) infers the history of effective population size from a single diploid genome and is one of the most widely used methods of population genomics. Its reference implementation, the C program psmc, runs on one thread, which makes bootstraps and large cohorts slow. We present psmc-rs, a reimplementation of PSMC in Rust that fits the same model as C psmc. On 40 simulated and 55 real genomes, the two programs' estimates of population size differed by at most 0.15% over the time range each genome informs. On the simulated genomes, their histories were at least 1,500 times closer to each other than either was to the true history. On a simulated genome of 30 chromosomes of 100 Mb, psmc-rs was 14.1 times as fast as C psmc on one thread and 386 times as fast on 30 threads, and it used at most 148 MB of memory, against C psmc's 1,062 MB. Its results were byte-identical on any number of threads. Fitting all 2,504 unrelated high-coverage genomes of the 1000 Genomes Project took psmc-rs 257 core-hours, where C psmc would have needed about 3,700. psmc-rs also reads VCF and multihetsep files, accounts for partly callable bins, and runs PSMC's block bootstrap in parallel. It is open source under the MIT license, and the pipeline behind every result, with the inputs and fits of the 2,504 genomes, is openly available.
DOI
https://doi.org/10.32942/X2P97K
Subjects
Bioinformatics, Computational Biology, Evolution, Genomics, Population Biology
Keywords
demographic inference, effective population size, PSMC, coalescent hidden Markov model, population genomics, reproducibility, software
Dates
Published: 2026-11-09 22:44
Last Updated: 2026-11-09 22:44
License
CC BY Attribution 4.0 International
Additional Metadata
Conflict of interest statement:
None.
Data and Code Availability Statement:
psmc-rs is open source under the MIT license at https://github.com/larryivan/psmc-rs; the release used here, version 0.2.0, is archived at https://doi.org/10.5281/zenodo.23762893. The experiment pipeline, the committed results of every experiment and the code that draws every figure are in the same repository (experiment/; see experiment/REPRODUCIBILITY.md). The inputs of the 1000 Genomes analysis (the psmcfa files of the 2,504 genomes, the comparison subset's VCFs and the masks) are available at https://doi.org/10.5281/zenodo.23764975. The 1000 Genomes high-coverage VCFs are available from the International Genome Sample Resource (https://www.internationalgenome.org).
Language:
English
Metrics
Views: 32
Downloads: 3
There are no comments or no comments have been made public for this article.