From d56d162213fae466c477f71cdf32a6e91d0e94f9 Mon Sep 17 00:00:00 2001 From: "Philipp A." Date: Fri, 28 Aug 2026 13:29:34 +0200 Subject: [PATCH] docs: generate 1.13.0a2 release notes --- docs/release-notes/1.13.0a2.md | 24 ++++++++++++++++++++++++ docs/release-notes/3645.chore.md | 1 - docs/release-notes/4232.feat.md | 1 - docs/release-notes/4269.feat.md | 1 - docs/release-notes/4290.perf.md | 1 - docs/release-notes/4299.chore.md | 2 -- docs/release-notes/4303.feat.md | 3 --- docs/release-notes/4306.feat.md | 1 - docs/release-notes/4310.chore.md | 2 -- docs/release-notes/4315.feat.md | 1 - 10 files changed, 24 insertions(+), 13 deletions(-) create mode 100644 docs/release-notes/1.13.0a2.md delete mode 100644 docs/release-notes/3645.chore.md delete mode 100644 docs/release-notes/4232.feat.md delete mode 100644 docs/release-notes/4269.feat.md delete mode 100644 docs/release-notes/4290.perf.md delete mode 100644 docs/release-notes/4299.chore.md delete mode 100644 docs/release-notes/4303.feat.md delete mode 100644 docs/release-notes/4306.feat.md delete mode 100644 docs/release-notes/4310.chore.md delete mode 100644 docs/release-notes/4315.feat.md diff --git a/docs/release-notes/1.13.0a2.md b/docs/release-notes/1.13.0a2.md new file mode 100644 index 0000000000..a7ce2838f4 --- /dev/null +++ b/docs/release-notes/1.13.0a2.md @@ -0,0 +1,24 @@ +(v1.13.0a2)= +### 1.13.0a2 {small}`2026-08-28` + +#### Miscellaneous changes + +- Deprecate {mod}`scanpy.external` and each of its functions. Each function’s deprecation message names its replacement: an upstream package, a successor project, or the scanpy function it will move to. See also the [scverse ecosystem](https://scverse.org/packages/#ecosystem) {smaller}`P Angerer` ({pr}`3645`) +- Create {mod}`scanpy.io` and move `scanpy.{read*,write*}` into it. + Deprecate `scanpy.read_loom` and `sc.external.exporting.*` {smaller}`P Angerer` ({pr}`4299`) +- Fetch the bundled datasets through {func}`scverse_misc.datasets.fetch`, adding hash verification, retries, and fall back to their pre-S3 upstream URLs. + {func}`~scanpy.io.read_10x_mtx` and friends now use `pooch` for downloading, also gaining retries {smaller}`P Angerer` ({pr}`4310`) + +#### Features + +- Fix multi-key {func}`scanpy.pp.harmony_integrate`, remove its legacy correction path, and speed up large integrations {smaller}`S Dicks` ({pr}`4232`) +- Add exact raw counts for {func}`~scanpy.datasets.pbmc68k_reduced` and clarify its docstring on how the dataset was derived {smaller}`P Angerer` ({pr}`4269`) +- Move {func}`scanpy.external.pp.hashsolo` into scanpy’s main API as {func}`scanpy.pp.hashsolo` and deprecate the old location. + The new function takes {mod}`anndata.acc` references, so the hashing counts can live in {attr}`~anndata.AnnData.obs`, in the data matrix (e.g. `A.X[:, ["Hash1", "Hash2"]]`), or all together in {attr}`~anndata.AnnData.obsm` (e.g. `A.obsm["hto"]`), + and writes its results to `.obs[key_added]` and `.obsm[key_added]` instead of six unnamespaced `.obs` columns {smaller}`P Angerer` ({pr}`4303`) +- Add {func}`scanpy.pp.bbknn`, a native implementation of batch balanced kNN :cite:p:`Polanski2019` {smaller}`S Dicks` ({pr}`4306`) +- The `use_rep` parameter of {func}`scanpy.pp.neighbors`, {func}`scanpy.tl.tsne`, and {func}`scanpy.tl.dendrogram` now accepts {mod}`anndata.acc` accessors such as `A.X`, `A.layers["scaled"]`, or `A.obsm["pca"]`, and resolves strings into them if {attr}`scanpy.settings.preset` is {attr}`~scanpy.Preset.ScanpyV2Preview` {smaller}`P Angerer` ({pr}`4315`) + +#### Performance + +- Derive unset {func}`scanpy.pp.harmony_integrate` stopping rules from `flavor`, speeding up `harmony2` considerably: it now follows the Harmony2 defaults, while `harmony1` still follows harmony-pytorch {smaller}`S Dicks` ({pr}`4290`) diff --git a/docs/release-notes/3645.chore.md b/docs/release-notes/3645.chore.md deleted file mode 100644 index 28e6862948..0000000000 --- a/docs/release-notes/3645.chore.md +++ /dev/null @@ -1 +0,0 @@ -Deprecate {mod}`scanpy.external` and each of its functions. Each function’s deprecation message names its replacement: an upstream package, a successor project, or the scanpy function it will move to. See also the [scverse ecosystem](https://scverse.org/packages/#ecosystem) {smaller}`P Angerer` diff --git a/docs/release-notes/4232.feat.md b/docs/release-notes/4232.feat.md deleted file mode 100644 index 12ed0fcb0a..0000000000 --- a/docs/release-notes/4232.feat.md +++ /dev/null @@ -1 +0,0 @@ -Fix multi-key {func}`scanpy.pp.harmony_integrate`, remove its legacy correction path, and speed up large integrations {smaller}`S Dicks` diff --git a/docs/release-notes/4269.feat.md b/docs/release-notes/4269.feat.md deleted file mode 100644 index c17021ae75..0000000000 --- a/docs/release-notes/4269.feat.md +++ /dev/null @@ -1 +0,0 @@ -Add exact raw counts for {func}`~scanpy.datasets.pbmc68k_reduced` and clarify its docstring on how the dataset was derived {smaller}`P Angerer` diff --git a/docs/release-notes/4290.perf.md b/docs/release-notes/4290.perf.md deleted file mode 100644 index 27a019e426..0000000000 --- a/docs/release-notes/4290.perf.md +++ /dev/null @@ -1 +0,0 @@ -Derive unset {func}`scanpy.pp.harmony_integrate` stopping rules from `flavor`, speeding up `harmony2` considerably: it now follows the Harmony2 defaults, while `harmony1` still follows harmony-pytorch {smaller}`S Dicks` diff --git a/docs/release-notes/4299.chore.md b/docs/release-notes/4299.chore.md deleted file mode 100644 index 67a08a9465..0000000000 --- a/docs/release-notes/4299.chore.md +++ /dev/null @@ -1,2 +0,0 @@ -Create {mod}`scanpy.io` and move `scanpy.{read*,write*}` into it. -Deprecate `scanpy.read_loom` and `sc.external.exporting.*` {smaller}`P Angerer` diff --git a/docs/release-notes/4303.feat.md b/docs/release-notes/4303.feat.md deleted file mode 100644 index 4278c13e08..0000000000 --- a/docs/release-notes/4303.feat.md +++ /dev/null @@ -1,3 +0,0 @@ -Move {func}`scanpy.external.pp.hashsolo` into scanpy’s main API as {func}`scanpy.pp.hashsolo` and deprecate the old location. -The new function takes {mod}`anndata.acc` references, so the hashing counts can live in {attr}`~anndata.AnnData.obs`, in the data matrix (e.g. `A.X[:, ["Hash1", "Hash2"]]`), or all together in {attr}`~anndata.AnnData.obsm` (e.g. `A.obsm["hto"]`), -and writes its results to `.obs[key_added]` and `.obsm[key_added]` instead of six unnamespaced `.obs` columns {smaller}`P Angerer` diff --git a/docs/release-notes/4306.feat.md b/docs/release-notes/4306.feat.md deleted file mode 100644 index c952efe4ba..0000000000 --- a/docs/release-notes/4306.feat.md +++ /dev/null @@ -1 +0,0 @@ -Add {func}`scanpy.pp.bbknn`, a native implementation of batch balanced kNN :cite:p:`Polanski2019` {smaller}`S Dicks` diff --git a/docs/release-notes/4310.chore.md b/docs/release-notes/4310.chore.md deleted file mode 100644 index c97cb2f7a2..0000000000 --- a/docs/release-notes/4310.chore.md +++ /dev/null @@ -1,2 +0,0 @@ -Fetch the bundled datasets through {func}`scverse_misc.datasets.fetch`, adding hash verification, retries, and fall back to their pre-S3 upstream URLs. -{func}`~scanpy.io.read_10x_mtx` and friends now use `pooch` for downloading, also gaining retries {smaller}`P Angerer` diff --git a/docs/release-notes/4315.feat.md b/docs/release-notes/4315.feat.md deleted file mode 100644 index e833b6358b..0000000000 --- a/docs/release-notes/4315.feat.md +++ /dev/null @@ -1 +0,0 @@ -The `use_rep` parameter of {func}`scanpy.pp.neighbors`, {func}`scanpy.tl.tsne`, and {func}`scanpy.tl.dendrogram` now accepts {mod}`anndata.acc` accessors such as `A.X`, `A.layers["scaled"]`, or `A.obsm["pca"]`, and resolves strings into them if {attr}`scanpy.settings.preset` is {attr}`~scanpy.Preset.ScanpyV2Preview` {smaller}`P Angerer`