- Compare clustering results by computing co-clustering percentage.
- Map marker genes against reference lists to find names for your clusters.
- pandas shotrcuts:
- Split single cell barcodes conveniently.
- Defensive pandas merging and concatenation methods with strict correctness checks.
Full documentation: https://genetools.maximz.com.
Run pip install --upgrade 'genetools[scanpy]'
.
Or if you don't use scanpy: pip install --upgrade genetools
.
To use genetools in a project, add import genetools
. Review the documentation and the tests for examples.
Setup:
git clone git://github.com/maximz/genetools
cd genetools
pip install --upgrade pip wheel
pip install -r requirements_dev.txt
pre-commit install
Common commands:
# lint
make lint
# one-time: generate test anndata, and commit so we have reproducible tests in CI
rm -r data
make regen-test-data
# run tests locally
# this is done in a debian-based docker image to ensure image style matches what Github Actions CI will produce
# failing image snapshot tests are recorded in tests/results/
make build-docker-test-image # whenever requirements_dev.txt change
make test
# generate baseline figures (also happens in docker)
make regen-snapshot-figures
# regenerate test data, and baseline figures (also happens in docker)
make regen-test-data
# run tests locally without docker, therefore omitting the snapshot tests
# (the @snapshot_image tests are still executed but the images are not compared. the @pytest.mark.snapshot_custom are skipped altogether.)
make test-without-figures
# docs
make docs
# bump version before submitting a PR against master (all master commits are deployed)
bump2version patch # possible: major / minor / patch
# also ensure CHANGELOG.md updated
CI:
- Main: Github Actions
- Docs: https://app.netlify.com/sites/genetools