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/__init__.py CHANGED
@@ -2,11 +2,3 @@
2
2
  from . import _version
3
3
 
4
4
  __version__ = _version.get_versions()["version"]
5
-
6
- from . import _version
7
-
8
- __version__ = _version.get_versions()["version"]
9
-
10
- from . import _version
11
-
12
- __version__ = _version.get_versions()["version"]
rapidtide/_version.py CHANGED
@@ -1,5 +1,5 @@
1
1
 
2
- # This file was generated by 'versioneer.py' (0.28) from
2
+ # This file was generated by 'versioneer.py' (0.29) from
3
3
  # revision-control system data, or from the parent directory name of an
4
4
  # unpacked source archive. Distribution tarballs contain a pre-generated copy
5
5
  # of this file.
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2024-09-05T20:58:41-0400",
11
+ "date": "2026-01-21T11:49:41-0500",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "3a4b12ec4332b98aa4adfd39414bc67924abbf78",
15
- "version": "2.9.6"
14
+ "full-revisionid": "63ac9a63f9549380f07bf90d8c5f0d80db38bb53",
15
+ "version": "3.1.3"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -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,19 +19,79 @@
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
 
28
29
  warnings.simplefilter(action="ignore", category=FutureWarning)
29
30
  LGR = logging.getLogger("GENERAL")
30
31
 
31
32
 
32
33
  def _procOneVoxelCoherence(
33
- vox, theCoherer, fmritc, alt=False, rt_floatset=np.float64, rt_floattype="float64"
34
- ):
34
+ vox: int,
35
+ voxelargs: list,
36
+ **kwargs: Any,
37
+ ) -> tuple[int, NDArray, NDArray, float, float]:
38
+ """
39
+ Process coherence for a single voxel.
40
+
41
+ This function computes coherence values for a given voxel using the provided
42
+ coherence calculator and fMRI time course data. It returns the voxel index
43
+ along with coherence values and the location of the maximum coherence.
44
+
45
+ Parameters
46
+ ----------
47
+ vox : int
48
+ The voxel index being processed.
49
+ voxelargs : list
50
+ A list containing two elements: the coherence calculator object and
51
+ the fMRI time course data (fmritc).
52
+ **kwargs : Any
53
+ Additional keyword arguments that can override default options:
54
+ - alt : bool, optional (default: False)
55
+ Flag to indicate alternative computation mode.
56
+ - debug : bool, optional (default: False)
57
+ Flag to enable debug printing.
58
+
59
+ Returns
60
+ -------
61
+ tuple[int, NDArray, NDArray, float, float]
62
+ A tuple containing:
63
+ - vox : int
64
+ The input voxel index
65
+ - thecoherence_x : NDArray
66
+ X-axis coherence values
67
+ - thecoherence_y : NDArray
68
+ Y-axis coherence values
69
+ - thecoherence_y[maxindex] : float
70
+ Maximum coherence value
71
+ - thecoherence_x[maxindex] : float
72
+ X-coordinate corresponding to maximum coherence
73
+
74
+ Notes
75
+ -----
76
+ The function uses the `theCoherer.run()` method to compute coherence values.
77
+ When `alt=True`, the function returns additional dummy values from the
78
+ coherence calculation. The maximum coherence is determined using `np.argmax()`.
79
+
80
+ Examples
81
+ --------
82
+ >>> result = _procOneVoxelCoherence(10, [coherer_obj, fmri_data], alt=True)
83
+ >>> voxel_idx, x_vals, y_vals, max_coherence, max_x = result
84
+ """
85
+ options = {
86
+ "alt": False,
87
+ "debug": False,
88
+ }
89
+ options.update(kwargs)
90
+ alt = options["alt"]
91
+ debug = options["debug"]
92
+ (theCoherer, fmritc) = voxelargs
93
+ if debug:
94
+ print(f"{alt=}")
35
95
  if alt:
36
96
  (
37
97
  thecoherence_y,
@@ -53,109 +113,194 @@ def _procOneVoxelCoherence(
53
113
  )
54
114
 
55
115
 
116
+ def _packvoxeldata(voxnum: int, voxelargs: list) -> list:
117
+ """
118
+ Pack voxel data for processing.
119
+
120
+ Parameters
121
+ ----------
122
+ voxnum : int
123
+ The voxel number to extract from the second element of voxelargs.
124
+ voxelargs : list
125
+ A list containing voxel arguments where:
126
+ - voxelargs[0] is the first voxel argument (returned as-is)
127
+ - voxelargs[1] is a 2D array from which row voxnum is extracted
128
+
129
+ Returns
130
+ -------
131
+ list
132
+ A list containing:
133
+ - voxelargs[0] (unchanged)
134
+ - The voxnum-th row of voxelargs[1] as a 1D array
135
+
136
+ Notes
137
+ -----
138
+ This function is typically used in voxel-based data processing workflows
139
+ where data needs to be extracted and reorganized for further analysis.
140
+
141
+ Examples
142
+ --------
143
+ >>> voxelargs = [10, [[1, 2, 3], [4, 5, 6], [7, 8, 9]]]
144
+ >>> _packvoxeldata(1, voxelargs)
145
+ [10, [4, 5, 6]]
146
+ """
147
+ return [
148
+ voxelargs[0],
149
+ (voxelargs[1])[voxnum, :],
150
+ ]
151
+
152
+
153
+ def _unpackvoxeldata(retvals: tuple, voxelproducts: list) -> None:
154
+ """
155
+ Unpack voxel data from retvals tuple into corresponding voxel product lists.
156
+
157
+ This function takes a tuple of voxel data and distributes the values into
158
+ three separate voxel product lists based on the index specified in the first
159
+ element of the retvals tuple.
160
+
161
+ Parameters
162
+ ----------
163
+ retvals : tuple
164
+ A tuple containing voxel data where:
165
+ - retvals[0] : int, index for insertion
166
+ - retvals[1] : unused
167
+ - retvals[2] : value to insert into voxelproducts[0]
168
+ - retvals[3] : value to insert into voxelproducts[1]
169
+ - retvals[4] : value to insert into voxelproducts[2]
170
+ voxelproducts : list
171
+ A list of three voxel product arrays/lists where:
172
+ - voxelproducts[0] : first voxel product array
173
+ - voxelproducts[1] : second voxel product array
174
+ - voxelproducts[2] : third voxel product array
175
+
176
+ Returns
177
+ -------
178
+ None
179
+ This function modifies the voxelproducts lists in-place and does not return anything.
180
+
181
+ Notes
182
+ -----
183
+ The function assumes that retvals contains exactly 5 elements and that
184
+ voxelproducts contains exactly 3 elements. The first element of retvals
185
+ is used as an index to determine the position where values should be inserted
186
+ into each of the three voxel product arrays.
187
+
188
+ Examples
189
+ --------
190
+ >>> voxel1 = [0, 0, 0]
191
+ >>> voxel2 = [0, 0, 0]
192
+ >>> voxel3 = [0, 0, 0]
193
+ >>> retvals = (1, None, 10, 20, 30)
194
+ >>> voxelproducts = [voxel1, voxel2, voxel3]
195
+ >>> _unpackvoxeldata(retvals, voxelproducts)
196
+ >>> print(voxel1[1])
197
+ 10
198
+ >>> print(voxel2[1])
199
+ 20
200
+ >>> print(voxel3[1])
201
+ 30
202
+ """
203
+ (voxelproducts[0])[retvals[0]] = retvals[2]
204
+ (voxelproducts[1])[retvals[0]] = retvals[3]
205
+ (voxelproducts[2])[retvals[0]] = retvals[4]
206
+
207
+
56
208
  def coherencepass(
57
- fmridata,
58
- theCoherer,
59
- coherencefunc,
60
- coherencepeakval,
61
- coherencepeakfreq,
62
- alt=False,
63
- chunksize=1000,
64
- nprocs=1,
65
- alwaysmultiproc=False,
66
- showprogressbar=True,
67
- rt_floatset=np.float64,
68
- rt_floattype="float64",
69
- ):
209
+ fmridata: NDArray,
210
+ theCoherer: Any,
211
+ coherencefunc: NDArray,
212
+ coherencepeakval: NDArray,
213
+ coherencepeakfreq: NDArray,
214
+ alt: bool = False,
215
+ chunksize: int = 1000,
216
+ nprocs: int = 1,
217
+ alwaysmultiproc: bool = False,
218
+ showprogressbar: bool = True,
219
+ debug: bool = False,
220
+ ) -> int:
70
221
  """
222
+ Perform coherence analysis on fMRI data across voxels using multiprocessing.
223
+
224
+ This function applies coherence analysis to each voxel in the input fMRI data,
225
+ storing results in the provided output arrays. It supports parallel processing
226
+ for improved performance and includes optional debugging and progress tracking.
71
227
 
72
228
  Parameters
73
229
  ----------
74
- fmridata
75
- theCoherer
76
- coherencefunc
77
- coherencepeakval
78
- coherencepeakfreq
79
- chunksize
80
- nprocs
81
- alwaysmultiproc
82
- showprogressbar
83
- rt_floatset
84
- rt_floattype
230
+ fmridata : NDArray
231
+ Input fMRI data array with shape (time, voxels).
232
+ theCoherer : Any
233
+ Object or function used to perform coherence calculations.
234
+ coherencefunc : NDArray
235
+ Array to store coherence function results for each voxel.
236
+ coherencepeakval : NDArray
237
+ Array to store peak coherence values for each voxel.
238
+ coherencepeakfreq : NDArray
239
+ Array to store peak coherence frequencies for each voxel.
240
+ alt : bool, optional
241
+ If True, use alternative coherence calculation method. Default is False.
242
+ chunksize : int, optional
243
+ Number of voxels to process in each chunk during multiprocessing.
244
+ Default is 1000.
245
+ nprocs : int, optional
246
+ Number of processes to use for multiprocessing. Default is 1.
247
+ alwaysmultiproc : bool, optional
248
+ If True, always use multiprocessing even for small datasets.
249
+ Default is False.
250
+ showprogressbar : bool, optional
251
+ If True, display a progress bar during processing. Default is True.
252
+ debug : bool, optional
253
+ If True, enable debug logging. Default is False.
85
254
 
86
255
  Returns
87
256
  -------
257
+ int
258
+ Total number of voxels processed.
259
+
260
+ Notes
261
+ -----
262
+ This function uses `tide_genericmultiproc.run_multiproc` to distribute
263
+ voxel-wise coherence computations across multiple processes. The results
264
+ are stored directly into the provided output arrays (`coherencefunc`,
265
+ `coherencepeakval`, `coherencepeakfreq`).
88
266
 
267
+ Examples
268
+ --------
269
+ >>> import numpy as np
270
+ >>> fmri_data = np.random.rand(100, 50)
271
+ >>> coherer = SomeCohererClass()
272
+ >>> coherence_func = np.zeros((100, 50))
273
+ >>> peak_val = np.zeros((1, 50))
274
+ >>> peak_freq = np.zeros((1, 50))
275
+ >>> n_voxels = coherencepass(
276
+ ... fmri_data, coherer, coherence_func, peak_val, peak_freq
277
+ ... )
278
+ >>> print(f"Processed {n_voxels} voxels")
89
279
  """
90
280
  inputshape = np.shape(fmridata)
91
- volumetotal = 0
92
- if nprocs > 1 or alwaysmultiproc:
93
- # define the consumer function here so it inherits most of the arguments
94
- def coherence_consumer(inQ, outQ):
95
- while True:
96
- try:
97
- # get a new message
98
- val = inQ.get()
99
-
100
- # this is the 'TERM' signal
101
- if val is None:
102
- break
103
-
104
- # process and send the data
105
- outQ.put(
106
- _procOneVoxelCoherence(
107
- val,
108
- theCoherer,
109
- fmridata[val, :],
110
- alt=alt,
111
- rt_floatset=rt_floatset,
112
- rt_floattype=rt_floattype,
113
- )
114
- )
115
-
116
- except Exception as e:
117
- print("error!", e)
118
- break
119
-
120
- data_out = tide_multiproc.run_multiproc(
121
- coherence_consumer,
122
- inputshape,
123
- None,
124
- nprocs=nprocs,
125
- showprogressbar=showprogressbar,
126
- chunksize=chunksize,
127
- )
128
-
129
- # unpack the data
130
- volumetotal = 0
131
- for voxel in data_out:
132
- coherencefunc[voxel[0], :] = voxel[2] + 0.0
133
- coherencepeakval[voxel[0]] = voxel[3] + 0.0
134
- coherencepeakfreq[voxel[0]] = voxel[4] + 0.0
135
- volumetotal += 1
136
- del data_out
137
- else:
138
- for vox in tqdm(
139
- range(0, inputshape[0]),
140
- desc="Voxel",
141
- unit="voxels",
142
- disable=(not showprogressbar),
143
- ):
144
- (
145
- dummy,
146
- dummy,
147
- coherencefunc[vox],
148
- coherencepeakval[vox],
149
- coherencepeakfreq[vox],
150
- ) = _procOneVoxelCoherence(
151
- vox,
152
- theCoherer,
153
- fmridata[vox, :],
154
- alt=alt,
155
- rt_floatset=rt_floatset,
156
- rt_floattype=rt_floattype,
157
- )
158
- volumetotal += 1
281
+ voxelargs = [theCoherer, fmridata]
282
+ voxelfunc = _procOneVoxelCoherence
283
+ packfunc = _packvoxeldata
284
+ unpackfunc = _unpackvoxeldata
285
+ voxeltargets = [coherencefunc, coherencepeakval, coherencepeakfreq]
286
+ voxelmask = np.ones_like(fmridata[:, 0])
287
+
288
+ volumetotal = tide_genericmultiproc.run_multiproc(
289
+ voxelfunc,
290
+ packfunc,
291
+ unpackfunc,
292
+ voxelargs,
293
+ voxeltargets,
294
+ inputshape,
295
+ voxelmask,
296
+ LGR,
297
+ nprocs,
298
+ alwaysmultiproc,
299
+ showprogressbar,
300
+ chunksize,
301
+ alt=alt,
302
+ debug=debug,
303
+ )
159
304
  LGR.info(f"\nCoherence performed on {volumetotal} voxels")
160
305
 
161
306
  # garbage collect