Markov-chain evolutionary dynamics on genotype-phenotype maps. Rust-accelerated.
Project description
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). Hot paths (transition matrix assembly and stochastic walker sampling) live in Rust via PyO3 + rayon; spectral analysis stays in scipy.
Why v2
- Drops the dormant
msmtoolsdependency. PCCA+ and TPT are reimplemented natively. - Fast. Transition matrix assembly and walker sampling run in Rust with rayon parallelism.
- 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.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gpvolve_v2-1.0.2.tar.gz.
File metadata
- Download URL: gpvolve_v2-1.0.2.tar.gz
- Upload date:
- Size: 40.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b6747b2672324df1e21af80d4f66fb0aa014e384f718bfcf1af6e797753fc9a
|
|
| MD5 |
dc37def7a31cfa216457e1b8a56c6c52
|
|
| BLAKE2b-256 |
734e90d890f17842186b319003769d7e6716f898b951fb452a85484f78d9b611
|
File details
Details for the file gpvolve_v2-1.0.2-cp311-abi3-win_amd64.whl.
File metadata
- Download URL: gpvolve_v2-1.0.2-cp311-abi3-win_amd64.whl
- Upload date:
- Size: 241.5 kB
- Tags: CPython 3.11+, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da9427a2f449b9d2c2357b8d1235988e625a56c13deaba34ab139d2d119d4f9b
|
|
| MD5 |
49aa64d552c7d3d539d9a695fba0bda4
|
|
| BLAKE2b-256 |
6b66d2ba5cafde6c65bf2af54af2b2e6463b972ca5813df1e057b6c59ed12ae2
|
File details
Details for the file gpvolve_v2-1.0.2-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: gpvolve_v2-1.0.2-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 413.9 kB
- Tags: CPython 3.11+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4cfd6aa79313ec2554ff1a588fac1fc4562f0627ef0cbede986660c0973ea49e
|
|
| MD5 |
3d9d54ffcd8c62459f969e5a2338153c
|
|
| BLAKE2b-256 |
7fc4942abda286575c5be0daa7a3b7cceac592b0bbfff1da1fdcd1db20d19442
|
File details
Details for the file gpvolve_v2-1.0.2-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: gpvolve_v2-1.0.2-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 405.2 kB
- Tags: CPython 3.11+, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a629ec7459b4ac7af1f209e4ea355e0ad406357eb88cb71b7604c2efb8c811c6
|
|
| MD5 |
4b1f20d7dd31d434cd3363ed773baa33
|
|
| BLAKE2b-256 |
0be86b15b1c52a0c39bdd1f8348f62c339d5ccd34e1112c7644198d8f83b96cc
|
File details
Details for the file gpvolve_v2-1.0.2-cp311-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: gpvolve_v2-1.0.2-cp311-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 360.8 kB
- Tags: CPython 3.11+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c8c79312ca2d61fb2d9686b23897ed2160834def7cec6186de0f8805c725c11
|
|
| MD5 |
8039174651beecb7cf346eea1a8a5128
|
|
| BLAKE2b-256 |
36f6f1effb9cbd42c14f36741a60eae923cc9845c69459b6dd6e4135dd60ce23
|
File details
Details for the file gpvolve_v2-1.0.2-cp311-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: gpvolve_v2-1.0.2-cp311-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 364.3 kB
- Tags: CPython 3.11+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b23cbc9c2804a2bb7d4d4477375f2bed0a48895b563dea0a9e7a9649dffca3bf
|
|
| MD5 |
2c3ff0d708a2efdf8dc759005159ebb7
|
|
| BLAKE2b-256 |
330face5579977177f30a50aa7d47f9ca18fa20a8d2c89e6f74363a2692b4f02
|