brainles-preprocessing 0.3.5__tar.gz → 0.3.6__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.3.5 → brainles_preprocessing-0.3.6}/PKG-INFO +2 -4
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/README.md +1 -1
- brainles_preprocessing-0.3.6/brainles_preprocessing/constants.py +25 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/preprocessor.py +6 -6
- brainles_preprocessing-0.3.6/brainles_preprocessing/registration/__init__.py +27 -0
- brainles_preprocessing-0.3.6/brainles_preprocessing/utils/zenodo.py +189 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/pyproject.toml +2 -4
- brainles_preprocessing-0.3.5/brainles_preprocessing/constants.py +0 -10
- brainles_preprocessing-0.3.5/brainles_preprocessing/registration/__init__.py +0 -23
- brainles_preprocessing-0.3.5/brainles_preprocessing/registration/atlas/copyright.md +0 -11
- brainles_preprocessing-0.3.5/brainles_preprocessing/registration/atlas/t1_brats_space.nii +0 -0
- brainles_preprocessing-0.3.5/brainles_preprocessing/registration/atlas/t1_skullstripped_brats_space.nii +0 -0
- brainles_preprocessing-0.3.5/brainles_preprocessing/registration/eReg/config_files/TODO.md +0 -0
- brainles_preprocessing-0.3.5/brainles_preprocessing/registration/eReg/eReg.py +0 -100
- brainles_preprocessing-0.3.5/brainles_preprocessing/registration/niftyreg/__init__.py +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/LICENSE +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/__init__.py +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/brain_extraction/__init__.py +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/brain_extraction/brain_extractor.py +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/brats/__init__.py +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/brats/t1_centric.py +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/brats/t1c_centric.py +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/cli.py +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/defacing/__init__.py +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/defacing/defacer.py +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/defacing/quickshear/__init__.py +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/defacing/quickshear/nipy_quickshear.py +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/defacing/quickshear/quickshear.py +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/modality.py +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/normalization/__init__.py +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/normalization/normalizer_base.py +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/normalization/percentile_normalizer.py +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/normalization/windowing_normalizer.py +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/ANTs/ANTs.py +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/ANTs/TODO_ANTs_parameters.py +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/ANTs/__init__.py +0 -0
- {brainles_preprocessing-0.3.5/brainles_preprocessing/registration/eReg → brainles_preprocessing-0.3.6/brainles_preprocessing/registration/elastix}/__init__.py +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/elastix/elastix.py +0 -0
- {brainles_preprocessing-0.3.5/brainles_preprocessing/registration/elastix → brainles_preprocessing-0.3.6/brainles_preprocessing/registration/greedy}/__init__.py +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/greedy/greedy.py +0 -0
- {brainles_preprocessing-0.3.5/brainles_preprocessing/registration/greedy → brainles_preprocessing-0.3.6/brainles_preprocessing/registration/niftyreg}/__init__.py +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg.py +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/groupwise_niftyreg_params.sh +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/groupwise_niftyreg_run.sh +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_aladin +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_average +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_f3d +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_jacobian +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_measure +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_resample +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_tools +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_transform +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/AffineDeformationFieldKernel.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/AladinContent.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/BlockMatchingKernel.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/CPUAffineDeformationFieldKernel.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/CPUBlockMatchingKernel.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/CPUConvolutionKernel.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/CPUKernelFactory.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/CPUOptimiseKernel.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/CPUResampleImageKernel.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/ConvolutionKernel.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/Kernel.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/KernelFactory.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/OptimiseKernel.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/Platform.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/ResampleImageKernel.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_ReadWriteImage.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_ReadWriteMatrix.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_aladin.cpp +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_aladin.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_aladin_sym.cpp +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_aladin_sym.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_base.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_blockMatching.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_dti.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_f3d.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_f3d2.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_f3d_sym.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_femTrans.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_globalTrans.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_kld.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_lncc.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_localTrans.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_localTrans_jac.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_localTrans_regul.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_macros.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_maths.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_maths_eigen.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_measure.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_mind.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_nmi.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_optimiser.cpp +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_optimiser.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_resampling.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_splineBasis.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_ssd.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_stringFormat.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_tools.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/nifti1.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/nifti1_io.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/png.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/pngconf.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/pngdebug.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/pnginfo.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/pnglibconf.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/pngpriv.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/pngstruct.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/readpng.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/reg_png.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/zlib.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/znzlib.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/zutil.h +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/reg_aladin +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/reg_resample +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/rigid_reg.sh +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/transform.sh +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/registration/registrator.py +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/utils/__init__.py +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/utils/generic.py +0 -0
- {brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/utils/logging_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: brainles_preprocessing
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.6
|
|
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
|
|
@@ -17,14 +17,12 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
17
17
|
Classifier: Programming Language :: Python :: 3.12
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.13
|
|
19
19
|
Provides-Extra: all
|
|
20
|
-
Provides-Extra: ereg
|
|
21
20
|
Provides-Extra: itk-elastix
|
|
22
21
|
Provides-Extra: picsl-greedy
|
|
23
22
|
Requires-Dist: antspyx (>=0.4.2,<0.5.0)
|
|
24
23
|
Requires-Dist: auxiliary (>=0.0.42)
|
|
25
24
|
Requires-Dist: black (>=22.1.0,<23.0.0)
|
|
26
25
|
Requires-Dist: brainles_hd_bet (>=0.0.10)
|
|
27
|
-
Requires-Dist: ereg (>=0.0.10,<0.0.11) ; extra == "all" or extra == "ereg"
|
|
28
26
|
Requires-Dist: itk-elastix (>=0.20.0,<0.21.0) ; extra == "all" or extra == "itk-elastix"
|
|
29
27
|
Requires-Dist: nibabel (>=3.2.1)
|
|
30
28
|
Requires-Dist: numpy (>=1.23.0,<2.0.0)
|
|
@@ -161,7 +159,7 @@ We provide a (WIP) documentation. Have a look [here](https://brainles-preprocess
|
|
|
161
159
|
Please credit the authors by citing their work.
|
|
162
160
|
|
|
163
161
|
### Registration
|
|
164
|
-
We currently provide support for [ANTs](https://github.com/ANTsX/ANTs) (default), [Niftyreg](https://github.com/KCL-BMEIS/niftyreg) (Linux)
|
|
162
|
+
We currently provide support for [ANTs](https://github.com/ANTsX/ANTs) (default), [Niftyreg](https://github.com/KCL-BMEIS/niftyreg) (Linux).
|
|
165
163
|
|
|
166
164
|
### Atlas Reference
|
|
167
165
|
We provide the SRI-24 atlas from this [publication](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2915788/).
|
|
@@ -121,7 +121,7 @@ We provide a (WIP) documentation. Have a look [here](https://brainles-preprocess
|
|
|
121
121
|
Please credit the authors by citing their work.
|
|
122
122
|
|
|
123
123
|
### Registration
|
|
124
|
-
We currently provide support for [ANTs](https://github.com/ANTsX/ANTs) (default), [Niftyreg](https://github.com/KCL-BMEIS/niftyreg) (Linux)
|
|
124
|
+
We currently provide support for [ANTs](https://github.com/ANTsX/ANTs) (default), [Niftyreg](https://github.com/KCL-BMEIS/niftyreg) (Linux).
|
|
125
125
|
|
|
126
126
|
### Atlas Reference
|
|
127
127
|
We provide the SRI-24 atlas from this [publication](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2915788/).
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
from enum import Enum, IntEnum
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class PreprocessorSteps(IntEnum):
|
|
5
|
+
INPUT = 0
|
|
6
|
+
COREGISTERED = 1
|
|
7
|
+
ATLAS_REGISTERED = 2
|
|
8
|
+
ATLAS_CORRECTED = 3
|
|
9
|
+
BET = 4
|
|
10
|
+
DEFACED = 5
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class Atlas(str, Enum):
|
|
14
|
+
BRATS_SRI24 = "brats_sri24.nii"
|
|
15
|
+
"""Slightly modified SRI24 atlas as found in the BraTS challenges"""
|
|
16
|
+
BRATS_SRI24_SKULLSTRIPPED = "brats_sri24_skullstripped.nii"
|
|
17
|
+
"""Slightly modified SRI24 skull stripped atlas as found in the BraTS challenges"""
|
|
18
|
+
|
|
19
|
+
SRI24 = "sri24.nii"
|
|
20
|
+
"""SRI24 atlas from https://www.nitrc.org/frs/download.php/4502/sri24_anatomy_unstripped_nifti.zip"""
|
|
21
|
+
SRI24_SKULLSTRIPPED = "sri24_skullstripped.nii"
|
|
22
|
+
"""SRI24 skull stripped atlas from https://www.nitrc.org/frs/download.php/4499/sri24_anatomy_nifti.zip"""
|
|
23
|
+
|
|
24
|
+
BRATS_MNI152 = "brats_MNI152lin_T1_1mm.nii.gz"
|
|
25
|
+
"""Slightly modified MNI152 atlas as found in the BraTS challenges"""
|
{brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/preprocessor.py
RENAMED
|
@@ -12,8 +12,9 @@ from pathlib import Path
|
|
|
12
12
|
from typing import List, Optional, Union
|
|
13
13
|
import warnings
|
|
14
14
|
|
|
15
|
-
from brainles_preprocessing.constants import PreprocessorSteps
|
|
15
|
+
from brainles_preprocessing.constants import Atlas, PreprocessorSteps
|
|
16
16
|
from brainles_preprocessing.defacing import Defacer, QuickshearDefacer
|
|
17
|
+
from brainles_preprocessing.utils.zenodo import verify_or_download_atlases
|
|
17
18
|
|
|
18
19
|
from .brain_extraction.brain_extractor import BrainExtractor, HDBetExtractor
|
|
19
20
|
from .modality import Modality, CenterModality
|
|
@@ -50,7 +51,7 @@ class Preprocessor:
|
|
|
50
51
|
registrator: Registrator = None,
|
|
51
52
|
brain_extractor: Optional[BrainExtractor] = None,
|
|
52
53
|
defacer: Optional[Defacer] = None,
|
|
53
|
-
atlas_image_path: Union[str, Path] =
|
|
54
|
+
atlas_image_path: Union[str, Path, Atlas] = Atlas.BRATS_SRI24,
|
|
54
55
|
temp_folder: Optional[Union[str, Path]] = None,
|
|
55
56
|
use_gpu: Optional[bool] = None,
|
|
56
57
|
limit_cuda_visible_devices: Optional[str] = None,
|
|
@@ -67,10 +68,9 @@ class Preprocessor:
|
|
|
67
68
|
self.center_modality = center_modality
|
|
68
69
|
self.moving_modalities = moving_modalities
|
|
69
70
|
|
|
70
|
-
if atlas_image_path
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
)
|
|
71
|
+
if isinstance(atlas_image_path, Atlas):
|
|
72
|
+
atlas_folder = verify_or_download_atlases()
|
|
73
|
+
self.atlas_image_path = atlas_folder / atlas_image_path.value
|
|
74
74
|
else:
|
|
75
75
|
self.atlas_image_path = Path(atlas_image_path)
|
|
76
76
|
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import warnings
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
try:
|
|
5
|
+
from .ANTs.ANTs import ANTsRegistrator
|
|
6
|
+
except ImportError:
|
|
7
|
+
warnings.warn(
|
|
8
|
+
"ANTS package not found. If you want to use it, please install it using 'pip install antspyx'"
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
from .niftyreg.niftyreg import NiftyRegRegistrator
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
try:
|
|
16
|
+
from .elastix.elastix import ElastixRegistrator
|
|
17
|
+
except ImportError:
|
|
18
|
+
warnings.warn(
|
|
19
|
+
"itk-elastix package not found. If you want to use it, please install it using 'pip install brainles_preprocessing[itk-elastix]'"
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
try:
|
|
23
|
+
from .greedy.greedy import GreedyRegistrator
|
|
24
|
+
except ImportError:
|
|
25
|
+
warnings.warn(
|
|
26
|
+
"picsl_greedy package not found. If you want to use it, please install it using 'pip install brainles_preprocessing[picsl_greedy]'"
|
|
27
|
+
)
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import shutil
|
|
4
|
+
import sys
|
|
5
|
+
import zipfile
|
|
6
|
+
from io import BytesIO
|
|
7
|
+
from pathlib import Path
|
|
8
|
+
from typing import Dict, List, Tuple
|
|
9
|
+
|
|
10
|
+
import requests
|
|
11
|
+
from rich.progress import Progress, SpinnerColumn, TextColumn
|
|
12
|
+
|
|
13
|
+
from brainles_preprocessing.utils.logging_utils import LoggingManager
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
logging_man = LoggingManager(name=__name__)
|
|
17
|
+
logger = logging_man.get_logger()
|
|
18
|
+
|
|
19
|
+
ZENODO_RECORD_URL = "https://zenodo.org/api/records/15236131"
|
|
20
|
+
ATLASES_FOLDER = Path(__file__).parent.parent / "registration" / "atlases"
|
|
21
|
+
ATLASES_DIR_PATTERN = "atlases_v*.*.*"
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def verify_or_download_atlases() -> Path:
|
|
25
|
+
"""Check if latest atlases are present and download them otherwise.
|
|
26
|
+
|
|
27
|
+
Returns:
|
|
28
|
+
Path: Path to the atlases folder.
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
zenodo_data = _get_zenodo_metadata_and_archive_url()
|
|
32
|
+
if zenodo_data:
|
|
33
|
+
zenodo_metadata, archive_url = zenodo_data
|
|
34
|
+
|
|
35
|
+
matching_folders = list(ATLASES_FOLDER.glob(ATLASES_DIR_PATTERN))
|
|
36
|
+
# Get the latest downloaded atlases
|
|
37
|
+
latest_downloaded_atlases = _get_latest_version_folder_name(matching_folders)
|
|
38
|
+
|
|
39
|
+
if not latest_downloaded_atlases:
|
|
40
|
+
if not zenodo_data:
|
|
41
|
+
logger.error(
|
|
42
|
+
"Atlases not found locally and Zenodo could not be reached. Exiting..."
|
|
43
|
+
)
|
|
44
|
+
sys.exit()
|
|
45
|
+
logger.info(f"Atlases not found locally")
|
|
46
|
+
|
|
47
|
+
return _download_atlases(
|
|
48
|
+
zenodo_metadata=zenodo_metadata,
|
|
49
|
+
archive_url=archive_url,
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
logger.info(f"Found downloaded local atlases: {latest_downloaded_atlases}")
|
|
53
|
+
|
|
54
|
+
if not zenodo_metadata:
|
|
55
|
+
logger.warning(
|
|
56
|
+
"Zenodo server could not be reached. Using the latest downloaded atlases."
|
|
57
|
+
)
|
|
58
|
+
return ATLASES_FOLDER / latest_downloaded_atlases
|
|
59
|
+
|
|
60
|
+
# Compare the latest downloaded atlases with the latest Zenodo version
|
|
61
|
+
if zenodo_metadata["version"] == latest_downloaded_atlases.split("_v")[1]:
|
|
62
|
+
logger.info(
|
|
63
|
+
f"Latest atlases ({zenodo_metadata['version']}) are already present."
|
|
64
|
+
)
|
|
65
|
+
return ATLASES_FOLDER / latest_downloaded_atlases
|
|
66
|
+
|
|
67
|
+
logger.info(
|
|
68
|
+
f"New atlases available on Zenodo ({zenodo_metadata['version']}). Deleting old and fetching new atlases..."
|
|
69
|
+
)
|
|
70
|
+
# delete old atlases
|
|
71
|
+
try:
|
|
72
|
+
shutil.rmtree(
|
|
73
|
+
ATLASES_FOLDER / latest_downloaded_atlases,
|
|
74
|
+
)
|
|
75
|
+
except OSError as e:
|
|
76
|
+
logger.warning(f"Failed to delete old atlases: {e}")
|
|
77
|
+
return _download_atlases(zenodo_metadata=zenodo_metadata, archive_url=archive_url)
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
def _get_latest_version_folder_name(folders: List[Path]) -> str | None:
|
|
81
|
+
"""Get the latest (non empty) version folder name from the list of folders.
|
|
82
|
+
|
|
83
|
+
Args:
|
|
84
|
+
folders (List[Path]): List of folders matching the pattern.
|
|
85
|
+
|
|
86
|
+
Returns:
|
|
87
|
+
str | None: Latest version folder name if one exists, else None.
|
|
88
|
+
"""
|
|
89
|
+
if not folders:
|
|
90
|
+
return None
|
|
91
|
+
latest_downloaded_folder = sorted(
|
|
92
|
+
folders,
|
|
93
|
+
reverse=True,
|
|
94
|
+
key=lambda x: tuple(map(int, str(x).split("_v")[1].split("."))),
|
|
95
|
+
)[0]
|
|
96
|
+
# check folder is not empty
|
|
97
|
+
if not list(latest_downloaded_folder.glob("*")):
|
|
98
|
+
return None
|
|
99
|
+
return latest_downloaded_folder.name
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
def _get_zenodo_metadata_and_archive_url() -> Tuple[Dict, str] | None:
|
|
103
|
+
"""Get the metadata for the Zenodo record and the files archive url.
|
|
104
|
+
|
|
105
|
+
Returns:
|
|
106
|
+
Tuple: (dict: Metadata for the Zenodo record, str: URL to the archive file)
|
|
107
|
+
"""
|
|
108
|
+
try:
|
|
109
|
+
response = requests.get(f"{ZENODO_RECORD_URL}")
|
|
110
|
+
if response.status_code != 200:
|
|
111
|
+
logger.error(
|
|
112
|
+
f"Cant find atlases on Zenodo ({ZENODO_RECORD_URL}). Exiting..."
|
|
113
|
+
)
|
|
114
|
+
return None
|
|
115
|
+
data = response.json()
|
|
116
|
+
return data["metadata"], data["links"]["archive"]
|
|
117
|
+
|
|
118
|
+
except requests.exceptions.RequestException as e:
|
|
119
|
+
logger.warning(f"Failed to fetch Zenodo metadata: {e}")
|
|
120
|
+
return None
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
def _download_atlases(zenodo_metadata: Dict, archive_url: str) -> Path:
|
|
124
|
+
"""Download the latest atlases from Zenodo for the requested record and extract them to the target folder.
|
|
125
|
+
|
|
126
|
+
Args:
|
|
127
|
+
zenodo_metadata (Dict): Metadata for the Zenodo record.
|
|
128
|
+
archive_url (str): URL to the archive file.
|
|
129
|
+
|
|
130
|
+
Returns:
|
|
131
|
+
Path: Path to the atlases folder for the requested record.
|
|
132
|
+
"""
|
|
133
|
+
record_folder = ATLASES_FOLDER / f"atlases_v{zenodo_metadata['version']}"
|
|
134
|
+
# ensure folder exists
|
|
135
|
+
record_folder.mkdir(parents=True, exist_ok=True)
|
|
136
|
+
|
|
137
|
+
logger.info(f"Downloading atlases from Zenodo. This might take a while...")
|
|
138
|
+
# Make a GET request to the URL
|
|
139
|
+
response = requests.get(archive_url, stream=True)
|
|
140
|
+
# Ensure the request was successful
|
|
141
|
+
if response.status_code != 200:
|
|
142
|
+
raise RuntimeError(
|
|
143
|
+
f"Failed to download atlases from {archive_url}. Status code: {response.status_code}"
|
|
144
|
+
)
|
|
145
|
+
|
|
146
|
+
_extract_archive(response=response, record_folder=record_folder)
|
|
147
|
+
|
|
148
|
+
logger.info(f"Zip file extracted successfully to {record_folder}")
|
|
149
|
+
return record_folder
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
def _extract_archive(response: requests.Response, record_folder: Path):
|
|
153
|
+
# Download with progress bar
|
|
154
|
+
chunk_size = 1024 # 1KB
|
|
155
|
+
bytes_io = BytesIO()
|
|
156
|
+
|
|
157
|
+
with Progress(
|
|
158
|
+
SpinnerColumn(),
|
|
159
|
+
TextColumn("[cyan]Downloading atlases..."),
|
|
160
|
+
TextColumn("[cyan]{task.completed:.2f} MB"),
|
|
161
|
+
transient=True,
|
|
162
|
+
) as progress:
|
|
163
|
+
task = progress.add_task("", total=None) # Indeterminate progress
|
|
164
|
+
|
|
165
|
+
for data in response.iter_content(chunk_size=chunk_size):
|
|
166
|
+
bytes_io.write(data)
|
|
167
|
+
progress.update(
|
|
168
|
+
task, advance=len(data) / (chunk_size**2)
|
|
169
|
+
) # Convert bytes to MB
|
|
170
|
+
|
|
171
|
+
# Extract the downloaded zip file to the target folder
|
|
172
|
+
with zipfile.ZipFile(bytes_io) as zip_ref:
|
|
173
|
+
zip_ref.extractall(record_folder)
|
|
174
|
+
|
|
175
|
+
# check if the extracted file is still a zip
|
|
176
|
+
for f in record_folder.iterdir():
|
|
177
|
+
if f.is_file() and f.suffix == ".zip":
|
|
178
|
+
with zipfile.ZipFile(f) as zip_ref:
|
|
179
|
+
files = zip_ref.namelist()
|
|
180
|
+
with Progress(transient=True) as progress:
|
|
181
|
+
task = progress.add_task(
|
|
182
|
+
"[cyan]Extracting files...", total=len(files)
|
|
183
|
+
)
|
|
184
|
+
# Iterate over the files and extract them
|
|
185
|
+
for i, file in enumerate(files):
|
|
186
|
+
zip_ref.extract(file, record_folder)
|
|
187
|
+
# Update the progress bar
|
|
188
|
+
progress.update(task, completed=i + 1)
|
|
189
|
+
f.unlink() # remove zip after extraction
|
|
@@ -14,7 +14,7 @@ exclude = [
|
|
|
14
14
|
]
|
|
15
15
|
|
|
16
16
|
name = "brainles_preprocessing"
|
|
17
|
-
version = "0.3.
|
|
17
|
+
version = "0.3.6" # will be overwritten by poetry-dynamic-versioning but needs to be set
|
|
18
18
|
description = "Tool for preprocessing tasks in biomedical imaging, with a focus on (but not limited to) multi-modal brain MRI"
|
|
19
19
|
license = "Apache-2.0"
|
|
20
20
|
|
|
@@ -69,14 +69,12 @@ auxiliary = ">=0.0.42"
|
|
|
69
69
|
rich = "^13.6.0"
|
|
70
70
|
|
|
71
71
|
# optional registration backends
|
|
72
|
-
ereg = { version = "^0.0.10", optional = true }
|
|
73
72
|
itk-elastix = { version = "^0.20.0", optional = true }
|
|
74
73
|
picsl_greedy = { version = "^0.0.6", optional = true }
|
|
75
74
|
|
|
76
75
|
|
|
77
76
|
[tool.poetry.extras]
|
|
78
|
-
all = ["
|
|
79
|
-
ereg = ["ereg"]
|
|
77
|
+
all = ["itk-elastix", "picsl_greedy"]
|
|
80
78
|
itk-elastix = ["itk-elastix"]
|
|
81
79
|
picsl_greedy = ["picsl_greedy"]
|
|
82
80
|
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import warnings
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
try:
|
|
5
|
-
from .ANTs.ANTs import ANTsRegistrator
|
|
6
|
-
except ImportError:
|
|
7
|
-
warnings.warn(
|
|
8
|
-
"ANTS package not found. If you want to use it, please install it using 'pip install antspyx'"
|
|
9
|
-
)
|
|
10
|
-
|
|
11
|
-
try:
|
|
12
|
-
from .eReg.eReg import eRegRegistrator
|
|
13
|
-
except ImportError:
|
|
14
|
-
warnings.warn(
|
|
15
|
-
"eReg package not found. If you want to use it, please install it using 'pip install brainles_preprocessing[ereg]'"
|
|
16
|
-
)
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
from .niftyreg.niftyreg import NiftyRegRegistrator
|
|
20
|
-
|
|
21
|
-
from .elastix.elastix import ElastixRegistrator
|
|
22
|
-
|
|
23
|
-
from .greedy.greedy import GreedyRegistrator
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
Copyright (C) 1993-2004 Louis Collins, McConnell Brain
|
|
2
|
-
Imaging Centre, Montreal Neurological Institute, McGill University.
|
|
3
|
-
Permission to use, copy, modify, and distribute this software and
|
|
4
|
-
its documentation for any purpose and without fee is hereby granted,
|
|
5
|
-
provided that the above copyright notice appear in all copies. The
|
|
6
|
-
authors and McGill University make no representations about the
|
|
7
|
-
suitability of this software for any purpose. It is provided "as
|
|
8
|
-
is" without express or implied warranty. The authors are not
|
|
9
|
-
responsible for any data loss, equipment damage, property loss, or
|
|
10
|
-
injury to subjects or patients resulting from the use or misuse of
|
|
11
|
-
this software package.
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
# TODO add typing and docs
|
|
2
|
-
import os
|
|
3
|
-
|
|
4
|
-
from ereg.registration import RegistrationClass
|
|
5
|
-
|
|
6
|
-
from brainles_preprocessing.registration.registrator import Registrator
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
class eRegRegistrator(Registrator):
|
|
10
|
-
def __init__(
|
|
11
|
-
self,
|
|
12
|
-
# TODO define default
|
|
13
|
-
configuration_file: str | None = None,
|
|
14
|
-
):
|
|
15
|
-
"""
|
|
16
|
-
# TODO
|
|
17
|
-
"""
|
|
18
|
-
self.configuration_file = configuration_file
|
|
19
|
-
|
|
20
|
-
def register(
|
|
21
|
-
self,
|
|
22
|
-
fixed_image_path: str,
|
|
23
|
-
moving_image_path: str,
|
|
24
|
-
transformed_image_path: str,
|
|
25
|
-
matrix_path: str,
|
|
26
|
-
log_file_path: str = None,
|
|
27
|
-
) -> None:
|
|
28
|
-
"""
|
|
29
|
-
Register images using eReg.
|
|
30
|
-
|
|
31
|
-
Args:
|
|
32
|
-
fixed_image_path (str): Path to the fixed image.
|
|
33
|
-
moving_image_path (str): Path to the moving image.
|
|
34
|
-
transformed_image_path (str): Path to the transformed image (output).
|
|
35
|
-
matrix_path (str): Path to the transformation matrix (output).
|
|
36
|
-
log_file_path (str): Path to the log file.
|
|
37
|
-
"""
|
|
38
|
-
# TODO do we need to handle kwargs?
|
|
39
|
-
registrator = RegistrationClass(
|
|
40
|
-
configuration_file=self.configuration_file,
|
|
41
|
-
)
|
|
42
|
-
|
|
43
|
-
matrix_path = _add_mat_suffix(matrix_path)
|
|
44
|
-
|
|
45
|
-
registrator.register(
|
|
46
|
-
target_image=fixed_image_path,
|
|
47
|
-
moving_image=moving_image_path,
|
|
48
|
-
output_image=transformed_image_path,
|
|
49
|
-
transform_file=matrix_path,
|
|
50
|
-
log_file=log_file_path,
|
|
51
|
-
)
|
|
52
|
-
|
|
53
|
-
def transform(
|
|
54
|
-
self,
|
|
55
|
-
fixed_image_path: str,
|
|
56
|
-
moving_image_path: str,
|
|
57
|
-
transformed_image_path: str,
|
|
58
|
-
matrix_path: str,
|
|
59
|
-
log_file_path: str = None,
|
|
60
|
-
) -> None:
|
|
61
|
-
"""
|
|
62
|
-
Apply a transformation using eReg.
|
|
63
|
-
|
|
64
|
-
Args:
|
|
65
|
-
fixed_image_path (str): Path to the fixed image.
|
|
66
|
-
moving_image_path (str): Path to the moving image.
|
|
67
|
-
transformed_image_path (str): Path to the transformed image (output).
|
|
68
|
-
matrix_path (str): Path to the transformation matrix.
|
|
69
|
-
log_file_path (str): Path to the log file.
|
|
70
|
-
"""
|
|
71
|
-
# TODO do we need to handle kwargs?
|
|
72
|
-
registrator = RegistrationClass(
|
|
73
|
-
configuration_file=self.configuration_file,
|
|
74
|
-
)
|
|
75
|
-
|
|
76
|
-
matrix_path = _add_mat_suffix(matrix_path)
|
|
77
|
-
|
|
78
|
-
registrator.resample_image(
|
|
79
|
-
target_image=fixed_image_path,
|
|
80
|
-
moving_image=moving_image_path,
|
|
81
|
-
output_image=transformed_image_path,
|
|
82
|
-
transform_file=matrix_path,
|
|
83
|
-
log_file=log_file_path,
|
|
84
|
-
)
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
def _add_mat_suffix(filename: str) -> str:
|
|
88
|
-
"""
|
|
89
|
-
Adds a ".mat" suffix to the filename if it doesn't have any extension.
|
|
90
|
-
|
|
91
|
-
Parameters:
|
|
92
|
-
filename (str): The filename to check and potentially modify.
|
|
93
|
-
|
|
94
|
-
Returns:
|
|
95
|
-
str: The filename with ".mat" suffix added if needed.
|
|
96
|
-
"""
|
|
97
|
-
base, ext = os.path.splitext(filename)
|
|
98
|
-
if not ext:
|
|
99
|
-
filename += ".mat"
|
|
100
|
-
return filename
|
|
File without changes
|
|
File without changes
|
{brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{brainles_preprocessing-0.3.5 → brainles_preprocessing-0.3.6}/brainles_preprocessing/modality.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|