-
Notifications
You must be signed in to change notification settings - Fork 0
Description
denoising_inhomogeneity_correction_tool
Description
Denoising-Inhomogeneity Correction Tool is designed to perform a customisable image pre-processing to reduce noise and inhomogeneity field effect, thus improving image quality and reproducibility of radiomics features. This tool consists of two independent steps: one for denoising using one of the 5 integrated filters (Bilateral Filter, Anisotropic Diffusion Filter (ADF), Curvature Flow Filter (CFF), SUSAN and Non Local Means (NLM)), and another for the ANTs N4 and another for the ANT's N4 bias correction filter. The parameter configuration of this tool has been optimised for TW1, T2W, DWI and DCE sequences in neuroblastoma (NB) and paediatric brain tumours, but it can also be configured with some of their parameters using a JSON parameter configuration file.
Reference
Please cite the following paper when using this tool:
Fernández Patón M, Cerdá Alberich L, Sangüesa Nebot C, Martínez de Las Heras B, Veiga Canuto D, Cañete Nieto A, Martí-Bonmatí L. MR Denoising Increases Radiomic Biomarker Precision and Reproducibility in Oncologic Imaging. J Digit Imaging. 2021 Oct;34(5):1134-1145. doi: 10.1007/s10278-021-00512-8. Epub 2021 Sep 10. PMID: 34505958; PMCID: PMC8554919.
And the following one:
Martí-Bonmatí L, Alberich-Bayarri Á, Ladenstein R, Blanquer I, Segrelles JD, Cerdá-Alberich L, Gkontra P, Hero B, García-Aznar JM, Keim D, Jentner W, Seymour K, Jiménez-Pastor A, González-Valverde I, Martínez de Las Heras B, Essiaf S, Walker D, Rochette M, Bubak M, Mestres J, Viceconti M, Martí-Besa G, Cañete A, Richmond P, Wertheim KY, Gubala T, Kasztelnik M, Meizner J, Nowakowski P, Gilpérez S, Suárez A, Aznar M, Restante G, Neri E. PRIMAGE project: predictive in silico multiscale analytics to support childhood cancer personalised evaluation empowered by imaging biomarkers. Eur Radiol Exp. 2020 Apr 3;4(1):22. doi: 10.1186/s41747-020-00150-9. PMID: 32246291; PMCID: PMC7125275.
Usage
Option 1: Example using JSON Configuration File
Create a parameter_configuration.json file with the following structure:
{
"Paths": [
"~/datasets/87f3be56-4725-45c3-9baa-d338de530f73/Patient_1/Study/T1W_Sequence",
"~/datasets/87f3be56-4725-45c3-9baa-d338de530f73/Patient_1/Study/T2W_Sequence",
"~/datasets/87f3be56-4725-45c3-9baa-d338de530f73/Patient_2/Study/DWI_Sequence"
],
"_comment": "Optional: Uncomment to override defaults",
"_series_number": 2000,
"_series_description_suffix": " - Harmonized",
"Denoising_adf": [{
"Conductance": 0.5,
"Iterations": 3,
"Time_step": 0.0625
}],
"N4": [{
"BSpline_size": 50,
"Iterations": [50, 30],
"Shrink_factor": 2
}]
}Behavior:
- Without
series_number: Original SeriesNumber + 1000 (e.g., 5 → 1005) ✅ Recommended - With
series_number: 2000: SeriesNumber = 2000 (absolute value)
Run with Jobman:
jobman submit -i denoising_inhomogeneity_correction_tool -- \
--config ~/persistent-home/denoising/parameter_configuration.json \
--output ~/persistent-home/denoising/outputNote the config file and the output directory path should be any within the persistent-home, which is shared between all desktops and jobs created by the user, otherwise the config file will not be found and the results will be lost after the end of the job.
Option 2: Using Command-Line Arguments
You can run the tool directly with command-line arguments (instead of using a config file):
jobman submit -i denoising_inhomogeneity_correction_tool -- \
--paths ~/datasets/87f3be56-4725-45c3-9baa-d338de530f73/Patient_1/Study/T1W ~/datasets/87f3be56-4725-45c3-9baa-d338de530f73/Patient_2/Study/T2W \
--series_number 2000 \
--series_description_suffix " - Harmonized" \
--denoising adf \
--conductance 0.5 \
--iterations 3 \
--time_step 0.0625 \
--n4 \
--bspline_size 50 \
--n4_iterations 50 30 \
--shrink_factor 2 \
--output ~/persistent-home/denoising/outputConfiguration Parameters
Whether using option 1 or 2, below are the paramateres you can specify.
Paths (Required)
Paths: List of DICOM folder paths
Series Metadata (Optional)
Control how the harmonized series appears in DICOM viewers:
-
series_number(optional): Absolute SeriesNumber for harmonized series- If not specified (recommended): Original SeriesNumber + 1000
- If specified: Uses exact value provided
- Example: Original series 5 → Harmonized series 1005 (default) or 2000 (if configured)
- Note: Default behavior (+1000) is recommended to avoid conflicts
-
series_description_suffix(optional): Text appended to original SeriesDescription- Default:
"_harmonized" - Example:
"series_description_suffix": " - Harmonized"
- Default:
Note: The tool automatically generates:
- SeriesInstanceUID: Deterministic UID (same input always produces same UID)
- SOPInstanceUID: Unique for each DICOM slice
- DerivationDescription: Documents applied filters (e.g., "Denoising: ADF; N4 Bias Field Correction")
Denoising Filters (Optional)
Choose one of the following:
Anisotropic Diffusion Filter (ADF)
"Denoising_adf": [{
"Conductance": 0.5,
"Iterations": 3,
"Time_step": 0.0625
}]CLI arguments:
--denoising adf--conductance <value>(default: 0.5)--iterations <value>(default: 3)--time_step <value>(default: 0.0625)
Curvature Flow Filter (CFF)
"Denoising_cff": [{
"Iterations": 3,
"Time_step": 0.0625
}]CLI arguments:
--denoising cff--iterations <value>(default: 3)--time_step <value>(default: 0.0625)
Bilateral Filter
"Denoising_bilateral": [{
"DomainSigma": 1.5,
"RangeSigma": 50.0
}]CLI arguments:
--denoising bilateral--domain_sigma <value>(default: 1.5)--range_sigma <value>(default: 50.0)
SUSAN Filter
"Denoising_susan": [{
"brightness_threshold": 0.75,
"fwhm": 3.0
}]CLI arguments:
--denoising susan--brightness_threshold <value>(default: 0.75, multiplier of Otsu threshold)--fwhm <value>(default: 3.0)
Non-Local Means (NLM)
"Denoising_nlm": [{
"Sigma": 1.0,
"Patch_radius": 1,
"Block_radius": 5
}]CLI arguments:
--denoising nlm--sigma <value>(default: 1.0)--patch_radius <value>(default: 1)--block_radius <value>(default: 5)
N4 Bias Field Correction (Optional)
"N4": [{
"BSpline_size": 50,
"Iterations": [50, 30],
"Shrink_factor": 2
}]CLI arguments:
--n4(flag to enable)--bspline_size <value>(default: 50)--n4_iterations <values...>(default: 50 30)--shrink_factor <value>(default: 2)
Optimal Parameters
Optimized configurations for different tumor types and sequences:
The optimised parameter configuration for each tumour and sequence is shown in the table below:
Examples
Example 1: ADF Denoising + N4 Correction (JSON config)
parameter_configuration.json:
{
"Paths": [
"~/datasets/87f3be56-4725-45c3-9baa-d338de530f73/Patient_1/Study/T1W_Sequence"
],
"Denoising_adf": [{
"Conductance": 0.5,
"Iterations": 3,
"Time_step": 0.0625
}],
"N4": [{
"BSpline_size": 50,
"Iterations": [50, 30],
"Shrink_factor": 2
}]
}Command:
jobman submit -i denoising_inhomogeneity_correction_tool -- \
--config ~/persistent-home/denoising/parameter_configuration.json \
--output ~/persistent-home/denoising/outputExample 2: NLM Denoising Only (CLI)
jobman submit -i denoising_inhomogeneity_correction_tool -- \
--paths ~/datasets/87f3be56-4725-45c3-9baa-d338de530f73/Patient_1/Study/DWI ~/datasets/87f3be56-4725-45c3-9baa-d338de530f73/Patient_2/Study/DWI \
--denoising nlm \
--sigma 1.0 \
--patch_radius 1 \
--block_radius 5 \
--output ~/persistent-home/denoising/outputExample 3: N4 Correction Only (CLI)
jobman submit -i denoising_inhomogeneity_correction_tool -- \
--paths ~/datasets/87f3be56-4725-45c3-9baa-d338de530f73/Patient_1/Study/T1W \
--n4 \
--bspline_size 50 \
--n4_iterations 50 30 \
--shrink_factor 2 \
--output ~/persistent-home/denoising/outputDICOM Metadata and UIDs
The tool generates harmonized DICOM files with properly structured metadata following DICOM standards:
Generated UIDs
-
SeriesInstanceUID: Deterministically generated using SHA256 hash
- Same original series always produces the same harmonized SeriesInstanceUID
- Format:
2.25.{hash_integer}(UUID-derived UID standard) - All slices in a harmonized series share this UID
-
SOPInstanceUID: Unique identifier for each DICOM instance
- Generated using
pydicom.uid.generate_uid() - Ensures each slice has a globally unique identifier
- Generated using
Series Metadata
-
SeriesNumber: Configurable via
series_numberparameter- Default: Original SeriesNumber + 1000
- Example: Original series 5 → Harmonized series 1005 (or 2000 if configured)
-
SeriesDescription: Original description + configurable suffix
- Default suffix:
"_harmonized" - Example:
"T1W_MPRAGE"→"T1W_MPRAGE_harmonized" - Or with custom suffix:
"T1W_MPRAGE - Harmonized"
- Default suffix:
-
DerivationDescription: Automatically documents processing steps
- Lists applied filters in order
- Example:
"Denoising: ADF; N4 Bias Field Correction"
Authors
This tool was developed by Matías Fernández Patón in collaboration with the GIBI230 Research Group at La Fe Health Research Institute (IIS La Fe), Valencia, Spain.
Contact info
pedromiguel_martinez@iislafe.es
carina_soler@iislafe.es
matias_fernandez@iislafe.es
URL
User manual:
https://drive.google.com/file/d/1W0aHAIG_bdU9Z1J3aDNsb1r39WBuX9Ot/view?usp=drive_link
EUCAIM Catalogue:
https://bio.tools/denoising-inhomogeneity_correction_tool
EUCAIM Harbor:
https://harbor.eucaim.cancerimage.eu/harbor/projects/4/repositories/denoising_inhomogeneity_correction_tool/artifacts-tab
Public dockerfile repository:
https://bitbucket.org/gibi230/harmonization_tool/src/cd1ed47c578c77de631772623f7df0f3c976c329/?at=release%2FEUCAIM
License
https://drive.google.com/file/d/1w1tdjaLdjBZYJTp_EpETN6nwyQIsy4vg/view?usp=drive_link
