Skip to main content

Unified framework for Sequentially Markovian Coalescent methods

Project description

smckit

PyPI version Python versions PyPI status Publish License: MIT Extras: all-models Extra: asmc Extra: jax Extra: dev Extra: docs

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 smckit guarantees 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 .psmcfa and multihetsep input families, including missing-site, multi-record, multi-pair, multi-file, and skip_ambiguous=True cases.
  • 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

smckit-0.0.1b2.tar.gz (19.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

smckit-0.0.1b2-py3-none-any.whl (19.4 MB view details)

Uploaded Python 3

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

Hashes for smckit-0.0.1b2.tar.gz
Algorithm Hash digest
SHA256 4456c41412f7c4879e3aea0fa66f779f41a34cfbff0ea72471c8ad33de0c59c4
MD5 3799952aac8ac888e3bc29ef1ada37e5
BLAKE2b-256 816d101d240ed927fe8e7734df94cfe78511aa2b990bb447b8d81b71481eadff

See more details on using hashes here.

Provenance

The following attestation bundles were made for smckit-0.0.1b2.tar.gz:

Publisher: publish.yml on kevinkorfmann/smckit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for smckit-0.0.1b2-py3-none-any.whl
Algorithm Hash digest
SHA256 a86275c69e205a81e0f6df5cccbb63a9d52ab311e0f8c47ada0c08574331e39e
MD5 1df345269d315feb303235ef5dca2c64
BLAKE2b-256 d603326442680adfa784b1a0c013bda808c477a57474a0a1baf5be573f366d5c

See more details on using hashes here.

Provenance

The following attestation bundles were made for smckit-0.0.1b2-py3-none-any.whl:

Publisher: publish.yml on kevinkorfmann/smckit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page