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
@@ -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,8 +19,11 @@
19
19
  import argparse
20
20
  import copy
21
21
  import sys
22
+ from argparse import Namespace
23
+ from typing import Any, Callable, Dict, List, Optional, Tuple, Union
22
24
 
23
25
  import numpy as np
26
+ from numpy.typing import NDArray
24
27
  from tqdm import tqdm
25
28
 
26
29
  import rapidtide.io as tide_io
@@ -29,7 +32,47 @@ import rapidtide.util as tide_util
29
32
  import rapidtide.workflows.parser_funcs as pf
30
33
 
31
34
 
32
- def _get_parser():
35
+ def _get_parser() -> Any:
36
+ """
37
+ Generate and return an argument parser for the histnifti command-line tool.
38
+
39
+ This function constructs an `argparse.ArgumentParser` object configured with
40
+ all necessary arguments for processing NIFTI files and generating histograms
41
+ of their voxel values. It supports various options for controlling binning,
42
+ masking, normalization, and display behavior.
43
+
44
+ Returns
45
+ -------
46
+ argparse.ArgumentParser
47
+ Configured argument parser object ready to parse command-line arguments.
48
+
49
+ Notes
50
+ -----
51
+ The parser includes the following positional and optional arguments:
52
+
53
+ - Positional arguments:
54
+ - inputfile: Path to the input NIFTI file.
55
+ - outputroot: Root name for output files.
56
+
57
+ - Optional arguments:
58
+ - --histlen: Set histogram length to LEN (default: auto).
59
+ - --minval: Minimum bin value in histogram.
60
+ - --maxval: Maximum bin value in histogram.
61
+ - --robustrange: Use robust range (2nd to 98th percentile) for histogram limits.
62
+ - --transform: Replace data values with their percentile scores.
63
+ - --nozero: Exclude zero values from histogram.
64
+ - --nozerothresh: Threshold for considering values as zero (default: 0.01).
65
+ - --normhist: Return probability density instead of raw counts.
66
+ - --maskfile: Only process voxels within a 3D mask.
67
+ - --nodisplay: Do not display histogram.
68
+
69
+ Examples
70
+ --------
71
+ >>> parser = _get_parser()
72
+ >>> args = parser.parse_args(['input.nii', 'output_root'])
73
+ >>> print(args.inputfile)
74
+ 'input.nii'
75
+ """
33
76
  # get the command line parameters
34
77
  parser = argparse.ArgumentParser(
35
78
  prog="histnifti",
@@ -119,7 +162,80 @@ def _get_parser():
119
162
  return parser
120
163
 
121
164
 
122
- def histnifti(args):
165
+ def histnifti(args: Any) -> None:
166
+ """
167
+ Compute and save histograms, sorted data, and percentiles from NIfTI image data.
168
+
169
+ This function reads input NIfTI data and optionally a mask, computes histograms
170
+ for each voxel (or across all voxels if 3D), and saves sorted data, percentiles,
171
+ and histogram results as NIfTI files. It supports both 3D and 4D data processing.
172
+
173
+ Parameters
174
+ ----------
175
+ args : argparse.Namespace
176
+ Command-line arguments containing:
177
+ - inputfile : str
178
+ Path to the input NIfTI file.
179
+ - maskfile : str, optional
180
+ Path to the mask NIfTI file. If None, a full mask is generated.
181
+ - outputroot : str
182
+ Root name for output files.
183
+ - robustrange : bool
184
+ If True, use 2nd and 98th percentiles for histogram range.
185
+ - minval : float, optional
186
+ Minimum value for histogram range.
187
+ - maxval : float, optional
188
+ Maximum value for histogram range.
189
+ - histlen : int, optional
190
+ Number of histogram bins. If None, computed based on data size.
191
+ - nozero : bool
192
+ If True, exclude zero values from histogram calculation.
193
+ - nozerothresh : float
194
+ Threshold for excluding zero-like values when `nozero` is True.
195
+ - transform : bool
196
+ If True, apply a transformation to the data.
197
+ - display : bool
198
+ If True, display histogram plots.
199
+ - normhist : bool
200
+ If True, normalize histogram values.
201
+
202
+ Returns
203
+ -------
204
+ None
205
+ This function does not return a value but saves multiple NIfTI files:
206
+ - `<outputroot>_sorted.nii.gz`: Sorted time series data.
207
+ - `<outputroot>_pcts.nii.gz`: Percentile values.
208
+ - `<outputroot>_hists.nii.gz`: Histogram data per voxel.
209
+ - `<outputroot>_transformed.nii.gz`: Transformed data (if `transform` is True).
210
+ - `<outputroot>_hist.txt`: Histogram plot (if `display` is True).
211
+
212
+ Notes
213
+ -----
214
+ - For 4D data, the function computes histograms, sorted arrays, and percentiles
215
+ for each voxel.
216
+ - For 3D data, the function can compute a global histogram or apply a transformation.
217
+ - The function uses `tide_io` for reading/writing NIfTI files and `tide_stats` for
218
+ statistical operations.
219
+
220
+ Examples
221
+ --------
222
+ >>> import argparse
223
+ >>> args = argparse.Namespace(
224
+ ... inputfile='data.nii.gz',
225
+ ... maskfile=None,
226
+ ... outputroot='output',
227
+ ... robustrange=False,
228
+ ... minval=None,
229
+ ... maxval=None,
230
+ ... histlen=None,
231
+ ... nozero=False,
232
+ ... nozerothresh=0.0,
233
+ ... transform=False,
234
+ ... display=False,
235
+ ... normhist=False
236
+ ... )
237
+ >>> histnifti(args)
238
+ """
123
239
  # set default variable values
124
240
  thepercentiles = [0.2, 0.25, 0.5, 0.75, 0.98]
125
241
  thepvalnames = []
@@ -294,7 +410,7 @@ def histnifti(args):
294
410
  if args.transform:
295
411
  thehist, bins = np.histogram(validdata, bins=thehistlen, range=(histmin, histmax))
296
412
  npbins = np.asarray(bins[:-1], dtype=float) + (bins[1] - bins[0]) / 2.0
297
- transformeddataasmatrix = dataasmatrix * 0.0
413
+ transformeddataasmatrix = np.zeros_like(dataasmatrix)
298
414
  for thevoxel in validvoxels:
299
415
  transformeddataasmatrix[thevoxel] = (
300
416
  100.0 * tide_util.valtoindex(npbins, dataasmatrix[thevoxel]) / len(npbins)
@@ -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.
@@ -17,17 +17,39 @@
17
17
  #
18
18
  #
19
19
  import argparse
20
+ from argparse import Namespace
21
+ from typing import Any, Callable, Dict, List, Optional, Tuple, Union
20
22
 
21
23
  import numpy as np
24
+ from numpy.typing import NDArray
22
25
 
23
26
  import rapidtide.io as tide_io
24
27
  import rapidtide.stats as tide_stats
25
28
  import rapidtide.workflows.parser_funcs as pf
26
29
 
27
30
 
28
- def _get_parser():
31
+ def _get_parser() -> Any:
29
32
  """
30
- Argument parser for histtc
33
+ Argument parser for histtc.
34
+
35
+ This function constructs and returns an `argparse.ArgumentParser` object configured
36
+ for parsing command-line arguments for the `histtc` tool, which generates histograms
37
+ from timecourse data.
38
+
39
+ Returns
40
+ -------
41
+ argparse.ArgumentParser
42
+ Configured argument parser for histtc.
43
+
44
+ Notes
45
+ -----
46
+ The parser includes both required and optional arguments for specifying input/output
47
+ files, histogram bin settings, and various data filtering options.
48
+
49
+ Examples
50
+ --------
51
+ >>> parser = _get_parser()
52
+ >>> args = parser.parse_args(['--inputfilename', 'data.txt', '--outputroot', 'output'])
31
53
  """
32
54
  parser = argparse.ArgumentParser(
33
55
  prog="histtc",
@@ -108,7 +130,66 @@ def _get_parser():
108
130
  return parser
109
131
 
110
132
 
111
- def histtc(args):
133
+ def histtc(args: Any) -> None:
134
+ """
135
+ Compute and save a histogram of input data, optionally filtered and normalized.
136
+
137
+ This function reads input data from a text file, computes specified percentiles,
138
+ and generates a histogram with optional normalization and range settings.
139
+
140
+ Parameters
141
+ ----------
142
+ args : argparse.Namespace
143
+ An object containing the following attributes:
144
+ - inputfilename : str
145
+ Path to the input text file containing the data.
146
+ - debug : bool
147
+ If True, print debug information during execution.
148
+ - nozero : bool
149
+ If True, exclude values with absolute magnitude less than or equal to `nozerothresh`.
150
+ - nozerothresh : float
151
+ Threshold for excluding zero-like values when `nozero` is True.
152
+ - histlen : int
153
+ Number of bins for the histogram.
154
+ - outputroot : str
155
+ Root name for output files.
156
+ - robustrange : bool
157
+ If True, use robust range (2nd and 98th percentiles) for histogram.
158
+ - minval : float, optional
159
+ Minimum value for histogram range. If None, use data minimum.
160
+ - maxval : float, optional
161
+ Maximum value for histogram range. If None, use data maximum.
162
+ - normhist : bool
163
+ If True, normalize the histogram.
164
+
165
+ Returns
166
+ -------
167
+ None
168
+ This function does not return a value but saves a histogram to disk.
169
+
170
+ Notes
171
+ -----
172
+ The function uses `tide_io.readvectorsfromtextfile` to read input data and
173
+ `tide_stats.getfracvals` to compute percentiles. It then calls
174
+ `tide_stats.makeandsavehistogram` to generate and save the histogram.
175
+
176
+ Examples
177
+ --------
178
+ >>> import argparse
179
+ >>> args = argparse.Namespace(
180
+ ... inputfilename='data.txt',
181
+ ... debug=False,
182
+ ... nozero=True,
183
+ ... nozerothresh=1e-6,
184
+ ... histlen=50,
185
+ ... outputroot='output',
186
+ ... robustrange=False,
187
+ ... minval=None,
188
+ ... maxval=None,
189
+ ... normhist=True
190
+ ... )
191
+ >>> histtc(args)
192
+ """
112
193
  # set default variable values
113
194
  thepercentiles = [0.2, 0.25, 0.5, 0.75, 0.98]
114
195
  thepvalnames = []
@@ -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.
@@ -17,20 +17,47 @@
17
17
  #
18
18
  #
19
19
  import argparse
20
+ import sys
21
+ from argparse import Namespace
22
+ from typing import Any, Callable, Dict, List, Optional, Tuple, Union
20
23
 
21
24
  import numpy as np
25
+ from numpy.typing import NDArray
22
26
 
23
27
  import rapidtide.fit as tide_fit
24
28
  import rapidtide.io as tide_io
25
29
  from rapidtide.workflows.parser_funcs import is_valid_file
26
30
 
27
31
 
28
- def _get_parser():
32
+ def _get_parser() -> Any:
29
33
  """
30
- Argument parser for glmfilt
34
+ Argument parser for linfitfilt.
35
+
36
+ This function constructs and returns an `argparse.ArgumentParser` object configured
37
+ for the `linfitfilt` command-line tool. It defines all required and optional arguments
38
+ needed to specify input files, regression parameters, and output options.
39
+
40
+ Returns
41
+ -------
42
+ argparse.ArgumentParser
43
+ Configured argument parser for the linfitfilt tool.
44
+
45
+ Notes
46
+ -----
47
+ The parser is designed to handle:
48
+ - Input NIfTI files (3D or 4D)
49
+ - EV (event-related) files for regression
50
+ - Data masking options
51
+ - Timecourse skipping for fitting
52
+ - Output filtering and saving options
53
+
54
+ Examples
55
+ --------
56
+ >>> parser = _get_parser()
57
+ >>> args = parser.parse_args()
31
58
  """
32
59
  parser = argparse.ArgumentParser(
33
- prog="glmfilt",
60
+ prog="linfitfilt",
34
61
  description="Fits and removes the effect of voxel specific and/or global regressors.",
35
62
  allow_abbrev=False,
36
63
  )
@@ -75,7 +102,67 @@ def _get_parser():
75
102
  return parser
76
103
 
77
104
 
78
- def glmfilt(inputfile, numskip, outputroot, evfilename, datamaskname, saveall=True):
105
+ def linfitfilt(
106
+ inputfile: Any,
107
+ numskip: Any,
108
+ outputroot: Any,
109
+ evfilename: Any,
110
+ datamaskname: Any,
111
+ saveall: bool = True,
112
+ ) -> None:
113
+ """
114
+ Perform linear regression fitting on 4D NIfTI data using specified regressors.
115
+
116
+ This function fits a linear model to each voxel's time series using the provided
117
+ regressors and saves the resulting fit coefficients, R-squared values, and filtered
118
+ data. It supports both NIfTI and text-based regressor files, as well as FSL par files
119
+ for global regressors.
120
+
121
+ Parameters
122
+ ----------
123
+ inputfile : str or pathlib.Path
124
+ Path to the input 4D NIfTI file containing the time series data.
125
+ numskip : int
126
+ Number of initial time points to skip when fitting the model.
127
+ outputroot : str
128
+ Root name for output NIfTI files (e.g., '_mean', '_fit0', '_R2', etc.).
129
+ evfilename : list of str or pathlib.Path
130
+ List of paths to files containing regressor time series. Can be NIfTI files,
131
+ text files, or FSL par files.
132
+ datamaskname : str or pathlib.Path, optional
133
+ Path to a NIfTI file defining the mask for data analysis. If None, a full mask
134
+ is assumed.
135
+ saveall : bool, optional
136
+ If True, save all intermediate and final output files. Default is True.
137
+
138
+ Returns
139
+ -------
140
+ None
141
+ This function does not return a value but saves multiple NIfTI files to disk.
142
+
143
+ Notes
144
+ -----
145
+ - The function performs ordinary least squares (OLS) regression for each voxel.
146
+ - The regressors are applied to the data after skipping the first `numskip` time points.
147
+ - Output files include:
148
+ - `<outputroot>_mean.nii.gz`: Mean of the data.
149
+ - `<outputroot>_fit{j}.nii.gz`: Fitted coefficients for regressor j.
150
+ - `<outputroot>_R2.nii.gz`: R-squared values for the model.
151
+ - `<outputroot>_totaltoremove.nii.gz`: Regressor contributions to be removed.
152
+ - `<outputroot>_trimmed.nii.gz`: Trimmed input data.
153
+ - `<outputroot>_filtered.nii.gz`: Final filtered data.
154
+
155
+ Examples
156
+ --------
157
+ >>> linfitfilt(
158
+ ... inputfile='data.nii.gz',
159
+ ... numskip=5,
160
+ ... outputroot='output',
161
+ ... evfilename=['regressor1.txt', 'regressor2.nii.gz'],
162
+ ... datamaskname='mask.nii.gz',
163
+ ... saveall=True
164
+ ... )
165
+ """
79
166
  # initialize some variables
80
167
  evdata = []
81
168
  evisnifti = []
@@ -104,7 +191,7 @@ def glmfilt(inputfile, numskip, outputroot, evfilename, datamaskname, saveall=Tr
104
191
  sys.exit()
105
192
  print("done reading in mask array")
106
193
  else:
107
- datamask_data = nim_data[:, :, :, 0] * 0.0 + 1.0
194
+ datamask_data = np.ones_like(nim_data[:, :, :, 0])
108
195
 
109
196
  numregressors = 0
110
197
  for i in range(0, len(evfilename)):
@@ -167,7 +254,7 @@ def glmfilt(inputfile, numskip, outputroot, evfilename, datamaskname, saveall=Tr
167
254
  print("will perform GLM with ", numregressors, " regressors")
168
255
  meandata = np.zeros((xsize, ysize, numslices), dtype="float")
169
256
  fitdata = np.zeros((xsize, ysize, numslices, numregressors), dtype="float")
170
- Rdata = np.zeros((xsize, ysize, numslices), dtype="float")
257
+ R2data = np.zeros((xsize, ysize, numslices), dtype="float")
171
258
  trimmeddata = 1.0 * nim_data[:, :, :, numskip:]
172
259
 
173
260
  for z in range(0, numslices):
@@ -182,15 +269,15 @@ def glmfilt(inputfile, numskip, outputroot, evfilename, datamaskname, saveall=Tr
182
269
  else:
183
270
  regressorvec.append(evdata[j])
184
271
  if np.max(trimmeddata[x, y, z, :]) - np.min(trimmeddata[x, y, z, :]) > 0.0:
185
- thefit, R = tide_fit.mlregress(regressorvec, trimmeddata[x, y, z, :])
272
+ thefit, R2 = tide_fit.mlregress(regressorvec, trimmeddata[x, y, z, :])
186
273
  meandata[x, y, z] = thefit[0, 0]
187
- Rdata[x, y, z] = R
274
+ R2data[x, y, z] = R2
188
275
  for j in range(0, numregressors):
189
276
  fitdata[x, y, z, j] = thefit[0, j + 1]
190
277
  # datatoremove[x, y, z, :, j] = thefit[0, j + 1] * regressorvec[j]
191
278
  else:
192
279
  meandata[x, y, z] = 0.0
193
- Rdata[x, y, z] = 0.0
280
+ R2data[x, y, z] = 0.0
194
281
  for j in range(0, numregressors):
195
282
  fitdata[x, y, z, j] = 0.0
196
283
  # datatoremove[x, y, z, :, j] = 0.0 * regressorvec[j]
@@ -205,8 +292,8 @@ def glmfilt(inputfile, numskip, outputroot, evfilename, datamaskname, saveall=Tr
205
292
  tide_io.savetonifti(meandata, theheader, outputroot + "_mean")
206
293
  for j in range(0, numregressors):
207
294
  tide_io.savetonifti(fitdata[:, :, :, j], theheader, outputroot + "_fit" + str(j))
208
- tide_io.savetonifti(Rdata, theheader, outputroot + "_R")
209
- Rdata = None
295
+ tide_io.savetonifti(R2data, theheader, outputroot + "_R2")
296
+ R2data = None
210
297
 
211
298
  print()
212
299
  print("Now constructing the array of data to remove")
@@ -237,14 +324,41 @@ def glmfilt(inputfile, numskip, outputroot, evfilename, datamaskname, saveall=Tr
237
324
  tide_io.savetonifti(filtereddata, theheader, outputroot + "_filtered")
238
325
 
239
326
 
240
- def main():
327
+ def main() -> None:
328
+ """
329
+ Main function to execute the linear fit and filter pipeline.
330
+
331
+ This function parses command line arguments and executes the linear fit and
332
+ filter process on the input data file. It handles argument parsing exceptions
333
+ and provides help output when needed.
334
+
335
+ Parameters
336
+ ----------
337
+ None
338
+
339
+ Returns
340
+ -------
341
+ None
342
+ This function does not return any value.
343
+
344
+ Notes
345
+ -----
346
+ The function relies on `_get_parser()` to create and return an argument parser
347
+ with the necessary command line options. The parsed arguments are then passed
348
+ to the `linfitfilt` function for processing.
349
+
350
+ Examples
351
+ --------
352
+ >>> main()
353
+ # Executes the linear fit and filter pipeline with arguments from command line
354
+ """
241
355
  try:
242
356
  args = vars(_get_parser().parse_args())
243
357
  except SystemExit:
244
358
  _get_parser().print_help()
245
359
  raise
246
360
 
247
- glmfilt(
361
+ linfitfilt(
248
362
  args["inputfile"],
249
363
  args["numskip"],
250
364
  args["outputroot"],