Contributing#
Thank you for your interest in contributing to GATAC!
Development setup#
git clone https://github.com/Soldatov-Lab/gatac.git
cd GATAC
# Install in editable mode with all dev extras
uv sync --extra cuda12
Running tests#
Tests are located in tests/ (unit tests) and in the
reproducibility/
submodule (tracked at reproducibility/) for integration/benchmark tests.
After cloning, initialise the submodule once:
git submodule update --init --recursive
# Unit tests
uv run pytest tests/
# Reproducibility benchmarks (requires GPU + data)
cd reproducibility
pixi run pytest test/
After any change to a preprocessing or analysis function, run the related reproducibility test:
cd reproducibility
pixi run pytest test/tile_matrix.py
pixi run pytest test/spectral_embedding.py
Code style#
Formatter:
ruff formatLinter:
ruff checkType hints: encouraged for all public functions
Docstrings: NumPy style
uv run ruff format gatac/
uv run ruff check gatac/
Submitting changes#
Fork the repository and create a feature branch.
Make your changes with appropriate tests.
Ensure all existing tests pass.
Open a pull request with a clear description of the changes.
Reporting issues#
Please open a GitHub issue with:
A minimal reproducible example
GATAC version (
gatac --version)GPU model and CUDA version
Error traceback
Documentation#
The docs live in docs/. To build locally:
uv sync --extra docs
cd docs
make html
# Open _build/html/index.html
Analysis notebooks live in the separate
gatac-notebooks
repository — see Tutorials for details.