rapidtide 2.9.6__py3-none-any.whl → 3.1.3__py3-none-any.whl

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 (405) hide show
  1. cloud/gmscalc-HCPYA +1 -1
  2. cloud/mount-and-run +2 -0
  3. cloud/rapidtide-HCPYA +3 -3
  4. rapidtide/Colortables.py +538 -38
  5. rapidtide/OrthoImageItem.py +1094 -51
  6. rapidtide/RapidtideDataset.py +1709 -114
  7. rapidtide/__init__.py +0 -8
  8. rapidtide/_version.py +4 -4
  9. rapidtide/calccoherence.py +242 -97
  10. rapidtide/calcnullsimfunc.py +240 -140
  11. rapidtide/calcsimfunc.py +314 -129
  12. rapidtide/correlate.py +1211 -389
  13. rapidtide/data/examples/src/testLD +56 -0
  14. rapidtide/data/examples/src/test_findmaxlag.py +2 -2
  15. rapidtide/data/examples/src/test_mlregressallt.py +32 -17
  16. rapidtide/data/examples/src/testalign +1 -1
  17. rapidtide/data/examples/src/testatlasaverage +35 -7
  18. rapidtide/data/examples/src/testboth +21 -0
  19. rapidtide/data/examples/src/testcifti +11 -0
  20. rapidtide/data/examples/src/testdelayvar +13 -0
  21. rapidtide/data/examples/src/testdlfilt +25 -0
  22. rapidtide/data/examples/src/testfft +35 -0
  23. rapidtide/data/examples/src/testfileorfloat +37 -0
  24. rapidtide/data/examples/src/testfmri +92 -42
  25. rapidtide/data/examples/src/testfuncs +3 -3
  26. rapidtide/data/examples/src/testglmfilt +8 -6
  27. rapidtide/data/examples/src/testhappy +84 -51
  28. rapidtide/data/examples/src/testinitdelay +19 -0
  29. rapidtide/data/examples/src/testmodels +33 -0
  30. rapidtide/data/examples/src/testnewrefine +26 -0
  31. rapidtide/data/examples/src/testnoiseamp +2 -2
  32. rapidtide/data/examples/src/testppgproc +17 -0
  33. rapidtide/data/examples/src/testrefineonly +22 -0
  34. rapidtide/data/examples/src/testretro +26 -13
  35. rapidtide/data/examples/src/testretrolagtcs +16 -0
  36. rapidtide/data/examples/src/testrolloff +11 -0
  37. rapidtide/data/examples/src/testsimdata +45 -28
  38. rapidtide/data/models/model_cnn_pytorch/loss.png +0 -0
  39. rapidtide/data/models/model_cnn_pytorch/loss.txt +1 -0
  40. rapidtide/data/models/model_cnn_pytorch/model.pth +0 -0
  41. rapidtide/data/models/model_cnn_pytorch/model_meta.json +68 -0
  42. rapidtide/data/models/model_cnn_pytorch_fulldata/loss.png +0 -0
  43. rapidtide/data/models/model_cnn_pytorch_fulldata/loss.txt +1 -0
  44. rapidtide/data/models/model_cnn_pytorch_fulldata/model.pth +0 -0
  45. rapidtide/data/models/model_cnn_pytorch_fulldata/model_meta.json +80 -0
  46. rapidtide/data/models/model_cnnbp_pytorch_fullldata/loss.png +0 -0
  47. rapidtide/data/models/model_cnnbp_pytorch_fullldata/loss.txt +1 -0
  48. rapidtide/data/models/model_cnnbp_pytorch_fullldata/model.pth +0 -0
  49. rapidtide/data/models/model_cnnbp_pytorch_fullldata/model_meta.json +138 -0
  50. rapidtide/data/models/model_cnnfft_pytorch_fulldata/loss.png +0 -0
  51. rapidtide/data/models/model_cnnfft_pytorch_fulldata/loss.txt +1 -0
  52. rapidtide/data/models/model_cnnfft_pytorch_fulldata/model.pth +0 -0
  53. rapidtide/data/models/model_cnnfft_pytorch_fulldata/model_meta.json +128 -0
  54. rapidtide/data/models/model_ppgattention_pytorch_w128_fulldata/loss.png +0 -0
  55. rapidtide/data/models/model_ppgattention_pytorch_w128_fulldata/loss.txt +1 -0
  56. rapidtide/data/models/model_ppgattention_pytorch_w128_fulldata/model.pth +0 -0
  57. rapidtide/data/models/model_ppgattention_pytorch_w128_fulldata/model_meta.json +49 -0
  58. rapidtide/data/models/model_revised_tf2/model.keras +0 -0
  59. rapidtide/data/models/{model_serdar → model_revised_tf2}/model_meta.json +1 -1
  60. rapidtide/data/models/model_serdar2_tf2/model.keras +0 -0
  61. rapidtide/data/models/{model_serdar2 → model_serdar2_tf2}/model_meta.json +1 -1
  62. rapidtide/data/models/model_serdar_tf2/model.keras +0 -0
  63. rapidtide/data/models/{model_revised → model_serdar_tf2}/model_meta.json +1 -1
  64. rapidtide/data/reference/HCP1200v2_MTT_2mm.nii.gz +0 -0
  65. rapidtide/data/reference/HCP1200v2_binmask_2mm.nii.gz +0 -0
  66. rapidtide/data/reference/HCP1200v2_csf_2mm.nii.gz +0 -0
  67. rapidtide/data/reference/HCP1200v2_gray_2mm.nii.gz +0 -0
  68. rapidtide/data/reference/HCP1200v2_graylaghist.json +7 -0
  69. rapidtide/data/reference/HCP1200v2_graylaghist.tsv.gz +0 -0
  70. rapidtide/data/reference/HCP1200v2_laghist.json +7 -0
  71. rapidtide/data/reference/HCP1200v2_laghist.tsv.gz +0 -0
  72. rapidtide/data/reference/HCP1200v2_mask_2mm.nii.gz +0 -0
  73. rapidtide/data/reference/HCP1200v2_maxcorr_2mm.nii.gz +0 -0
  74. rapidtide/data/reference/HCP1200v2_maxtime_2mm.nii.gz +0 -0
  75. rapidtide/data/reference/HCP1200v2_maxwidth_2mm.nii.gz +0 -0
  76. rapidtide/data/reference/HCP1200v2_negmask_2mm.nii.gz +0 -0
  77. rapidtide/data/reference/HCP1200v2_timepercentile_2mm.nii.gz +0 -0
  78. rapidtide/data/reference/HCP1200v2_white_2mm.nii.gz +0 -0
  79. rapidtide/data/reference/HCP1200v2_whitelaghist.json +7 -0
  80. rapidtide/data/reference/HCP1200v2_whitelaghist.tsv.gz +0 -0
  81. rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1-seg2.xml +131 -0
  82. rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1-seg2_regions.txt +60 -0
  83. rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1-seg2_space-MNI152NLin6Asym_2mm.nii.gz +0 -0
  84. rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1_space-MNI152NLin2009cAsym_2mm.nii.gz +0 -0
  85. rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1_space-MNI152NLin2009cAsym_2mm_mask.nii.gz +0 -0
  86. rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1_space-MNI152NLin6Asym_2mm_mask.nii.gz +0 -0
  87. rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL2_space-MNI152NLin6Asym_2mm_mask.nii.gz +0 -0
  88. rapidtide/data/reference/MNI152_T1_1mm_Brain_FAST_seg.nii.gz +0 -0
  89. rapidtide/data/reference/MNI152_T1_1mm_Brain_Mask.nii.gz +0 -0
  90. rapidtide/data/reference/MNI152_T1_2mm_Brain_FAST_seg.nii.gz +0 -0
  91. rapidtide/data/reference/MNI152_T1_2mm_Brain_Mask.nii.gz +0 -0
  92. rapidtide/decorators.py +91 -0
  93. rapidtide/dlfilter.py +2553 -414
  94. rapidtide/dlfiltertorch.py +5201 -0
  95. rapidtide/externaltools.py +328 -13
  96. rapidtide/fMRIData_class.py +108 -92
  97. rapidtide/ffttools.py +168 -0
  98. rapidtide/filter.py +2704 -1462
  99. rapidtide/fit.py +2361 -579
  100. rapidtide/genericmultiproc.py +197 -0
  101. rapidtide/happy_supportfuncs.py +3255 -548
  102. rapidtide/helper_classes.py +587 -1116
  103. rapidtide/io.py +2569 -468
  104. rapidtide/linfitfiltpass.py +784 -0
  105. rapidtide/makelaggedtcs.py +267 -97
  106. rapidtide/maskutil.py +555 -25
  107. rapidtide/miscmath.py +835 -144
  108. rapidtide/multiproc.py +217 -44
  109. rapidtide/patchmatch.py +752 -0
  110. rapidtide/peakeval.py +32 -32
  111. rapidtide/ppgproc.py +2205 -0
  112. rapidtide/qualitycheck.py +353 -40
  113. rapidtide/refinedelay.py +854 -0
  114. rapidtide/refineregressor.py +939 -0
  115. rapidtide/resample.py +725 -204
  116. rapidtide/scripts/__init__.py +1 -0
  117. rapidtide/scripts/{adjustoffset → adjustoffset.py} +7 -2
  118. rapidtide/scripts/{aligntcs → aligntcs.py} +7 -2
  119. rapidtide/scripts/{applydlfilter → applydlfilter.py} +7 -2
  120. rapidtide/scripts/applyppgproc.py +28 -0
  121. rapidtide/scripts/{atlasaverage → atlasaverage.py} +7 -2
  122. rapidtide/scripts/{atlastool → atlastool.py} +7 -2
  123. rapidtide/scripts/{calcicc → calcicc.py} +7 -2
  124. rapidtide/scripts/{calctexticc → calctexticc.py} +7 -2
  125. rapidtide/scripts/{calcttest → calcttest.py} +7 -2
  126. rapidtide/scripts/{ccorrica → ccorrica.py} +7 -2
  127. rapidtide/scripts/delayvar.py +28 -0
  128. rapidtide/scripts/{diffrois → diffrois.py} +7 -2
  129. rapidtide/scripts/{endtidalproc → endtidalproc.py} +7 -2
  130. rapidtide/scripts/{fdica → fdica.py} +7 -2
  131. rapidtide/scripts/{filtnifti → filtnifti.py} +7 -2
  132. rapidtide/scripts/{filttc → filttc.py} +7 -2
  133. rapidtide/scripts/{fingerprint → fingerprint.py} +20 -16
  134. rapidtide/scripts/{fixtr → fixtr.py} +7 -2
  135. rapidtide/scripts/{gmscalc → gmscalc.py} +7 -2
  136. rapidtide/scripts/{happy → happy.py} +7 -2
  137. rapidtide/scripts/{happy2std → happy2std.py} +7 -2
  138. rapidtide/scripts/{happywarp → happywarp.py} +8 -4
  139. rapidtide/scripts/{histnifti → histnifti.py} +7 -2
  140. rapidtide/scripts/{histtc → histtc.py} +7 -2
  141. rapidtide/scripts/{glmfilt → linfitfilt.py} +7 -4
  142. rapidtide/scripts/{localflow → localflow.py} +7 -2
  143. rapidtide/scripts/{mergequality → mergequality.py} +7 -2
  144. rapidtide/scripts/{pairproc → pairproc.py} +7 -2
  145. rapidtide/scripts/{pairwisemergenifti → pairwisemergenifti.py} +7 -2
  146. rapidtide/scripts/{physiofreq → physiofreq.py} +7 -2
  147. rapidtide/scripts/{pixelcomp → pixelcomp.py} +7 -2
  148. rapidtide/scripts/{plethquality → plethquality.py} +7 -2
  149. rapidtide/scripts/{polyfitim → polyfitim.py} +7 -2
  150. rapidtide/scripts/{proj2flow → proj2flow.py} +7 -2
  151. rapidtide/scripts/{rankimage → rankimage.py} +7 -2
  152. rapidtide/scripts/{rapidtide → rapidtide.py} +7 -2
  153. rapidtide/scripts/{rapidtide2std → rapidtide2std.py} +7 -2
  154. rapidtide/scripts/{resamplenifti → resamplenifti.py} +7 -2
  155. rapidtide/scripts/{resampletc → resampletc.py} +7 -2
  156. rapidtide/scripts/retrolagtcs.py +28 -0
  157. rapidtide/scripts/retroregress.py +28 -0
  158. rapidtide/scripts/{roisummarize → roisummarize.py} +7 -2
  159. rapidtide/scripts/{runqualitycheck → runqualitycheck.py} +7 -2
  160. rapidtide/scripts/{showarbcorr → showarbcorr.py} +7 -2
  161. rapidtide/scripts/{showhist → showhist.py} +7 -2
  162. rapidtide/scripts/{showstxcorr → showstxcorr.py} +7 -2
  163. rapidtide/scripts/{showtc → showtc.py} +7 -2
  164. rapidtide/scripts/{showxcorr_legacy → showxcorr_legacy.py} +8 -8
  165. rapidtide/scripts/{showxcorrx → showxcorrx.py} +7 -2
  166. rapidtide/scripts/{showxy → showxy.py} +7 -2
  167. rapidtide/scripts/{simdata → simdata.py} +7 -2
  168. rapidtide/scripts/{spatialdecomp → spatialdecomp.py} +7 -2
  169. rapidtide/scripts/{spatialfit → spatialfit.py} +7 -2
  170. rapidtide/scripts/{spatialmi → spatialmi.py} +7 -2
  171. rapidtide/scripts/{spectrogram → spectrogram.py} +7 -2
  172. rapidtide/scripts/stupidramtricks.py +238 -0
  173. rapidtide/scripts/{synthASL → synthASL.py} +7 -2
  174. rapidtide/scripts/{tcfrom2col → tcfrom2col.py} +7 -2
  175. rapidtide/scripts/{tcfrom3col → tcfrom3col.py} +7 -2
  176. rapidtide/scripts/{temporaldecomp → temporaldecomp.py} +7 -2
  177. rapidtide/scripts/{testhrv → testhrv.py} +1 -1
  178. rapidtide/scripts/{threeD → threeD.py} +7 -2
  179. rapidtide/scripts/{tidepool → tidepool.py} +7 -2
  180. rapidtide/scripts/{variabilityizer → variabilityizer.py} +7 -2
  181. rapidtide/simFuncClasses.py +2113 -0
  182. rapidtide/simfuncfit.py +312 -108
  183. rapidtide/stats.py +579 -247
  184. rapidtide/tests/.coveragerc +27 -6
  185. rapidtide-2.9.6.data/scripts/fdica → rapidtide/tests/cleanposttest +4 -6
  186. rapidtide/tests/happycomp +9 -0
  187. rapidtide/tests/resethappytargets +1 -1
  188. rapidtide/tests/resetrapidtidetargets +1 -1
  189. rapidtide/tests/resettargets +1 -1
  190. rapidtide/tests/runlocaltest +3 -3
  191. rapidtide/tests/showkernels +1 -1
  192. rapidtide/tests/test_aliasedcorrelate.py +4 -4
  193. rapidtide/tests/test_aligntcs.py +1 -1
  194. rapidtide/tests/test_calcicc.py +1 -1
  195. rapidtide/tests/test_cleanregressor.py +184 -0
  196. rapidtide/tests/test_congrid.py +70 -81
  197. rapidtide/tests/test_correlate.py +1 -1
  198. rapidtide/tests/test_corrpass.py +4 -4
  199. rapidtide/tests/test_delayestimation.py +54 -59
  200. rapidtide/tests/test_dlfiltertorch.py +437 -0
  201. rapidtide/tests/test_doresample.py +2 -2
  202. rapidtide/tests/test_externaltools.py +69 -0
  203. rapidtide/tests/test_fastresampler.py +9 -5
  204. rapidtide/tests/test_filter.py +96 -57
  205. rapidtide/tests/test_findmaxlag.py +50 -19
  206. rapidtide/tests/test_fullrunhappy_v1.py +15 -10
  207. rapidtide/tests/test_fullrunhappy_v2.py +19 -13
  208. rapidtide/tests/test_fullrunhappy_v3.py +28 -13
  209. rapidtide/tests/test_fullrunhappy_v4.py +30 -11
  210. rapidtide/tests/test_fullrunhappy_v5.py +62 -0
  211. rapidtide/tests/test_fullrunrapidtide_v1.py +61 -7
  212. rapidtide/tests/test_fullrunrapidtide_v2.py +26 -14
  213. rapidtide/tests/test_fullrunrapidtide_v3.py +28 -8
  214. rapidtide/tests/test_fullrunrapidtide_v4.py +16 -8
  215. rapidtide/tests/test_fullrunrapidtide_v5.py +15 -6
  216. rapidtide/tests/test_fullrunrapidtide_v6.py +142 -0
  217. rapidtide/tests/test_fullrunrapidtide_v7.py +114 -0
  218. rapidtide/tests/test_fullrunrapidtide_v8.py +66 -0
  219. rapidtide/tests/test_getparsers.py +158 -0
  220. rapidtide/tests/test_io.py +59 -18
  221. rapidtide/tests/{test_glmpass.py → test_linfitfiltpass.py} +10 -10
  222. rapidtide/tests/test_mi.py +1 -1
  223. rapidtide/tests/test_miscmath.py +1 -1
  224. rapidtide/tests/test_motionregress.py +5 -5
  225. rapidtide/tests/test_nullcorr.py +6 -9
  226. rapidtide/tests/test_padvec.py +216 -0
  227. rapidtide/tests/test_parserfuncs.py +101 -0
  228. rapidtide/tests/test_phaseanalysis.py +1 -1
  229. rapidtide/tests/test_rapidtideparser.py +59 -53
  230. rapidtide/tests/test_refinedelay.py +296 -0
  231. rapidtide/tests/test_runmisc.py +5 -5
  232. rapidtide/tests/test_sharedmem.py +60 -0
  233. rapidtide/tests/test_simroundtrip.py +132 -0
  234. rapidtide/tests/test_simulate.py +1 -1
  235. rapidtide/tests/test_stcorrelate.py +4 -2
  236. rapidtide/tests/test_timeshift.py +2 -2
  237. rapidtide/tests/test_valtoindex.py +1 -1
  238. rapidtide/tests/test_zRapidtideDataset.py +5 -3
  239. rapidtide/tests/utils.py +10 -9
  240. rapidtide/tidepoolTemplate.py +88 -70
  241. rapidtide/tidepoolTemplate.ui +60 -46
  242. rapidtide/tidepoolTemplate_alt.py +88 -53
  243. rapidtide/tidepoolTemplate_alt.ui +62 -52
  244. rapidtide/tidepoolTemplate_alt_qt6.py +921 -0
  245. rapidtide/tidepoolTemplate_big.py +1125 -0
  246. rapidtide/tidepoolTemplate_big.ui +2386 -0
  247. rapidtide/tidepoolTemplate_big_qt6.py +1129 -0
  248. rapidtide/tidepoolTemplate_qt6.py +793 -0
  249. rapidtide/util.py +1389 -148
  250. rapidtide/voxelData.py +1048 -0
  251. rapidtide/wiener.py +138 -25
  252. rapidtide/wiener2.py +114 -8
  253. rapidtide/workflows/adjustoffset.py +107 -5
  254. rapidtide/workflows/aligntcs.py +86 -3
  255. rapidtide/workflows/applydlfilter.py +231 -89
  256. rapidtide/workflows/applyppgproc.py +540 -0
  257. rapidtide/workflows/atlasaverage.py +309 -48
  258. rapidtide/workflows/atlastool.py +130 -9
  259. rapidtide/workflows/calcSimFuncMap.py +490 -0
  260. rapidtide/workflows/calctexticc.py +202 -10
  261. rapidtide/workflows/ccorrica.py +123 -15
  262. rapidtide/workflows/cleanregressor.py +415 -0
  263. rapidtide/workflows/delayvar.py +1268 -0
  264. rapidtide/workflows/diffrois.py +84 -6
  265. rapidtide/workflows/endtidalproc.py +149 -9
  266. rapidtide/workflows/fdica.py +197 -17
  267. rapidtide/workflows/filtnifti.py +71 -4
  268. rapidtide/workflows/filttc.py +76 -5
  269. rapidtide/workflows/fitSimFuncMap.py +578 -0
  270. rapidtide/workflows/fixtr.py +74 -4
  271. rapidtide/workflows/gmscalc.py +116 -6
  272. rapidtide/workflows/happy.py +1242 -480
  273. rapidtide/workflows/happy2std.py +145 -13
  274. rapidtide/workflows/happy_parser.py +277 -59
  275. rapidtide/workflows/histnifti.py +120 -4
  276. rapidtide/workflows/histtc.py +85 -4
  277. rapidtide/workflows/{glmfilt.py → linfitfilt.py} +128 -14
  278. rapidtide/workflows/localflow.py +329 -29
  279. rapidtide/workflows/mergequality.py +80 -4
  280. rapidtide/workflows/niftidecomp.py +323 -19
  281. rapidtide/workflows/niftistats.py +178 -8
  282. rapidtide/workflows/pairproc.py +99 -5
  283. rapidtide/workflows/pairwisemergenifti.py +86 -3
  284. rapidtide/workflows/parser_funcs.py +1488 -56
  285. rapidtide/workflows/physiofreq.py +139 -12
  286. rapidtide/workflows/pixelcomp.py +211 -9
  287. rapidtide/workflows/plethquality.py +105 -23
  288. rapidtide/workflows/polyfitim.py +159 -19
  289. rapidtide/workflows/proj2flow.py +76 -3
  290. rapidtide/workflows/rankimage.py +115 -8
  291. rapidtide/workflows/rapidtide.py +1785 -1858
  292. rapidtide/workflows/rapidtide2std.py +101 -3
  293. rapidtide/workflows/rapidtide_parser.py +590 -389
  294. rapidtide/workflows/refineDelayMap.py +249 -0
  295. rapidtide/workflows/refineRegressor.py +1215 -0
  296. rapidtide/workflows/regressfrommaps.py +308 -0
  297. rapidtide/workflows/resamplenifti.py +86 -4
  298. rapidtide/workflows/resampletc.py +92 -4
  299. rapidtide/workflows/retrolagtcs.py +442 -0
  300. rapidtide/workflows/retroregress.py +1501 -0
  301. rapidtide/workflows/roisummarize.py +176 -7
  302. rapidtide/workflows/runqualitycheck.py +72 -7
  303. rapidtide/workflows/showarbcorr.py +172 -16
  304. rapidtide/workflows/showhist.py +87 -3
  305. rapidtide/workflows/showstxcorr.py +161 -4
  306. rapidtide/workflows/showtc.py +172 -10
  307. rapidtide/workflows/showxcorrx.py +250 -62
  308. rapidtide/workflows/showxy.py +186 -16
  309. rapidtide/workflows/simdata.py +418 -112
  310. rapidtide/workflows/spatialfit.py +83 -8
  311. rapidtide/workflows/spatialmi.py +252 -29
  312. rapidtide/workflows/spectrogram.py +306 -33
  313. rapidtide/workflows/synthASL.py +157 -6
  314. rapidtide/workflows/tcfrom2col.py +77 -3
  315. rapidtide/workflows/tcfrom3col.py +75 -3
  316. rapidtide/workflows/tidepool.py +3829 -666
  317. rapidtide/workflows/utils.py +45 -19
  318. rapidtide/workflows/utils_doc.py +293 -0
  319. rapidtide/workflows/variabilityizer.py +118 -5
  320. {rapidtide-2.9.6.dist-info → rapidtide-3.1.3.dist-info}/METADATA +30 -223
  321. rapidtide-3.1.3.dist-info/RECORD +393 -0
  322. {rapidtide-2.9.6.dist-info → rapidtide-3.1.3.dist-info}/WHEEL +1 -1
  323. rapidtide-3.1.3.dist-info/entry_points.txt +65 -0
  324. rapidtide-3.1.3.dist-info/top_level.txt +2 -0
  325. rapidtide/calcandfitcorrpairs.py +0 -262
  326. rapidtide/data/examples/src/testoutputsize +0 -45
  327. rapidtide/data/models/model_revised/model.h5 +0 -0
  328. rapidtide/data/models/model_serdar/model.h5 +0 -0
  329. rapidtide/data/models/model_serdar2/model.h5 +0 -0
  330. rapidtide/data/reference/ASPECTS_nlin_asym_09c_2mm.nii.gz +0 -0
  331. rapidtide/data/reference/ASPECTS_nlin_asym_09c_2mm_mask.nii.gz +0 -0
  332. rapidtide/data/reference/ATTbasedFlowTerritories_split_nlin_asym_09c_2mm.nii.gz +0 -0
  333. rapidtide/data/reference/ATTbasedFlowTerritories_split_nlin_asym_09c_2mm_mask.nii.gz +0 -0
  334. rapidtide/data/reference/HCP1200_binmask_2mm_2009c_asym.nii.gz +0 -0
  335. rapidtide/data/reference/HCP1200_lag_2mm_2009c_asym.nii.gz +0 -0
  336. rapidtide/data/reference/HCP1200_mask_2mm_2009c_asym.nii.gz +0 -0
  337. rapidtide/data/reference/HCP1200_negmask_2mm_2009c_asym.nii.gz +0 -0
  338. rapidtide/data/reference/HCP1200_sigma_2mm_2009c_asym.nii.gz +0 -0
  339. rapidtide/data/reference/HCP1200_strength_2mm_2009c_asym.nii.gz +0 -0
  340. rapidtide/glmpass.py +0 -434
  341. rapidtide/refine_factored.py +0 -641
  342. rapidtide/scripts/retroglm +0 -23
  343. rapidtide/workflows/glmfrommaps.py +0 -202
  344. rapidtide/workflows/retroglm.py +0 -643
  345. rapidtide-2.9.6.data/scripts/adjustoffset +0 -23
  346. rapidtide-2.9.6.data/scripts/aligntcs +0 -23
  347. rapidtide-2.9.6.data/scripts/applydlfilter +0 -23
  348. rapidtide-2.9.6.data/scripts/atlasaverage +0 -23
  349. rapidtide-2.9.6.data/scripts/atlastool +0 -23
  350. rapidtide-2.9.6.data/scripts/calcicc +0 -22
  351. rapidtide-2.9.6.data/scripts/calctexticc +0 -23
  352. rapidtide-2.9.6.data/scripts/calcttest +0 -22
  353. rapidtide-2.9.6.data/scripts/ccorrica +0 -23
  354. rapidtide-2.9.6.data/scripts/diffrois +0 -23
  355. rapidtide-2.9.6.data/scripts/endtidalproc +0 -23
  356. rapidtide-2.9.6.data/scripts/filtnifti +0 -23
  357. rapidtide-2.9.6.data/scripts/filttc +0 -23
  358. rapidtide-2.9.6.data/scripts/fingerprint +0 -593
  359. rapidtide-2.9.6.data/scripts/fixtr +0 -23
  360. rapidtide-2.9.6.data/scripts/glmfilt +0 -24
  361. rapidtide-2.9.6.data/scripts/gmscalc +0 -22
  362. rapidtide-2.9.6.data/scripts/happy +0 -25
  363. rapidtide-2.9.6.data/scripts/happy2std +0 -23
  364. rapidtide-2.9.6.data/scripts/happywarp +0 -350
  365. rapidtide-2.9.6.data/scripts/histnifti +0 -23
  366. rapidtide-2.9.6.data/scripts/histtc +0 -23
  367. rapidtide-2.9.6.data/scripts/localflow +0 -23
  368. rapidtide-2.9.6.data/scripts/mergequality +0 -23
  369. rapidtide-2.9.6.data/scripts/pairproc +0 -23
  370. rapidtide-2.9.6.data/scripts/pairwisemergenifti +0 -23
  371. rapidtide-2.9.6.data/scripts/physiofreq +0 -23
  372. rapidtide-2.9.6.data/scripts/pixelcomp +0 -23
  373. rapidtide-2.9.6.data/scripts/plethquality +0 -23
  374. rapidtide-2.9.6.data/scripts/polyfitim +0 -23
  375. rapidtide-2.9.6.data/scripts/proj2flow +0 -23
  376. rapidtide-2.9.6.data/scripts/rankimage +0 -23
  377. rapidtide-2.9.6.data/scripts/rapidtide +0 -23
  378. rapidtide-2.9.6.data/scripts/rapidtide2std +0 -23
  379. rapidtide-2.9.6.data/scripts/resamplenifti +0 -23
  380. rapidtide-2.9.6.data/scripts/resampletc +0 -23
  381. rapidtide-2.9.6.data/scripts/retroglm +0 -23
  382. rapidtide-2.9.6.data/scripts/roisummarize +0 -23
  383. rapidtide-2.9.6.data/scripts/runqualitycheck +0 -23
  384. rapidtide-2.9.6.data/scripts/showarbcorr +0 -23
  385. rapidtide-2.9.6.data/scripts/showhist +0 -23
  386. rapidtide-2.9.6.data/scripts/showstxcorr +0 -23
  387. rapidtide-2.9.6.data/scripts/showtc +0 -23
  388. rapidtide-2.9.6.data/scripts/showxcorr_legacy +0 -536
  389. rapidtide-2.9.6.data/scripts/showxcorrx +0 -23
  390. rapidtide-2.9.6.data/scripts/showxy +0 -23
  391. rapidtide-2.9.6.data/scripts/simdata +0 -23
  392. rapidtide-2.9.6.data/scripts/spatialdecomp +0 -23
  393. rapidtide-2.9.6.data/scripts/spatialfit +0 -23
  394. rapidtide-2.9.6.data/scripts/spatialmi +0 -23
  395. rapidtide-2.9.6.data/scripts/spectrogram +0 -23
  396. rapidtide-2.9.6.data/scripts/synthASL +0 -23
  397. rapidtide-2.9.6.data/scripts/tcfrom2col +0 -23
  398. rapidtide-2.9.6.data/scripts/tcfrom3col +0 -23
  399. rapidtide-2.9.6.data/scripts/temporaldecomp +0 -23
  400. rapidtide-2.9.6.data/scripts/threeD +0 -236
  401. rapidtide-2.9.6.data/scripts/tidepool +0 -23
  402. rapidtide-2.9.6.data/scripts/variabilityizer +0 -23
  403. rapidtide-2.9.6.dist-info/RECORD +0 -359
  404. rapidtide-2.9.6.dist-info/top_level.txt +0 -86
  405. {rapidtide-2.9.6.dist-info → rapidtide-3.1.3.dist-info/licenses}/LICENSE +0 -0
rapidtide/calcsimfunc.py CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
  #
4
- # Copyright 2016-2024 Blaise Frederick
4
+ # Copyright 2016-2025 Blaise Frederick
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -19,11 +19,12 @@
19
19
  import gc
20
20
  import logging
21
21
  import warnings
22
+ from typing import Any
22
23
 
23
24
  import numpy as np
24
- from tqdm import tqdm
25
+ from numpy.typing import NDArray
25
26
 
26
- import rapidtide.multiproc as tide_multiproc
27
+ import rapidtide.genericmultiproc as tide_genericmultiproc
27
28
  import rapidtide.resample as tide_resample
28
29
 
29
30
  warnings.simplefilter(action="ignore", category=FutureWarning)
@@ -31,154 +32,338 @@ LGR = logging.getLogger("GENERAL")
31
32
 
32
33
 
33
34
  def _procOneVoxelCorrelation(
34
- vox,
35
- thetc,
36
- theCorrelator,
37
- fmri_x,
38
- fmritc,
39
- os_fmri_x,
40
- oversampfactor=1,
41
- interptype="univariate",
42
- rt_floatset=np.float64,
43
- rt_floattype="float64",
44
- ):
35
+ vox: int,
36
+ voxelargs: list[Any],
37
+ **kwargs: Any,
38
+ ) -> tuple[int, float, NDArray, NDArray, float, list[float]]:
39
+ """
40
+ Process correlation for a single voxel.
41
+
42
+ This function performs correlation analysis on a single voxel using the provided
43
+ fMRI data and correlation parameters. It handles resampling of fMRI data based
44
+ on the oversampling factor and computes the correlation between the resampled
45
+ data and the target time course.
46
+
47
+ Parameters
48
+ ----------
49
+ vox : int
50
+ The voxel index being processed.
51
+ voxelargs : list[Any]
52
+ List containing the following elements in order:
53
+ - thetc : array-like
54
+ - theCorrelator : object
55
+ - fmri_x : array-like
56
+ - fmritc : array-like
57
+ - os_fmri_x : array-like
58
+ - theglobalmaxlist : list
59
+ - thexcorr_y : array-like
60
+ **kwargs : Any
61
+ Additional keyword arguments that override default options:
62
+ - oversampfactor : int, optional
63
+ Oversampling factor for resampling (default: 1)
64
+ - interptype : str, optional
65
+ Interpolation type for resampling (default: "univariate")
66
+ - debug : bool, optional
67
+ Enable debug printing (default: False)
68
+
69
+ Returns
70
+ -------
71
+ tuple[int, float, NDArray, NDArray, float, list[float]]
72
+ A tuple containing:
73
+ - vox : int
74
+ The input voxel index
75
+ - np.mean(thetc) : float
76
+ Mean of the processed time course
77
+ - thexcorr_y : NDArray
78
+ Correlation values
79
+ - thexcorr_x : NDArray
80
+ Correlation lags
81
+ - theglobalmax : float
82
+ Global maximum correlation value
83
+ - theglobalmaxlist : list[float]
84
+ List of global maximum correlation values
85
+
86
+ Notes
87
+ -----
88
+ The function modifies the input `thetc` array in-place with the resampled data.
89
+ If oversampfactor is less than 1, no resampling is performed and the original
90
+ time course is used.
91
+
92
+ Examples
93
+ --------
94
+ >>> result = _procOneVoxelCorrelation(
95
+ ... vox=100,
96
+ ... voxelargs=[thetc, correlator, fmri_x, fmritc, os_fmri_x, globalmaxlist, xcorr_y],
97
+ ... oversampfactor=2,
98
+ ... debug=True
99
+ ... )
100
+ """
101
+ options = {
102
+ "oversampfactor": 1,
103
+ "interptype": "univariate",
104
+ "debug": False,
105
+ }
106
+ options.update(kwargs)
107
+ oversampfactor = options["oversampfactor"]
108
+ interptype = options["interptype"]
109
+ debug = options["debug"]
110
+ if debug:
111
+ print(f"{oversampfactor=} {interptype=}")
112
+ (thetc, theCorrelator, fmri_x, fmritc, os_fmri_x, theglobalmaxlist, thexcorr_y) = voxelargs
45
113
  if oversampfactor >= 1:
46
114
  thetc[:] = tide_resample.doresample(fmri_x, fmritc, os_fmri_x, method=interptype)
47
115
  else:
48
116
  thetc[:] = fmritc
49
117
  thexcorr_y, thexcorr_x, theglobalmax = theCorrelator.run(thetc)
118
+ # print(f"_procOneVoxelCorrelation: {thexcorr_x=}")
119
+
120
+ return vox, np.mean(thetc), thexcorr_y, thexcorr_x, theglobalmax, theglobalmaxlist
50
121
 
51
- return vox, np.mean(thetc), thexcorr_y, thexcorr_x, theglobalmax
122
+
123
+ def _packvoxeldata(voxnum: int, voxelargs: list[Any]) -> list[Any]:
124
+ """
125
+ Pack voxel data into a structured list format.
126
+
127
+ This function extracts and organizes voxel data from a list of arguments,
128
+ specifically selecting a slice from the fourth element based on the voxel number.
129
+
130
+ Parameters
131
+ ----------
132
+ voxnum : int
133
+ The voxel index used to select a specific row from the fourth element
134
+ of voxelargs, which is expected to be a 2D array-like structure.
135
+ voxelargs : list[Any]
136
+ A list containing voxel-related arguments. The expected structure is:
137
+ [arg0, arg1, arg2, array_2d, arg4, arg5, arg6]
138
+ where the fourth element (index 3) should be a 2D array-like object
139
+ from which a row will be selected using voxnum.
140
+
141
+ Returns
142
+ -------
143
+ list[Any]
144
+ A list containing the packed voxel data with the following structure:
145
+ [voxelargs[0], voxelargs[1], voxelargs[2],
146
+ voxelargs[3][voxnum, :], voxelargs[4], voxelargs[5], voxelargs[6]]
147
+ where the fourth element is the selected row from the 2D array.
148
+
149
+ Notes
150
+ -----
151
+ The function assumes that voxelargs[3] is a 2D array-like structure and
152
+ that voxnum is a valid index for selecting a row from this array.
153
+
154
+ Examples
155
+ --------
156
+ >>> voxelargs = [1, 2, 3, [[10, 20], [30, 40]], 5, 6, 7]
157
+ >>> _packvoxeldata(1, voxelargs)
158
+ [1, 2, 3, [30, 40], 5, 6, 7]
159
+ """
160
+ return [
161
+ voxelargs[0],
162
+ voxelargs[1],
163
+ voxelargs[2],
164
+ (voxelargs[3])[voxnum, :],
165
+ voxelargs[4],
166
+ voxelargs[5],
167
+ voxelargs[6],
168
+ ]
169
+
170
+
171
+ def _unpackvoxeldata(retvals: tuple[Any, ...], voxelproducts: list[Any]) -> None:
172
+ """
173
+ Unpack voxel data from retvals into voxelproducts structure.
174
+
175
+ Parameters
176
+ ----------
177
+ retvals : tuple[Any, ...]
178
+ Tuple containing voxel data to be unpacked. Expected to contain at least 5 elements
179
+ where:
180
+ - retvals[0]: index/key for first assignment
181
+ - retvals[1]: value for first assignment
182
+ - retvals[2]: array-like data for second assignment
183
+ - retvals[3]: value for third assignment
184
+ - retvals[4]: value for fourth assignment (will be incremented by 0)
185
+ voxelproducts : list[Any]
186
+ List containing voxel data structures where unpacked data will be stored:
187
+ - voxelproducts[0]: dict or array-like structure for first assignment
188
+ - voxelproducts[1]: 2D array-like structure for second assignment
189
+ - voxelproducts[2]: scalar or single value storage
190
+ - voxelproducts[3]: list-like structure for appending fourth assignment
191
+
192
+ Returns
193
+ -------
194
+ None
195
+ This function modifies voxelproducts in-place and does not return any value.
196
+
197
+ Notes
198
+ -----
199
+ This function performs in-place modifications of the voxelproducts list elements.
200
+ The fourth assignment uses `retvals[4] + 0` which effectively creates a copy of
201
+ the value to ensure no reference issues.
202
+
203
+ Examples
204
+ --------
205
+ >>> retvals = (0, 'value1', [1, 2, 3], 42, 10)
206
+ >>> voxelproducts = [{}, [[0]*3], 0, []]
207
+ >>> _unpackvoxeldata(retvals, voxelproducts)
208
+ >>> voxelproducts[0]
209
+ {0: 'value1'}
210
+ >>> voxelproducts[1]
211
+ [[1, 2, 3]]
212
+ >>> voxelproducts[2]
213
+ 42
214
+ >>> voxelproducts[3]
215
+ [10]
216
+ """
217
+ (voxelproducts[0])[retvals[0]] = retvals[1]
218
+ (voxelproducts[1])[retvals[0], :] = retvals[2]
219
+ voxelproducts[2] = retvals[3]
220
+ (voxelproducts[3]).append(retvals[4] + 0)
52
221
 
53
222
 
54
223
  def correlationpass(
55
- fmridata,
56
- referencetc,
57
- theCorrelator,
58
- fmri_x,
59
- os_fmri_x,
60
- lagmininpts,
61
- lagmaxinpts,
62
- corrout,
63
- meanval,
64
- nprocs=1,
65
- alwaysmultiproc=False,
66
- oversampfactor=1,
67
- interptype="univariate",
68
- showprogressbar=True,
69
- chunksize=1000,
70
- rt_floatset=np.float64,
71
- rt_floattype="float64",
72
- ):
224
+ fmridata: NDArray,
225
+ referencetc: NDArray,
226
+ theCorrelator: Any,
227
+ fmri_x: NDArray,
228
+ os_fmri_x: NDArray,
229
+ lagmininpts: int,
230
+ lagmaxinpts: int,
231
+ corrout: NDArray,
232
+ meanval: NDArray,
233
+ nprocs: int = 1,
234
+ alwaysmultiproc: bool = False,
235
+ oversampfactor: int = 1,
236
+ interptype: str = "univariate",
237
+ showprogressbar: bool = True,
238
+ chunksize: int = 1000,
239
+ rt_floattype: np.dtype = np.float64,
240
+ debug: bool = False,
241
+ ) -> tuple[int, list[float], NDArray]:
73
242
  """
243
+ Compute correlation-based similarity function across MRI voxels using multi-processing.
244
+
245
+ This function computes a correlation-based similarity measure between a reference time course
246
+ and fMRI data across voxels, using a specified correlator object. It supports both single and
247
+ multi-processing modes and allows for various interpolation and oversampling options.
74
248
 
75
249
  Parameters
76
250
  ----------
77
- fmridata
78
- referencetc - the reference regressor, already oversampled
79
- theCorrelator
80
- fmri_x
81
- os_fmri_x
82
- tr
83
- lagmininpts
84
- lagmaxinpts
85
- corrout
86
- meanval
87
- nprocs
88
- oversampfactor
89
- interptype
90
- showprogressbar
91
- chunksize
92
- rt_floatset
93
- rt_floattype
251
+ fmridata : ndarray
252
+ 4D fMRI data array of shape (time, x, y, z).
253
+ referencetc : ndarray
254
+ Reference time course of shape (time,).
255
+ theCorrelator : object
256
+ An object implementing the `setreftc` and `setlimits` methods for correlation computation.
257
+ fmri_x : ndarray
258
+ Time points corresponding to fMRI data, shape (time,).
259
+ os_fmri_x : ndarray
260
+ Oversampled time points, shape (oversampled_time,).
261
+ lagmininpts : int
262
+ Minimum lag in samples to consider for correlation.
263
+ lagmaxinpts : int
264
+ Maximum lag in samples to consider for correlation.
265
+ corrout : ndarray
266
+ Output array to store correlation values, shape (time, x, y, z).
267
+ meanval : ndarray
268
+ Array to store mean values, shape (x, y, z).
269
+ nprocs : int, optional
270
+ Number of processes to use for parallel computation. Default is 1.
271
+ alwaysmultiproc : bool, optional
272
+ If True, always use multiprocessing even for single voxel processing. Default is False.
273
+ oversampfactor : int, optional
274
+ Oversampling factor for interpolation. Default is 1.
275
+ interptype : str, optional
276
+ Interpolation type, e.g., 'univariate'. Default is 'univariate'.
277
+ showprogressbar : bool, optional
278
+ Whether to display a progress bar. Default is True.
279
+ chunksize : int, optional
280
+ Size of chunks for multiprocessing. Default is 1000.
281
+ rt_floattype : str, optional
282
+ String representation of floating-point type. Default is 'float64'.
283
+ debug : bool, optional
284
+ If True, enable debug logging. Default is False.
94
285
 
95
286
  Returns
96
287
  -------
288
+ tuple of (int, list of float, ndarray)
289
+ - Total number of voxels processed.
290
+ - List of global maximum correlation values.
291
+ - Correlation scale array.
97
292
 
293
+ Notes
294
+ -----
295
+ The function uses `tide_genericmultiproc.run_multiproc` to perform multi-voxel correlation
296
+ computations in parallel. It initializes a correlator object and sets the reference time course
297
+ and lag limits before starting the computation.
298
+
299
+ Examples
300
+ --------
301
+ >>> import numpy as np
302
+ >>> from some_module import correlationpass, SomeCorrelator
303
+ >>> fmri_data = np.random.rand(100, 64, 64, 32)
304
+ >>> ref_tc = np.random.rand(100)
305
+ >>> correlator = SomeCorrelator()
306
+ >>> fmri_x = np.linspace(0, 100, 100)
307
+ >>> os_fmri_x = np.linspace(0, 100, 200)
308
+ >>> corr_out = np.zeros_like(fmri_data)
309
+ >>> mean_val = np.zeros((64, 64, 32))
310
+ >>> total_voxels, max_vals, corr_scale = correlationpass(
311
+ ... fmridata=fmri_data,
312
+ ... referencetc=ref_tc,
313
+ ... theCorrelator=correlator,
314
+ ... fmri_x=fmri_x,
315
+ ... os_fmri_x=os_fmri_x,
316
+ ... lagmininpts=-10,
317
+ ... lagmaxinpts=10,
318
+ ... corrout=corr_out,
319
+ ... meanval=mean_val,
320
+ ... nprocs=4,
321
+ ... debug=False
322
+ ... )
98
323
  """
324
+ if debug:
325
+ print(f"calling setreftc in calcsimfunc with length {len(referencetc)}")
99
326
  theCorrelator.setreftc(referencetc)
100
327
  theCorrelator.setlimits(lagmininpts, lagmaxinpts)
101
-
102
- inputshape = np.shape(fmridata)
103
- volumetotal = 0
104
328
  thetc = np.zeros(np.shape(os_fmri_x), dtype=rt_floattype)
105
329
  theglobalmaxlist = []
106
- if nprocs > 1 or alwaysmultiproc:
107
- # define the consumer function here so it inherits most of the arguments
108
- def correlation_consumer(inQ, outQ):
109
- while True:
110
- try:
111
- # get a new message
112
- val = inQ.get()
113
-
114
- # this is the 'TERM' signal
115
- if val is None:
116
- break
117
-
118
- # process and send the data
119
- outQ.put(
120
- _procOneVoxelCorrelation(
121
- val,
122
- thetc,
123
- theCorrelator,
124
- fmri_x,
125
- fmridata[val, :],
126
- os_fmri_x,
127
- oversampfactor=oversampfactor,
128
- interptype=interptype,
129
- rt_floatset=rt_floatset,
130
- rt_floattype=rt_floattype,
131
- )
132
- )
133
-
134
- except Exception as e:
135
- print("error!", e)
136
- break
137
-
138
- data_out = tide_multiproc.run_multiproc(
139
- correlation_consumer,
140
- inputshape,
141
- None,
142
- nprocs=nprocs,
143
- showprogressbar=showprogressbar,
144
- chunksize=chunksize,
145
- )
146
-
147
- # unpack the data
148
- volumetotal = 0
149
- for voxel in data_out:
150
- meanval[voxel[0]] = voxel[1]
151
- corrout[voxel[0], :] = voxel[2]
152
- thecorrscale = voxel[3]
153
- theglobalmaxlist.append(voxel[4] + 0)
154
- volumetotal += 1
155
- del data_out
156
- else:
157
- for vox in tqdm(
158
- range(0, inputshape[0]),
159
- desc="Voxel",
160
- disable=(not showprogressbar),
161
- ):
162
- (
163
- dummy,
164
- meanval[vox],
165
- corrout[vox, :],
166
- thecorrscale,
167
- theglobalmax,
168
- ) = _procOneVoxelCorrelation(
169
- vox,
170
- thetc,
171
- theCorrelator,
172
- fmri_x,
173
- fmridata[vox, :],
174
- os_fmri_x,
175
- oversampfactor=oversampfactor,
176
- interptype=interptype,
177
- rt_floatset=rt_floatset,
178
- rt_floattype=rt_floattype,
179
- )
180
- theglobalmaxlist.append(theglobalmax + 0)
181
- volumetotal += 1
330
+
331
+ # generate a corrscale of the correct length
332
+ dummy = np.zeros(100, dtype=rt_floattype)
333
+ dummy, dummy, dummy, thecorrscale, dummy, dummy = _procOneVoxelCorrelation(
334
+ 0,
335
+ _packvoxeldata(
336
+ 0, [thetc, theCorrelator, fmri_x, fmridata, os_fmri_x, theglobalmaxlist, dummy]
337
+ ),
338
+ oversampfactor=oversampfactor,
339
+ interptype=interptype,
340
+ )
341
+
342
+ inputshape = np.shape(fmridata)
343
+ voxelargs = [thetc, theCorrelator, fmri_x, fmridata, os_fmri_x, theglobalmaxlist, thecorrscale]
344
+ voxelfunc = _procOneVoxelCorrelation
345
+ packfunc = _packvoxeldata
346
+ unpackfunc = _unpackvoxeldata
347
+ voxeltargets = [meanval, corrout, thecorrscale, theglobalmaxlist]
348
+ voxelmask = np.ones_like(fmridata[:, 0])
349
+
350
+ volumetotal = tide_genericmultiproc.run_multiproc(
351
+ voxelfunc,
352
+ packfunc,
353
+ unpackfunc,
354
+ voxelargs,
355
+ voxeltargets,
356
+ inputshape,
357
+ voxelmask,
358
+ LGR,
359
+ nprocs,
360
+ alwaysmultiproc,
361
+ showprogressbar,
362
+ chunksize,
363
+ oversampfactor=oversampfactor,
364
+ interptype=interptype,
365
+ debug=debug,
366
+ )
182
367
  LGR.info(f"\nSimilarity function calculated on {volumetotal} voxels")
183
368
 
184
369
  # garbage collect