brainles-preprocessing 0.5.0__tar.gz → 0.6.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/PKG-INFO +28 -6
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/README.md +26 -4
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/constants.py +3 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/defacing/quickshear/quickshear.py +11 -1
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/modality.py +90 -72
- brainles_preprocessing-0.6.1/brainles_preprocessing/preprocessor/__init__.py +15 -0
- brainles_preprocessing-0.6.1/brainles_preprocessing/preprocessor/atlas_centric_preprocessor.py +351 -0
- brainles_preprocessing-0.6.1/brainles_preprocessing/preprocessor/native_space_preprocessor.py +202 -0
- brainles_preprocessing-0.6.1/brainles_preprocessing/preprocessor/preprocessor.py +361 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/ANTs/ANTs.py +1 -1
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg.py +4 -2
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/transform.py +2 -4
- brainles_preprocessing-0.6.1/brainles_preprocessing/utils/citation_reminder.py +41 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/utils/zenodo.py +1 -6
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/pyproject.toml +3 -2
- brainles_preprocessing-0.5.0/brainles_preprocessing/preprocessor.py +0 -632
- brainles_preprocessing-0.5.0/brainles_preprocessing/utils/logging_utils.py +0 -131
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/LICENSE +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/__init__.py +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/brain_extraction/__init__.py +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/brain_extraction/brain_extractor.py +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/brats/__init__.py +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/brats/t1_centric.py +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/brats/t1c_centric.py +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/cli.py +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/defacing/__init__.py +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/defacing/defacer.py +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/defacing/quickshear/__init__.py +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/defacing/quickshear/nipy_quickshear.py +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/n4_bias_correction/__init__.py +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/n4_bias_correction/n4_bias_corrector.py +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/n4_bias_correction/sitk/__init__.py +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/n4_bias_correction/sitk/sitk_n4_bias_corrector.py +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/normalization/__init__.py +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/normalization/normalizer_base.py +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/normalization/percentile_normalizer.py +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/normalization/windowing_normalizer.py +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/ANTs/TODO_ANTs_parameters.py +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/ANTs/__init__.py +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/__init__.py +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/elastix/__init__.py +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/elastix/elastix.py +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/greedy/__init__.py +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/greedy/greedy.py +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/__init__.py +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/groupwise_niftyreg_params.sh +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/groupwise_niftyreg_run.sh +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_aladin +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_average +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_f3d +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_jacobian +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_measure +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_resample +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_tools +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_transform +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/AffineDeformationFieldKernel.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/AladinContent.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/BlockMatchingKernel.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/CPUAffineDeformationFieldKernel.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/CPUBlockMatchingKernel.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/CPUConvolutionKernel.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/CPUKernelFactory.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/CPUOptimiseKernel.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/CPUResampleImageKernel.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/ConvolutionKernel.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/Kernel.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/KernelFactory.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/OptimiseKernel.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/Platform.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/ResampleImageKernel.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_ReadWriteImage.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_ReadWriteMatrix.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_aladin.cpp +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_aladin.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_aladin_sym.cpp +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_aladin_sym.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_base.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_blockMatching.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_dti.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_f3d.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_f3d2.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_f3d_sym.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_femTrans.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_globalTrans.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_kld.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_lncc.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_localTrans.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_localTrans_jac.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_localTrans_regul.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_macros.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_maths.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_maths_eigen.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_measure.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_mind.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_nmi.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_optimiser.cpp +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_optimiser.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_resampling.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_splineBasis.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_ssd.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_stringFormat.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_tools.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/nifti1.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/nifti1_io.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/png.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/pngconf.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/pngdebug.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/pnginfo.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/pnglibconf.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/pngpriv.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/pngstruct.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/readpng.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/reg_png.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/zlib.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/znzlib.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/zutil.h +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/reg_aladin +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/reg_resample +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/rigid_reg.sh +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/transform.sh +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/registration/registrator.py +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/utils/__init__.py +0 -0
- {brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/utils/generic.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: brainles_preprocessing
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.6.1
|
|
4
4
|
Summary: Tool for preprocessing tasks in biomedical imaging, with a focus on (but not limited to) multi-modal brain MRI
|
|
5
5
|
License: Apache-2.0
|
|
6
6
|
Keywords: brain tumor,glioma,BraTS,skullstripping,brain extraction
|
|
@@ -21,9 +21,9 @@ Provides-Extra: itk-elastix
|
|
|
21
21
|
Provides-Extra: picsl-greedy
|
|
22
22
|
Requires-Dist: antspyx (>=0.5.4,<1.0.0)
|
|
23
23
|
Requires-Dist: auxiliary (>=0.3.1)
|
|
24
|
-
Requires-Dist: black (>=22.1.0,<23.0.0)
|
|
25
24
|
Requires-Dist: brainles_hd_bet (>=0.0.10,<1.0.0)
|
|
26
25
|
Requires-Dist: itk-elastix (>=0.20.0,<0.21.0) ; extra == "all" or extra == "itk-elastix"
|
|
26
|
+
Requires-Dist: loguru (>=0.7.3,<0.8.0)
|
|
27
27
|
Requires-Dist: nibabel (>=3.2.1)
|
|
28
28
|
Requires-Dist: numpy (>=1.23.0,<2.0.0)
|
|
29
29
|
Requires-Dist: pathlib (>=1.0.1,<2.0.0)
|
|
@@ -150,9 +150,25 @@ For further information please have a look at our [Jupyter Notebook tutorials](h
|
|
|
150
150
|
|
|
151
151
|
|
|
152
152
|
|
|
153
|
+
## Citation
|
|
153
154
|
|
|
155
|
+
> [!IMPORTANT]
|
|
156
|
+
> If you use `brainles-preprocessing` in your research, please cite it to support the development!
|
|
154
157
|
|
|
155
|
-
|
|
158
|
+
Kofler, F., Rosier, M., Astaraki, M., Möller, H., Mekki, I. I., Buchner, J. A., Schmick, A., Pfiffer, A., Oswald, E., Zimmer, L., Rosa, E. de la, Pati, S., Canisius, J., Piffer, A., Baid, U., Valizadeh, M., Linardos, A., Peeken, J. C., Shit, S., … Menze, B. (2025). *BrainLesion Suite: A Flexible and User-Friendly Framework for Modular Brain Lesion Image Analysis* [arXiv preprint arXiv:2507.09036](https://doi.org/10.48550/arXiv.2507.09036)
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
@misc{kofler2025brainlesionsuiteflexibleuserfriendly,
|
|
163
|
+
title={BrainLesion Suite: A Flexible and User-Friendly Framework for Modular Brain Lesion Image Analysis},
|
|
164
|
+
author={Florian Kofler and Marcel Rosier and Mehdi Astaraki and Hendrik Möller and Ilhem Isra Mekki and Josef A. Buchner and Anton Schmick and Arianna Pfiffer and Eva Oswald and Lucas Zimmer and Ezequiel de la Rosa and Sarthak Pati and Julian Canisius and Arianna Piffer and Ujjwal Baid and Mahyar Valizadeh and Akis Linardos and Jan C. Peeken and Surprosanna Shit and Felix Steinbauer and Daniel Rueckert and Rolf Heckemann and Spyridon Bakas and Jan Kirschke and Constantin von See and Ivan Ezhov and Marie Piraud and Benedikt Wiestler and Bjoern Menze},
|
|
165
|
+
year={2025},
|
|
166
|
+
eprint={2507.09036},
|
|
167
|
+
archivePrefix={arXiv},
|
|
168
|
+
primaryClass={cs.CV},
|
|
169
|
+
url={https://arxiv.org/abs/2507.09036},
|
|
170
|
+
}
|
|
171
|
+
```
|
|
156
172
|
|
|
157
173
|
## Documentation
|
|
158
174
|
We provide a (WIP) documentation. Have a look [here](https://brainles-preprocessing.readthedocs.io/en/latest/?badge=latest)
|
|
@@ -161,11 +177,17 @@ We provide a (WIP) documentation. Have a look [here](https://brainles-preprocess
|
|
|
161
177
|
Please credit the authors by citing their work.
|
|
162
178
|
|
|
163
179
|
### Registration
|
|
164
|
-
We currently provide support for [ANTs](https://github.com/ANTsX/ANTs) (default), [Niftyreg](https://github.com/KCL-BMEIS/niftyreg) (Linux).
|
|
180
|
+
We currently provide support for [ANTs](https://github.com/ANTsX/ANTs) (default), [Niftyreg](https://github.com/KCL-BMEIS/niftyreg) (Linux). We also offer basic support for [greedy](https://greedy.readthedocs.io/en/latest/reference.html#greedy-usage) and [elastix](https://pypi.org/project/itk-elastix/0.13.0/).
|
|
165
181
|
|
|
166
182
|
### Atlas Reference
|
|
167
|
-
We provide
|
|
168
|
-
|
|
183
|
+
We provide a range of different atlases, namely:
|
|
184
|
+
- [SRI24](https://www.nitrc.org/frs/download.php/4502/sri24_anatomy_unstripped_nifti.zip) and its [skull-stripped version](https://www.nitrc.org/frs/download.php/4499/sri24_anatomy_nifti.zip)
|
|
185
|
+
- A slightly modified SRI24 atlas as found in the BraTS challenges (also with a skull-stripped version)
|
|
186
|
+
- MNI152: [MNI_ICBM_2009c_Nonlinear_Symmetric](https://nist.mni.mcgill.ca/icbm-152-nonlinear-atlases-2009/)
|
|
187
|
+
- A slightly modified MNI152 atlas as found in the BraTS challenge
|
|
188
|
+
|
|
189
|
+
We also support supplying a custom atlas in NIfTI format
|
|
190
|
+
|
|
169
191
|
|
|
170
192
|
### N4 Bias correction
|
|
171
193
|
We currently provide support for N4 Bias correction based on [SimpleITK](https://simpleitk.org/)
|
|
@@ -111,9 +111,25 @@ For further information please have a look at our [Jupyter Notebook tutorials](h
|
|
|
111
111
|
|
|
112
112
|
|
|
113
113
|
|
|
114
|
+
## Citation
|
|
114
115
|
|
|
116
|
+
> [!IMPORTANT]
|
|
117
|
+
> If you use `brainles-preprocessing` in your research, please cite it to support the development!
|
|
115
118
|
|
|
116
|
-
|
|
119
|
+
Kofler, F., Rosier, M., Astaraki, M., Möller, H., Mekki, I. I., Buchner, J. A., Schmick, A., Pfiffer, A., Oswald, E., Zimmer, L., Rosa, E. de la, Pati, S., Canisius, J., Piffer, A., Baid, U., Valizadeh, M., Linardos, A., Peeken, J. C., Shit, S., … Menze, B. (2025). *BrainLesion Suite: A Flexible and User-Friendly Framework for Modular Brain Lesion Image Analysis* [arXiv preprint arXiv:2507.09036](https://doi.org/10.48550/arXiv.2507.09036)
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
@misc{kofler2025brainlesionsuiteflexibleuserfriendly,
|
|
124
|
+
title={BrainLesion Suite: A Flexible and User-Friendly Framework for Modular Brain Lesion Image Analysis},
|
|
125
|
+
author={Florian Kofler and Marcel Rosier and Mehdi Astaraki and Hendrik Möller and Ilhem Isra Mekki and Josef A. Buchner and Anton Schmick and Arianna Pfiffer and Eva Oswald and Lucas Zimmer and Ezequiel de la Rosa and Sarthak Pati and Julian Canisius and Arianna Piffer and Ujjwal Baid and Mahyar Valizadeh and Akis Linardos and Jan C. Peeken and Surprosanna Shit and Felix Steinbauer and Daniel Rueckert and Rolf Heckemann and Spyridon Bakas and Jan Kirschke and Constantin von See and Ivan Ezhov and Marie Piraud and Benedikt Wiestler and Bjoern Menze},
|
|
126
|
+
year={2025},
|
|
127
|
+
eprint={2507.09036},
|
|
128
|
+
archivePrefix={arXiv},
|
|
129
|
+
primaryClass={cs.CV},
|
|
130
|
+
url={https://arxiv.org/abs/2507.09036},
|
|
131
|
+
}
|
|
132
|
+
```
|
|
117
133
|
|
|
118
134
|
## Documentation
|
|
119
135
|
We provide a (WIP) documentation. Have a look [here](https://brainles-preprocessing.readthedocs.io/en/latest/?badge=latest)
|
|
@@ -122,11 +138,17 @@ We provide a (WIP) documentation. Have a look [here](https://brainles-preprocess
|
|
|
122
138
|
Please credit the authors by citing their work.
|
|
123
139
|
|
|
124
140
|
### Registration
|
|
125
|
-
We currently provide support for [ANTs](https://github.com/ANTsX/ANTs) (default), [Niftyreg](https://github.com/KCL-BMEIS/niftyreg) (Linux).
|
|
141
|
+
We currently provide support for [ANTs](https://github.com/ANTsX/ANTs) (default), [Niftyreg](https://github.com/KCL-BMEIS/niftyreg) (Linux). We also offer basic support for [greedy](https://greedy.readthedocs.io/en/latest/reference.html#greedy-usage) and [elastix](https://pypi.org/project/itk-elastix/0.13.0/).
|
|
126
142
|
|
|
127
143
|
### Atlas Reference
|
|
128
|
-
We provide
|
|
129
|
-
|
|
144
|
+
We provide a range of different atlases, namely:
|
|
145
|
+
- [SRI24](https://www.nitrc.org/frs/download.php/4502/sri24_anatomy_unstripped_nifti.zip) and its [skull-stripped version](https://www.nitrc.org/frs/download.php/4499/sri24_anatomy_nifti.zip)
|
|
146
|
+
- A slightly modified SRI24 atlas as found in the BraTS challenges (also with a skull-stripped version)
|
|
147
|
+
- MNI152: [MNI_ICBM_2009c_Nonlinear_Symmetric](https://nist.mni.mcgill.ca/icbm-152-nonlinear-atlases-2009/)
|
|
148
|
+
- A slightly modified MNI152 atlas as found in the BraTS challenge
|
|
149
|
+
|
|
150
|
+
We also support supplying a custom atlas in NIfTI format
|
|
151
|
+
|
|
130
152
|
|
|
131
153
|
### N4 Bias correction
|
|
132
154
|
We currently provide support for N4 Bias correction based on [SimpleITK](https://simpleitk.org/)
|
{brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/constants.py
RENAMED
|
@@ -24,3 +24,6 @@ class Atlas(str, Enum):
|
|
|
24
24
|
|
|
25
25
|
BRATS_MNI152 = "brats_MNI152lin_T1_1mm.nii.gz"
|
|
26
26
|
"""Slightly modified MNI152 atlas as found in the BraTS challenges"""
|
|
27
|
+
|
|
28
|
+
MNI152 = "mni_icbm152_t1_tal_nlin_sym_09c.nii"
|
|
29
|
+
"""MNI_ICBM_2009c_Nonlinear_Symmetric atlas from https://nist.mni.mcgill.ca/icbm-152-nonlinear-atlases-2009/"""
|
|
@@ -6,6 +6,7 @@ from auxiliary.io import read_image, write_image
|
|
|
6
6
|
|
|
7
7
|
from brainles_preprocessing.defacing.defacer import Defacer
|
|
8
8
|
from brainles_preprocessing.defacing.quickshear.nipy_quickshear import run_quickshear
|
|
9
|
+
from brainles_preprocessing.constants import Atlas
|
|
9
10
|
|
|
10
11
|
|
|
11
12
|
class QuickshearDefacer(Defacer):
|
|
@@ -29,14 +30,23 @@ class QuickshearDefacer(Defacer):
|
|
|
29
30
|
```
|
|
30
31
|
"""
|
|
31
32
|
|
|
32
|
-
def __init__(
|
|
33
|
+
def __init__(
|
|
34
|
+
self,
|
|
35
|
+
buffer: float = 10.0,
|
|
36
|
+
force_atlas_registration: bool = True,
|
|
37
|
+
atlas_image_path: Union[str, Path, Atlas] = Atlas.SRI24,
|
|
38
|
+
):
|
|
33
39
|
"""Initialize Quickshear defacer
|
|
34
40
|
|
|
35
41
|
Args:
|
|
36
42
|
buffer (float, optional): buffer parameter from quickshear algorithm. Defaults to 10.0.
|
|
43
|
+
force_atlas_registration (bool, optional): If True, forces atlas registration of the BET mask before defacing to potentially boost quickshear performance. Defaults to True.
|
|
44
|
+
atlas_image_path (Union[str, Path, Atlas], optional): Path to the atlas image or an Atlas enum value that will be used for the optional atlas registrations. Defaults to Atlas.SRI24.
|
|
37
45
|
"""
|
|
38
46
|
super().__init__()
|
|
39
47
|
self.buffer = buffer
|
|
48
|
+
self.force_atlas_registration = force_atlas_registration
|
|
49
|
+
self.atlas_image_path = atlas_image_path
|
|
40
50
|
|
|
41
51
|
def deface(
|
|
42
52
|
self,
|
{brainles_preprocessing-0.5.0 → brainles_preprocessing-0.6.1}/brainles_preprocessing/modality.py
RENAMED
|
@@ -5,9 +5,10 @@ from pathlib import Path
|
|
|
5
5
|
from typing import Dict, Optional, Union
|
|
6
6
|
|
|
7
7
|
from auxiliary.io import read_image, write_image
|
|
8
|
+
from loguru import logger
|
|
8
9
|
|
|
9
10
|
from brainles_preprocessing.brain_extraction.brain_extractor import BrainExtractor
|
|
10
|
-
from brainles_preprocessing.constants import PreprocessorSteps
|
|
11
|
+
from brainles_preprocessing.constants import Atlas, PreprocessorSteps
|
|
11
12
|
from brainles_preprocessing.defacing import Defacer, QuickshearDefacer
|
|
12
13
|
from brainles_preprocessing.normalization.normalizer_base import Normalizer
|
|
13
14
|
from brainles_preprocessing.registration import ( # TODO: this will throw warnings if ANTs or NiftyReg are not installed, not ideal
|
|
@@ -15,8 +16,7 @@ from brainles_preprocessing.registration import ( # TODO: this will throw warni
|
|
|
15
16
|
NiftyRegRegistrator,
|
|
16
17
|
)
|
|
17
18
|
from brainles_preprocessing.registration.registrator import Registrator
|
|
18
|
-
|
|
19
|
-
logger = logging.getLogger(__name__)
|
|
19
|
+
from brainles_preprocessing.utils.zenodo import verify_or_download_atlases
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
class Modality:
|
|
@@ -295,7 +295,7 @@ class Modality:
|
|
|
295
295
|
if self.bet:
|
|
296
296
|
mask_path = Path(mask_path)
|
|
297
297
|
bet_dir = Path(bet_dir)
|
|
298
|
-
bet_img = bet_dir / f"
|
|
298
|
+
bet_img = bet_dir / f"{self.modality_name}_bet.nii.gz"
|
|
299
299
|
|
|
300
300
|
brain_extractor.apply_mask(
|
|
301
301
|
input_image_path=self.current,
|
|
@@ -324,14 +324,27 @@ class Modality:
|
|
|
324
324
|
if self.requires_deface:
|
|
325
325
|
mask_path = Path(mask_path)
|
|
326
326
|
deface_dir = Path(deface_dir)
|
|
327
|
-
defaced_img = deface_dir / f"
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
327
|
+
defaced_img = deface_dir / f"{self.modality_name}_defaced.nii.gz"
|
|
328
|
+
|
|
329
|
+
# For Atlas centric preprocessing, we use the atlas corrected or registered image as input
|
|
330
|
+
# For Native space preprocessing, we use the coregistered image as input
|
|
331
|
+
input_img = (
|
|
332
|
+
self.steps[
|
|
333
|
+
(
|
|
334
|
+
PreprocessorSteps.ATLAS_CORRECTED
|
|
335
|
+
if self.atlas_correction
|
|
336
|
+
else PreprocessorSteps.ATLAS_REGISTERED
|
|
337
|
+
)
|
|
338
|
+
]
|
|
339
|
+
or self.steps[PreprocessorSteps.COREGISTERED]
|
|
340
|
+
)
|
|
341
|
+
|
|
342
|
+
if input_img is None:
|
|
343
|
+
raise ValueError(
|
|
344
|
+
"Input image for defacing is missing. Ensure that the required preprocessing steps "
|
|
345
|
+
"have been performed before defacing."
|
|
333
346
|
)
|
|
334
|
-
|
|
347
|
+
|
|
335
348
|
defacer.apply_mask(
|
|
336
349
|
input_image_path=input_img,
|
|
337
350
|
mask_path=mask_path,
|
|
@@ -428,65 +441,40 @@ class Modality:
|
|
|
428
441
|
"Legacy method. Please Migrate to use the CenterModality Class. Will be removed in future versions.",
|
|
429
442
|
category=DeprecationWarning,
|
|
430
443
|
)
|
|
431
|
-
|
|
432
444
|
bet_dir_path = Path(bet_dir_path)
|
|
433
445
|
bet_log = bet_dir_path / "brain-extraction.log"
|
|
434
446
|
|
|
435
|
-
|
|
436
|
-
mask_path = bet_dir_path / f"
|
|
447
|
+
bet = bet_dir_path / f"{self.modality_name}_bet.nii.gz"
|
|
448
|
+
mask_path = bet_dir_path / f"{self.modality_name}_brain_mask.nii.gz"
|
|
437
449
|
|
|
438
450
|
brain_extractor.extract(
|
|
439
451
|
input_image_path=self.current,
|
|
440
|
-
masked_image_path=
|
|
452
|
+
masked_image_path=bet,
|
|
441
453
|
brain_mask_path=mask_path,
|
|
442
454
|
log_file_path=bet_log,
|
|
443
455
|
)
|
|
444
456
|
|
|
445
457
|
# always temporarily store bet image for center modality, since e.g. quickshear defacing could require it
|
|
446
458
|
# down the line even if the user does not wish to save the bet image
|
|
447
|
-
self.steps[PreprocessorSteps.BET] =
|
|
459
|
+
self.steps[PreprocessorSteps.BET] = bet
|
|
448
460
|
|
|
449
461
|
if self.bet:
|
|
450
|
-
self.current =
|
|
462
|
+
self.current = bet
|
|
451
463
|
return mask_path
|
|
452
464
|
|
|
453
465
|
def deface(
|
|
454
466
|
self,
|
|
455
467
|
defacer,
|
|
456
468
|
defaced_dir_path: Union[str, Path],
|
|
457
|
-
|
|
469
|
+
registrator: Optional[Registrator] = None,
|
|
470
|
+
) -> Path | None:
|
|
458
471
|
"""
|
|
459
472
|
WARNING: Legacy method. Please Migrate to use the CenterModality Class. Will be removed in future versions.
|
|
460
|
-
|
|
461
|
-
Deface the current modality using the specified defacer.
|
|
462
|
-
|
|
463
|
-
Args:
|
|
464
|
-
defacer (Defacer): The defacer object.
|
|
465
|
-
defaced_dir_path (str or Path): Directory to store defacing results.
|
|
466
|
-
|
|
467
|
-
Returns:
|
|
468
|
-
Path: Path to the extracted brain mask.
|
|
469
473
|
"""
|
|
470
|
-
|
|
471
|
-
"
|
|
472
|
-
|
|
474
|
+
raise RuntimeError(
|
|
475
|
+
"The 'deface' method has been deprecated and moved to the CenterModality class as its only supposed to be called once from the CenterModality. "
|
|
476
|
+
"Please update your code to use the 'CenterModality.deface()' method instead."
|
|
473
477
|
)
|
|
474
|
-
if isinstance(defacer, QuickshearDefacer):
|
|
475
|
-
defaced_dir_path = Path(defaced_dir_path)
|
|
476
|
-
atlas_mask_path = (
|
|
477
|
-
defaced_dir_path / f"atlas__{self.modality_name}_deface_mask.nii.gz"
|
|
478
|
-
)
|
|
479
|
-
|
|
480
|
-
defacer.deface(
|
|
481
|
-
mask_image_path=atlas_mask_path,
|
|
482
|
-
input_image_path=self.steps[PreprocessorSteps.BET],
|
|
483
|
-
)
|
|
484
|
-
return atlas_mask_path
|
|
485
|
-
else:
|
|
486
|
-
logger.warning(
|
|
487
|
-
"Defacing method not implemented yet. Skipping defacing for this modality."
|
|
488
|
-
)
|
|
489
|
-
return None
|
|
490
478
|
|
|
491
479
|
def save_current_image(
|
|
492
480
|
self,
|
|
@@ -612,6 +600,7 @@ class CenterModality(Modality):
|
|
|
612
600
|
bet_dir_path: Union[str, Path],
|
|
613
601
|
) -> Path:
|
|
614
602
|
"""
|
|
603
|
+
|
|
615
604
|
Extract the brain region using the specified brain extractor.
|
|
616
605
|
|
|
617
606
|
Args:
|
|
@@ -621,66 +610,95 @@ class CenterModality(Modality):
|
|
|
621
610
|
Returns:
|
|
622
611
|
Path: Path to the extracted brain mask.
|
|
623
612
|
"""
|
|
613
|
+
|
|
624
614
|
bet_dir_path = Path(bet_dir_path)
|
|
625
615
|
bet_log = bet_dir_path / "brain-extraction.log"
|
|
626
616
|
|
|
627
|
-
|
|
628
|
-
mask_path = bet_dir_path / f"
|
|
617
|
+
bet = bet_dir_path / f"{self.modality_name}_bet.nii.gz"
|
|
618
|
+
mask_path = bet_dir_path / f"{self.modality_name}_brain_mask.nii.gz"
|
|
629
619
|
|
|
630
620
|
brain_extractor.extract(
|
|
631
621
|
input_image_path=self.current,
|
|
632
|
-
masked_image_path=
|
|
622
|
+
masked_image_path=bet,
|
|
633
623
|
brain_mask_path=mask_path,
|
|
634
624
|
log_file_path=bet_log,
|
|
635
625
|
)
|
|
636
626
|
|
|
637
|
-
if self.bet_mask_output_path:
|
|
638
|
-
logger.debug(f"Saving bet mask to {self.bet_mask_output_path}")
|
|
639
|
-
self.save_mask(mask_path=mask_path, output_path=self.bet_mask_output_path)
|
|
640
|
-
|
|
641
627
|
# always temporarily store bet image for center modality, since e.g. quickshear defacing could require it
|
|
642
628
|
# down the line even if the user does not wish to save the bet image
|
|
643
|
-
self.steps[PreprocessorSteps.BET] =
|
|
629
|
+
self.steps[PreprocessorSteps.BET] = bet
|
|
644
630
|
|
|
645
631
|
if self.bet:
|
|
646
|
-
self.current =
|
|
632
|
+
self.current = bet
|
|
647
633
|
return mask_path
|
|
648
634
|
|
|
649
635
|
def deface(
|
|
650
636
|
self,
|
|
651
|
-
defacer,
|
|
637
|
+
defacer: Defacer,
|
|
652
638
|
defaced_dir_path: Union[str, Path],
|
|
653
|
-
|
|
639
|
+
registrator: Optional[Registrator] = None,
|
|
640
|
+
) -> Path | None:
|
|
654
641
|
"""
|
|
655
642
|
Deface the current modality using the specified defacer.
|
|
656
643
|
|
|
657
644
|
Args:
|
|
658
645
|
defacer (Defacer): The defacer object.
|
|
659
646
|
defaced_dir_path (str or Path): Directory to store defacing results.
|
|
647
|
+
registrator (Registrator, optional): The registrator object for atlas registration.
|
|
660
648
|
|
|
661
649
|
Returns:
|
|
662
|
-
Path: Path to the
|
|
650
|
+
Path | None: Path to the defacing mask if successful, None otherwise.
|
|
663
651
|
"""
|
|
664
|
-
|
|
665
652
|
if isinstance(defacer, QuickshearDefacer):
|
|
666
653
|
defaced_dir_path = Path(defaced_dir_path)
|
|
667
|
-
|
|
668
|
-
defaced_dir_path / f"atlas__{self.modality_name}_deface_mask.nii.gz"
|
|
669
|
-
)
|
|
654
|
+
mask_path = defaced_dir_path / f"{self.modality_name}_deface_mask.nii.gz"
|
|
670
655
|
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
656
|
+
if self.steps.get(PreprocessorSteps.BET, None) is None:
|
|
657
|
+
raise ValueError(
|
|
658
|
+
"Brain extraction must be performed before defacing. "
|
|
659
|
+
"Please run brain extraction first."
|
|
660
|
+
)
|
|
675
661
|
|
|
676
|
-
if
|
|
677
|
-
logger.
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
662
|
+
if defacer.force_atlas_registration and registrator is not None:
|
|
663
|
+
logger.info("Forcing atlas registration before defacing as requested.")
|
|
664
|
+
atlas_bet = defaced_dir_path / "atlas_bet.nii.gz"
|
|
665
|
+
atlas_bet_M = defaced_dir_path / "M_atlas_bet"
|
|
666
|
+
|
|
667
|
+
# resolve atlas image path
|
|
668
|
+
if isinstance(defacer.atlas_image_path, Atlas):
|
|
669
|
+
atlas_folder = verify_or_download_atlases()
|
|
670
|
+
atlas_image_path = atlas_folder / defacer.atlas_image_path.value
|
|
671
|
+
else:
|
|
672
|
+
atlas_image_path = Path(defacer.atlas_image_path)
|
|
673
|
+
|
|
674
|
+
registrator.register(
|
|
675
|
+
fixed_image_path=atlas_image_path,
|
|
676
|
+
moving_image_path=self.steps[PreprocessorSteps.BET],
|
|
677
|
+
transformed_image_path=atlas_bet,
|
|
678
|
+
matrix_path=atlas_bet_M,
|
|
679
|
+
log_file_path=defaced_dir_path / "atlas_bet.log",
|
|
680
|
+
)
|
|
681
|
+
|
|
682
|
+
deface_mask_atlas = defaced_dir_path / "deface_mask_atlas.nii.gz"
|
|
683
|
+
defacer.deface(
|
|
684
|
+
input_image_path=atlas_bet,
|
|
685
|
+
mask_image_path=deface_mask_atlas,
|
|
686
|
+
)
|
|
687
|
+
|
|
688
|
+
registrator.inverse_transform(
|
|
689
|
+
fixed_image_path=self.steps[PreprocessorSteps.BET],
|
|
690
|
+
moving_image_path=deface_mask_atlas,
|
|
691
|
+
transformed_image_path=mask_path,
|
|
692
|
+
matrix_path=atlas_bet_M,
|
|
693
|
+
log_file_path=defaced_dir_path / "inverse_transform.log",
|
|
694
|
+
)
|
|
695
|
+
else:
|
|
696
|
+
defacer.deface(
|
|
697
|
+
input_image_path=self.steps[PreprocessorSteps.BET],
|
|
698
|
+
mask_image_path=mask_path,
|
|
681
699
|
)
|
|
682
700
|
|
|
683
|
-
return
|
|
701
|
+
return mask_path
|
|
684
702
|
else:
|
|
685
703
|
logger.warning(
|
|
686
704
|
"Defacing method not implemented yet. Skipping defacing for this modality."
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import warnings
|
|
2
|
+
from .atlas_centric_preprocessor import AtlasCentricPreprocessor
|
|
3
|
+
from .native_space_preprocessor import NativeSpacePreprocessor
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
# Deprecation warning for Preprocessor alias, added to ensure backward compatibility.
|
|
7
|
+
class Preprocessor(AtlasCentricPreprocessor):
|
|
8
|
+
def __init__(self, *args, **kwargs):
|
|
9
|
+
warnings.warn(
|
|
10
|
+
"Preprocessor has been renamed to AtlasCentricPreprocessor and is deprecated."
|
|
11
|
+
"The alias will be removed in future releases, please migrate to AtlasCentricPreprocessor.",
|
|
12
|
+
DeprecationWarning,
|
|
13
|
+
stacklevel=2,
|
|
14
|
+
)
|
|
15
|
+
super().__init__(*args, **kwargs)
|