Skip to content

Commit 9c85b25

Browse files
authored
New RADS backend support (#9)
* Improving code clarity (separate widgets), upgrading to match with Raidionics v1.3 * Pure segmentation update * Reporting for neuro and mediastinum applications * Update to the structure * Small fix to model download
1 parent ff91c05 commit 9c85b25

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+1406
-937
lines changed

CMakeLists.txt

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
cmake_minimum_required(VERSION 3.5)
2+
3+
project(Raidionics)
4+
5+
#-----------------------------------------------------------------------------
6+
# Extension meta-information
7+
set(EXTENSION_HOMEPAGE "http://slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/Raidionics")
8+
set(EXTENSION_CATEGORY "AI")
9+
set(EXTENSION_CONTRIBUTORS ", David Bouget (Medical Image Analysis group, Health Research Department, SINTEF Digital)")
10+
set(EXTENSION_DESCRIPTION "Module for pre-/post-operative central nervous system tumor segmentation and standardized reporting")
11+
set(EXTENSION_ICONURL "http://www.example.com/Slicer/Extensions/Raidionics.png")
12+
set(EXTENSION_SCREENSHOTURLS "http://www.example.com/Slicer/Extensions/Raidionics/Screenshots/1.png")
13+
set(EXTENSION_DEPENDS "NA") # Specified as a space separated string, a list or 'NA' if any
14+
15+
#-----------------------------------------------------------------------------
16+
# Extension dependencies
17+
find_package(Slicer REQUIRED)
18+
include(${Slicer_USE_FILE})
19+
20+
#-----------------------------------------------------------------------------
21+
# Extension modules
22+
add_subdirectory(Raidionics)
23+
## NEXT_MODULE
24+
25+
#-----------------------------------------------------------------------------
26+
include(${Slicer_EXTENSION_GENERATE_CONFIG})
27+
include(${Slicer_EXTENSION_CPACK})

README.md

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
[![License](https://img.shields.io/badge/License-BSD%202--Clause-orange.svg)](https://opensource.org/licenses/BSD-2-Clause)
66
[![Paper](https://zenodo.org/badge/DOI/10.1038/s41598-023-42048-7.svg)](https://doi.org/10.1038/s41598-023-42048-7)
77
[![Paper](https://zenodo.org/badge/DOI/10.3389/fneur.2022.932219.svg)](https://www.frontiersin.org/articles/10.3389/fneur.2022.932219/full)
8+
[![GitHub release](https://img.shields.io/github/v/release/raidionics/raidionics-slicer?sort=semver)](https://github.com/raidionics/raidionics-slicer/releases)
89

910

1011
Plugin for 3D Slicer to use the segmentation models and clinical reporting techniques (RADS) packaged in Raidionics.
@@ -13,14 +14,14 @@ The plugin was first introduced in the article _"Brain tumor preoperative surger
1314
segmentation and standardized reporting"_, published in [Frontiers in Neurology](https://www.frontiersin.org/articles/10.3389/fneur.2022.932219/full).
1415

1516
<p align="center">
16-
<img src="Raidionics/Raidionics/Resources/Icons/Raidionics-Slicer.gif" width="85%">
17+
<img src="Raidionics/Resources/Icons/Raidionics-Slicer.gif" width="85%">
1718
</p>
1819
</div>
1920

2021

2122
## [Installation](https://github.com/raidionics/Raidionics-Slicer#installation)
2223

23-
The plugin has been tested with the stable release 5.6.1 of 3D Slicer, and the upcoming release 5.7.0.
24+
The plugin has been tested with the stable release 5.8.1 of 3D Slicer, and the upcoming release 5.9.0.
2425
A [step-by-step video](https://www.youtube.com/watch?v=NStMzLcj1WE) for installing the plugin and running a segmentation model for the first time is available.
2526

2627
<details>
@@ -38,12 +39,12 @@ A [step-by-step video](https://www.youtube.com/watch?v=NStMzLcj1WE) for installi
3839
* Download and install Docker (see [below](https://github.com/raidionics/Raidionics-Slicer#docker-setup--)).
3940
The necessary _Raidionics_ Docker image should be collected automatically when downloading a model for the first time.
4041
Please do the following if it did not happen correctly:
41-
> docker pull dbouget/raidionics-rads:v1.1-py38-cpu
42+
> docker pull dbouget/raidionics-rads:v1.3-py39-cpu
4243
4344
* Load the plugin into 3D Slicer:
4445
∘ All Modules > Extension Wizard.
4546
∘ Developer Tools > Extension Wizard.
46-
∘ Select Extension > point to the first Raidionics subfolder (inside Raidionics-Slicer) and add it to the path (tick the small box at the bottom).
47+
∘ Select Extension > select your local Raidionics-Slicer folder and add it to the path (tick the small box at the bottom).
4748

4849
* :warning: Restarting 3D Slicer to setup Python environment might be necessary on some occasions.
4950

@@ -81,16 +82,17 @@ If you are using Raidionics-Slicer in your research, please use the following ci
8182
More information about the different models provided and architectures used can be accessed from the below-listed publications.
8283

8384
### Neuro
84-
* AGU-Net neural network architecture => [Meningioma Segmentation in T1-Weighted MRI Leveraging Global Context and Attention Mechanisms](https://www.frontiersin.org/articles/10.3389/fradi.2021.711514/full)
85+
* Raidionics => [Raidionics: an open software for pre-and postoperative central nervous system tumor segmentation and standardized reporting](https://www.nature.com/articles/s41598-023-42048-7)
86+
* Preoperative CNS segmentation performance => [Preoperative brain tumor imaging: models and software for segmentation and standardized reporting](https://www.frontiersin.org/journals/neurology/articles/10.3389/fneur.2022.932219/full)
8587
* Standardized reporting and Data System => [Glioblastoma Surgery Imaging—Reporting and Data System: Standardized Reporting of Tumor Volume, Location, and Resectability Based on Automated Segmentations ](https://www.mdpi.com/2072-6694/13/12/2854)
8688
* Preoperative GBM segmentation performance => [Glioblastoma Surgery Imaging–Reporting and Data System: Validation and Performance of the Automated Segmentation Task ](https://www.mdpi.com/2072-6694/13/18/4674)
8789
* Postoperative GBM segmentation performance => [Segmentation of glioblastomas in early post-operative multi-modal MRI with deep neural networks](https://www.nature.com/articles/s41598-023-45456-x)
88-
* Preoperative CNS segmentation performance => [Preoperative brain tumor imaging: models and software for segmentation and standardized reporting](https://www.frontiersin.org/journals/neurology/articles/10.3389/fneur.2022.932219/full)
90+
* AGU-Net neural network architecture => [Meningioma Segmentation in T1-Weighted MRI Leveraging Global Context and Attention Mechanisms](https://www.frontiersin.org/articles/10.3389/fradi.2021.711514/full)
8991

9092
### Mediastinum
9193
* Mediastinum organs segmentation => [Semantic segmentation and detection of mediastinal lymph nodes and anatomical structures in CT data for lung cancer staging](https://link.springer.com/article/10.1007/s11548-019-01948-8)
9294
* Lymph nodes segmentation => [Mediastinal lymph nodes segmentation using 3D convolutional neural network ensembles and anatomical priors guiding](https://www.tandfonline.com/doi/pdf/10.1080/21681163.2022.2043778)
93-
* Airways segmentation => [AeroPath: An airway segmentation benchmark dataset with challenging pathology](https://arxiv.org/abs/2311.01138)
95+
* Airways segmentation => [AeroPath: An airway segmentation benchmark dataset with challenging pathology](https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0311416)
9496

9597
</details>
9698

@@ -124,7 +126,7 @@ All images will be automatically downloaded upon model selection, which might
124126
take some minutes while the 3D Slicer interface won't be responding.
125127

126128
* The main Docker image can also be downloaded manually by:
127-
> docker pull dbouget/raidionics-rads:v1.1-py38-cpu
129+
> docker pull dbouget/raidionics-rads:v1.3-py39-cpu
128130
129131
* When you execute for the first time, you might get a pop-up from Docker asking to allow
130132
the sharing of a `.raidonics-slicer/` directory, accept!

Raidionics.s4ext

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,12 @@
1616
depends ScriptedModule
1717

1818
# homepage
19-
homepage http://www.slicer.org
19+
homepage https://raidionics.github.io/
2020

2121
# match category in the xml description of the module (where it shows up in Modules menu)
2222
category Machine Learning
2323

24-
# give people an idea what to expect from this code
25-
# - is it just a test or something you stand beind?
2624
status Beta
2725

2826
# One line description of what the module does
29-
description This is an extension module written in python for Deep Learning inference
27+
description Module for pre-/post-operative central nervous system tumor segmentation and standardized reporting

Raidionics/CMakeLists.txt

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,30 @@
1-
cmake_minimum_required(VERSION 3.5)
2-
3-
project(Raidionics)
4-
51
#-----------------------------------------------------------------------------
6-
# Extension meta-information
7-
set(EXTENSION_HOMEPAGE "http://slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/Raidionics")
8-
set(EXTENSION_CATEGORY "AI")
9-
set(EXTENSION_CONTRIBUTORS ", David Bouget (Medical Technology, SINTEF Digital)")
10-
set(EXTENSION_DESCRIPTION "This is an example of a simple extension")
11-
set(EXTENSION_ICONURL "http://www.example.com/Slicer/Extensions/Raidionics.png")
12-
set(EXTENSION_SCREENSHOTURLS "http://www.example.com/Slicer/Extensions/Raidionics/Screenshots/1.png")
13-
set(EXTENSION_DEPENDS "NA") # Specified as a space separated string, a list or 'NA' if any
2+
set(MODULE_NAME Raidionics)
143

154
#-----------------------------------------------------------------------------
16-
# Extension dependencies
17-
find_package(Slicer REQUIRED)
18-
include(${Slicer_USE_FILE})
5+
set(MODULE_PYTHON_SCRIPTS
6+
${MODULE_NAME}.py
7+
)
8+
9+
set(MODULE_PYTHON_RESOURCES
10+
Resources/Icons/${MODULE_NAME}.png
11+
)
1912

2013
#-----------------------------------------------------------------------------
21-
# Extension modules
22-
add_subdirectory(Raidionics)
23-
## NEXT_MODULE
14+
slicerMacroBuildScriptedModule(
15+
NAME ${MODULE_NAME}
16+
SCRIPTS ${MODULE_PYTHON_SCRIPTS}
17+
RESOURCES ${MODULE_PYTHON_RESOURCES}
18+
WITH_GENERIC_TESTS
19+
)
2420

2521
#-----------------------------------------------------------------------------
26-
include(${Slicer_EXTENSION_GENERATE_CONFIG})
27-
include(${Slicer_EXTENSION_CPACK})
22+
if(BUILD_TESTING)
23+
24+
# Register the unittest subclass in the main script as a ctest.
25+
# Note that the test will also be available at runtime.
26+
slicer_add_python_unittest(SCRIPT ${MODULE_NAME}.py)
27+
28+
# Additional build-time testing
29+
add_subdirectory(Testing)
30+
endif()
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def __init__(self, parent):
3030
self.parent.title = "Raidionics"
3131
self.parent.categories = ["Machine Learning"]
3232
self.parent.dependencies = []
33-
self.parent.contributors = ["David Bouget (Medical Technology, SINTEF Digital) david.bouget@sintef.no"]
33+
self.parent.contributors = ["David Bouget (Medical Image Analysis group, Health Research Department, SINTEF Digital) david.bouget@sintef.no"]
3434
self.parent.helpText = """
3535
The Raidionics plugin for 3D Slicer allows users to run pre-trained models for segmentation and standardized
3636
reporting (RADS) over MRI volumes for patients diagnosed with brain cancer, and CT volumes for patients diagnosed

Raidionics/Raidionics/CMakeLists.txt

Lines changed: 0 additions & 30 deletions
This file was deleted.

Raidionics/Raidionics/src/gui/Diagnosis/DiagnosisExecutionWidget.py

Lines changed: 0 additions & 91 deletions
This file was deleted.

0 commit comments

Comments
 (0)