gpvolve-v2
Markov-chain evolutionary dynamics on genotype-phenotype maps. Rust-accelerated.
gpvolve-v2 lifts a gpgraph-v2 GenotypePhenotypeGraph
into a Markov state model and analyzes evolutionary dynamics on top of it. Given a fitness
function and a fixation model (SSWM, Moran, McCandlish, Bloom DMS, weak-mutation), it builds
a row-stochastic transition matrix and computes stationary distributions, relaxation
timescales, mean first passage times, transition path theory committors and reactive flux,
dominant pathways, stochastic walker trajectories, PCCA+ metastable sets, and fitness peaks.
This is a clean-break rewrite of harmslab/gpvolve
(dormant since 2020) with selective architectural inspiration from the
harmsm/gpvolve fork (dormant since 2022). The two
hot paths that actually scaled badly in pure Python live in Rust via PyO3 + rayon: the
stochastic walker sampler (~500x faster at 2^14 states) and the BiCGSTAB committor
solver (~1700x faster at 2^14 vs scipy.sparse.linalg.spsolve). Everything else
(transition matrix assembly, stationary distributions, TPT setup, PCCA+) stays in
vectorized numpy/scipy where it already runs under a second on 2^14 maps. See
benchmarks/README.md for the measured numbers and the rationale
for what is and is not in Rust.
Try it in the browser
The Streamlit showcase tours every public surface
interactively: MSM builder, TPT explorer, stochastic sampler with live ESS / R-hat,
PCCA+ clustering, and a live Rust-vs-Python benchmark tab. Source under
examples/streamlit/.
Why v2
- Drops the dormant
msmtoolsdependency. PCCA+ and TPT are reimplemented natively. - Fast where it matters. Walker sampling and the committor solver run in Rust with rayon parallelism; the rest stays in vectorized numpy/scipy.
- Sound convergence. Stochastic path sampling stops on a real criterion (effective sample size + Gelman-Rubin R-hat), not a Euclidean distance heuristic.
- Typed. Full type hints,
mypy --strictin CI. - Modern tooling.
uv+maturin+pyproject.toml. Releases viapython-semantic-release. OIDC-based PyPI publishing. - Consumes the v2 family. Hard deps on
gpmap-v2andgpgraph-v2; speaks their lockedSCHEMA.mdcontracts.
Install
pip install gpvolve-v2
Or with uv:
uv add gpvolve-v2
Plotting support is optional. For matplotlib:
pip install "gpvolve-v2[plot]"
Optional simulation backends (SLiM, tskit):
pip install "gpvolve-v2[sim]"
Python 3.11+. Prebuilt wheels ship for Linux (x86_64, aarch64), macOS (x86_64, aarch64), and Windows (x64).
Status
Pre-release. See CHANGELOG.md for progress and docs/migration/from-v1.md for the
v1 to v2 API map.
Metadata
Release files for gpvolve-v2 1.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gpvolve_v2-1.2.2.tar.gz | 52.3 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| gpvolve_v2-1.2.2-cp311-abi3-win_amd64.whl | CPython 3.11 | abi3 | Windows x86-64 | Details |
| gpvolve_v2-1.2.2-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.11 | abi3 | Linux glibc 2.17+ x86-64 | Details |
| gpvolve_v2-1.2.2-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | CPython 3.11 | abi3 | Linux glibc 2.17+ ARM64 | Details |
| gpvolve_v2-1.2.2-cp311-abi3-macosx_11_0_arm64.whl | CPython 3.11 | abi3 | macOS 11.0+ ARM64 | Details |
| gpvolve_v2-1.2.2-cp311-abi3-macosx_10_12_x86_64.whl | CPython 3.11 | abi3 | macOS 10.12+ x86-64 | Details |
Total release size: 1.9 MB
Release files / gpvolve_v2-1.2.2.tar.gz
| Download URL | gpvolve_v2-1.2.2.tar.gz |
|---|---|
| Size | 52.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a5f87ce79bb3458aacd203fbd1c58d56351ecf9bb0d16671a8e44afba6ddf713
|
|
BLAKE2b-256 checksum How to use checksums |
3cc713f4ad7700fc74637266e1b11dac0b8c38a750c9cddc079238a1315acc06
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / gpvolve_v2-1.2.2-cp311-abi3-win_amd64.whl
| Download URL | gpvolve_v2-1.2.2-cp311-abi3-win_amd64.whl |
|---|---|
| Size | 262.1 kB |
| Tags | CPython 3.11 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
660adcf7a7208bf58a445ee6fc6062510111c56a67139abbdcde66cab0d183c3
|
|
BLAKE2b-256 checksum How to use checksums |
33b5b0e203b88d20f7cfb421f4103b7582036edc3ebc688b5cd46ba349d241e7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / gpvolve_v2-1.2.2-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | gpvolve_v2-1.2.2-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 435.0 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
46a911105e29d28d939ddaf8b768bb5289ac20a8518f0aa43297211267bf5e88
|
|
BLAKE2b-256 checksum How to use checksums |
689f74c7f5c32a5f41f12694b2cc8b6cd2d61802b1511e06fb8c287727ad1b50
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / gpvolve_v2-1.2.2-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | gpvolve_v2-1.2.2-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 424.1 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
acb80c6273158fe108d64569987652435c8c5e8c82b70da9a964c407a7ba5b25
|
|
BLAKE2b-256 checksum How to use checksums |
f42348ba25361bdbf9db9f3a874d2e295e3aa72bd2102457d7c6998dd397eae1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / gpvolve_v2-1.2.2-cp311-abi3-macosx_11_0_arm64.whl
| Download URL | gpvolve_v2-1.2.2-cp311-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 380.1 kB |
| Tags | CPython 3.11 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
3cf30be82dda753becd9b1c0b303c1036b84735591eb98ec42699d4118342d26
|
|
BLAKE2b-256 checksum How to use checksums |
24c322e7a412e6b437e70e34e3b978d3ecd82e6555509c48fa0ecdd2e762bb9e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / gpvolve_v2-1.2.2-cp311-abi3-macosx_10_12_x86_64.whl
| Download URL | gpvolve_v2-1.2.2-cp311-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 381.6 kB |
| Tags | CPython 3.11 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
7f05e08667398732cf44032082a7ca86d7f4d45cf0caddebc6624dae7b053de9
|
|
BLAKE2b-256 checksum How to use checksums |
77c4ce474d10cd789b27626ed3d3bca64d77f1b91e9bccbaec22c5ca58260bc7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|