Skip to content

Commit 5ad5614

Browse files
authored
Merge pull request #53 from cellgeni/release/0.9.0
Release 0.9.0
2 parents b3a0f8f + ea8a74a commit 5ad5614

4 files changed

Lines changed: 54 additions & 3 deletions

File tree

‎AGENTS.md‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,8 @@ These are easy to break without any test noticing straight away:
158158
- Set the version in `pyproject.toml` and in the `pyadata-cli` entry of `uv.lock`.
159159
- Add a `## X.Y.Z` section to `CHANGELOG.md`, in its style:
160160
- a summary paragraph;
161-
- `### Added`, `### Changed` and `### Fixed` sections;
161+
- whichever of `### Added`, `### Changed` and `### Fixed` apply (0.7.1 has
162+
only `Fixed`; an empty section is left out);
162163
- entries that start with a bold one-line lead and an issue link.
163164
- Merge the release branch, then push a tag with no `v` prefix. The tag
164165
triggers:

‎CHANGELOG.md‎

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,56 @@
33
Notable changes to `adata-cli`. Versions are `MAJOR.MINOR.PATCH`; tags carry no
44
`v` prefix.
55

6+
## 0.9.0
7+
8+
Adds CellBender's `remove-background` output to `adata convert`. The
9+
denoised counts become X, and CellBender's latent variables are kept under
10+
the names its own loaders use, so notebooks written against those keep
11+
working. `--raw` adds the Cell Ranger counts CellBender started from.
12+
13+
### Added
14+
15+
- **`adata convert` reads CellBender `remove-background` output**
16+
([#29](https://github.com/cellgeni/adata-cli/issues/29)). An `output.h5`
17+
or `output_filtered.h5` from CellBender 0.2, 0.3 or 0.4 is recognised by
18+
its latents, whatever it is called:
19+
- per-droplet latents (`cell_probability`, `cell_size`,
20+
`background_fraction`, `droplet_efficiency`; `latent_*` in 0.2) become
21+
obs columns, NaN for droplets CellBender did not analyse, with
22+
`obs["cellbender_analyzed"]` marking the ones it did;
23+
- the embedding becomes `obsm["gene_expression_encoding"]`
24+
(`latent_gene_encoding` in 0.2), the ambient profile
25+
`var["ambient_expression"]`, and the analysed features
26+
`var["cellbender_analyzed"]`;
27+
- everything else (fitted constants, learning curve, settings) goes to
28+
`uns["cellbender"]`.
29+
30+
The 10x HDF5 flags apply. `--from 10x-h5` still reads such a file as a
31+
plain 10x matrix. Checked against real CellBender 0.2.2 and 0.3.2 output,
32+
full and filtered, and CellBender's own `load_anndata_from_input_and_output`:
33+
X, both layers, every latent at its barcode, var and `uns` all match
34+
([#52](https://github.com/cellgeni/adata-cli/pull/52)).
35+
36+
- **`--min-cell-probability P`** ([#29](https://github.com/cellgeni/adata-cli/issues/29))
37+
keeps the droplets CellBender gives a cell probability of at least `P`,
38+
in file order. At 0.5 it picks the same cells as CellBender's own
39+
`output_filtered.h5`.
40+
41+
- **`--raw raw_feature_bc_matrix.h5`** ([#29](https://github.com/cellgeni/adata-cli/issues/29))
42+
adds the Cell Ranger counts of the same barcodes as `layers["cellranger"]`,
43+
and the denoised counts as `layers["cellbender"]`, as CellBender's loader
44+
does. A filtered file lists cells by count rather than in the raw file's
45+
order, so its raw counts go through the on-disk bucket sort the MTX
46+
import uses, now shared in `core/csr_build.py`
47+
([#51](https://github.com/cellgeni/adata-cli/pull/51)).
48+
49+
### Changed
50+
51+
- **An output extension picks a format that can be written**
52+
([#51](https://github.com/cellgeni/adata-cli/pull/51)). `.h5` stays a 10x
53+
HDF5 matrix, and `--to cellbender` is refused, since CellBender files can
54+
be read but not written.
55+
656
## 0.8.0
757

858
Adds 10x Genomics and STARsolo Matrix Market folders to `adata convert`, in

‎pyproject.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# so the distribution is published as `pyadata-cli`. The import package
44
# and the command are both still `adata`.
55
name = "pyadata-cli"
6-
version = "0.8.0"
6+
version = "0.9.0"
77
description = "Streaming CLI for exploring and editing large AnnData .h5ad and .zarr stores"
88
readme = "README.md"
99
requires-python = ">=3.12"

‎uv.lock‎

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)