Skip to content

Releases: gustaveroussy/sopa

v2.0.0

20 Jan 17:35
Compare
Choose a tag to compare

Sopa version 2.0.0

This version introduces many new API features but also some breaking changes; check our migration guide to smoothly update your code base.

Added

  • Full Visium HD support (including, notably, bins aggregation)
  • Dask parallelization backend for faster segmentation (useful for API users). This can be done via sopa.settings.parallelization_backend = 'dask'. More details in the FAQ.
  • Support for one-line segmentation, e.g. sopa.segmentation.cellpose(sdata, ...) or sopa.segmentation.baysor(sdata, ...). This will implicitly use the selected parallelization backend.
  • Spatial elements keys are saved in sdata.attrs so that Sopa knows automatically which element should be used in which function. It is still possible to precise image_key / points_key / shapes_key if needed. More details in the FAQ.
  • Allows changing the auto-save settings (i.e. decide if spatial elements are saved on-disk automatically or not). This can be done via sopa.settings.auto_save_on_disk = False.
  • Can recover a failed/stopped segmentation when using the API (and also force a segmentation, for Baysor)
  • Better cache handling (invisible to API users)
  • New tissue segmentation for non-H&E data (sopa.segmentation.tissue)
  • Full support for baysor>=0.7.0
  • Added Stardist segmentation (mainly used for H&E data)
  • Added support for Python 3.12

Changes

  • The sopa.io.uniform dataset is now deprecated (use sopa.io.toy_dataset instead)
  • API: The image patches are now called sdata["image_patches"] instead of sdata["sopa_patches"]

Breaking changes

  • Drop support for Python 3.9
  • API: sopa.segmentation.Patches2D is deprecated. Instead, use the functions sopa.make_image_patches or sopa.make_transcript_patches
  • API: Use sopa.overlay_segmentation instead of sopa.segmentation.overlay_segmentation
  • API: The Aggregator class has been replaced by a simple function wrapper: sopa.aggregate
  • API: The annotations methods are moved to the utils. For instance, use sopa.utils.higher_z_score instead of sopa.annotation.higher_z_score
  • CLI: sopa read has been renamed sopa convert to avoid confusion.
  • CLI: during segmentation, use --cache-dir-name instead of --patch-dir
  • Drop support for Python 3.9

Fixes

  • Snakemake path issue on Windows (#64)
  • Issues related to incompatible versions of Baysor

v1.1.5

17 Sep 10:54
Compare
Choose a tag to compare

[1.1.5] - 2024-09-17

Fix

  • Accept object dtype for channel names (#114)

Changed

  • Update MACSima reader to read the channel names of the latest file format

v1.1.3

18 Aug 12:53
Compare
Choose a tag to compare

[1.1.3] - 2024-08-18

Fix

  • Fixed aggregation issue when gene names are NaN or None (#101)
  • Fix Xenium reader for old Xenium data format (#105)

Added

  • Support multipolygons in ROI rasterization
  • Added bins aggregation
  • Added Visium HD reader (tutorial coming soon)

Changed

  • Import submodules in init (segmentation, io, utils)
  • API simplification in progress (new API + tutorial coming soon)

v1.1.2

24 Jul 13:00
Compare
Choose a tag to compare

[1.1.2] - 2024-07-24

Fix

  • Convert intensities values in integer for the ome_tif and aicsimageio readers
  • Fix cellpose pretrained_model weights unused (@pakiessling, #90)
  • Prevent spillover during image preprocessing before segmentation (@pakiessling, #90)

Added

  • 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)

v1.1.1

05 Jul 16:05
Compare
Choose a tag to compare

[1.1.1] - 2024-07-05

Added

  • 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

  • Fix Xenium reader issue for recent machine versions (#80)
  • Fix type issue (DataTree and DataArray) related to spatialdata>=0.2.0 (#85)
  • Fix sjoin issue related to geopandas>=1.0.0

Changed

  • Fully depends on spatialdata-io for the MERSCOPE and the Xenium reader
  • Use DataArray and DataTree typing instead of (Multiscale)SpatialImage (as in spatialdata>=0.2.0)

v1.1.0

11 Jun 17:44
Compare
Choose a tag to compare

[1.1.0] - 2024-06-11

First post-publication release

Changed

  • 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)

Fixed

  • Encoding issue while writing the report (#64)

v1.0.13

22 May 09:28
Compare
Choose a tag to compare

[1.0.13] - 2024-04-22

Changed

  • Xenium reader now adds channel names, and support more recent versions (#68)
  • Renamed sopa.embedding into sopa.patches, and moved internal files
  • Don't recompute to_multiscale if the right scales are already used for Xenium Explorer image writing

Added

  • New tutorial on Xenium Explorer interoperability

v1.0.12

17 May 11:02
Compare
Choose a tag to compare

[1.0.12] - 2024-05-17

Fix

  • Fix polygon selection when no channel is provided
  • Fix CosMX reader for proteins
  • Fix FOV column issue for CosMX data (#65)

Added

  • Check the columns of CosMX data to see if the correct export module was used

Changed

  • Ensure categorical variables are used for patches clustering

v1.0.11

26 Apr 15:08
Compare
Choose a tag to compare

[1.0.11] - 2024-04-26

Added

  • 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)

Changed

  • Rename Aggregator.update_table to Aggregator.compute_table

v1.0.10

08 Apr 14:37
Compare
Choose a tag to compare

[1.0.10] - 2024-04-08

Added

  • CosMX reader with image stitching (experimental)

Changed

  • 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)