Unified framework for Sequentially Markovian Coalescent methods
Project description
smckit
Unified framework for Sequentially Markovian Coalescent methods.
PSMC, MSMC/MSMC2, SMC++, diCal2, ASMC, and related workflows in one preservation-first toolkit.
smckit keeps upstream tools runnable from the same repository while building native implementations that do not lose contact with upstream truth.
Why smckit
- Upstream-first: original tools in
vendor/remain the oracle implementation. - Provenance-aware: results can record which tool ran and how it was bootstrapped.
- One API surface: shared data structures and workflows across multiple SMC methods.
- Native path: performance-oriented in-repo implementations can grow without pretending parity before it is validated.
Installation
pip install smckit
Install contract:
pip install smckitguarantees the packaged example data and the documented native quickstarts.- Full
implementation="upstream"preservation workflows are a source-checkout feature unless the method page explicitly says otherwise. - When an upstream runtime is missing, smckit reports platform-specific install commands and, when needed, tells you to switch to a source checkout.
Repo environment:
uv sync --extra dev --extra docs
pixi run test-fast
Use uv for the Python package environment and pixi for the repo-level
cross-language task environment.
Model extras:
pip install "smckit[all-models]"
pip install "smckit[asmc]"
pip install "smckit[psmc,msmc2,msmc_im,smcpp,esmc2,dical2]"
These extras describe intent. Today only asmc adds an extra Python runtime;
the other upstream-backed methods still need platform runtimes such as Java, R,
or a D/C toolchain. When an upstream runtime is missing, smckit now returns
platform-specific install commands for macOS, Linux, or Windows.
Development extras:
pip install "smckit[jax]"
pip install "smckit[dev]"
pip install "smckit[docs]"
Philosophy
smckit is upstream-first by design.
vendor/holds the original source or release artifacts that act as the oracle.implementation="upstream"means "run the original tool" when that bridge is wired and ready.implementation="native"means "run the in-repo implementation".implementation="auto"should prefer upstream fidelity whenever the upstream path is ready.
The repository exposes smckit.upstream.status() and smckit.upstream.bootstrap() so upstream readiness is inspectable rather than implicit.
Status
smckit is early-stage software. The priority is preserving access to upstream methods, making readiness explicit, and validating native implementations against upstream behavior before claiming equivalence.
Recent parity progress:
- eSMC2 native/upstream interchangeability is now tracked across the public
.psmcfaandmultihetsepinput families, including missing-site, multi-record, multi-pair, multi-file, andskip_ambiguous=Truecases. - The docs landing page and gallery summarize which methods have fixture-only validation and which now have broader public-surface parity gates.
Repository Guide
- Method docs:
docs/agents/algorithms.md - Usage notes:
docs/agents/using-smckit.md - Developer architecture:
docs/developer/architecture.md
License
MIT. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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 smckit-0.0.1b2.tar.gz.
File metadata
- Download URL: smckit-0.0.1b2.tar.gz
- Upload date:
- Size: 19.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4456c41412f7c4879e3aea0fa66f779f41a34cfbff0ea72471c8ad33de0c59c4
|
|
| MD5 |
3799952aac8ac888e3bc29ef1ada37e5
|
|
| BLAKE2b-256 |
816d101d240ed927fe8e7734df94cfe78511aa2b990bb447b8d81b71481eadff
|
Provenance
The following attestation bundles were made for smckit-0.0.1b2.tar.gz:
Publisher:
publish.yml on kevinkorfmann/smckit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
smckit-0.0.1b2.tar.gz -
Subject digest:
4456c41412f7c4879e3aea0fa66f779f41a34cfbff0ea72471c8ad33de0c59c4 - Sigstore transparency entry: 1254486633
- Sigstore integration time:
-
Permalink:
kevinkorfmann/smckit@ecc90d40b26cbe521b763535bb8526e44b7f6679 -
Branch / Tag:
refs/tags/v0.0.1b2 - Owner: https://github.com/kevinkorfmann
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ecc90d40b26cbe521b763535bb8526e44b7f6679 -
Trigger Event:
push
-
Statement type:
File details
Details for the file smckit-0.0.1b2-py3-none-any.whl.
File metadata
- Download URL: smckit-0.0.1b2-py3-none-any.whl
- Upload date:
- Size: 19.4 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a86275c69e205a81e0f6df5cccbb63a9d52ab311e0f8c47ada0c08574331e39e
|
|
| MD5 |
1df345269d315feb303235ef5dca2c64
|
|
| BLAKE2b-256 |
d603326442680adfa784b1a0c013bda808c477a57474a0a1baf5be573f366d5c
|
Provenance
The following attestation bundles were made for smckit-0.0.1b2-py3-none-any.whl:
Publisher:
publish.yml on kevinkorfmann/smckit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
smckit-0.0.1b2-py3-none-any.whl -
Subject digest:
a86275c69e205a81e0f6df5cccbb63a9d52ab311e0f8c47ada0c08574331e39e - Sigstore transparency entry: 1254486764
- Sigstore integration time:
-
Permalink:
kevinkorfmann/smckit@ecc90d40b26cbe521b763535bb8526e44b7f6679 -
Branch / Tag:
refs/tags/v0.0.1b2 - Owner: https://github.com/kevinkorfmann
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ecc90d40b26cbe521b763535bb8526e44b7f6679 -
Trigger Event:
push
-
Statement type: