Skip to content

Releases: TissueImageAnalytics/tiatoolbox

TIAToolbox 1.6.0

12 Dec 12:32
e14a4fc
Compare
Choose a tag to compare

TIAToolbox v1.6.0 (2024-12-12)

Major Updates and Feature Improvements

  • Foundation Models Support via timm API (#856, contributed by @GeorgeBatch)
    • Introduced TimmBackbone for running additional PyTorch Image Models.
    • Tested models include UNI, Prov-GigaPath, and H-optimus-0.
    • Added an example notebook demonstrating feature extraction with foundation models.
    • timm added as a dependency.
  • Performance Enhancements with torch.compile (#716)
    • Improved performance on newer GPUs using torch.compile.
  • Multichannel Input Support in WSIReader (#742)
  • AnnotationStore Filtering for Patch Extraction (#822)
  • Python 3.12 Support
  • Deprecation of Python 3.8 Support
  • CLI Response Time Improvements (#795)

API Changes

  • Device Specification Update (#882)
    • Replaced has_gpu with device for specifying GPU or CPU usage, aligning with PyTorch's Model.to() functionality.
  • Windows Compatibility Enhancement (#769)
    • Replaced POWER with explicit multiplication.

Bug Fixes and Other Changes

  • TIFFWSIReader Bound Reading Adjustment (#777)
    • Fixed read_bound to use adjusted bounds.
    • Reduced code complexity in WSIReader (#814).
  • Annotation Rendering Fixes (#813)
    • Corrected rendering of annotations with holes.
  • Non-Tiled TIFF Support in WSIReader (#807, contributed by @GeorgeBatch)
  • HoVer-Net Documentation Update (#751)
    • Corrected class output information.
  • Citation File Fix for cffconvert (#869, contributed by @Alon-Alexander)
  • Bokeh Compatibility Updates
    • Updated bokeh_app for compatibility with bokeh>=3.5.0.
    • Switched from size to radius for bokeh>3.4.0 compatibility (#796).
  • JSON Extraction Fixes (#772)
    • Restructured SQL expression construction for JSON properties with dots in keys.
  • VahadaneExtractor Warning (#871)
    • Added warning due to changes in scikit-learn>0.23.0 dictionary learning (#382).
  • PatchExtractor Error Message Refinement (#883)
  • Immutable Output Fix in WSIReader (#850)

Development-Related Changes

  • Mypy Checks Added
    • Applied to utils, tools, data, annotation, and cli/common.
  • ReadTheDocs PDF Build Deprecation
  • Formatter Update
    • Replaced black with ruff-format.
  • Dependency Removal
    • Removed jinja2.
  • Test Environment Update
    • Updated to Ubuntu 24.04.
  • Conda Environment Workflow Update
    • Implemented micromamba setup.
  • Codecov Reporting Fix (#811)
    Full Changelog: v1.5.1...v1.6.0

TIAToolbox 1.5.1

16 Dec 11:25
490be26
Compare
Choose a tag to compare

1.5.1 (2023-12-16)

Development related changes

  • Specifies compatible Python versions
    • Fixes tiatoolbox-feedstock build for conda-forge release #763

Full Changelog: v1.5.0...v1.5.1

TIAToolbox 1.5.0

15 Dec 22:30
bba59ba
Compare
Choose a tag to compare

1.5.0 (2023-12-15)

Major Updates and Feature Improvements

  • Adds the bokeh visualization tool. #684
    • The tool allows a user to launch a server on their machine to visualise whole slide images, overlay the results of deep learning algorithms or to select a patch from whole slide image and run TIAToolbox deep learning engines.
    • This tool powers the TIA demos server. For details please see https://tiademos.dcs.warwick.ac.uk/.
  • Extends Annotation to Support Init from WKB #639
  • Adds IOConfig for NuClick in pretrained_model.yaml #709
  • Adds functions to save the TIAToolbox Engine outputs to Zarr and AnnotationStore files. #724
  • Adds Support for QuPath Annotation Imports #721

Changes to API

  • Adds model.to(device) and model.load_model_from_file() functionality to make it compatible with PyTorch API. #733
  • Replaces pretrained with weights to make the engines compatible with the new PyTorch API. #621
  • Adds support for high-level imports for various utility functions and classes such as WSIReader, PatchPredictor and imread #606, #607,
  • Adds tiatoolbox.typing for type hints. #619
  • Fixes incorrect file size saved by save_tiles, issue with certain WSIs raised by @TomastpPereira
  • TissueMasker transform now returns mask instead of a list. #748

Bug Fixes and Other Changes

  • Fixes pixman incompability error on Colab #601
  • Removes shapely.speedups. The module no longer has any affect in Shapely >=2.0. #622
  • Fixes errors in the slidegraph example notebook #608
  • Fixes bugs in WSI Registration #645, #670, #693
  • Fixes the situation where PatchExtractor.get_coords() can return patch coords which lie fully outside the bounds of a slide. #712
  • Fixes #738 raised by @xiachenrui

Development related changes

  • Replaces flake8 and isort with ruff #625, #666
  • Adds mypy checks to root and utils package. This will be rolled out in phases to other modules. #723
  • Adds a module to detect file types using magic number/signatures #616
  • Uses poetry for version updates instead of bump2version. #638
  • Removes setup.cfg and uses pyproject.toml for project configurations.
  • Reduces runtime for some unit tests e.g., #627, #630, #631, #629
  • Reuses models and datasets in tests on GitHub actions by utilising cache #641, #644
  • Set up parallel tests locally #671

Full Changelog: v1.4.0...v1.5.0

TIAToolbox 1.4.1

25 Jul 14:40
51f504b
Compare
Choose a tag to compare

Bug Fixes and Other Changes

  • Fix dictionary changed size Error #626 (#605)

Full Changelog: v1.4.0...v1.4.1

TIAToolbox 1.4.0

05 May 12:53
5231f9d
Compare
Choose a tag to compare

1.4.0 (2023-04-24)

Major Updates and Feature Improvements

  • Adds Python 3.11 support [experimental] #500
  • Removes Python 3.7 support
    • This allows upgrading all the dependencies which were dependent on an older version of Python.
  • Adds Neighbourhood Querying Support To AnnotationStore #540
    • This enables easy and efficient querying of annotations within a neighbourhood of other annotations.
  • Adds MultiTaskSegmentor engine #424
  • Fixes an issue with stain augmentation to apply augmentation to only tissue regions.
  • Filters logger output to stdout instead of stderr.
  • Allows import of some modules at higher level for improved usability
    • WSIReader can now be imported as from tiatoolbox.wsicore import WSIReader
    • WSIMeta can now be imported as from tiatoolbox.wsicore import WSIMeta
    • HoVerNet, HoVerNetPlus, IDaRS, MapDe, MicroNet, NuClick, SCCNN can now be imported as from tiatoolbox.models import HoVerNet, HoVerNetPlus, IDaRS, MapDe, MicroNet, NuClick, SCCNN
  • Improves PatchExtractor performance. Updates WSIPatchDataset to be consistent. #571
  • Updates documentation for License for clarity on source code and model weights license.

Changes to API

  • Updates SCCNN architecture to make it consistent with other models. #544

Bug Fixes and Other Changes

  • Fixes Parsing Missing Omero Version NGFF Metadata #568
  • Fixes reading of DICOM WSIs at the correct level #564
  • Fixes scipy, matplotlib, scikit-image deprecated code
  • Fixes breaking changes in DICOMWSIReader to make it compatible with latest wsidicom version. #539, #580
  • Updates shapely dependency to version >=2.0.0 and fixes any breaking changes.
  • Fixes bug with DictionaryStore.bquery and geometry=None, i.e. only a where predicate given.
  • Fixes local tests for Windows/Linux
  • Fixes flake8, deepsource errors.
  • Uses logger instead of warnings and print statements to properly log runs.

Development related changes

  • Upgrades dependencies which are dependent on Python 3.7
  • Moves requirements*.txt files to requirements folder
  • Removes tox
  • Uses pyproject.toml for bdist_wheel, pytest and isort
  • Adds joblib and numba as dependencies.

Full Changelog: v1.3.3...v1.4.0

TIAToolbox 1.3.3

02 Mar 13:39
d548b33
Compare
Choose a tag to compare

Major Updates and Feature Improvements

  • Restricts dependency versions for long term stability of the current version

Changes to API

None

Bug Fixes and Other Changes

  • Fix bug related to reading scikit-image

Development related changes

  • Restricts dependency versions for compatibility

TIAToolbox 1.3.2

17 Feb 13:43
24390e5
Compare
Choose a tag to compare

Major Updates and Feature Improvements

  • None

Changes to API

  • None

Bug Fixes and Other Changes

  • Fix bug related to reading DICOM files

Development related changes

  • Restricts wsidicom version to <0.7.0 for compatibility

TIAToolbox 1.3.1

20 Dec 12:40
Compare
Choose a tag to compare

Major Updates and Feature Improvements

  • Adds NuClick architecture #449
  • Adds Annotation Store Reader #476
  • Adds DFBR method for registering pair of images #510

Changes to API

  • Adds a sample SVS loading function tiatoolbox.data.small_svs() to the data module #517

Bug Fixes and Other Changes

  • Simplifies example notebook for image reading for better readability
  • Restricts Shapely version to <2.0.0 for compatibility

Development related changes

  • Adds GitHub workflow for automatic generation of docker image
  • Updates dependencies
  • Updates bump2version config
  • Enables flake8 E800 checks for commented codes.
  • Fixes several errors generated by DeepSource.
  • Prevent test dumping file to root
  • Removes duplicate functions to generate parameterized test scenarios

Note: Please note that Python 3.7 support will be removed after this release. We plan to add support for Python 3.11 in the next release.

TIAToolbox 1.3.0

21 Oct 22:03
1c11b1e
Compare
Choose a tag to compare

Major Updates and Feature Improvements

  • Adds an AnnotationTileGenerator and AnnotationRenderer which allows serving of tiles rendered directly from an annotation store.
  • Adds DFBR registration model and Jupyter notebook example
    • Adds DICE metric
  • Adds SCCNN architecture. [read the docs]
  • Adds MapDe architecture. [read the docs]
  • Adds support for reading MPP metadata from NGFF v0.4
  • Adds enhancements to tiatoolbox.annotation.storage that are useful when using an AnnotationStore for visualization purposes.

Changes to API

  • None

Bug Fixes and Other Changes

  • Fixes colorbar_params #410
  • Fixes Jupyter notebooks for better read the docs rendering
    • Fixes typos, metadata and links
  • Fixes nucleus_segmentor_engine for boundary artefacts
  • Fixes the colorbar cropping in tests
  • Adds citation in README.md and CITATION.cff to Nature Communications Medicine paper
  • Fixes a bug #452 raised by @rogertrullo where only the numerator of the TIFF resolution tags was being read.
  • Fixes HoVer-Net+ post-processing to be inline with original work.
  • Fixes a bug where an exception would be raised if the OME XML is missing objective power.

Development related changes

  • Uses Furo theme for readthedocs
  • Replaces nbgallery and nbsphinx with myst-nb for jupyter notebook rendering
  • Uses myst for markdown parsing
  • Uses requirements.txt to define dependencies for requirements consistency
  • Adds notebook AST pre-commit hook
  • Adds check to validate python examples in the code
  • Adds check to resolve imports
  • Fixes an error in a docstring which triggered the failing test.
  • Adds pre-commit hooks to format markdown and notebook markdown
  • Adds pip install workflow to resolve dependencies when requirements file is updated
  • Improves TIAToolbox import using LazyLoader

TIAToolbox 1.2.1

07 Jul 20:07
9b3d3b1
Compare
Choose a tag to compare

Major Updates and Feature Improvements

  • None

Changes to API

  • None

Bug Fixes and Other Changes

  • Fixes issues with dependencies
    • Adds flask to dependencies.
  • Fixes missing file in the python package
  • Clarifies help string for show-wsi option

Development related changes

  • Removes Travis CI
    • GitHub Actions will be used instead.
  • Adds pre-commit hooks to check requirements consistency.
  • Adds GitHub Action to resolve conda environment checks on Windows and Ubuntu.