From a068209d7d15eabdbb6be33ed963d4f8c6827c9f Mon Sep 17 00:00:00 2001 From: Wenqi Li <831580+wyli@users.noreply.github.com> Date: Sun, 18 Dec 2022 11:01:24 +0000 Subject: [PATCH] update figures (#5760) Signed-off-by: Wenqi Li part of #5626 ### Types of changes - [x] Non-breaking change (fix or new feature that would not break existing functionality). - [ ] Breaking change (fix or new feature that would cause existing functionality to change). - [ ] New tests added to cover the changes. - [ ] Integration tests passed locally by running `./runtests.sh -f -u --net --coverage`. - [ ] Quick tests passed locally by running `./runtests.sh --quick --unittests --disttests`. - [ ] In-line docstrings updated. - [ ] Documentation updated, tested `make html` command in the `docs/` folder. Signed-off-by: Wenqi Li --- docs/images/hovernet_diagram.png | Bin 0 -> 55130 bytes docs/source/whatsnew_1_1.md | 12 ++++++++++-- monai/bundle/scripts.py | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 docs/images/hovernet_diagram.png diff --git a/docs/images/hovernet_diagram.png b/docs/images/hovernet_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..aa7adcbdcfe0666c033715e10ae1dbcdedf493a4 GIT binary patch literal 55130 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 literal 0 HcmV?d00001 diff --git a/docs/source/whatsnew_1_1.md b/docs/source/whatsnew_1_1.md index 2c16a417ad..261af460fc 100644 --- a/docs/source/whatsnew_1_1.md +++ b/docs/source/whatsnew_1_1.md @@ -8,6 +8,8 @@ ## Digital pathology workflows +![hovernet](../images/hovernet_diagram.png) + Hover-Net is a model for simultaneous segmentation and classification of nuclei in multi-tissue histology images (Graham et al. Medical Image Analysis, 2019). We have added support for this model in MONAI by implementing several new components, enhancing existing ones and providing pipelines and examples for training, validation and inference. @@ -22,6 +24,8 @@ and [inference](https://github.com/Project-MONAI/tutorials/blob/main/pathology/n ## Experiment management for MONAI bundle +![exp_mgmt](../images/exp_mgmt.png) + In this release, experiment management features are integrated with MONAI bundle. It provides essential APIs for managing the end-to-end model bundle lifecycle. Users can start tracking experiments by, for example, appending `--tracking "mlflow"` to the training or inference commands to enable the MLFlow-based management. @@ -38,6 +42,8 @@ CT and PET images of various resolutions and sizes. A tutorial example of running Auto3DSeg on the HECKTOR22 challenge dataset is available in MONAI Tutorials. The tutorial is based on [the HECKTOR22 challenge 1st place solution](https://arxiv.org/abs/2209.10809). - A new improved version of `Segresnet` Algo is now available in `AutoRunner`. +In this version, data caching is more efficient and the preprocessing transforms are more flexible. +The workflow progresses including the timings of steps are written to console output as well as a YAML file. - Automatic customization and optimization of the model training configuration can be achieved according to the GPU devices used. The feature focuses on determining parameters including batch size of model @@ -52,8 +58,10 @@ Notably, - The `mednist_reg` model demonstrates how to build image registration workflows in MONAI bundle format. The model uses a ResNet and spatial transformer for hand X-ray image registration based on [the registration_mednist tutorial](https://github.com/Project-MONAI/tutorials/blob/main/2d_registration/registration_mednist.ipynb), -- `pathology_nuclei_segmentation_and_classification`, `pathology_nuclick_annotation`, and -`pathology_nuclei_classification` bundles are built for digital pathology image analysis. +- `pathology_nuclei_segmentation_and_classification`, + `pathology_nuclick_annotation`, and `pathology_nuclei_classification` bundles + are built for [digital pathology image + analysis](https://github.com/Project-MONAI/model-zoo/tree/dev/models/pathology_nuclei_segmentation_classification). For more details about how to use the models, please see [the tutorials](https://github.com/Project-MONAI/tutorials/tree/main/model_zoo). diff --git a/monai/bundle/scripts.py b/monai/bundle/scripts.py index dc1fc2f2d7..f81905a961 100644 --- a/monai/bundle/scripts.py +++ b/monai/bundle/scripts.py @@ -166,7 +166,7 @@ def _download_from_ngc(download_path: Path, filename: str, version: str, remove_ url = _get_ngc_bundle_url(model_name=filename, version=version) filepath = download_path / f"{filename}_v{version}.zip" if remove_prefix: - filename = _remove_ngc_prefix(filename) + filename = _remove_ngc_prefix(filename, prefix=remove_prefix) extract_path = download_path / f"{filename}" download_url(url=url, filepath=filepath, hash_val=None, progress=progress) extractall(filepath=filepath, output_dir=extract_path, has_base=True)