Development

Set up a development environment

mamba env create -f environment.yml
conda activate wisp
python -m pip install -e ".[dev,docs]"

Run checks

ruff check .
mypy
pytest
python -m build

Build documentation

make -C docs html

Treat Sphinx warnings as issues during local development:

sphinx-build -W -b html docs docs/_build/html

Project layout

src/wisp_mask/     package source
tests/               unit and workflow tests
tests/test_data/     small 1000 Genomes fixtures and download scripts
docs/                Sphinx documentation

Implementation overview

The public CLI is defined in wisp_mask.cli. Parsed arguments are converted to RunConfig and passed to run_workflow. The workflow validates the input mode, runs either the BAM/CRAM or VCF builder, writes wisp.bed.gz, and creates the tabix index.