diff --git a/CHANGELOG.md b/CHANGELOG.md index e392aa5..890d1dc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## Unreleased (P9, P10) +## 1.1.0 — 2026-09-28 (P9, P10) **Packaging (P10).** `scripts/build_dist.sh` (sdist, pure wheel, manylinux_2_28 kernel wheels for x86_64 and aarch64), `Dockerfile`, conda recipes (`packaging/conda/`). Verified on fresh x86_64 and aarch64 VMs: pip, Docker diff --git a/Dockerfile b/Dockerfile index 1e5ca1c..5c29ca7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # SimurgArray container: the `simurg` CLI with the compiled kernels. -# docker build -t simurg:1.0.0 . -# docker run --rm -v "$PWD":/work simurg:1.0.0 genotype --bpm M.bpm --egt C.egt --idats idats --out run/gtc +# docker build -t simurg:1.1.0 . +# docker run --rm -v "$PWD":/work simurg:1.1.0 genotype --bpm M.bpm --egt C.egt --idats idats --out run/gtc # Inputs and outputs live in the mounted /work folder; the image holds no data. ARG PYTHON=3.12 diff --git a/README.md b/README.md index a1795bf..c9286f1 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ Personal research toolkit for Illumina Infinium genotyping BeadChip data ## Status -**v1.0.0** (2026-09-28) — see `CHANGELOG.md`. IDAT → normalization → GenCall-equivalent genotype calling → GTC v5 → +**v1.1.0** (2026-09-28) — see `CHANGELOG.md`. IDAT → normalization → GenCall-equivalent genotype calling → GTC v5 → sample/control QC with an HTML report → plus-strand VCF/BCF → PLINK 1/2, bedGraph, final report; plus a differential-testing harness. Validation (`docs/validation/`): diff --git a/docs/user_guide.md b/docs/user_guide.md index 3d41c4a..0cfec6e 100644 --- a/docs/user_guide.md +++ b/docs/user_guide.md @@ -1,4 +1,4 @@ -# SimurgArray user guide (v1.0) +# SimurgArray user guide (v1.1) SimurgArray turns Illumina Infinium genotyping BeadChip scans (IDAT files) into genotype calls, QC tables and reports, VCF/BCF and PLINK files. It is a personal, non-commercial **research** tool — not for clinical or @@ -24,7 +24,7 @@ uv venv && uv pip install -e . # add ".[dev]" for tests and linters ```bash curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal # Rust (needs a C linker, e.g. gcc) uv pip install ./rust/simurg-core -.venv/bin/python -c "from simurg._core import backend; print(backend())" # rust 1.0.0 +.venv/bin/python -c "from simurg._core import backend; print(backend())" # rust 1.1.0 ``` Without them the same code runs in pure Python/NumPy; `SIMURG_PURE_PYTHON=1` forces that path. @@ -33,15 +33,15 @@ Without them the same code runs in pure Python/NumPy; `SIMURG_PURE_PYTHON=1` for `manylinux_2_28` kernel wheels for x86_64 and aarch64, glibc ≥ 2.28): ```bash -python3 -m venv simurg-env && simurg-env/bin/pip install simurg-1.0.0-py3-none-any.whl \ - simurg_core-1.0.0-cp312-abi3-manylinux_2_28_$(uname -m).whl # the second wheel is optional +python3 -m venv simurg-env && simurg-env/bin/pip install simurg-1.1.0-py3-none-any.whl \ + simurg_core-1.1.0-cp312-abi3-manylinux_2_28_$(uname -m).whl # the second wheel is optional ``` **Docker** (image ≈ 550 MB, kernels included, runs as a non-root user; data stay in the mounted folder): ```bash -docker build -t simurg:1.0.0 . -docker run --rm --user "$(id -u):$(id -g)" -v "$PWD":/work simurg:1.0.0 \ +docker build -t simurg:1.1.0 . +docker run --rm --user "$(id -u):$(id -g)" -v "$PWD":/work simurg:1.1.0 \ genotype --bpm M.bpm --egt C.egt --idats idats --out run/gtc ``` diff --git a/rust/simurg-core/Cargo.lock b/rust/simurg-core/Cargo.lock index aa8d78f..cbe36de 100644 --- a/rust/simurg-core/Cargo.lock +++ b/rust/simurg-core/Cargo.lock @@ -198,7 +198,7 @@ checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d" [[package]] name = "simurg-core" -version = "1.0.0" +version = "1.1.0" dependencies = [ "numpy", "pyo3", diff --git a/rust/simurg-core/Cargo.toml b/rust/simurg-core/Cargo.toml index 4d6c684..3f6711a 100644 --- a/rust/simurg-core/Cargo.toml +++ b/rust/simurg-core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "simurg-core" -version = "1.0.0" +version = "1.1.0" edition = "2021" license = "MIT" description = "Compiled kernels for SimurgArray (plan §18 P9)" diff --git a/src/simurg/__init__.py b/src/simurg/__init__.py index 70eae7c..dc700a1 100644 --- a/src/simurg/__init__.py +++ b/src/simurg/__init__.py @@ -4,5 +4,5 @@ Specification: SIMURGARRAY_MASTER_PLAN.md (algorithms, roadmap) and SIMURGARRAY_FUNCTIONAL_SPEC.md (externally visible behaviour, item IDs such as CLI-021). """ -__version__ = "1.0.0" +__version__ = "1.1.0" PRODUCT_NAME = "SimurgArray"