Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
147ee93
init spatial
alexvpickering May 29, 2026
9f7e15b
fix up spatial
alexvpickering Jun 1, 2026
7b11a9a
segmentations works
alexvpickering Jun 2, 2026
9a7fe90
bitmask works but is slower than just getting polygons
alexvpickering Jun 3, 2026
29905c4
go back to direct segmentations
alexvpickering Jun 3, 2026
1a2b8f4
separate embedding colors from locations
alexvpickering Jun 8, 2026
2f82531
fix height/width mispec
alexvpickering Jun 8, 2026
c906fd6
not sure
alexvpickering Jun 8, 2026
95b32e1
use deck.gl and viv directly
alexvpickering Jun 8, 2026
06204ea
remove unused pkg
alexvpickering Jun 8, 2026
90b06bf
bitmask works
alexvpickering Jun 9, 2026
4f11081
add segmentations to plots and tables
alexvpickering Jun 10, 2026
9aae222
add outlines to segmentations
alexvpickering Jun 10, 2026
f3f5861
dont render cells not in any cluster
alexvpickering Jun 10, 2026
32163fa
Add Visium HD spatial filter UI to Data Processing
alexvpickering Jun 13, 2026
15490c6
Add performant spatial plot rendering with mouse zoom
alexvpickering Jun 13, 2026
a3244ea
Fix gem2s progress bar for spatial datasets
alexvpickering Jun 13, 2026
a22d818
Fix Data Processing integration/embedding for spatial
alexvpickering Jun 13, 2026
461aa49
Add viewport-streaming tiled rendering for spatial plots
alexvpickering Jun 15, 2026
516762a
Add unit tests for spatial plots, specs and styling
alexvpickering Jun 15, 2026
edc5095
Rework spatial plots to per-viewport tile streaming
alexvpickering Jun 15, 2026
c55e54c
Allow per-plot sample selection in spatial multi-view
alexvpickering Jun 15, 2026
fc6c9f3
Defer embedding plot render until large-dataset defaults applied
alexvpickering Jun 15, 2026
cffdb7f
Raise UI dev server heap limit
alexvpickering Jun 15, 2026
05f7deb
Tidy Data Exploration spatial segmentation layers
alexvpickering Jun 15, 2026
362b8ef
Add request scheduler and eager rAF tile streaming to spatial plots
alexvpickering Jun 15, 2026
90a9454
Hide filtered-out cells in spatial segmentation overlay
alexvpickering Jun 15, 2026
c742b63
Fix init-spatial test failures (viv mock, segmentation fetch, filter …
alexvpickering Jun 15, 2026
2640557
Add unit tests for spatial tile cache, overlay and wheel guard
alexvpickering Jun 15, 2026
f349e38
Export Vega plots as PNG at 3x resolution
alexvpickering Jun 15, 2026
be871d8
Align Configure Embedding QC plots with spatial QC colours
alexvpickering Jun 15, 2026
8f714b1
update expected
alexvpickering Jun 16, 2026
4c50ea0
Align spatial pyramid levels on one coordinate frame to fix zoom disp…
alexvpickering Jun 16, 2026
b8aacc1
Fall back to finest loaded coarser seg level to smooth zoom transitions
alexvpickering Jun 16, 2026
72ea664
Re-stream full slide when a zoomed spatial plot is reset
alexvpickering Jun 16, 2026
f6cb820
Keep selectedSample on reset so the Reset Plot button disables
alexvpickering Jun 16, 2026
7b4f7fd
Clarify spec zoom-domain invariant and cover zoom signals with tests
alexvpickering Jun 16, 2026
ea16e24
default outline false
alexvpickering Jun 16, 2026
bd6f9d4
update snaps
alexvpickering Jun 16, 2026
6adf5fe
Register xenium upload and spatial/imageless flags
alexvpickering Jun 18, 2026
78be799
Render imageless spatial techs without a tissue image
alexvpickering Jun 18, 2026
f917efe
Disable subsetting for spatial technologies
alexvpickering Jun 18, 2026
76d3382
Test xenium registration, imageless plots and subset gating
alexvpickering Jun 18, 2026
48b15dc
Validate Xenium uploads via HDF5/Parquet magic bytes
alexvpickering Jun 20, 2026
ad923ad
Hide tissue-image controls for imageless techs (Xenium)
alexvpickering Jun 20, 2026
85bca00
Default segmentation outlines to visible in the spatial viewer
alexvpickering Jun 20, 2026
27e9727
Render spatial plots at their containing-box dimensions
alexvpickering Jun 20, 2026
bd310ce
Remove unused SpatialViewerVitessce and dead plotUtils helpers
alexvpickering Jun 20, 2026
1cd9cdb
Extract shared deck.gl helpers from SpatialViewer/Embedding
alexvpickering Jun 20, 2026
67f6276
Drop dead OME-Zarr v0.4 transform path (we only write v0.3)
alexvpickering Jun 20, 2026
3150ac5
Accept the optional Xenium transcripts.parquet upload
alexvpickering Jun 23, 2026
67db396
Add the molecule pyramid loader
alexvpickering Jun 23, 2026
8b5d05a
Register the Spatial Molecules plot type
alexvpickering Jun 23, 2026
4269af5
Make plot styling controls configurable for the molecules plot
alexvpickering Jun 23, 2026
ae2e16a
Add the Spatial Molecules plot
alexvpickering Jun 23, 2026
12f3a30
Overlay molecules in the interactive spatial viewer
alexvpickering Jun 23, 2026
349ba63
Read molecules per-gene; drop the quadtree pyramid reader
alexvpickering Jun 24, 2026
cda1084
Colour spatial molecules by Polychrome palette; cap at 15 genes
alexvpickering Jun 24, 2026
5923f5a
Render the molecule plot's segmentation backdrop without a zoom
alexvpickering Jun 24, 2026
a442b58
Anchor the molecule plot axes at (0,0) bottom-left
alexvpickering Jun 24, 2026
665b4fb
Preserve molecule plot zoom across dimension changes
alexvpickering Jun 24, 2026
b10a161
Require transcripts.parquet for Xenium uploads
alexvpickering Jun 24, 2026
5a2d645
Use a dedicated thumbnail for the molecules plot
alexvpickering Jun 24, 2026
54f1e40
Fix lint in spatial molecule utils
alexvpickering Jun 24, 2026
c7eb703
Restore persisted molecule plot zoom on mount
alexvpickering Jun 24, 2026
60e1f88
Render the molecule overlay in one fixed colour
alexvpickering Jun 25, 2026
93054a8
Remove dead centroid helpers from plotUtils
alexvpickering Jun 25, 2026
9e38d73
Fix Xenium validator file-count comment
alexvpickering Jun 25, 2026
af8d9b0
Swap the molecule palette and drop palette-name references
alexvpickering Jun 25, 2026
f8fee2b
adjust palette
alexvpickering Jun 25, 2026
be232d1
Relax dot plot reset test to allow zero refetches
alexvpickering Jun 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,5 @@ __MACOSX
# custom
.next
out/
# hunkwise
.vscode/hunkwise/
26 changes: 26 additions & 0 deletions __mocks__/@hms-dbmi/viv.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,29 @@
// Minimal viv stubs for jsdom tests. The real layers need WebGL; tests only need
// the imports to resolve (BitmaskLayer extends XRLayer; SpatialViewer constructs
// MultiscaleImageLayer and reads getDefaultInitialViewState).
class StubLayer {
constructor(props) {
this.props = props;
}

// lifecycle methods invoked via super.* by subclasses — no-ops in tests
// eslint-disable-next-line class-methods-use-this
updateState() {}

// eslint-disable-next-line class-methods-use-this
finalizeState() {}

// eslint-disable-next-line class-methods-use-this
draw() {}
}
StubLayer.defaultProps = {};

class XRLayer extends StubLayer {}
class MultiscaleImageLayer extends StubLayer {}

module.exports = {
ZarrPixelSource: jest.fn(),
XRLayer,
MultiscaleImageLayer,
getDefaultInitialViewState: jest.fn(() => ({ target: [0, 0, 0], zoom: 0 })),
};
Loading
Loading