rapidtide 2.9.5__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 +94 -27
  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 +21 -0
  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 +178 -0
  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 +590 -1181
  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 +867 -137
  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.5.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 +27 -15
  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 +1833 -1919
  292. rapidtide/workflows/rapidtide2std.py +101 -3
  293. rapidtide/workflows/rapidtide_parser.py +607 -372
  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.5.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.5.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.5.data/scripts/adjustoffset +0 -23
  346. rapidtide-2.9.5.data/scripts/aligntcs +0 -23
  347. rapidtide-2.9.5.data/scripts/applydlfilter +0 -23
  348. rapidtide-2.9.5.data/scripts/atlasaverage +0 -23
  349. rapidtide-2.9.5.data/scripts/atlastool +0 -23
  350. rapidtide-2.9.5.data/scripts/calcicc +0 -22
  351. rapidtide-2.9.5.data/scripts/calctexticc +0 -23
  352. rapidtide-2.9.5.data/scripts/calcttest +0 -22
  353. rapidtide-2.9.5.data/scripts/ccorrica +0 -23
  354. rapidtide-2.9.5.data/scripts/diffrois +0 -23
  355. rapidtide-2.9.5.data/scripts/endtidalproc +0 -23
  356. rapidtide-2.9.5.data/scripts/filtnifti +0 -23
  357. rapidtide-2.9.5.data/scripts/filttc +0 -23
  358. rapidtide-2.9.5.data/scripts/fingerprint +0 -593
  359. rapidtide-2.9.5.data/scripts/fixtr +0 -23
  360. rapidtide-2.9.5.data/scripts/glmfilt +0 -24
  361. rapidtide-2.9.5.data/scripts/gmscalc +0 -22
  362. rapidtide-2.9.5.data/scripts/happy +0 -25
  363. rapidtide-2.9.5.data/scripts/happy2std +0 -23
  364. rapidtide-2.9.5.data/scripts/happywarp +0 -350
  365. rapidtide-2.9.5.data/scripts/histnifti +0 -23
  366. rapidtide-2.9.5.data/scripts/histtc +0 -23
  367. rapidtide-2.9.5.data/scripts/localflow +0 -23
  368. rapidtide-2.9.5.data/scripts/mergequality +0 -23
  369. rapidtide-2.9.5.data/scripts/pairproc +0 -23
  370. rapidtide-2.9.5.data/scripts/pairwisemergenifti +0 -23
  371. rapidtide-2.9.5.data/scripts/physiofreq +0 -23
  372. rapidtide-2.9.5.data/scripts/pixelcomp +0 -23
  373. rapidtide-2.9.5.data/scripts/plethquality +0 -23
  374. rapidtide-2.9.5.data/scripts/polyfitim +0 -23
  375. rapidtide-2.9.5.data/scripts/proj2flow +0 -23
  376. rapidtide-2.9.5.data/scripts/rankimage +0 -23
  377. rapidtide-2.9.5.data/scripts/rapidtide +0 -23
  378. rapidtide-2.9.5.data/scripts/rapidtide2std +0 -23
  379. rapidtide-2.9.5.data/scripts/resamplenifti +0 -23
  380. rapidtide-2.9.5.data/scripts/resampletc +0 -23
  381. rapidtide-2.9.5.data/scripts/retroglm +0 -23
  382. rapidtide-2.9.5.data/scripts/roisummarize +0 -23
  383. rapidtide-2.9.5.data/scripts/runqualitycheck +0 -23
  384. rapidtide-2.9.5.data/scripts/showarbcorr +0 -23
  385. rapidtide-2.9.5.data/scripts/showhist +0 -23
  386. rapidtide-2.9.5.data/scripts/showstxcorr +0 -23
  387. rapidtide-2.9.5.data/scripts/showtc +0 -23
  388. rapidtide-2.9.5.data/scripts/showxcorr_legacy +0 -536
  389. rapidtide-2.9.5.data/scripts/showxcorrx +0 -23
  390. rapidtide-2.9.5.data/scripts/showxy +0 -23
  391. rapidtide-2.9.5.data/scripts/simdata +0 -23
  392. rapidtide-2.9.5.data/scripts/spatialdecomp +0 -23
  393. rapidtide-2.9.5.data/scripts/spatialfit +0 -23
  394. rapidtide-2.9.5.data/scripts/spatialmi +0 -23
  395. rapidtide-2.9.5.data/scripts/spectrogram +0 -23
  396. rapidtide-2.9.5.data/scripts/synthASL +0 -23
  397. rapidtide-2.9.5.data/scripts/tcfrom2col +0 -23
  398. rapidtide-2.9.5.data/scripts/tcfrom3col +0 -23
  399. rapidtide-2.9.5.data/scripts/temporaldecomp +0 -23
  400. rapidtide-2.9.5.data/scripts/threeD +0 -236
  401. rapidtide-2.9.5.data/scripts/tidepool +0 -23
  402. rapidtide-2.9.5.data/scripts/variabilityizer +0 -23
  403. rapidtide-2.9.5.dist-info/RECORD +0 -357
  404. rapidtide-2.9.5.dist-info/top_level.txt +0 -86
  405. {rapidtide-2.9.5.dist-info → rapidtide-3.1.3.dist-info/licenses}/LICENSE +0 -0
rapidtide/glmpass.py DELETED
@@ -1,434 +0,0 @@
1
- #!/usr/bin/env python
2
- # -*- coding: utf-8 -*-
3
- #
4
- # Copyright 2016-2024 Blaise Frederick
5
- #
6
- # Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- # See the License for the specific language governing permissions and
16
- # limitations under the License.
17
- #
18
- #
19
- import numpy as np
20
- from tqdm import tqdm
21
-
22
- import rapidtide.filter as tide_filt
23
- import rapidtide.fit as tide_fit
24
- import rapidtide.miscmath as tide_math
25
- import rapidtide.multiproc as tide_multiproc
26
-
27
-
28
- def _procOneGLMItem(vox, theevs, thedata, rt_floatset=np.float64, rt_floattype="float64"):
29
- # NOTE: if theevs is 2D, dimension 0 is number of points, dimension 1 is number of evs
30
- thefit, R = tide_fit.mlregress(theevs, thedata)
31
- if theevs.ndim > 1:
32
- if thefit is None:
33
- thefit = np.matrix(np.zeros((1, theevs.shape[1] + 1), dtype=rt_floattype))
34
- fitcoeffs = rt_floatset(thefit[0, 1:])
35
- datatoremove = theevs[:, 0] * 0.0
36
- for j in range(theevs.shape[1]):
37
- datatoremove += rt_floatset(rt_floatset(thefit[0, 1 + j]) * theevs[:, j])
38
- if np.any(fitcoeffs) != 0.0:
39
- pass
40
- else:
41
- R = 0.0
42
- return (
43
- vox,
44
- rt_floatset(thefit[0, 0]),
45
- rt_floatset(R),
46
- rt_floatset(R * R),
47
- fitcoeffs,
48
- rt_floatset(thefit[0, 1:] / thefit[0, 0]),
49
- datatoremove,
50
- rt_floatset(thedata - datatoremove),
51
- )
52
- else:
53
- fitcoeff = rt_floatset(thefit[0, 1])
54
- datatoremove = rt_floatset(fitcoeff * theevs)
55
- if fitcoeff == 0.0:
56
- R = 0.0
57
- return (
58
- vox,
59
- rt_floatset(thefit[0, 0]),
60
- rt_floatset(R),
61
- rt_floatset(R * R),
62
- fitcoeff,
63
- rt_floatset(thefit[0, 1] / thefit[0, 0]),
64
- datatoremove,
65
- rt_floatset(thedata - datatoremove),
66
- )
67
-
68
-
69
- def glmpass(
70
- numprocitems,
71
- fmri_data,
72
- threshval,
73
- theevs,
74
- meanvalue,
75
- rvalue,
76
- r2value,
77
- fitcoeff,
78
- fitNorm,
79
- datatoremove,
80
- filtereddata,
81
- nprocs=1,
82
- alwaysmultiproc=False,
83
- confoundglm=False,
84
- procbyvoxel=True,
85
- showprogressbar=True,
86
- mp_chunksize=1000,
87
- rt_floatset=np.float64,
88
- rt_floattype="float64",
89
- debug=False,
90
- ):
91
- inputshape = np.shape(fmri_data)
92
- if debug:
93
- print(f"{numprocitems=}")
94
- print(f"{fmri_data.shape=}")
95
- print(f"{threshval=}")
96
- print(f"{theevs.shape=}")
97
- if threshval is None:
98
- themask = None
99
- else:
100
- if procbyvoxel:
101
- meanim = np.mean(fmri_data, axis=1)
102
- stdim = np.std(fmri_data, axis=1)
103
- else:
104
- meanim = np.mean(fmri_data, axis=0)
105
- stdim = np.std(fmri_data, axis=0)
106
- if np.mean(stdim) < np.mean(meanim):
107
- themask = np.where(meanim > threshval, 1, 0)
108
- else:
109
- themask = np.where(stdim > threshval, 1, 0)
110
- if (
111
- nprocs > 1 or alwaysmultiproc
112
- ): # temporary workaround until I figure out why nprocs > 1 is failing
113
- # define the consumer function here so it inherits most of the arguments
114
- def GLM_consumer(inQ, outQ):
115
- while True:
116
- try:
117
- # get a new message
118
- val = inQ.get()
119
-
120
- # this is the 'TERM' signal
121
- if val is None:
122
- break
123
-
124
- # process and send the data
125
- if procbyvoxel:
126
- if confoundglm:
127
- outQ.put(
128
- _procOneGLMItem(
129
- val,
130
- theevs,
131
- fmri_data[val, :],
132
- rt_floatset=rt_floatset,
133
- rt_floattype=rt_floattype,
134
- )
135
- )
136
- else:
137
- outQ.put(
138
- _procOneGLMItem(
139
- val,
140
- theevs[val, :],
141
- fmri_data[val, :],
142
- rt_floatset=rt_floatset,
143
- rt_floattype=rt_floattype,
144
- )
145
- )
146
- else:
147
- if confoundglm:
148
- outQ.put(
149
- _procOneGLMItem(
150
- val,
151
- theevs,
152
- fmri_data[:, val],
153
- rt_floatset=rt_floatset,
154
- rt_floattype=rt_floattype,
155
- )
156
- )
157
- else:
158
- outQ.put(
159
- _procOneGLMItem(
160
- val,
161
- theevs[:, val],
162
- fmri_data[:, val],
163
- rt_floatset=rt_floatset,
164
- rt_floattype=rt_floattype,
165
- )
166
- )
167
-
168
- except Exception as e:
169
- print("error!", e)
170
- break
171
-
172
- data_out = tide_multiproc.run_multiproc(
173
- GLM_consumer,
174
- inputshape,
175
- themask,
176
- nprocs=nprocs,
177
- procbyvoxel=procbyvoxel,
178
- showprogressbar=showprogressbar,
179
- chunksize=mp_chunksize,
180
- )
181
-
182
- # unpack the data
183
- itemstotal = 0
184
- if procbyvoxel:
185
- if confoundglm:
186
- for voxel in data_out:
187
- r2value[voxel[0]] = voxel[3]
188
- filtereddata[voxel[0], :] = voxel[7]
189
- itemstotal += 1
190
- else:
191
- for voxel in data_out:
192
- meanvalue[voxel[0]] = voxel[1]
193
- rvalue[voxel[0]] = voxel[2]
194
- r2value[voxel[0]] = voxel[3]
195
- if theevs.ndim > 1:
196
- fitcoeff[voxel[0], :] = voxel[4]
197
- fitNorm[voxel[0], :] = voxel[5]
198
- else:
199
- fitcoeff[voxel[0]] = voxel[4]
200
- fitNorm[voxel[0]] = voxel[5]
201
- datatoremove[voxel[0], :] = voxel[6]
202
- filtereddata[voxel[0], :] = voxel[7]
203
- itemstotal += 1
204
- else:
205
- if confoundglm:
206
- for timepoint in data_out:
207
- r2value[timepoint[0]] = timepoint[3]
208
- filtereddata[:, timepoint[0]] = timepoint[7]
209
- itemstotal += 1
210
- else:
211
- for timepoint in data_out:
212
- meanvalue[timepoint[0]] = timepoint[1]
213
- rvalue[timepoint[0]] = timepoint[2]
214
- r2value[timepoint[0]] = timepoint[3]
215
- if theevs.ndim > 1:
216
- fitcoeff[:, timepoint[0]] = timepoint[4]
217
- fitNorm[:, timepoint[0]] = timepoint[5]
218
- else:
219
- fitcoeff[timepoint[0]] = timepoint[4]
220
- fitNorm[timepoint[0]] = timepoint[5]
221
- datatoremove[:, timepoint[0]] = timepoint[6]
222
- filtereddata[:, timepoint[0]] = timepoint[7]
223
- itemstotal += 1
224
-
225
- del data_out
226
- else:
227
- itemstotal = 0
228
- if procbyvoxel:
229
- for vox in tqdm(
230
- range(0, numprocitems),
231
- desc="Voxel",
232
- unit="voxels",
233
- disable=(not showprogressbar),
234
- ):
235
- thedata = fmri_data[vox, :].copy()
236
- if (themask is None) or (themask[vox] > 0):
237
- if confoundglm:
238
- (
239
- dummy,
240
- dummy,
241
- dummy,
242
- r2value[vox],
243
- dummy,
244
- dummy,
245
- dummy,
246
- filtereddata[vox, :],
247
- ) = _procOneGLMItem(
248
- vox,
249
- theevs,
250
- thedata,
251
- rt_floatset=rt_floatset,
252
- rt_floattype=rt_floattype,
253
- )
254
- else:
255
- (
256
- dummy,
257
- meanvalue[vox],
258
- rvalue[vox],
259
- r2value[vox],
260
- fitcoeff[vox],
261
- fitNorm[vox],
262
- datatoremove[vox, :],
263
- filtereddata[vox, :],
264
- ) = _procOneGLMItem(
265
- vox,
266
- theevs[vox, :],
267
- thedata,
268
- rt_floatset=rt_floatset,
269
- rt_floattype=rt_floattype,
270
- )
271
- itemstotal += 1
272
- else:
273
- for timepoint in tqdm(
274
- range(0, numprocitems),
275
- desc="Timepoint",
276
- unit="timepoints",
277
- disable=(not showprogressbar),
278
- ):
279
- thedata = fmri_data[:, timepoint].copy()
280
- if (themask is None) or (themask[timepoint] > 0):
281
- if confoundglm:
282
- (
283
- dummy,
284
- dummy,
285
- dummy,
286
- r2value[timepoint],
287
- dummy,
288
- dummy,
289
- dummy,
290
- filtereddata[:, timepoint],
291
- ) = _procOneGLMItem(
292
- timepoint,
293
- theevs,
294
- thedata,
295
- rt_floatset=rt_floatset,
296
- rt_floattype=rt_floattype,
297
- )
298
- else:
299
- (
300
- dummy,
301
- meanvalue[timepoint],
302
- rvalue[timepoint],
303
- r2value[timepoint],
304
- fitcoeff[timepoint],
305
- fitNorm[timepoint],
306
- datatoremove[:, timepoint],
307
- filtereddata[:, timepoint],
308
- ) = _procOneGLMItem(
309
- timepoint,
310
- theevs[:, timepoint],
311
- thedata,
312
- rt_floatset=rt_floatset,
313
- rt_floattype=rt_floattype,
314
- )
315
- itemstotal += 1
316
- if showprogressbar:
317
- print()
318
- return itemstotal
319
-
320
-
321
- def makevoxelspecificderivs(theevs, nderivs=1, debug=False):
322
- r"""Perform multicomponent expansion on theevs (each ev replaced by itself,
323
- its square, its cube, etc.).
324
-
325
- Parameters
326
- ----------
327
- theevs : 2D numpy array
328
- NxP array of voxel specific explanatory variables (one timecourse per voxel)
329
- :param theevs:
330
-
331
- nderivs : integer
332
- Number of components to use for each ev. Each successive component is a
333
- higher power of the initial ev (initial, square, cube, etc.)
334
- :param nderivs:
335
-
336
- debug: bool
337
- Flag to toggle debugging output
338
- :param debug:
339
- """
340
- if debug:
341
- print(f"{theevs.shape=}")
342
- if nderivs == 0:
343
- thenewevs = theevs
344
- else:
345
- thenewevs = np.zeros((theevs.shape[0], theevs.shape[1], nderivs + 1), dtype=float)
346
- for thevoxel in range(0, theevs.shape[0]):
347
- thenewevs[thevoxel, :, 0] = theevs[thevoxel, :] * 1.0
348
- for i in range(1, nderivs + 1):
349
- thenewevs[thevoxel, :, i] = np.gradient(thenewevs[thevoxel, :, i - 1])
350
- if debug:
351
- print(f"{nderivs=}")
352
- print(f"{thenewevs.shape=}")
353
-
354
- return thenewevs
355
-
356
-
357
- def confoundregress(
358
- theregressors,
359
- theregressorlabels,
360
- thedataarray,
361
- tr,
362
- nprocs=1,
363
- orthogonalize=True,
364
- tcstart=0,
365
- tcend=-1,
366
- tchp=None,
367
- tclp=None,
368
- showprogressbar=True,
369
- debug=False,
370
- ):
371
- if tcend == -1:
372
- theregressors = theregressors[:, tcstart:]
373
- else:
374
- theregressors = theregressors[:, tcstart:tcend]
375
- if (tclp is not None) or (tchp is not None):
376
- mothpfilt = tide_filt.NoncausalFilter(filtertype="arb", transferfunc="trapezoidal")
377
- if tclp is None:
378
- tclp = 0.5 / tr
379
- else:
380
- tclp = np.min([0.5 / tr, tclp])
381
- if tchp is None:
382
- tchp = 0.0
383
- mothpfilt.setfreqs(0.9 * tchp, tchp, tclp, np.min([0.5 / tr, tclp * 1.1]))
384
- for i in range(theregressors.shape[0]):
385
- theregressors[i, :] = mothpfilt.apply(1.0 / tr, theregressors[i, :])
386
-
387
- # stddev normalize the regressors. Not strictly necessary, but might help with stability.
388
- for i in range(theregressors.shape[0]):
389
- theregressors[i, :] = tide_math.normalize(theregressors[i, :], method="stddev")
390
-
391
- if orthogonalize:
392
- theregressors = tide_fit.gram_schmidt(theregressors)
393
- initregressors = len(theregressorlabels)
394
- theregressorlabels = []
395
- for theregressor in range(theregressors.shape[0]):
396
- theregressorlabels.append("orthogconfound_{:02d}".format(theregressor))
397
- if len(theregressorlabels) == 0:
398
- print("No regressors survived orthogonalization - skipping confound regression")
399
- return theregressors, theregressorlabels, thedataarray, None
400
- print(
401
- f"After orthogonalization, {len(theregressorlabels)} of {initregressors} regressors remain."
402
- )
403
-
404
- # stddev normalize the regressors. Not strictly necessary, but might help with stability.
405
- for i in range(theregressors.shape[0]):
406
- theregressors[i, :] = tide_math.normalize(theregressors[i, :], method="stddev")
407
-
408
- print("start confound filtering")
409
-
410
- numprocitems = thedataarray.shape[0]
411
- filtereddata = thedataarray * 0.0
412
- r2value = np.zeros(numprocitems)
413
- numfiltered = glmpass(
414
- numprocitems,
415
- thedataarray,
416
- None,
417
- np.transpose(theregressors),
418
- None,
419
- None,
420
- r2value,
421
- None,
422
- None,
423
- None,
424
- filtereddata,
425
- confoundglm=True,
426
- nprocs=nprocs,
427
- showprogressbar=showprogressbar,
428
- procbyvoxel=True,
429
- debug=debug,
430
- )
431
-
432
- print()
433
- print(f"confound filtering on {numfiltered} voxels complete")
434
- return theregressors, theregressorlabels, filtereddata, r2value