Changelog

v0.4.0

Bug Fix

  • Fix SlideSet not passing along args to Slide. (#351)

New Features

  • Add RAG threshold parameters to allow return labels and masking. (#300)

  • Support fetching exact MPP resolutions. (#301)

  • Allow only keeping a subset of slides for SlideSet. (#303)

Documentation

  • Fix link to installation instructions. (#350)

v0.3.1

Bug Fix

  • Map TCGA old UUID with new UUID to fix data module. (#346)

Dependencies

  • Support Python 3.10. (#336)

  • Support scipy 1.7.2. (#345)

  • Upgrade sphinx to 4.2.3. (#349)

Other

  • Add test for np_to_pil with float values [0,1] array. (#347)

v0.3.0

Bug Fix

  • Fix GridTiler’s _are_coordinates_within_extraction_mask method where tile coordinates are off by 1 or 2 pixels due to conversion of floats to ints. (#308)

  • Fix the mismatch between row-column / X-Y coordinates in the RandomTiler (#317)

  • Fix return type of RGB to LAB filter. (#323)

  • Filter kmeans_segmentation is now applied only to RGB images. (#328)

  • Conversion from RGB to HED preserves HED color space range (#334)

  • Conversion from RGB to HSV preserves HSV color space range (#337)

  • Remove HSV and YCBCR references in wrong value range in tests (#343)

New Features

  • Add RGB to OD filter. (#290 and #331)

  • Add method dispatcher compatible with older Python versions. (#312)

  • Add LAB to RGB filter. (#323)

  • Finer control of locate_tiles (pass tiles to avoid re-extraction and color tiles’ border individually). (#304)

  • Add TissueMask mask for Tile with type dispatcher. (#313)

  • Add conversion level - magnification factor in Slide. (#319)

  • Add CellularityScorer. (#320)

Maintenance

  • Link automatically issues in PR template. (#291)

  • Include histolab version in issue template. (#296)

  • Add security linter with Bandit in pre commit and CI. (#316)

  • Get rid of src directory in favor of histolab dir within the root. (#324)

  • Use Python 3.9 for benchmarks. (#342)

Dependencies

  • Support scikit-image 0.18.3. (#196, #200 and #327)

  • Support scipy 1.7.1. (#305)

  • Upgrade sphinx to 4.2.0 to fix incompatibility with docutils 0.18. (#339)

  • Support numpy 1.21.4. (#344)

Documentation

  • Fix docs links in tissue_mask module. (#321)

  • Add note on data module for TCGA example data not available. (#325 and #333)

v0.2.6

Bug Fix

  • Fix polygon_to_mask_array return mask shape. (#268)

  • Fix overlapping extraction grids in GridTiler. (#270)

New Features

  • Add DAB filter. (#277)

  • Allow slide name to contain dot. (#281)

Documentation

  • Docs fixes about Slide’s processed_path. (#276)

  • Add instructions on how to install Pixman 0.40. (#280)

v0.2.5

Bug Fix

  • RandomTiler coordinates selection within the binary mask. (#256)

  • LocalOtsuThreshold filter: now it returns correct type (PIL Image). (#258)

  • Coordinate definition in the scale coordinates of RandomTiler were reversed. (#261)

New Features

  • Support and test for IHC-stained slides. (#262)

Documentation

  • Extended documentations to include examples, images, and tutorials. Added IHC-stained slides in the data module. (#232)

v0.2.4

Bug Fix

  • RandomTiler now respects the given tile size (#243)

  • Use logger object instead of logging module when logging tiler updates (#237)

New Features

  • New masks module to create binary masks from slides with different strategies: BiggestTissueBoxMask and TissueMask (#234)

  • Refactor locate_mask to draw mask contours on the slide from an arbitrary BinaryMask object (#248)

Breaking Changes

  • Refactor Slide: return thumbnail and scaled image instead of saving them (#236)

v0.2.3

New Features

  • Allow pathlib.Path as Slide path parameter (#226)

  • Tilers extract method now has log_level param that set the threshold level for the log messages (#229)

v0.2.2

Bug Fix

  • Fix of np_to_pil in case float input but in a correct range (#199)

  • Fix tiles extractor checking if the tile size is larger than the slide size (#202)

  • Fix RandomTiler border wackiness extraction (#203)

New Features

  • New parameter tissue_percent for all the tilers’ to be used during the has_enough_tissue check (#204)

  • Expose wsi properties. The Slide.properties returns the whole OpenSlide WSI properties (#209)

  • Allow negative indexing for slide.level (#210)

  • New Filter Protocol available (#213)

Breaking Changes

  • Remove pen marks filter (#201)

v0.2.1

Maintenance

  • Pin dependencies in requirements.txt to avoid discrepancy with scikit-image v0.18.0

v0.2.0

Bug Fix

  • Bug: Fix grid tile coordinates calculation (#186)

  • Bug: Fix quickstart tutorial slides’ paths (#154 and #165)

New Features

  • Add diagnostic method to locate tiles on a slide with every Tiler (#179)

  • Add diagnostic method to locate the biggest tissue bounding box on a slide (#188)

  • SlideSet is iterable and its slides property has been dropped (#177)

v0.1.1

New Features

  • Add RgbToLab image filter (#147)

  • Add Watershed segmentation filter (#153)

  • Support Python 3.8 on Linux and macOS (#151)

v0.0.1

Bug Fix

  • Fix save path for tiles (#126)

  • Fix critical memory issue when extracting biggest tissue box (#128)

New Features

  • Add Lambda filter (#124)

  • Add ScoreTiler and RandomScorer (#129)

  • Add NucleiScorer (#132)

  • Add Ovarian Tissue sample in data module (#136)

v0.0.5b

Bug Fix

New Features

  • Grid Tiler (#99)

v0.0.4b

Bug Fix

  • Fix kmeans segmentation image filter default parameters

  • Fix rag threshold image filter default parameters

  • Fix check tissue on Tile to discard almost white tiles