Skip to content

Commit 14ba6f0

Browse files
committed
memory optimizations, format description
1 parent 30536b8 commit 14ba6f0

21 files changed

Lines changed: 1779 additions & 223 deletions

File tree

CHANGELOG.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,33 @@
22

33
All notable changes to the C++ line of Baysor are documented here.
44

5+
## [Unreleased]
6+
7+
### Added
8+
9+
- `legacy` and `parquet` output styles for `baysor run`.
10+
- A documented Xenium workflow based on `experiment.xenium` input plus `xeniumranger import-segmentation`.
11+
- User-facing documentation pages for installation, CLI usage, inputs, outputs, preview, segfree, configuration, examples, and Xenium workflows.
12+
- A file-level output reference for the current output bundles.
13+
14+
### Changed
15+
16+
- `run`, `preview`, and `segfree` now resolve `experiment.xenium` automatically.
17+
- `legacy` output now emits Xenium Ranger-friendly fields automatically for Xenium-origin inputs.
18+
- NCV color generation in `run` and `preview` now uses an anchor-first streaming path:
19+
- learn the NCV basis from anchors
20+
- fit UMAP on sampled anchors
21+
- stream exact low-dimensional NCV vectors for all molecules
22+
- Default `n_cells_init` is now prior-aware when a prior segmentation is present.
23+
- `segmentation_counts.loom` writing now uses a row-oriented path instead of a late sparse-matrix duplication step.
24+
25+
### Fixed
26+
27+
- Reduced clustering memory by removing the per-thread dense gene-by-gene correlation matrix.
28+
- Reduced segmentation memory by switching persistent component gene counts away from dense `double` storage.
29+
- Reduced NCV memory by removing global all-molecule neighborhood materialization and the full all-molecule high-dimensional NCV matrix from the `run` and `preview` paths.
30+
- Reduced Loom write time and memory by avoiding an extra sparse-matrix conversion during output.
31+
532
## [0.8.0] — 2026-04-17
633

734
### Added

README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,15 @@ Several header-only dependencies are fetched automatically by CMake.
4848
### Configure and build
4949

5050
```bash
51-
cmake -S . -B build
52-
cmake --build build
51+
cmake -S . -B build -DBAYSOR_WITH_TESTS=OFF
52+
cmake --build build --target baysor -j"$(nproc)"
5353
```
5454

5555
### Run tests
5656

5757
```bash
58+
cmake -S . -B build
59+
cmake --build build --target baysor baysor_tests -j"$(nproc)"
5860
ctest --test-dir build --output-on-failure
5961
```
6062

docs/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ Current pages:
1313
- [Input Data](inputs.md)
1414
- [Prior Segmentation Inputs](priors.md)
1515
- [Outputs](outputs.md)
16+
- [Output Files](output_files.md)
1617
- [Xenium Workflow](xenium.md)
1718
- [Configuration](configuration.md)
1819
- [Examples](examples.md)

docs/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,6 @@ It is built with CMake and currently exposes three CLI subcommands:
2929
- [Segmentation-Free NCVs](segfree.md)
3030
- [Input Data](inputs.md)
3131
- [Outputs](outputs.md)
32+
- [Output Files](output_files.md)
3233
- [Xenium Workflow](xenium.md)
3334
- [Examples](examples.md)

docs/installation.md

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Install a C++ toolchain plus the libraries required by
1515
- HDF5
1616
- nlohmann_json
1717
- libtiff
18-
- GTest for the test target
18+
- GTest for the optional test target
1919

2020
Several header-only dependencies are fetched automatically by CMake.
2121

@@ -49,7 +49,6 @@ sudo apt-get update
4949
sudo apt-get install -y --no-install-recommends \
5050
build-essential \
5151
cmake \
52-
ninja-build \
5352
pkg-config \
5453
git \
5554
libeigen3-dev \
@@ -60,41 +59,45 @@ sudo apt-get install -y --no-install-recommends \
6059
libparquet-dev \
6160
libhdf5-dev \
6261
nlohmann-json3-dev \
63-
libtiff-dev \
64-
libgtest-dev
62+
libtiff-dev
6563
```
6664

67-
### 3. Configure, Build, And Test
65+
### 3. Configure And Build The Binary
6866

6967
```bash
70-
cmake -S . -B build -GNinja
71-
cmake --build build
72-
ctest --test-dir build --output-on-failure
68+
cmake -S . -B build -DBAYSOR_WITH_TESTS=OFF
69+
cmake --build build --target baysor -j"$(nproc)"
7370
```
7471

75-
If you only need the main binary:
72+
The main binary will be:
7673

77-
```bash
78-
cmake -S . -B build -GNinja -DBAYSOR_WITH_TESTS=OFF
79-
cmake --build build --target baysor
74+
```text
75+
./build/baysor
8076
```
8177

82-
## Configure And Build
78+
### 4. Optional: Build And Run Tests
8379

8480
```bash
81+
sudo apt-get install -y --no-install-recommends libgtest-dev
8582
cmake -S . -B build
86-
cmake --build build
83+
cmake --build build --target baysor baysor_tests -j"$(nproc)"
84+
ctest --test-dir build --output-on-failure
8785
```
8886

89-
The main binary will be:
87+
## Configure And Build
9088

91-
```text
92-
./build/baysor
89+
If the required libraries are already installed on your system:
90+
91+
```bash
92+
cmake -S . -B build -DBAYSOR_WITH_TESTS=OFF
93+
cmake --build build --target baysor -j"$(nproc)"
9394
```
9495

95-
## Run Tests
96+
If you want tests too:
9697

9798
```bash
99+
cmake -S . -B build
100+
cmake --build build --target baysor baysor_tests -j"$(nproc)"
98101
ctest --test-dir build --output-on-failure
99102
```
100103

@@ -103,13 +106,13 @@ ctest --test-dir build --output-on-failure
103106
Show CLI help:
104107

105108
```bash
106-
./build/baysor run --help
109+
./build/baysor --help
107110
```
108111

109-
Build just the main binary and tests:
112+
Show run-specific help:
110113

111114
```bash
112-
cmake --build build --target baysor baysor_tests -j4
115+
./build/baysor run --help
113116
```
114117

115118
## Notes

0 commit comments

Comments
 (0)