From e1b57cc0b0343c3e01465fe843b723783efef7c6 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 26 Oct 2026 18:15:42 +0000 Subject: [PATCH 1/2] [pre-commit.ci] pre-commit autoupdate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/biomejs/pre-commit: v2.5.13 → v2.6.3](https://github.com/biomejs/pre-commit/compare/v2.5.13...v2.6.3) - [github.com/tox-dev/pyproject-fmt: v2.29.4 → v2.30.3](https://github.com/tox-dev/pyproject-fmt/compare/v2.29.4...v2.30.3) - [github.com/astral-sh/ruff-pre-commit: v0.16.7 → v0.17.2](https://github.com/astral-sh/ruff-pre-commit/compare/v0.16.7...v0.17.2) - [github.com/zizmorcore/zizmor-pre-commit: v1.30.1 → v1.31.1](https://github.com/zizmorcore/zizmor-pre-commit/compare/v1.30.1...v1.31.1) --- .pre-commit-config.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 4e0611496..16c07a7ec 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -7,16 +7,16 @@ default_stages: minimum_pre_commit_version: 2.16.0 repos: - repo: https://github.com/biomejs/pre-commit - rev: v2.5.13 + rev: v2.6.3 hooks: - id: biome-format exclude: ^\.cruft\.json$ # inconsistent indentation with cruft - file never to be modified manually. - repo: https://github.com/tox-dev/pyproject-fmt - rev: v2.29.4 + rev: v2.30.3 hooks: - id: pyproject-fmt - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.16.7 + rev: v0.17.2 hooks: - id: ruff-check types_or: [python, pyi, jupyter] @@ -38,7 +38,7 @@ repos: args: [--assume-in-merge] - repo: https://github.com/zizmorcore/zizmor-pre-commit - rev: v1.30.1 + rev: v1.31.1 hooks: - id: zizmor args: [--no-progress, --fix] From 48851970366866ca1a7f0bbc3f2f2f5cf6044766 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 26 Oct 2026 18:18:48 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- .github/ISSUE_TEMPLATE/bug_report.md | 1 + .github/ISSUE_TEMPLATE/feature_request.md | 1 + .github/workflows/test.yaml | 10 +-- CHANGELOG.md | 74 +++++++++++------------ README.md | 26 ++++---- docs/contributing.md | 2 +- 6 files changed, 58 insertions(+), 56 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 3eaf9817f..b567644d7 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -1,4 +1,5 @@ --- + name: Bug report about: Report something that is broken or incorrect title: "" diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 9be0366d2..80404ad35 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -1,4 +1,5 @@ --- + name: Feature request about: Suggest an idea for scirpy title: "" diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index a4e7c3029..dacd8cac1 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -51,8 +51,8 @@ jobs: test: needs: get-environments permissions: - id-token: write # for codecov OIDC - contents: read + id-token: write # for codecov OIDC + contents: read strategy: fail-fast: false @@ -106,6 +106,6 @@ jobs: - test runs-on: ubuntu-latest steps: - - uses: re-actors/alls-green@b5b5b37504aa4183270bd3d855c52a67f212be35 # v1.3.0 - with: - jobs: ${{ toJSON(needs) }} + - uses: re-actors/alls-green@b5b5b37504aa4183270bd3d855c52a67f212be35 # v1.3.0 + with: + jobs: ${{ toJSON(needs) }} diff --git a/CHANGELOG.md b/CHANGELOG.md index 89800ddba..93059ffdf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,75 +12,75 @@ and this project adheres to [Semantic Versioning][]. ### Fixes - - Avoid deprecated AnnData `obsm_keys()` calls when plotting clonotype networks or exporting them to igraph. +- Avoid deprecated AnnData `obsm_keys()` calls when plotting clonotype networks or exporting them to igraph. ## v0.26.0 ### Features - - Add a linear-gap Needleman-Wunsch distance metric for CDR3 amino acid sequences via - `metric="needleman_wunsch"`. The `alignment` and `fastalignment` metrics are now - deprecated. When `gap_open == gap_extend` (which has always been the default), use `needleman_wunsch` instead. +- Add a linear-gap Needleman-Wunsch distance metric for CDR3 amino acid sequences via + `metric="needleman_wunsch"`. The `alignment` and `fastalignment` metrics are now + deprecated. When `gap_open == gap_extend` (which has always been the default), use `needleman_wunsch` instead. ### Performance improvements - - Improve the GPU implementation of the Hamming distance metric with row and column tiling, adaptive result buffers, - and other performance optimizations. GPU tiles can be configured - with `gpu_tile_rows`, `gpu_tile_cols`, and `gpu_tile_buffer_cols`. The previous `gpu_n_blocks` and `gpu_block_width` - parameters are deprecated and ignored; calls using them emit a warning and use the new parameters' defaults - unless the new parameters are explicitly provided. +- Improve the GPU implementation of the Hamming distance metric with row and column tiling, adaptive result buffers, + and other performance optimizations. GPU tiles can be configured + with `gpu_tile_rows`, `gpu_tile_cols`, and `gpu_tile_buffer_cols`. The previous `gpu_n_blocks` and `gpu_block_width` + parameters are deprecated and ignored; calls using them emit a warning and use the new parameters' defaults + unless the new parameters are explicitly provided. ## v0.25.1 ### Fixes - - Compatibility with `mudata >= 0.4`, where `update()` no longer pulls `obs` columns from the individual modalities - into the global `obs` by default. Modality-prefixed columns (e.g. `airr:clone_id`) now need to be made available - explicitly with `mdata.pull_obs()` ([#743](https://github.com/scverse/scirpy/issues/743)). +- Compatibility with `mudata >= 0.4`, where `update()` no longer pulls `obs` columns from the individual modalities + into the global `obs` by default. Modality-prefixed columns (e.g. `airr:clone_id`) now need to be made available + explicitly with `mdata.pull_obs()` ([#743](https://github.com/scverse/scirpy/issues/743)). ### Chore - - Use the deprecation decorators from [scverse-misc](https://scverse-misc.readthedocs.io/) for deprecated functions - and function arguments. `scverse-misc` is now a hard dependency. Deprecated arguments that previously did not - emit any warning (`include_fields` and `use_umi_count_col` of the `io.read_*` functions, `cached` and `cache_path` - of `datasets.vdjdb` and `datasets.iedb`) now consistently raise a `FutureWarning`, and the API documentation - states in which version a function or argument was deprecated ([#704](https://github.com/scverse/scirpy/issues/704)). - The undocumented `scirpy.util.deprecated` decorator has been removed in favor of `scverse_misc.deprecated`. +- Use the deprecation decorators from [scverse-misc](https://scverse-misc.readthedocs.io/) for deprecated functions + and function arguments. `scverse-misc` is now a hard dependency. Deprecated arguments that previously did not + emit any warning (`include_fields` and `use_umi_count_col` of the `io.read_*` functions, `cached` and `cache_path` + of `datasets.vdjdb` and `datasets.iedb`) now consistently raise a `FutureWarning`, and the API documentation + states in which version a function or argument was deprecated ([#704](https://github.com/scverse/scirpy/issues/704)). + The undocumented `scirpy.util.deprecated` decorator has been removed in favor of `scverse_misc.deprecated`. ## v0.25.0 ### Fixes - - Adjust import location of plotting utils for compatibility with scanpy >= 1.13 ([#730](https://github.com/scverse/scirpy/pull/730)) +- Adjust import location of plotting utils for compatibility with scanpy >= 1.13 ([#730](https://github.com/scverse/scirpy/pull/730)) ### Features - - Add support for TCRBLOSUM alpha/beta substitution matrices in the `tcrdist` distance metric via - `base_matrix="tcrblosum"`, and allow configuring the substitution-to-distance cap with `distance_cap`. +- Add support for TCRBLOSUM alpha/beta substitution matrices in the `tcrdist` distance metric via + `base_matrix="tcrblosum"`, and allow configuring the substitution-to-distance cap with `distance_cap`. ### Performance improvements - - Speed up identity distance metric computation for comparisons between two different sequence arrays ([#701](https://github.com/scverse/scirpy/pull/701)). +- Speed up identity distance metric computation for comparisons between two different sequence arrays ([#701](https://github.com/scverse/scirpy/pull/701)). ### Chore - - Clean up unneeded dependency constraints in pyproject.toml ([#718](https://github.com/scverse/scirpy/pull/718)). +- Clean up unneeded dependency constraints in pyproject.toml ([#718](https://github.com/scverse/scirpy/pull/718)). ## v0.24.0 ### Additions - - Add the [IggyTop receptor reference database](https://iggytop.readthedocs.io/en/latest/index.html), - a metadatabase including receptor data from IEDB, VDJdb and others ([#652](https://github.com/scverse/scirpy/pull/652)). IggyTop includes additional data curation steps (e.g. low quality sequences from 10x dataset filtered out, - amino acid sequences are now consistently `junction_aa` sequences). It updated bimonthly, pre-built and can - be downloaded from GitHub. This is much faster and more reliable than the previous approach of downloading and building AnnData objects from reference database on-the-fly. The previously existing functions `datasets.iedb` and `datasets.vdjdb` are now wrappers around `datasets.iggytop`. +- Add the [IggyTop receptor reference database](https://iggytop.readthedocs.io/en/latest/index.html), + a metadatabase including receptor data from IEDB, VDJdb and others ([#652](https://github.com/scverse/scirpy/pull/652)). IggyTop includes additional data curation steps (e.g. low quality sequences from 10x dataset filtered out, + amino acid sequences are now consistently `junction_aa` sequences). It updated bimonthly, pre-built and can + be downloaded from GitHub. This is much faster and more reliable than the previous approach of downloading and building AnnData objects from reference database on-the-fly. The previously existing functions `datasets.iedb` and `datasets.vdjdb` are now wrappers around `datasets.iggytop`. ### Fixes - - Filter unused categories from clonotype network legend ([#680](https://github.com/scverse/scirpy/pull/680/)). - - Fix overflow error that occured in `ir.pp.ir_dist` with sequences longer than 127 characters ([#683](https://github.com/scverse/scirpy/pull/680)) - - Remove `distance_key` parameter from `define_clonotypes` and raise warning if it is passed via `kwargs` ([#688](https://github.com/scverse/scirpy/pull/688)) +- Filter unused categories from clonotype network legend ([#680](https://github.com/scverse/scirpy/pull/680/)). +- Fix overflow error that occured in `ir.pp.ir_dist` with sequences longer than 127 characters ([#683](https://github.com/scverse/scirpy/pull/680)) +- Remove `distance_key` parameter from `define_clonotypes` and raise warning if it is passed via `kwargs` ([#688](https://github.com/scverse/scirpy/pull/688)) ## v0.23.0 @@ -116,7 +116,7 @@ and this project adheres to [Semantic Versioning][]. ### Fixes - Fix that `pp.index_chains` did not work with an AnnData object where gene expression and AIRR data - did not perfectly overlap ([#660](https://github.com/scverse/scirpy/pull/660)). + did not perfectly overlap ([#660](https://github.com/scverse/scirpy/pull/660)). - Fix that `pl.repertoire_overlap` ignored the `airr_mod` parameter ([#650](https://github.com/scverse/scirpy/pull/650)). - Fix that `pl.clonotype_imbalance` ignored the `airr_mod` parameter ([#657](https://github.com/scverse/scirpy/pull/657)). @@ -293,9 +293,9 @@ and this project adheres to [Semantic Versioning][]. It will _not_ change AIRR data that is read through `scirpy.io.read_airr` that still uses the `duplicate_count` column. Scirpy remains compatible with datasets that still use `duplicate_count`. You can update your dataset using - ```python - adata.obsm["airr"]["umi_count"] = adata.obsm["airr"]["duplicate_count"] - ``` + ```python + adata.obsm["airr"]["umi_count"] = adata.obsm["airr"]["duplicate_count"] + ``` ### Other @@ -810,7 +810,7 @@ This update includes the following changes: - Fix pythonpublish CI action - Update black version (and code style, accordingly) - Changes for AIRR-complicance: - - Add support level to README + - Add support level to README - Add Biocontainer instructions to README - Add a minimal test suite to be ran on conda CI @@ -844,10 +844,10 @@ This update includes the following changes: - Experimental function to assess bias in clonotype abundance between conditions (#92) - Scirpy now has a logo (#123) - Update default parameters for `clonotype_network`: - - Edges are now only automatically displayed if plotting < 1000 nodes + - Edges are now only automatically displayed if plotting < 1000 nodes - If plotting variables with many categories, the legend is hidden. - Update default parameters for alignment-based `tcr_neighbors` - - The gap extend penalty now equals the gap open penalty (`11`). + - The gap extend penalty now equals the gap open penalty (`11`). ## v0.1.2 diff --git a/README.md b/README.md index a503c6901..a6cbf767a 100644 --- a/README.md +++ b/README.md @@ -56,29 +56,29 @@ There are several alternative options to install scirpy: 1. Install the latest release of `scirpy` from [PyPI](https://pypi.org/project/scirpy/): - ```bash - pip install scirpy - ``` + ```bash + pip install scirpy + ``` 2. Get it from [Bioconda][link-bioconda]: - First **setup conda channels [as described here](https://bioconda.github.io/#usage)**. Then install scirpy: + First **setup conda channels [as described here](https://bioconda.github.io/#usage)**. Then install scirpy: - ```bash - conda install scirpy - ``` + ```bash + conda install scirpy + ``` 3. Install the latest development version: - ```bash - pip install git+https://github.com/scverse/scirpy.git@main - ``` + ```bash + pip install git+https://github.com/scverse/scirpy.git@main + ``` 4. Run it in a container using [Docker][] or [Podman][]: - ```bash - docker pull quay.io/biocontainers/scirpy: - ``` + ```bash + docker pull quay.io/biocontainers/scirpy: + ``` where `tag` is one of [these tags](https://quay.io/repository/biocontainers/scirpy?tab=tags). diff --git a/docs/contributing.md b/docs/contributing.md index 33afd7d09..384266aef 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -11,7 +11,7 @@ the [scientific Python tutorials][], or the [scanpy developer guide][]. [scientific Python tutorials]: https://learn.scientific-python.org/development/tutorials/ [scanpy developer guide]: https://scanpy.scverse.org/page/dev/ -:::{tip} The *hatch* project manager +:::{tip} The _hatch_ project manager We highly recommend to familiarize yourself with [`hatch`][hatch]. Hatch is a Python project manager that