|
3 | 3 | Notable changes to `adata-cli`. Versions are `MAJOR.MINOR.PATCH`; tags carry no |
4 | 4 | `v` prefix. |
5 | 5 |
|
| 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 | + |
6 | 56 | ## 0.8.0 |
7 | 57 |
|
8 | 58 | Adds 10x Genomics and STARsolo Matrix Market folders to `adata convert`, in |
|
0 commit comments