brainles-preprocessing 0.6.4__tar.gz → 0.6.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.
Files changed (122) hide show
  1. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/PKG-INFO +1 -1
  2. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/modality.py +26 -12
  3. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/normalization/normalizer_base.py +2 -1
  4. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/normalization/percentile_normalizer.py +2 -1
  5. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/normalization/windowing_normalizer.py +2 -1
  6. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/preprocessor/atlas_centric_preprocessor.py +29 -24
  7. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/ANTs/ANTs.py +15 -3
  8. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg.py +11 -1
  9. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/rigid_reg.sh +4 -2
  10. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/transform.sh +4 -2
  11. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/registrator.py +2 -2
  12. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/pyproject.toml +1 -1
  13. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/LICENSE +0 -0
  14. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/README.md +0 -0
  15. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/__init__.py +0 -0
  16. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/brain_extraction/__init__.py +0 -0
  17. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/brain_extraction/brain_extractor.py +0 -0
  18. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/brain_extraction/synthstrip.py +0 -0
  19. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/brats/__init__.py +0 -0
  20. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/brats/t1_centric.py +0 -0
  21. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/brats/t1c_centric.py +0 -0
  22. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/cli.py +0 -0
  23. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/constants.py +0 -0
  24. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/defacing/__init__.py +0 -0
  25. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/defacing/defacer.py +0 -0
  26. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/defacing/quickshear/__init__.py +0 -0
  27. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/defacing/quickshear/nipy_quickshear.py +0 -0
  28. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/defacing/quickshear/quickshear.py +0 -0
  29. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/n4_bias_correction/__init__.py +0 -0
  30. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/n4_bias_correction/n4_bias_corrector.py +0 -0
  31. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/n4_bias_correction/sitk/__init__.py +0 -0
  32. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/n4_bias_correction/sitk/sitk_n4_bias_corrector.py +0 -0
  33. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/normalization/__init__.py +0 -0
  34. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/preprocessor/__init__.py +0 -0
  35. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/preprocessor/native_space_preprocessor.py +0 -0
  36. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/preprocessor/preprocessor.py +0 -0
  37. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/ANTs/TODO_ANTs_parameters.py +0 -0
  38. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/ANTs/__init__.py +0 -0
  39. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/__init__.py +0 -0
  40. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/elastix/__init__.py +0 -0
  41. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/elastix/elastix.py +0 -0
  42. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/greedy/__init__.py +0 -0
  43. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/greedy/greedy.py +0 -0
  44. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/__init__.py +0 -0
  45. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/groupwise_niftyreg_params.sh +0 -0
  46. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/groupwise_niftyreg_run.sh +0 -0
  47. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_aladin +0 -0
  48. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_average +0 -0
  49. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_f3d +0 -0
  50. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_jacobian +0 -0
  51. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_measure +0 -0
  52. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_resample +0 -0
  53. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_tools +0 -0
  54. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_transform +0 -0
  55. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/AffineDeformationFieldKernel.h +0 -0
  56. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/AladinContent.h +0 -0
  57. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/BlockMatchingKernel.h +0 -0
  58. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/CPUAffineDeformationFieldKernel.h +0 -0
  59. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/CPUBlockMatchingKernel.h +0 -0
  60. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/CPUConvolutionKernel.h +0 -0
  61. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/CPUKernelFactory.h +0 -0
  62. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/CPUOptimiseKernel.h +0 -0
  63. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/CPUResampleImageKernel.h +0 -0
  64. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/ConvolutionKernel.h +0 -0
  65. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/Kernel.h +0 -0
  66. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/KernelFactory.h +0 -0
  67. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/OptimiseKernel.h +0 -0
  68. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/Platform.h +0 -0
  69. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/ResampleImageKernel.h +0 -0
  70. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_ReadWriteImage.h +0 -0
  71. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_ReadWriteMatrix.h +0 -0
  72. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_aladin.cpp +0 -0
  73. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_aladin.h +0 -0
  74. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_aladin_sym.cpp +0 -0
  75. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_aladin_sym.h +0 -0
  76. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_base.h +0 -0
  77. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_blockMatching.h +0 -0
  78. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_dti.h +0 -0
  79. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_f3d.h +0 -0
  80. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_f3d2.h +0 -0
  81. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_f3d_sym.h +0 -0
  82. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_femTrans.h +0 -0
  83. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_globalTrans.h +0 -0
  84. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_kld.h +0 -0
  85. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_lncc.h +0 -0
  86. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_localTrans.h +0 -0
  87. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_localTrans_jac.h +0 -0
  88. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_localTrans_regul.h +0 -0
  89. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_macros.h +0 -0
  90. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_maths.h +0 -0
  91. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_maths_eigen.h +0 -0
  92. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_measure.h +0 -0
  93. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_mind.h +0 -0
  94. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_nmi.h +0 -0
  95. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_optimiser.cpp +0 -0
  96. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_optimiser.h +0 -0
  97. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_resampling.h +0 -0
  98. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_splineBasis.h +0 -0
  99. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_ssd.h +0 -0
  100. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_stringFormat.h +0 -0
  101. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_tools.h +0 -0
  102. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/nifti1.h +0 -0
  103. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/nifti1_io.h +0 -0
  104. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/png.h +0 -0
  105. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/pngconf.h +0 -0
  106. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/pngdebug.h +0 -0
  107. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/pnginfo.h +0 -0
  108. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/pnglibconf.h +0 -0
  109. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/pngpriv.h +0 -0
  110. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/pngstruct.h +0 -0
  111. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/readpng.h +0 -0
  112. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/reg_png.h +0 -0
  113. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/zlib.h +0 -0
  114. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/znzlib.h +0 -0
  115. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/zutil.h +0 -0
  116. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/reg_aladin +0 -0
  117. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/reg_resample +0 -0
  118. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/transform.py +0 -0
  119. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/utils/__init__.py +0 -0
  120. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/utils/citation_reminder.py +0 -0
  121. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/utils/generic.py +0 -0
  122. {brainles_preprocessing-0.6.4 → brainles_preprocessing-0.6.6}/brainles_preprocessing/utils/zenodo.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: brainles_preprocessing
3
- Version: 0.6.4
3
+ Version: 0.6.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
@@ -139,7 +139,9 @@ class Modality:
139
139
  else:
140
140
  self.normalized_defaced_output_path = None
141
141
 
142
- self.steps = {k: None for k in PreprocessorSteps}
142
+ self.steps: Dict[PreprocessorSteps, Path | None] = {
143
+ k: None for k in PreprocessorSteps
144
+ }
143
145
  self.steps[PreprocessorSteps.INPUT] = self.input_path
144
146
 
145
147
  @property
@@ -265,7 +267,7 @@ class Modality:
265
267
  moving_image_path=self.current,
266
268
  transformed_image_path=registered,
267
269
  matrix_path=registered_matrix,
268
- log_file_path=registered_log,
270
+ log_file_path=str(registered_log),
269
271
  )
270
272
  self.current = registered
271
273
  self.steps[step] = registered
@@ -394,24 +396,24 @@ class Modality:
394
396
  ), "Coregistration must be performed before applying atlas registration."
395
397
 
396
398
  registrator.transform(
397
- fixed_image_path=fixed_image_path,
398
- moving_image_path=self.steps[PreprocessorSteps.INPUT],
399
- transformed_image_path=transformed,
399
+ fixed_image_path=str(fixed_image_path),
400
+ moving_image_path=str(self.steps[PreprocessorSteps.INPUT]),
401
+ transformed_image_path=str(transformed),
400
402
  matrix_path=[
401
403
  self.transformation_paths[
402
404
  PreprocessorSteps.COREGISTERED
403
405
  ], # coregistration matrix
404
406
  transformation_matrix_path, # atlas registration matrix
405
407
  ],
406
- log_file_path=transformed_log,
408
+ log_file_path=str(transformed_log),
407
409
  )
408
410
  else:
409
411
  registrator.transform(
410
- fixed_image_path=fixed_image_path,
411
- moving_image_path=self.current,
412
- transformed_image_path=transformed,
413
- matrix_path=transformation_matrix_path,
414
- log_file_path=transformed_log,
412
+ fixed_image_path=str(fixed_image_path),
413
+ moving_image_path=str(self.current),
414
+ transformed_image_path=str(transformed),
415
+ matrix_path=str(transformation_matrix_path),
416
+ log_file_path=str(transformed_log),
415
417
  )
416
418
 
417
419
  self.current = transformed
@@ -638,6 +640,12 @@ class CenterModality(Modality):
638
640
 
639
641
  if self.bet:
640
642
  self.current = bet
643
+
644
+ if self.bet_mask_output_path:
645
+ self.save_mask(
646
+ mask_path=mask_path,
647
+ output_path=self.bet_mask_output_path,
648
+ )
641
649
  return mask_path
642
650
 
643
651
  def deface(
@@ -684,7 +692,7 @@ class CenterModality(Modality):
684
692
  moving_image_path=self.steps[PreprocessorSteps.BET],
685
693
  transformed_image_path=atlas_bet,
686
694
  matrix_path=atlas_bet_M,
687
- log_file_path=defaced_dir_path / "atlas_bet.log",
695
+ log_file_path=str(defaced_dir_path / "atlas_bet.log"),
688
696
  )
689
697
 
690
698
  deface_mask_atlas = defaced_dir_path / "deface_mask_atlas.nii.gz"
@@ -706,6 +714,12 @@ class CenterModality(Modality):
706
714
  mask_image_path=mask_path,
707
715
  )
708
716
 
717
+ if self.defacing_mask_output_path:
718
+ self.save_mask(
719
+ mask_path=mask_path,
720
+ output_path=self.defacing_mask_output_path,
721
+ )
722
+
709
723
  return mask_path
710
724
  else:
711
725
  logger.warning(
@@ -1,4 +1,5 @@
1
1
  from abc import ABC, abstractmethod
2
+ from numpy.typing import NDArray
2
3
 
3
4
 
4
5
  class Normalizer(ABC):
@@ -10,7 +11,7 @@ class Normalizer(ABC):
10
11
  super().__init__()
11
12
 
12
13
  @abstractmethod
13
- def normalize(self, image):
14
+ def normalize(self, image) -> NDArray:
14
15
  """
15
16
  Normalize the input image based on the chosen method.
16
17
 
@@ -1,5 +1,6 @@
1
1
  import numpy as np
2
2
  from .normalizer_base import Normalizer
3
+ from numpy.typing import NDArray
3
4
 
4
5
 
5
6
  class PercentileNormalizer(Normalizer):
@@ -29,7 +30,7 @@ class PercentileNormalizer(Normalizer):
29
30
  self.lower_limit = lower_limit
30
31
  self.upper_limit = upper_limit
31
32
 
32
- def normalize(self, image: np.ndarray):
33
+ def normalize(self, image: np.ndarray) -> NDArray:
33
34
  """
34
35
  Normalize the input image using percentile-based mapping.
35
36
 
@@ -1,5 +1,6 @@
1
1
  import numpy as np
2
2
  from .normalizer_base import Normalizer
3
+ from numpy.typing import NDArray
3
4
 
4
5
 
5
6
  class WindowingNormalizer(Normalizer):
@@ -19,7 +20,7 @@ class WindowingNormalizer(Normalizer):
19
20
  self.center = center
20
21
  self.width = width
21
22
 
22
- def normalize(self, image):
23
+ def normalize(self, image) -> NDArray:
23
24
  """
24
25
  Normalize the input image using windowing.
25
26
 
@@ -323,29 +323,34 @@ class AtlasCentricPreprocessor(BasePreprocessor):
323
323
  atlas_mask = self.center_modality.deface(
324
324
  defacer=self.defacer, defaced_dir_path=deface_dir
325
325
  )
326
- # looping over _all_ modalities since .deface is no applying the computed mask
327
- for moving_modality in self.all_modalities:
328
- logger.info(f"Applying deface mask to {moving_modality.modality_name}...")
329
- moving_modality.apply_deface_mask(
330
- defacer=self.defacer,
331
- mask_path=atlas_mask,
332
- deface_dir=deface_dir,
333
- )
334
-
335
- self._save_output(
336
- src=deface_dir,
337
- save_dir=save_dir_defacing,
338
- )
339
- # now we save images that are skull-stripped
340
- logger.info("Saving defaced images...")
341
- for modality in self.all_modalities:
342
- if modality.raw_defaced_output_path:
343
- modality.save_current_image(
344
- modality.raw_defaced_output_path,
345
- normalization=False,
326
+ if atlas_mask is not None:
327
+ # looping over _all_ modalities since .deface is no applying the computed mask
328
+ for moving_modality in self.all_modalities:
329
+ logger.info(
330
+ f"Applying deface mask to {moving_modality.modality_name}..."
346
331
  )
347
- if modality.normalized_defaced_output_path:
348
- modality.save_current_image(
349
- modality.normalized_defaced_output_path,
350
- normalization=True,
332
+ moving_modality.apply_deface_mask(
333
+ defacer=self.defacer,
334
+ mask_path=atlas_mask,
335
+ deface_dir=deface_dir,
351
336
  )
337
+
338
+ self._save_output(
339
+ src=deface_dir,
340
+ save_dir=save_dir_defacing,
341
+ )
342
+ # now we save images that are skull-stripped
343
+ logger.info("Saving defaced images...")
344
+ for modality in self.all_modalities:
345
+ if modality.raw_defaced_output_path:
346
+ modality.save_current_image(
347
+ modality.raw_defaced_output_path,
348
+ normalization=False,
349
+ )
350
+ if modality.normalized_defaced_output_path:
351
+ modality.save_current_image(
352
+ modality.normalized_defaced_output_path,
353
+ normalization=True,
354
+ )
355
+ else:
356
+ logger.warning("Defacing was requested but no defacing mask was created.")
@@ -101,24 +101,30 @@ class ANTsRegistrator(Registrator):
101
101
 
102
102
  fixed_image = ants.image_read(str(fixed_image_path))
103
103
  moving_image = ants.image_read(str(moving_image_path))
104
+
104
105
  registration_result = ants.registration(
105
106
  fixed=fixed_image,
106
107
  moving=moving_image,
107
108
  **registration_kwargs,
108
109
  )
109
- transformed_image = registration_result["warpedmovout"]
110
110
 
111
111
  # Ensure output directories exist
112
112
  transformed_image_path.parent.mkdir(parents=True, exist_ok=True)
113
113
  matrix_path.parent.mkdir(parents=True, exist_ok=True)
114
114
 
115
- ants.image_write(transformed_image, str(transformed_image_path))
116
-
117
115
  shutil.copyfile(
118
116
  src=registration_result["fwdtransforms"][0],
119
117
  dst=str(matrix_path),
120
118
  )
121
119
 
120
+ self.transform(
121
+ fixed_image_path=fixed_image_path,
122
+ moving_image_path=moving_image_path,
123
+ transformed_image_path=transformed_image_path,
124
+ matrix_path=matrix_path,
125
+ log_file_path=log_file_path,
126
+ )
127
+
122
128
  end_time = datetime.datetime.now()
123
129
 
124
130
  # TODO nicer logging
@@ -147,6 +153,7 @@ class ANTsRegistrator(Registrator):
147
153
  ) -> None:
148
154
  """
149
155
  Apply a transformation using ANTs.
156
+ By default the padding value corresponds to the minimum of the moving image. Can be adjusted using the defaultvalue parameter.
150
157
 
151
158
  Args:
152
159
  fixed_image_path (str or Path): Path to the fixed image.
@@ -195,6 +202,11 @@ class ANTsRegistrator(Registrator):
195
202
  fixed_image = ants.image_read(str(fixed_image_path))
196
203
  moving_image = ants.image_read(str(moving_image_path))
197
204
 
205
+ if "defaultvalue" not in transform_kwargs:
206
+ transform_kwargs["defaultvalue"] = (
207
+ moving_image.min()
208
+ ) # set out of view voxels by default to min value, i.e. air/ bg
209
+
198
210
  # Ensure output directory exist
199
211
  transformed_image_path.parent.mkdir(parents=True, exist_ok=True)
200
212
 
@@ -8,6 +8,7 @@ from typing import List
8
8
  import numpy as np
9
9
  from auxiliary.runscript import ScriptRunner
10
10
  from auxiliary.turbopath import turbopath
11
+ from auxiliary.io import read_image
11
12
 
12
13
  from brainles_preprocessing.registration.registrator import Registrator
13
14
 
@@ -79,12 +80,16 @@ class NiftyRegRegistrator(Registrator):
79
80
 
80
81
  matrix_path = Path(matrix_path).with_suffix(".txt")
81
82
 
83
+ # read moving image to get padding value
84
+ padding_value = float(read_image(moving_image_path).min())
85
+
82
86
  input_params = [
83
87
  turbopath(niftyreg_executable),
84
88
  turbopath(fixed_image_path),
85
89
  turbopath(moving_image_path),
86
90
  turbopath(transformed_image_path),
87
91
  str(matrix_path),
92
+ str(padding_value),
88
93
  ]
89
94
 
90
95
  # Call the run method to execute the script and capture the output in the log file
@@ -155,6 +160,7 @@ class NiftyRegRegistrator(Registrator):
155
160
  ) -> None:
156
161
  """
157
162
  Apply a transformation using NiftyReg.
163
+ By default the padding value corresponds to the minimum of the moving image.
158
164
 
159
165
  Args:
160
166
  fixed_image_path (str): Path to the fixed image.
@@ -199,13 +205,17 @@ class NiftyRegRegistrator(Registrator):
199
205
  else:
200
206
  transform_path = Path(matrix_path).with_suffix(".txt")
201
207
 
208
+ # read moving image to get padding value
209
+ padding_value = float(read_image(moving_image_path).min())
210
+
202
211
  input_params = [
203
212
  turbopath(niftyreg_executable),
204
213
  turbopath(fixed_image_path),
205
214
  turbopath(moving_image_path),
206
215
  turbopath(transformed_image_path),
207
216
  str(transform_path),
208
- interpolator, # interpolation method, 3 is Cubic
217
+ str(interpolator), # interpolation method, 3 is Cubic
218
+ str(padding_value),
209
219
  ]
210
220
 
211
221
  # Call the run method to execute the script and capture the output in the log file
@@ -10,8 +10,8 @@ file_exists() {
10
10
  }
11
11
 
12
12
  # Check if the correct number of arguments is provided
13
- if [ "$#" -ne 5 ]; then
14
- echo "Usage: $0 <niftyreg_executable> <fixed_image> <moving_image> <transformed_image> <transformation_matrix>"
13
+ if [ "$#" -ne 6 ]; then
14
+ echo "Usage: $0 <niftyreg_executable> <fixed_image> <moving_image> <transformed_image> <transformation_matrix> <padding_value>"
15
15
  exit 1
16
16
  fi
17
17
 
@@ -21,6 +21,7 @@ fixed_image="$2"
21
21
  moving_image="$3"
22
22
  transformed_image="$4"
23
23
  transformation_matrix="$5"
24
+ padding_value="$6"
24
25
 
25
26
  # Validate the existence of input files
26
27
  if ! file_exists "$fixed_image"; then
@@ -41,6 +42,7 @@ registration_options=(
41
42
  "-flo" "$moving_image"
42
43
  "-res" "$transformed_image"
43
44
  "-aff" "$transformation_matrix"
45
+ "-pad" "$padding_value"
44
46
  )
45
47
 
46
48
  # Perform rigid-only registration with NiftyReg
@@ -10,8 +10,8 @@ file_exists() {
10
10
  }
11
11
 
12
12
  # Check if the correct number of arguments is provided
13
- if [ "$#" -ne 6 ]; then
14
- echo "Usage: $0 <niftyreg_executable> <fixed_image> <moving_image> <transformed_image> <transformation_matrix> <interpolation_method>"
13
+ if [ "$#" -ne 7 ]; then
14
+ echo "Usage: $0 <niftyreg_executable> <fixed_image> <moving_image> <transformed_image> <transformation_matrix> <interpolation_method> <padding_value>"
15
15
  exit 1
16
16
  fi
17
17
 
@@ -22,6 +22,7 @@ moving_image="$3"
22
22
  transformed_image="$4"
23
23
  transformation_matrix="$5"
24
24
  interpolation_method="$6"
25
+ padding_value="$7"
25
26
 
26
27
  # Validate the existence of input files
27
28
  if ! file_exists "$fixed_image"; then
@@ -51,6 +52,7 @@ resample_command=(
51
52
  -trans "$transformation_matrix"
52
53
  -res "$transformed_image"
53
54
  -inter "$interpolation_method"
55
+ -pad "$padding_value"
54
56
  )
55
57
 
56
58
  if file_exists "$niftyreg_path"; then
@@ -36,7 +36,7 @@ class Registrator(ABC):
36
36
  transformed_image_path: Any,
37
37
  matrix_path: Any,
38
38
  log_file_path: str,
39
- interpolator: str,
39
+ interpolator: str = "default",
40
40
  **kwargs
41
41
  ):
42
42
  """
@@ -61,7 +61,7 @@ class Registrator(ABC):
61
61
  transformed_image_path: Any,
62
62
  matrix_path: Any,
63
63
  log_file_path: str,
64
- interpolator: str,
64
+ interpolator: str = "default",
65
65
  ):
66
66
  """
67
67
  Abstract method for inverse transforming images.
@@ -14,7 +14,7 @@ exclude = [
14
14
  ]
15
15
 
16
16
  name = "brainles_preprocessing"
17
- version = "0.6.4" # will be overwritten by poetry-dynamic-versioning but needs to be set
17
+ version = "0.6.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