brainles-preprocessing 0.6.10__tar.gz → 0.6.11__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 (124) hide show
  1. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/PKG-INFO +1 -1
  2. brainles_preprocessing-0.6.11/brainles_preprocessing/brain_extraction/__init__.py +6 -0
  3. brainles_preprocessing-0.6.11/brainles_preprocessing/brain_extraction/brain_extractor.py +69 -0
  4. brainles_preprocessing-0.6.10/brainles_preprocessing/brain_extraction/brain_extractor.py → brainles_preprocessing-0.6.11/brainles_preprocessing/brain_extraction/hd_bet.py +2 -67
  5. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/preprocessor/preprocessor.py +2 -4
  6. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/utils/zenodo.py +31 -2
  7. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/pyproject.toml +1 -1
  8. brainles_preprocessing-0.6.10/brainles_preprocessing/brain_extraction/__init__.py +0 -1
  9. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/LICENSE +0 -0
  10. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/README.md +0 -0
  11. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/__init__.py +0 -0
  12. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/brain_extraction/synthstrip.py +0 -0
  13. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/brats/__init__.py +0 -0
  14. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/brats/t1_centric.py +0 -0
  15. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/brats/t1c_centric.py +0 -0
  16. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/cli.py +0 -0
  17. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/constants.py +0 -0
  18. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/defacing/__init__.py +0 -0
  19. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/defacing/defacer.py +0 -0
  20. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/defacing/quickshear/__init__.py +0 -0
  21. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/defacing/quickshear/nipy_quickshear.py +0 -0
  22. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/defacing/quickshear/quickshear.py +0 -0
  23. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/modality.py +0 -0
  24. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/n4_bias_correction/__init__.py +0 -0
  25. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/n4_bias_correction/n4_bias_corrector.py +0 -0
  26. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/n4_bias_correction/sitk/__init__.py +0 -0
  27. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/n4_bias_correction/sitk/sitk_n4_bias_corrector.py +0 -0
  28. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/normalization/__init__.py +0 -0
  29. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/normalization/normalizer_base.py +0 -0
  30. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/normalization/percentile_normalizer.py +0 -0
  31. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/normalization/windowing_normalizer.py +0 -0
  32. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/preprocessor/__init__.py +0 -0
  33. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/preprocessor/atlas_centric_preprocessor.py +0 -0
  34. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/preprocessor/native_space_preprocessor.py +0 -0
  35. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/ANTs/ANTs.py +0 -0
  36. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/ANTs/TODO_ANTs_parameters.py +0 -0
  37. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/ANTs/__init__.py +0 -0
  38. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/__init__.py +0 -0
  39. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/elastix/__init__.py +0 -0
  40. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/elastix/elastix.py +0 -0
  41. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/greedy/__init__.py +0 -0
  42. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/greedy/greedy.py +0 -0
  43. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/__init__.py +0 -0
  44. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg.py +0 -0
  45. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/groupwise_niftyreg_params.sh +0 -0
  46. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/groupwise_niftyreg_run.sh +0 -0
  47. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_aladin +0 -0
  48. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_average +0 -0
  49. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_f3d +0 -0
  50. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_jacobian +0 -0
  51. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_measure +0 -0
  52. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_resample +0 -0
  53. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_tools +0 -0
  54. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_transform +0 -0
  55. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/AffineDeformationFieldKernel.h +0 -0
  56. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/AladinContent.h +0 -0
  57. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/BlockMatchingKernel.h +0 -0
  58. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/CPUAffineDeformationFieldKernel.h +0 -0
  59. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/CPUBlockMatchingKernel.h +0 -0
  60. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/CPUConvolutionKernel.h +0 -0
  61. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/CPUKernelFactory.h +0 -0
  62. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/CPUOptimiseKernel.h +0 -0
  63. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/CPUResampleImageKernel.h +0 -0
  64. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/ConvolutionKernel.h +0 -0
  65. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/Kernel.h +0 -0
  66. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/KernelFactory.h +0 -0
  67. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/OptimiseKernel.h +0 -0
  68. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/Platform.h +0 -0
  69. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/ResampleImageKernel.h +0 -0
  70. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_ReadWriteImage.h +0 -0
  71. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_ReadWriteMatrix.h +0 -0
  72. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_aladin.cpp +0 -0
  73. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_aladin.h +0 -0
  74. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_aladin_sym.cpp +0 -0
  75. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_aladin_sym.h +0 -0
  76. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_base.h +0 -0
  77. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_blockMatching.h +0 -0
  78. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_dti.h +0 -0
  79. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_f3d.h +0 -0
  80. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_f3d2.h +0 -0
  81. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_f3d_sym.h +0 -0
  82. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_femTrans.h +0 -0
  83. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_globalTrans.h +0 -0
  84. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_kld.h +0 -0
  85. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_lncc.h +0 -0
  86. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_localTrans.h +0 -0
  87. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_localTrans_jac.h +0 -0
  88. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_localTrans_regul.h +0 -0
  89. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_macros.h +0 -0
  90. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_maths.h +0 -0
  91. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_maths_eigen.h +0 -0
  92. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_measure.h +0 -0
  93. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_mind.h +0 -0
  94. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_nmi.h +0 -0
  95. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_optimiser.cpp +0 -0
  96. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_optimiser.h +0 -0
  97. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_resampling.h +0 -0
  98. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_splineBasis.h +0 -0
  99. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_ssd.h +0 -0
  100. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_stringFormat.h +0 -0
  101. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_tools.h +0 -0
  102. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/nifti1.h +0 -0
  103. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/nifti1_io.h +0 -0
  104. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/png.h +0 -0
  105. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/pngconf.h +0 -0
  106. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/pngdebug.h +0 -0
  107. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/pnginfo.h +0 -0
  108. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/pnglibconf.h +0 -0
  109. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/pngpriv.h +0 -0
  110. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/pngstruct.h +0 -0
  111. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/readpng.h +0 -0
  112. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/reg_png.h +0 -0
  113. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/zlib.h +0 -0
  114. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/znzlib.h +0 -0
  115. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/zutil.h +0 -0
  116. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/reg_aladin +0 -0
  117. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/reg_resample +0 -0
  118. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/rigid_reg.sh +0 -0
  119. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/transform.sh +0 -0
  120. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/registration/registrator.py +0 -0
  121. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/transform.py +0 -0
  122. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/utils/__init__.py +0 -0
  123. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/utils/citation_reminder.py +0 -0
  124. {brainles_preprocessing-0.6.10 → brainles_preprocessing-0.6.11}/brainles_preprocessing/utils/generic.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: brainles_preprocessing
3
- Version: 0.6.10
3
+ Version: 0.6.11
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
  License-File: LICENSE
@@ -0,0 +1,6 @@
1
+ from .hd_bet import HDBetExtractor
2
+
3
+ try:
4
+ from .synthstrip import SynthStripExtractor
5
+ except ImportError:
6
+ pass
@@ -0,0 +1,69 @@
1
+ # TODO add typing and docs
2
+ from abc import abstractmethod, ABC
3
+ from pathlib import Path
4
+ from typing import Union
5
+
6
+ from auxiliary.io import read_image, write_image
7
+
8
+
9
+ class BrainExtractor(ABC):
10
+ @abstractmethod
11
+ def extract(
12
+ self,
13
+ input_image_path: Union[str, Path],
14
+ masked_image_path: Union[str, Path],
15
+ brain_mask_path: Union[str, Path],
16
+ **kwargs,
17
+ ) -> None:
18
+ """
19
+ Abstract method to extract the brain from an input image.
20
+
21
+ Args:
22
+ input_image_path (str or Path): Path to the input image.
23
+ masked_image_path (str or Path): Path where the brain-extracted image will be saved.
24
+ brain_mask_path (str or Path): Path where the brain mask will be saved.
25
+ mode (str or Mode): Extraction mode.
26
+ **kwargs: Additional keyword arguments.
27
+ """
28
+ pass
29
+
30
+ def apply_mask(
31
+ self,
32
+ input_image_path: Union[str, Path],
33
+ mask_path: Union[str, Path],
34
+ bet_image_path: Union[str, Path],
35
+ ) -> None:
36
+ """
37
+ Apply a brain mask to an input image.
38
+
39
+ Args:
40
+ input_image_path (str or Path): Path to the input image (NIfTI format).
41
+ mask_path (str or Path): Path to the brain mask image (NIfTI format).
42
+ bet_image_path (str or Path): Path to save the resulting masked image (NIfTI format).
43
+ """
44
+
45
+ try:
46
+ # Read data
47
+ input_data = read_image(str(input_image_path))
48
+ mask_data = read_image(str(mask_path))
49
+ except FileNotFoundError as e:
50
+ raise FileNotFoundError(f"File not found: {e.filename}") from e
51
+ except Exception as e:
52
+ raise RuntimeError(f"Error reading files: {e}") from e
53
+
54
+ # Check that the input and mask have the same shape
55
+ if input_data.shape != mask_data.shape:
56
+ raise ValueError("Input image and mask must have the same dimensions.")
57
+
58
+ # Mask and save it
59
+ masked_data = input_data * mask_data
60
+
61
+ try:
62
+ write_image(
63
+ input_array=masked_data,
64
+ output_path=str(bet_image_path),
65
+ reference_path=str(input_image_path),
66
+ create_parent_directory=True,
67
+ )
68
+ except Exception as e:
69
+ raise RuntimeError(f"Error writing output file: {e}") from e
@@ -1,11 +1,9 @@
1
- # TODO add typing and docs
2
- import shutil
3
- from abc import ABC, abstractmethod
4
1
  from pathlib import Path
5
2
  from typing import Optional, Union
3
+ import shutil
6
4
  from enum import Enum
7
5
 
8
- from auxiliary.io import read_image, write_image
6
+ from brainles_preprocessing.brain_extraction.brain_extractor import BrainExtractor
9
7
  from brainles_hd_bet import run_hd_bet
10
8
 
11
9
 
@@ -14,69 +12,6 @@ class Mode(Enum):
14
12
  ACCURATE = "accurate"
15
13
 
16
14
 
17
- class BrainExtractor:
18
- @abstractmethod
19
- def extract(
20
- self,
21
- input_image_path: Union[str, Path],
22
- masked_image_path: Union[str, Path],
23
- brain_mask_path: Union[str, Path],
24
- **kwargs,
25
- ) -> None:
26
- """
27
- Abstract method to extract the brain from an input image.
28
-
29
- Args:
30
- input_image_path (str or Path): Path to the input image.
31
- masked_image_path (str or Path): Path where the brain-extracted image will be saved.
32
- brain_mask_path (str or Path): Path where the brain mask will be saved.
33
- mode (str or Mode): Extraction mode.
34
- **kwargs: Additional keyword arguments.
35
- """
36
- pass
37
-
38
- def apply_mask(
39
- self,
40
- input_image_path: Union[str, Path],
41
- mask_path: Union[str, Path],
42
- bet_image_path: Union[str, Path],
43
- ) -> None:
44
- """
45
- Apply a brain mask to an input image.
46
-
47
- Args:
48
- input_image_path (str or Path): Path to the input image (NIfTI format).
49
- mask_path (str or Path): Path to the brain mask image (NIfTI format).
50
- bet_image_path (str or Path): Path to save the resulting masked image (NIfTI format).
51
- """
52
-
53
- try:
54
- # Read data
55
- input_data = read_image(str(input_image_path))
56
- mask_data = read_image(str(mask_path))
57
- except FileNotFoundError as e:
58
- raise FileNotFoundError(f"File not found: {e.filename}") from e
59
- except Exception as e:
60
- raise RuntimeError(f"Error reading files: {e}") from e
61
-
62
- # Check that the input and mask have the same shape
63
- if input_data.shape != mask_data.shape:
64
- raise ValueError("Input image and mask must have the same dimensions.")
65
-
66
- # Mask and save it
67
- masked_data = input_data * mask_data
68
-
69
- try:
70
- write_image(
71
- input_array=masked_data,
72
- output_path=str(bet_image_path),
73
- reference_path=str(input_image_path),
74
- create_parent_directory=True,
75
- )
76
- except Exception as e:
77
- raise RuntimeError(f"Error writing output file: {e}") from e
78
-
79
-
80
15
  class HDBetExtractor(BrainExtractor):
81
16
  def extract(
82
17
  self,
@@ -11,10 +11,8 @@ from typing import List, Optional, Union
11
11
 
12
12
  from loguru import logger
13
13
 
14
- from brainles_preprocessing.brain_extraction.brain_extractor import (
15
- BrainExtractor,
16
- HDBetExtractor,
17
- )
14
+ from brainles_preprocessing.brain_extraction.brain_extractor import BrainExtractor
15
+ from brainles_preprocessing.brain_extraction.hd_bet import HDBetExtractor
18
16
  from brainles_preprocessing.constants import PreprocessorSteps
19
17
  from brainles_preprocessing.defacing import Defacer, QuickshearDefacer
20
18
  from brainles_preprocessing.modality import CenterModality, Modality
@@ -4,7 +4,7 @@ import shutil
4
4
  import zipfile
5
5
  from io import BytesIO
6
6
  from pathlib import Path
7
- from typing import Dict, List, Tuple
7
+ from typing import ClassVar, Dict, List, Tuple
8
8
 
9
9
  import requests
10
10
  from loguru import logger
@@ -56,6 +56,9 @@ class ZenodoException(Exception):
56
56
  class ZenodoRecord:
57
57
  BASE_URL = "https://zenodo.org/api/records"
58
58
 
59
+ # Process-level cache: maps (record_id, target_dir) -> resolved Path
60
+ _cache: ClassVar[Dict[Tuple[str, str], Path]] = {}
61
+
59
62
  def __init__(
60
63
  self,
61
64
  record_id: str,
@@ -66,8 +69,34 @@ class ZenodoRecord:
66
69
  self.target_dir = target_dir
67
70
  self.label = label
68
71
 
72
+ @classmethod
73
+ def clear_cache(cls) -> None:
74
+ """Clear the process-level fetch cache. Primarily intended for testing."""
75
+ cls._cache.clear()
76
+
77
+ def _cache_key(self) -> Tuple[str, str]:
78
+ return (self.record_id, str(self.target_dir))
79
+
69
80
  def fetch(self) -> Path:
70
- """Fetch the latest version of the record from Zenodo or from local storage."""
81
+ """Fetch the latest version of the record from Zenodo or from local storage.
82
+
83
+ Results are cached for the lifetime of the process so that repeated calls
84
+ (e.g. when processing many subjects in a loop) do not trigger redundant
85
+ Zenodo API requests.
86
+ """
87
+ key = self._cache_key()
88
+
89
+ cached = ZenodoRecord._cache.get(key)
90
+ if cached is not None:
91
+ logger.debug(f"Using cached {self.label} path: {cached}")
92
+ return cached
93
+
94
+ result = self._fetch_uncached()
95
+ ZenodoRecord._cache[key] = result
96
+ return result
97
+
98
+ def _fetch_uncached(self) -> Path:
99
+ """Perform the actual Zenodo check / download without consulting the cache."""
71
100
  zenodo_response = self._get_metadata_and_archive_url()
72
101
 
73
102
  pattern = self._glob_pattern()
@@ -14,7 +14,7 @@ exclude = [
14
14
  ]
15
15
 
16
16
  name = "brainles_preprocessing"
17
- version = "0.6.10" # will be overwritten by poetry-dynamic-versioning but needs to be set
17
+ version = "0.6.11" # 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
 
@@ -1 +0,0 @@
1
- from .brain_extractor import HDBetExtractor