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
@@ -0,0 +1,114 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ #
4
+ # Copyright 2016-2025 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 os
20
+
21
+ import matplotlib as mpl
22
+ import numpy as np
23
+
24
+ import rapidtide.io as tide_io
25
+ import rapidtide.workflows.rapidtide as rapidtide_workflow
26
+ import rapidtide.workflows.rapidtide_parser as rapidtide_parser
27
+ import rapidtide.workflows.retroregress as rapidtide_retroregress
28
+ from rapidtide.tests.utils import get_examples_path, get_test_temp_path, mse
29
+
30
+
31
+ def test_fullrunrapidtide_v7(debug=False, local=False, displayplots=False):
32
+ # set input and output directories
33
+ if local:
34
+ exampleroot = "../data/examples/src"
35
+ testtemproot = "./tmp"
36
+ else:
37
+ exampleroot = get_examples_path()
38
+ testtemproot = get_test_temp_path()
39
+
40
+ # test anatomic masks
41
+ inputargs = [
42
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST.nii.gz"),
43
+ os.path.join(testtemproot, "sub-RAPIDTIDETEST_seg"),
44
+ "--nprocs",
45
+ "-1",
46
+ "--passes",
47
+ "3",
48
+ "--brainmask",
49
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST_brainmask.nii.gz"),
50
+ "--graymattermask",
51
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST_synthseg.nii.gz:SSEG_GRAY"),
52
+ "--whitemattermask",
53
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST_synthseg.nii.gz:SSEG_WHITE"),
54
+ "--csfmask",
55
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST_synthseg.nii.gz:SSEG_CSF"),
56
+ ]
57
+ rapidtide_workflow.rapidtide_main(rapidtide_parser.process_args(inputargs=inputargs))
58
+
59
+ inputargs = [
60
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST.nii.gz"),
61
+ os.path.join(testtemproot, "sub-RAPIDTIDETEST_seg"),
62
+ "--alternateoutput",
63
+ os.path.join(testtemproot, "segtest"),
64
+ "--nprocs",
65
+ "-1",
66
+ "--outputlevel",
67
+ "max",
68
+ ]
69
+ rapidtide_retroregress.retroregress(rapidtide_retroregress.process_args(inputargs=inputargs))
70
+
71
+ inputargs = [
72
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST.nii.gz"),
73
+ os.path.join(testtemproot, "sub-RAPIDTIDETEST_seg"),
74
+ "--alternateoutput",
75
+ os.path.join(testtemproot, "regressoronly"),
76
+ "--nprocs",
77
+ "-1",
78
+ "--outputlevel",
79
+ "onlyregressors",
80
+ ]
81
+ rapidtide_retroregress.retroregress(rapidtide_retroregress.process_args(inputargs=inputargs))
82
+
83
+ # check to see that rapidtide and retroregress output match
84
+ msethresh = 2e-6
85
+ aethresh = 2
86
+ tclist = ["brain", "GM", "WM", "CSF"]
87
+ for timecourse in tclist:
88
+ infilespec = os.path.join(
89
+ testtemproot,
90
+ f"sub-RAPIDTIDETEST_seg_desc-regionalpostfilter_timeseries.json:{timecourse}",
91
+ )
92
+ insamplerate, instarttime, incolumns, indata, incompressed, infiletype = (
93
+ tide_io.readvectorsfromtextfile(infilespec, onecol=True, debug=debug)
94
+ )
95
+ outfilespec = os.path.join(
96
+ testtemproot, f"segtest_desc-regionalpostfilter_timeseries.json:{timecourse}"
97
+ )
98
+ outsamplerate, outstarttime, outcolumns, outdata, outcompressed, outfiletype = (
99
+ tide_io.readvectorsfromtextfile(outfilespec, onecol=True, debug=debug)
100
+ )
101
+ assert insamplerate == outsamplerate
102
+ assert instarttime == outstarttime
103
+ assert incompressed == outcompressed
104
+ assert infiletype == outfiletype
105
+ assert incolumns == outcolumns
106
+ assert indata.shape == outdata.shape
107
+ assert indata.shape[0] == indata.shape[0]
108
+ assert mse(indata, outdata) < msethresh
109
+ np.testing.assert_almost_equal(indata, outdata, aethresh)
110
+
111
+
112
+ if __name__ == "__main__":
113
+ mpl.use("TkAgg")
114
+ test_fullrunrapidtide_v7(debug=True, local=True, displayplots=True)
@@ -0,0 +1,66 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ #
4
+ # Copyright 2016-2025 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 os
20
+
21
+ import matplotlib as mpl
22
+
23
+ import rapidtide.qualitycheck as rapidtide_quality
24
+ import rapidtide.workflows.rapidtide as rapidtide_workflow
25
+ import rapidtide.workflows.rapidtide_parser as rapidtide_parser
26
+ from rapidtide.tests.utils import get_examples_path, get_test_temp_path
27
+
28
+
29
+ def test_fullrunrapidtide_v8(debug=False, local=False, displayplots=False):
30
+ # set input and output directories
31
+ if local:
32
+ exampleroot = "../data/examples/src"
33
+ testtemproot = "./tmp"
34
+ else:
35
+ exampleroot = get_examples_path()
36
+ testtemproot = get_test_temp_path()
37
+
38
+ # run rapidtide
39
+ inputargs = [
40
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST.nii.gz"),
41
+ os.path.join(testtemproot, "sub-RAPIDTIDETEST8"),
42
+ "--spatialfilt",
43
+ "2",
44
+ "--simcalcrange",
45
+ "4",
46
+ "-1",
47
+ "--searchrange",
48
+ "-5",
49
+ "10",
50
+ "--nprocs",
51
+ "-1",
52
+ "--passes",
53
+ "1",
54
+ "--despecklepasses",
55
+ "3",
56
+ "--similaritymetric",
57
+ "riptide",
58
+ "--riptidestep",
59
+ "1.5",
60
+ ]
61
+ rapidtide_workflow.rapidtide_main(rapidtide_parser.process_args(inputargs=inputargs))
62
+
63
+
64
+ if __name__ == "__main__":
65
+ mpl.use("TkAgg")
66
+ test_fullrunrapidtide_v8(debug=True, local=True, displayplots=True)
@@ -0,0 +1,158 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ #
4
+ # Copyright 2016-2025 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
+
21
+ from rapidtide.workflows.adjustoffset import _get_parser as adjustoffset_getparser
22
+ from rapidtide.workflows.aligntcs import _get_parser as aligntcs_getparser
23
+ from rapidtide.workflows.atlasaverage import _get_parser as atlasaverage_getparser
24
+ from rapidtide.workflows.atlastool import _get_parser as atlastool_getparser
25
+ from rapidtide.workflows.calctexticc import _get_parser as calctexticc_getparser
26
+ from rapidtide.workflows.ccorrica import _get_parser as ccorrica_getparser
27
+ from rapidtide.workflows.delayvar import _get_parser as delayvar_getparser
28
+ from rapidtide.workflows.diffrois import _get_parser as diffrois_getparser
29
+ from rapidtide.workflows.endtidalproc import _get_parser as endtidalproc_getparser
30
+ from rapidtide.workflows.fdica import _get_parser as fdica_getparser
31
+ from rapidtide.workflows.filtnifti import _get_parser as filtnifti_getparser
32
+ from rapidtide.workflows.filttc import _get_parser as filttc_getparser
33
+ from rapidtide.workflows.fixtr import _get_parser as fixtr_getparser
34
+ from rapidtide.workflows.gmscalc import _get_parser as gmscalc_getparser
35
+ from rapidtide.workflows.happy2std import _get_parser as happy2std_getparser
36
+ from rapidtide.workflows.happy_parser import _get_parser as happy_parser_getparser
37
+ from rapidtide.workflows.histnifti import _get_parser as histnifti_getparser
38
+ from rapidtide.workflows.histtc import _get_parser as histtc_getparser
39
+ from rapidtide.workflows.linfitfilt import _get_parser as linfitfilt_getparser
40
+ from rapidtide.workflows.localflow import _get_parser as localflow_getparser
41
+ from rapidtide.workflows.mergequality import _get_parser as mergequality_getparser
42
+ from rapidtide.workflows.niftidecomp import (
43
+ _get_parser_spatial as niftidecomp_getparser_spatial,
44
+ )
45
+ from rapidtide.workflows.niftidecomp import (
46
+ _get_parser_temporal as niftidecomp_getparser_temporal,
47
+ )
48
+ from rapidtide.workflows.niftistats import _get_parser as niftistats_getparser
49
+ from rapidtide.workflows.pairproc import _get_parser as pairproc_getparser
50
+ from rapidtide.workflows.pairwisemergenifti import (
51
+ _get_parser as pairwisemergenifti_getparser,
52
+ )
53
+ from rapidtide.workflows.physiofreq import _get_parser as physiofreq_getparser
54
+ from rapidtide.workflows.pixelcomp import _get_parser as pixelcomp_getparser
55
+ from rapidtide.workflows.plethquality import _get_parser as plethquality_getparser
56
+ from rapidtide.workflows.polyfitim import _get_parser as polyfitim_getparser
57
+ from rapidtide.workflows.proj2flow import _get_parser as proj2flow_getparser
58
+ from rapidtide.workflows.rankimage import _get_parser as rankimage_getparser
59
+ from rapidtide.workflows.rapidtide2std import _get_parser as rapidtide2std_getparser
60
+ from rapidtide.workflows.resamplenifti import _get_parser as resamplenifti_getparser
61
+ from rapidtide.workflows.resampletc import _get_parser as resampletc_getparser
62
+ from rapidtide.workflows.retrolagtcs import _get_parser as retrolagtcs_getparser
63
+ from rapidtide.workflows.retroregress import _get_parser as retroregress_getparser
64
+ from rapidtide.workflows.roisummarize import _get_parser as roisummarize_getparser
65
+ from rapidtide.workflows.runqualitycheck import _get_parser as runqualitycheck_getparser
66
+ from rapidtide.workflows.showarbcorr import _get_parser as showarbcorr_getparser
67
+ from rapidtide.workflows.showhist import _get_parser as showhist_getparser
68
+ from rapidtide.workflows.showstxcorr import _get_parser as showstxcorr_getparser
69
+ from rapidtide.workflows.showtc import _get_parser as showtc_getparser
70
+ from rapidtide.workflows.showxcorrx import _get_parser as showxcorrx_getparser
71
+ from rapidtide.workflows.showxy import _get_parser as showxy_getparser
72
+ from rapidtide.workflows.simdata import _get_parser as simdata_getparser
73
+ from rapidtide.workflows.spatialfit import _get_parser as spatialfit_getparser
74
+ from rapidtide.workflows.spatialmi import _get_parser as spatialmi_getparser
75
+ from rapidtide.workflows.spectrogram import _get_parser as spectrogram_getparser
76
+ from rapidtide.workflows.synthASL import _get_parser as synthASL_getparser
77
+ from rapidtide.workflows.tcfrom2col import _get_parser as tcfrom2col_getparser
78
+ from rapidtide.workflows.tcfrom3col import _get_parser as tcfrom3col_getparser
79
+ from rapidtide.workflows.variabilityizer import _get_parser as variabilityizer_getparser
80
+
81
+
82
+ def test_parsers(debug=False):
83
+ parserlist = [
84
+ adjustoffset_getparser,
85
+ aligntcs_getparser,
86
+ atlasaverage_getparser,
87
+ atlastool_getparser,
88
+ calctexticc_getparser,
89
+ ccorrica_getparser,
90
+ delayvar_getparser,
91
+ diffrois_getparser,
92
+ endtidalproc_getparser,
93
+ fdica_getparser,
94
+ filtnifti_getparser,
95
+ filttc_getparser,
96
+ fixtr_getparser,
97
+ gmscalc_getparser,
98
+ happy_parser_getparser,
99
+ happy2std_getparser,
100
+ histnifti_getparser,
101
+ histtc_getparser,
102
+ linfitfilt_getparser,
103
+ localflow_getparser,
104
+ mergequality_getparser,
105
+ niftidecomp_getparser_temporal,
106
+ niftidecomp_getparser_spatial,
107
+ niftistats_getparser,
108
+ pairproc_getparser,
109
+ pairwisemergenifti_getparser,
110
+ physiofreq_getparser,
111
+ pixelcomp_getparser,
112
+ plethquality_getparser,
113
+ polyfitim_getparser,
114
+ proj2flow_getparser,
115
+ rankimage_getparser,
116
+ rapidtide2std_getparser,
117
+ resamplenifti_getparser,
118
+ resampletc_getparser,
119
+ retrolagtcs_getparser,
120
+ retroregress_getparser,
121
+ roisummarize_getparser,
122
+ runqualitycheck_getparser,
123
+ showarbcorr_getparser,
124
+ showhist_getparser,
125
+ showstxcorr_getparser,
126
+ showtc_getparser,
127
+ showxcorrx_getparser,
128
+ showxy_getparser,
129
+ simdata_getparser,
130
+ spatialfit_getparser,
131
+ spatialmi_getparser,
132
+ spectrogram_getparser,
133
+ synthASL_getparser,
134
+ tcfrom2col_getparser,
135
+ tcfrom3col_getparser,
136
+ variabilityizer_getparser,
137
+ ]
138
+ try:
139
+ import tensorflow as tf
140
+
141
+ dlfilterloads = True
142
+ except ImportError:
143
+ dlfilterloads = False
144
+ if dlfilterloads:
145
+ from rapidtide.workflows.applydlfilter import (
146
+ _get_parser as applydlfilter_getparser,
147
+ )
148
+
149
+ parserlist.append(applydlfilter_getparser)
150
+
151
+ for thegetparser in parserlist:
152
+ theusage = thegetparser().format_help()
153
+ if debug:
154
+ print(theusage)
155
+
156
+
157
+ if __name__ == "__main__":
158
+ test_parsers(debug=True)
@@ -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.
@@ -25,9 +25,17 @@ import rapidtide.io as tide_io
25
25
  from rapidtide.tests.utils import create_dir, get_examples_path, get_test_temp_path, mse
26
26
 
27
27
 
28
- def test_io(debug=True, displayplots=False):
28
+ def test_io(debug=True, local=False, displayplots=False):
29
+ # set input and output directories
30
+ if local:
31
+ exampleroot = "../data/examples/src"
32
+ testtemproot = "./tmp"
33
+ else:
34
+ exampleroot = get_examples_path()
35
+ testtemproot = get_test_temp_path()
36
+
29
37
  # create outputdir if it doesn't exist
30
- create_dir(get_test_temp_path())
38
+ create_dir(testtemproot)
31
39
 
32
40
  # test checkifnifti
33
41
  assert tide_io.checkifnifti("test.nii") == True
@@ -87,24 +95,20 @@ def test_io(debug=True, displayplots=False):
87
95
 
88
96
  # test fmritimeinfo
89
97
  fmritimeinfothresh = 1e-2
90
- tr, timepoints = tide_io.fmritimeinfo(
91
- os.path.join(get_examples_path(), "sub-HAPPYTEST.nii.gz")
92
- )
98
+ tr, timepoints = tide_io.fmritimeinfo(os.path.join(exampleroot, "sub-HAPPYTEST.nii.gz"))
93
99
  assert np.fabs(tr - 1.16) < fmritimeinfothresh
94
100
  assert timepoints == 110
95
- tr, timepoints = tide_io.fmritimeinfo(
96
- os.path.join(get_examples_path(), "sub-RAPIDTIDETEST.nii.gz")
97
- )
101
+ tr, timepoints = tide_io.fmritimeinfo(os.path.join(exampleroot, "sub-RAPIDTIDETEST.nii.gz"))
98
102
  assert np.fabs(tr - 1.5) < fmritimeinfothresh
99
103
  assert timepoints == 260
100
104
 
101
105
  # test niftifile reading
102
106
  sizethresh = 1e-3
103
107
  happy_img, happy_data, happy_hdr, happydims, happysizes = tide_io.readfromnifti(
104
- os.path.join(get_examples_path(), "sub-HAPPYTEST.nii.gz")
108
+ os.path.join(exampleroot, "sub-HAPPYTEST.nii.gz")
105
109
  )
106
110
  fmri_img, fmri_data, fmri_hdr, fmridims, fmrisizes = tide_io.readfromnifti(
107
- os.path.join(get_examples_path(), "sub-RAPIDTIDETEST.nii.gz")
111
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST.nii.gz")
108
112
  )
109
113
  targetdims = [4, 65, 89, 64, 110, 1, 1, 1]
110
114
  targetsizes = [-1.00, 2.39583, 2.395830, 2.4, 1.16, 0.00, 0.00, 0.00]
@@ -120,7 +124,7 @@ def test_io(debug=True, displayplots=False):
120
124
  # test file writing
121
125
  datathresh = 2e-3 # relaxed threshold because sub-RAPIDTIDETEST has been converted to INT16
122
126
  tide_io.savetonifti(
123
- fmri_data, fmri_hdr, os.path.join(get_test_temp_path(), "sub-RAPIDTIDETEST_copy.nii.gz")
127
+ fmri_data, fmri_hdr, os.path.join(testtemproot, "sub-RAPIDTIDETEST_copy.nii.gz")
124
128
  )
125
129
  (
126
130
  fmricopy_img,
@@ -128,7 +132,7 @@ def test_io(debug=True, displayplots=False):
128
132
  fmricopy_hdr,
129
133
  fmricopydims,
130
134
  fmricopysizes,
131
- ) = tide_io.readfromnifti(os.path.join(get_test_temp_path(), "sub-RAPIDTIDETEST_copy.nii.gz"))
135
+ ) = tide_io.readfromnifti(os.path.join(testtemproot, "sub-RAPIDTIDETEST_copy.nii.gz"))
132
136
  assert tide_io.checkspacematch(fmri_hdr, fmricopy_hdr)
133
137
  assert tide_io.checktimematch(fmridims, fmridims)
134
138
  assert mse(fmri_data, fmricopy_data) < datathresh
@@ -141,10 +145,10 @@ def test_io(debug=True, displayplots=False):
141
145
 
142
146
  # test writing and reading text files
143
147
  debug = False
144
- DESTDIR = get_test_temp_path()
145
- SOURCEDIR = get_examples_path()
148
+ DESTDIR = testtemproot
149
+ SOURCEDIR = exampleroot
146
150
  EPSILON = 1e-5
147
- numpoints = 10
151
+ numpoints = 100
148
152
  the2darray = np.zeros((6, numpoints), dtype=float)
149
153
  the2darray[0, :] = np.linspace(0, 1.0, numpoints, endpoint=False)
150
154
  the2darray[1, :] = np.sin(the2darray[0, :] * 2.0 * np.pi)
@@ -174,7 +178,7 @@ def test_io(debug=True, displayplots=False):
174
178
  ["plaintsv", True, ".tsv.gz"],
175
179
  ]
176
180
 
177
- print("writing files")
181
+ print("writing files as a unit")
178
182
  for thistest in thetests:
179
183
  thetype = thistest[0]
180
184
  compressed = thistest[1]
@@ -218,6 +222,43 @@ def test_io(debug=True, displayplots=False):
218
222
  debug=debug,
219
223
  )
220
224
 
225
+ theappendtests = [
226
+ ["bidscontinuous", False, ".tsv"],
227
+ ["bidscontinuous", True, ".tsv.gz"],
228
+ ]
229
+
230
+ print("writing files with append")
231
+ for thistest in theappendtests:
232
+ thetype = thistest[0]
233
+ compressed = thistest[1]
234
+ if compressed:
235
+ compname = "compressed"
236
+ else:
237
+ compname = "uncompressed"
238
+
239
+ print(f"{the2darray.shape=}")
240
+ thefileroot = os.path.join(DESTDIR, f"testout_withcol_{thetype}_{compname}")
241
+ print(f"\t writing: {thefileroot}")
242
+ tide_io.writebidstsv(
243
+ thefileroot + "_append",
244
+ the2darray[:5, :],
245
+ inputsamplerate,
246
+ starttime=inputstarttime,
247
+ columns=thecols[:5],
248
+ compressed=compressed,
249
+ debug=debug,
250
+ )
251
+ tide_io.writebidstsv(
252
+ thefileroot + "_append",
253
+ the2darray[5, :],
254
+ inputsamplerate,
255
+ starttime=inputstarttime,
256
+ columns=[thecols[5]],
257
+ compressed=compressed,
258
+ append=True,
259
+ debug=debug,
260
+ )
261
+
221
262
  print("reading complete files")
222
263
  for thistest in thetests:
223
264
  thetype = thistest[0]
@@ -456,4 +497,4 @@ def test_io(debug=True, displayplots=False):
456
497
 
457
498
 
458
499
  if __name__ == "__main__":
459
- test_io(debug=True, displayplots=True)
500
+ test_io(debug=True, local=True, displayplots=True)
@@ -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.
@@ -20,7 +20,7 @@ import matplotlib as mpl
20
20
  import matplotlib.pyplot as plt
21
21
  import numpy as np
22
22
 
23
- import rapidtide.glmpass as tide_glmpass
23
+ import rapidtide.linfitfiltpass as tide_linfitfiltpass
24
24
  from rapidtide.tests.utils import mse
25
25
 
26
26
 
@@ -41,7 +41,7 @@ def gen2d(xsize=150, xcycles=11, tsize=200, tcycles=13, mean=10.0):
41
41
  return thearray, xwaves, twaves
42
42
 
43
43
 
44
- def test_glmpass(debug=True, displayplots=False):
44
+ def test_linfitfiltpass(debug=True, displayplots=False):
45
45
  np.random.seed(12345)
46
46
  xsize = 150
47
47
  xcycles = 7
@@ -77,8 +77,8 @@ def test_glmpass(debug=True, displayplots=False):
77
77
  fitcoffs_x = np.zeros((xsize, tsize), dtype=np.float64)
78
78
  fitNorm_x = np.zeros((xsize, tsize), dtype=np.float64)
79
79
 
80
- for confoundglm in [True, False]:
81
- if confoundglm:
80
+ for confoundregress in [True, False]:
81
+ if confoundregress:
82
82
  twaveformrange = np.transpose(twaveforms[:6, :])
83
83
  xwaveformrange = xwaveforms[:, :6]
84
84
  print(f"{twaveformrange.shape=} - {xwaveformrange.shape=}")
@@ -115,9 +115,9 @@ def test_glmpass(debug=True, displayplots=False):
115
115
 
116
116
  if debug:
117
117
  print(
118
- f"confoundglm={confoundglm}, proc by {direction}, {procstring} proc, {maskstatus}"
118
+ f"confoundregress={confoundregress}, proc by {direction}, {procstring} proc, {maskstatus}"
119
119
  )
120
- tide_glmpass.glmpass(
120
+ tide_linfitfiltpass.linfitfiltpass(
121
121
  xsize,
122
122
  testarray,
123
123
  thisthreshval,
@@ -132,7 +132,7 @@ def test_glmpass(debug=True, displayplots=False):
132
132
  showprogressbar=False,
133
133
  procbyvoxel=procbyvoxel,
134
134
  nprocs=nprocs,
135
- confoundglm=confoundglm,
135
+ confoundregress=confoundregress,
136
136
  )
137
137
  if displayplots:
138
138
  plt.figure()
@@ -142,10 +142,10 @@ def test_glmpass(debug=True, displayplots=False):
142
142
  plt.show()
143
143
  if debug:
144
144
  print(f"\tMSE: {mse(datatoremove, targetarray)}\n")
145
- if not confoundglm:
145
+ if not confoundregress:
146
146
  assert mse(datatoremove, targetarray) < 1e-3
147
147
 
148
148
 
149
149
  if __name__ == "__main__":
150
150
  mpl.use("TkAgg")
151
- test_glmpass(debug=True, displayplots=True)
151
+ test_linfitfiltpass(debug=True, displayplots=True)
@@ -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.
@@ -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.
@@ -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.
@@ -21,8 +21,8 @@ import matplotlib.pyplot as plt
21
21
  import numpy as np
22
22
 
23
23
  import rapidtide.fit as tide_fit
24
- import rapidtide.glmpass as tide_glmpass
25
24
  import rapidtide.io as tide_io
25
+ import rapidtide.linfitfiltpass as tide_linfitfiltpass
26
26
  from rapidtide.tests.utils import mse
27
27
 
28
28
 
@@ -130,9 +130,9 @@ def test_motionregress(debug=False, displayplots=False):
130
130
 
131
131
  thedataarray = makedataarray(motionregressors)
132
132
  numprocitems = thedataarray.shape[0]
133
- filtereddata = thedataarray * 0.0
133
+ filtereddata = np.zeros_like(thedataarray)
134
134
  r2value = np.zeros(numprocitems)
135
- dummy = tide_glmpass.glmpass(
135
+ dummy = tide_linfitfiltpass.linfitfiltpass(
136
136
  numprocitems,
137
137
  thedataarray,
138
138
  None,
@@ -144,7 +144,7 @@ def test_motionregress(debug=False, displayplots=False):
144
144
  None,
145
145
  None,
146
146
  filtereddata,
147
- confoundglm=True,
147
+ confoundregress=True,
148
148
  nprocs=1,
149
149
  showprogressbar=debug,
150
150
  procbyvoxel=True,
@@ -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.
@@ -25,8 +25,8 @@ import numpy as np
25
25
  import rapidtide.calcnullsimfunc as tide_nullsimfunc
26
26
  import rapidtide.correlate as tide_corr
27
27
  import rapidtide.filter as tide_filt
28
- import rapidtide.helper_classes as tide_classes
29
28
  import rapidtide.io as tide_io
29
+ import rapidtide.simFuncClasses as tide_simFuncClasses
30
30
  import rapidtide.stats as tide_stats
31
31
  from rapidtide.tests.utils import get_test_data_path, get_test_temp_path
32
32
 
@@ -94,7 +94,7 @@ def test_nullsimfunc(debug=False, displayplots=False):
94
94
  "hardlimit": True,
95
95
  }
96
96
  theprefilter = tide_filt.NoncausalFilter("lfo")
97
- theCorrelator = tide_classes.Correlator(
97
+ theCorrelator = tide_simFuncClasses.Correlator(
98
98
  Fs=Fs,
99
99
  ncprefilter=theprefilter,
100
100
  detrendorder=optiondict["detrendorder"],
@@ -102,7 +102,7 @@ def test_nullsimfunc(debug=False, displayplots=False):
102
102
  corrweighting=optiondict["corrweighting"],
103
103
  )
104
104
 
105
- thefitter = tide_classes.SimilarityFunctionFitter(
105
+ thefitter = tide_simFuncClasses.SimilarityFunctionFitter(
106
106
  lagmod=optiondict["lagmod"],
107
107
  lthreshval=optiondict["lthreshval"],
108
108
  uthreshval=optiondict["uthreshval"],
@@ -128,14 +128,11 @@ def test_nullsimfunc(debug=False, displayplots=False):
128
128
  histograms = []
129
129
  for thenprocs in [1, -1]:
130
130
  for i in range(numpasses):
131
- corrlist = tide_nullsimfunc.getNullDistributionDatax(
132
- sourcedata,
131
+ corrlist = tide_nullsimfunc.getNullDistributionData(
133
132
  Fs,
134
133
  theCorrelator,
135
134
  thefitter,
136
- despeckle_thresh=5.0,
137
- fixdelay=False,
138
- fixeddelayvalue=0.0,
135
+ None,
139
136
  numestreps=optiondict["numestreps"],
140
137
  nprocs=thenprocs,
141
138
  showprogressbar=optiondict["showprogressbar"],