Skip to main content

General genetics/genomics utilities.

Project description

genetools: single-cell analysis recipes (work in progress)

CI codecov

Plot gallery

Other features

  • 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.

Install

Run pip install --upgrade 'genetools[scanpy]'.

Or if you don't use scanpy: pip install --upgrade genetools.

Usage

To use genetools in a project, add import genetools. Review the documentation and the tests for examples.

Development

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:

Changelog

0.7.0

  • Many new stats, plotting, and helper functions. See PRs #24 and #73.

0.6.0

  • Two new functions to customize tick labels on any existing plot:
    • wrap_tick_labels: add text wrapping
    • add_sample_size_to_labels: add group sample sizes with a (n=N) suffix
  • Make writing PDF figures a deterministic process and make the PDF text editable.
  • Scatterplot improvements:
    • Adjust default marker shape and size to work better for most plots.
    • Adjust HueValueStyle so that an explicit marker size is not specified there, only a marker size scaling factor. The scatterplot itself is responsible for defining the base marker size, while the palette of HueValueStyles should be drawable at any marker size.
    • Change legends so that only one marker is drawn to indicate a group's style.

0.5.0 (2022-01-10)

  • Improve scatter plots and stacked bar plots.
  • Introduce HueValueStyle for granular styling of each hue.

0.4.0 (2020-07-22)

  • Centered log ratio (CLR) normalization for Cite-seq protein data.

0.3.0 (2020-06-03)

  • Pandas helpers for easier normalization

0.2.0 (2020-06-03)

  • Far faster implementation of stats.coclustering
  • Introducing helpers.make_slurm_command
  • Global submodule import (no longer need to import submodules individually)

0.1.0 (2020-03-06)

  • First release on PyPI.

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

genetools-0.7.4.tar.gz (1.8 MB view details)

Uploaded Source

Built Distribution

genetools-0.7.4-py2.py3-none-any.whl (45.2 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file genetools-0.7.4.tar.gz.

File metadata

  • Download URL: genetools-0.7.4.tar.gz
  • Upload date:
  • Size: 1.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for genetools-0.7.4.tar.gz
Algorithm Hash digest
SHA256 a019b355fb31c27a74fe0b445d132b43585e23293cd694c75b52123be6879a67
MD5 9764a9dacb1076d95912b1a7acaa05a1
BLAKE2b-256 ffe3c5f80ceffe979c94f897c5136c22a0e99cac0e6d715cbe3e6e116939cb29

See more details on using hashes here.

File details

Details for the file genetools-0.7.4-py2.py3-none-any.whl.

File metadata

  • Download URL: genetools-0.7.4-py2.py3-none-any.whl
  • Upload date:
  • Size: 45.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for genetools-0.7.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e21f18b3ead852d1381bc0ea6817266886f6d83fb31449f6f4fedbc189a56689
MD5 8a0845ac5c9bf75435f112ef19ebe6a3
BLAKE2b-256 026a23fd2b57b026ee33ae40cb8aebcf965a5ce7d83ec9c5beb8a6267a869afe

See more details on using hashes here.

Supported by

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