- Fixed Baysor issue on MERSCOPE data with the Vizgen prior
- Fix patch-maker issue due to new API temporary implementation
- Fixed aggregation issue when gene names are
NaN
orNone
(#101) - Fix Xenium reader for old Xenium data format (#105)
- Support multipolygons in ROI rasterization
- Added bins aggregation
- Added Visium HD reader (tutorial coming soon)
- Import submodules in init (segmentation, io, utils)
- API simplification in progress (new API + tutorial coming soon)
- Convert intensities values in integer for the
ome_tif
andaicsimageio
readers - Fix cellpose
pretrained_model
weights unused (@pakiessling, #90) - Prevent spillover during image preprocessing before segmentation (@pakiessling, #90)
- Blur and CLAHE can be disabled by setting the parameter to 0 (@pakiessling, #90)
- Added an optional parameter clahe_kernel_size for skimage.exposure.equalize_adapthist (@pakiessling, #90)
- Check that the image has an integer dtype before segmentation (better error log #92)
- Support Xenium multimodal segmentation as a prior for Baysor (#80)
- For snakemake, you can set a
BAYSOR_EXECUTABLE_PATH
environment variable to indicate the path of the Baysor executable - Added ComSeg segmentation by @tdefa (#76)
- Fix Xenium reader issue for recent machine versions (#80)
- Fix type issue (
DataTree
andDataArray
) related tospatialdata>=0.2.0
(#85) - Fix
sjoin
issue related togeopandas>=1.0.0
- Fully depends on
spatialdata-io
for the MERSCOPE and the Xenium reader - Use
DataArray
andDataTree
typing instead of (Multiscale)SpatialImage (as inspatialdata>=0.2.0
)
First post-publication release
- Using
rioxarray
as a default backend for MERSCOPE data if installed - Lower RAM usage for channels aggregation
- Transcript-segmentation API more general (not Baysor-specific)
- Encoding issue while writing the report (#64)
- Renamed
embed_wsi_patches
toinfer_wsi_patches
infer_wsi_patches
now accepts also callables- Improves tile gathering speed and decreases overall computation of tile-wise inference
- Xenium reader now adds channel names, and support more recent versions (#68)
- Renamed
sopa.embedding
intosopa.patches
, and moved internal files - Don't recompute
to_multiscale
if the right scales are already used for Xenium Explorer image writing
- New tutorial on Xenium Explorer interoperability
- Fix polygon selection when no channel is provided
- Fix CosMX reader for proteins
- Fix FOV column issue for CosMX data (#65)
- Check the columns of CosMX data to see if the correct export module was used
- Ensure categorical variables are used for patches clustering
- Can overlay a custom segmentation (merge boundaries)
- Xenium Explorer selection(s) can be added as shapes in a SpatialData object
- Optionnal OpenSlide backend for WSI data
- New
sopa.io.aicsimageio
reader for special formats (#58)
- Rename
Aggregator.update_table
toAggregator.compute_table
- CosMX reader with image stitching (experimental)
- Default
min_transcripts
set in snakemake configs - Minimum number of transcripts per patch set to 4000 (#41)
- Config files refactoring (configs added or renamed)
- Readers refactoring
- Section with error during report are not displayed (instead of throwing an error)
- Support multiple tables
- Spatial elements not saved when data is not backed
Hotfix: resolve issues related to spatialdata>=1.0.0
- Improvements in the CLI and API tutorials
- Sequential segmentation now requires
patchify
to be run independently - Dependency
spatialdata>=0.1.1
- Kwargs can be provided to Cellpose model init
set_transformation
issue for image alignment- Import issue #37 #39
- Spatial join between shapes (
from sdata.spatial import sjoin
) - H&E tutorial (basic usage)
- New backend for the MERSCOPE reader (requires
rioxarray
, currently experimental, should use less RAM)
- Using
MultiscaleSpatialImage
by default for multiplex imaging technologies
- Issue in report creation when channel names are integers
- Faster image writing for the Xenium Explorer (about x5 speedup)
- Cellpose default model set to
"cyto3"
(new cellpose version) - Cell GeoDataFrame index consistent with
obs_names
- Support for python 3.9 to 3.11 (we still recommend
python==3.10
) - Support WSI analysis: reader, tissue segmentation, patch embedding (tutorials coming soon)
- Supporting multiple region-of-interest queries
- Can load a custom cellpose model using the
pretrained_model
/model_type
argument
- Missing transcript count in cells due to concurrent writing processes (#20)
- Explorer images should have a higher contrast (not clipping values anymore)
pixelsize
argument has been renamed topixel_size
(the snakemake pipeline is only deprecating it for now)
- The
phenocycler
reader can now also read.tif
files (not just.qptiff
) - Added missing legend in the HTML report under the "Channels" section (#15)
- The cell area is also stored in the table (in
.obs["area"]
)
- The
uniform
toy dataset now has two coordinate systems (better test case) - Faster table conversion to the Xenium Explorer
- Tight patching more stable with epsilon constant
- When geometries are
GeometryCollection
, convert them back to Polygons (#11) - Give
min_area
parameter to the right Baysor function in snakemake
- API tutorial
sopa.spatial
tutorial- Docstrings for the snakemake pipeline utils
- Show right micron scale in the Xenium Explorer
sopa.stats
is now calledsopa.spatial
- Tutorial on CLI usage
- Tutorial on image alignment with the Xenium Explorer
- Multi-step segmentation (#8)
- Tutorial for multi-step segmentation and custom segmentation
- Improved installation guide
- CLI issue (missing file) when used without Snakemake
- Use
.parquet
instead of.zarr.zip
format to store intermediate boundary polygons
- First official release
- Preprint at https://www.biorxiv.org/content/10.1101/2023.12.22.571863v1