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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (405) hide show
  1. cloud/gmscalc-HCPYA +1 -1
  2. cloud/mount-and-run +2 -0
  3. cloud/rapidtide-HCPYA +3 -3
  4. rapidtide/Colortables.py +538 -38
  5. rapidtide/OrthoImageItem.py +1094 -51
  6. rapidtide/RapidtideDataset.py +1709 -114
  7. rapidtide/__init__.py +0 -8
  8. rapidtide/_version.py +4 -4
  9. rapidtide/calccoherence.py +242 -97
  10. rapidtide/calcnullsimfunc.py +240 -140
  11. rapidtide/calcsimfunc.py +314 -129
  12. rapidtide/correlate.py +1211 -389
  13. rapidtide/data/examples/src/testLD +56 -0
  14. rapidtide/data/examples/src/test_findmaxlag.py +2 -2
  15. rapidtide/data/examples/src/test_mlregressallt.py +32 -17
  16. rapidtide/data/examples/src/testalign +1 -1
  17. rapidtide/data/examples/src/testatlasaverage +35 -7
  18. rapidtide/data/examples/src/testboth +21 -0
  19. rapidtide/data/examples/src/testcifti +11 -0
  20. rapidtide/data/examples/src/testdelayvar +13 -0
  21. rapidtide/data/examples/src/testdlfilt +25 -0
  22. rapidtide/data/examples/src/testfft +35 -0
  23. rapidtide/data/examples/src/testfileorfloat +37 -0
  24. rapidtide/data/examples/src/testfmri +92 -42
  25. rapidtide/data/examples/src/testfuncs +3 -3
  26. rapidtide/data/examples/src/testglmfilt +8 -6
  27. rapidtide/data/examples/src/testhappy +84 -51
  28. rapidtide/data/examples/src/testinitdelay +19 -0
  29. rapidtide/data/examples/src/testmodels +33 -0
  30. rapidtide/data/examples/src/testnewrefine +26 -0
  31. rapidtide/data/examples/src/testnoiseamp +2 -2
  32. rapidtide/data/examples/src/testppgproc +17 -0
  33. rapidtide/data/examples/src/testrefineonly +22 -0
  34. rapidtide/data/examples/src/testretro +26 -13
  35. rapidtide/data/examples/src/testretrolagtcs +16 -0
  36. rapidtide/data/examples/src/testrolloff +11 -0
  37. rapidtide/data/examples/src/testsimdata +45 -28
  38. rapidtide/data/models/model_cnn_pytorch/loss.png +0 -0
  39. rapidtide/data/models/model_cnn_pytorch/loss.txt +1 -0
  40. rapidtide/data/models/model_cnn_pytorch/model.pth +0 -0
  41. rapidtide/data/models/model_cnn_pytorch/model_meta.json +68 -0
  42. rapidtide/data/models/model_cnn_pytorch_fulldata/loss.png +0 -0
  43. rapidtide/data/models/model_cnn_pytorch_fulldata/loss.txt +1 -0
  44. rapidtide/data/models/model_cnn_pytorch_fulldata/model.pth +0 -0
  45. rapidtide/data/models/model_cnn_pytorch_fulldata/model_meta.json +80 -0
  46. rapidtide/data/models/model_cnnbp_pytorch_fullldata/loss.png +0 -0
  47. rapidtide/data/models/model_cnnbp_pytorch_fullldata/loss.txt +1 -0
  48. rapidtide/data/models/model_cnnbp_pytorch_fullldata/model.pth +0 -0
  49. rapidtide/data/models/model_cnnbp_pytorch_fullldata/model_meta.json +138 -0
  50. rapidtide/data/models/model_cnnfft_pytorch_fulldata/loss.png +0 -0
  51. rapidtide/data/models/model_cnnfft_pytorch_fulldata/loss.txt +1 -0
  52. rapidtide/data/models/model_cnnfft_pytorch_fulldata/model.pth +0 -0
  53. rapidtide/data/models/model_cnnfft_pytorch_fulldata/model_meta.json +128 -0
  54. rapidtide/data/models/model_ppgattention_pytorch_w128_fulldata/loss.png +0 -0
  55. rapidtide/data/models/model_ppgattention_pytorch_w128_fulldata/loss.txt +1 -0
  56. rapidtide/data/models/model_ppgattention_pytorch_w128_fulldata/model.pth +0 -0
  57. rapidtide/data/models/model_ppgattention_pytorch_w128_fulldata/model_meta.json +49 -0
  58. rapidtide/data/models/model_revised_tf2/model.keras +0 -0
  59. rapidtide/data/models/{model_serdar → model_revised_tf2}/model_meta.json +1 -1
  60. rapidtide/data/models/model_serdar2_tf2/model.keras +0 -0
  61. rapidtide/data/models/{model_serdar2 → model_serdar2_tf2}/model_meta.json +1 -1
  62. rapidtide/data/models/model_serdar_tf2/model.keras +0 -0
  63. rapidtide/data/models/{model_revised → model_serdar_tf2}/model_meta.json +1 -1
  64. rapidtide/data/reference/HCP1200v2_MTT_2mm.nii.gz +0 -0
  65. rapidtide/data/reference/HCP1200v2_binmask_2mm.nii.gz +0 -0
  66. rapidtide/data/reference/HCP1200v2_csf_2mm.nii.gz +0 -0
  67. rapidtide/data/reference/HCP1200v2_gray_2mm.nii.gz +0 -0
  68. rapidtide/data/reference/HCP1200v2_graylaghist.json +7 -0
  69. rapidtide/data/reference/HCP1200v2_graylaghist.tsv.gz +0 -0
  70. rapidtide/data/reference/HCP1200v2_laghist.json +7 -0
  71. rapidtide/data/reference/HCP1200v2_laghist.tsv.gz +0 -0
  72. rapidtide/data/reference/HCP1200v2_mask_2mm.nii.gz +0 -0
  73. rapidtide/data/reference/HCP1200v2_maxcorr_2mm.nii.gz +0 -0
  74. rapidtide/data/reference/HCP1200v2_maxtime_2mm.nii.gz +0 -0
  75. rapidtide/data/reference/HCP1200v2_maxwidth_2mm.nii.gz +0 -0
  76. rapidtide/data/reference/HCP1200v2_negmask_2mm.nii.gz +0 -0
  77. rapidtide/data/reference/HCP1200v2_timepercentile_2mm.nii.gz +0 -0
  78. rapidtide/data/reference/HCP1200v2_white_2mm.nii.gz +0 -0
  79. rapidtide/data/reference/HCP1200v2_whitelaghist.json +7 -0
  80. rapidtide/data/reference/HCP1200v2_whitelaghist.tsv.gz +0 -0
  81. rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1-seg2.xml +131 -0
  82. rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1-seg2_regions.txt +60 -0
  83. rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1-seg2_space-MNI152NLin6Asym_2mm.nii.gz +0 -0
  84. rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1_space-MNI152NLin2009cAsym_2mm.nii.gz +0 -0
  85. rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1_space-MNI152NLin2009cAsym_2mm_mask.nii.gz +0 -0
  86. rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1_space-MNI152NLin6Asym_2mm_mask.nii.gz +0 -0
  87. rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL2_space-MNI152NLin6Asym_2mm_mask.nii.gz +0 -0
  88. rapidtide/data/reference/MNI152_T1_1mm_Brain_FAST_seg.nii.gz +0 -0
  89. rapidtide/data/reference/MNI152_T1_1mm_Brain_Mask.nii.gz +0 -0
  90. rapidtide/data/reference/MNI152_T1_2mm_Brain_FAST_seg.nii.gz +0 -0
  91. rapidtide/data/reference/MNI152_T1_2mm_Brain_Mask.nii.gz +0 -0
  92. rapidtide/decorators.py +91 -0
  93. rapidtide/dlfilter.py +2553 -414
  94. rapidtide/dlfiltertorch.py +5201 -0
  95. rapidtide/externaltools.py +328 -13
  96. rapidtide/fMRIData_class.py +108 -92
  97. rapidtide/ffttools.py +168 -0
  98. rapidtide/filter.py +2704 -1462
  99. rapidtide/fit.py +2361 -579
  100. rapidtide/genericmultiproc.py +197 -0
  101. rapidtide/happy_supportfuncs.py +3255 -548
  102. rapidtide/helper_classes.py +587 -1116
  103. rapidtide/io.py +2569 -468
  104. rapidtide/linfitfiltpass.py +784 -0
  105. rapidtide/makelaggedtcs.py +267 -97
  106. rapidtide/maskutil.py +555 -25
  107. rapidtide/miscmath.py +835 -144
  108. rapidtide/multiproc.py +217 -44
  109. rapidtide/patchmatch.py +752 -0
  110. rapidtide/peakeval.py +32 -32
  111. rapidtide/ppgproc.py +2205 -0
  112. rapidtide/qualitycheck.py +353 -40
  113. rapidtide/refinedelay.py +854 -0
  114. rapidtide/refineregressor.py +939 -0
  115. rapidtide/resample.py +725 -204
  116. rapidtide/scripts/__init__.py +1 -0
  117. rapidtide/scripts/{adjustoffset → adjustoffset.py} +7 -2
  118. rapidtide/scripts/{aligntcs → aligntcs.py} +7 -2
  119. rapidtide/scripts/{applydlfilter → applydlfilter.py} +7 -2
  120. rapidtide/scripts/applyppgproc.py +28 -0
  121. rapidtide/scripts/{atlasaverage → atlasaverage.py} +7 -2
  122. rapidtide/scripts/{atlastool → atlastool.py} +7 -2
  123. rapidtide/scripts/{calcicc → calcicc.py} +7 -2
  124. rapidtide/scripts/{calctexticc → calctexticc.py} +7 -2
  125. rapidtide/scripts/{calcttest → calcttest.py} +7 -2
  126. rapidtide/scripts/{ccorrica → ccorrica.py} +7 -2
  127. rapidtide/scripts/delayvar.py +28 -0
  128. rapidtide/scripts/{diffrois → diffrois.py} +7 -2
  129. rapidtide/scripts/{endtidalproc → endtidalproc.py} +7 -2
  130. rapidtide/scripts/{fdica → fdica.py} +7 -2
  131. rapidtide/scripts/{filtnifti → filtnifti.py} +7 -2
  132. rapidtide/scripts/{filttc → filttc.py} +7 -2
  133. rapidtide/scripts/{fingerprint → fingerprint.py} +20 -16
  134. rapidtide/scripts/{fixtr → fixtr.py} +7 -2
  135. rapidtide/scripts/{gmscalc → gmscalc.py} +7 -2
  136. rapidtide/scripts/{happy → happy.py} +7 -2
  137. rapidtide/scripts/{happy2std → happy2std.py} +7 -2
  138. rapidtide/scripts/{happywarp → happywarp.py} +8 -4
  139. rapidtide/scripts/{histnifti → histnifti.py} +7 -2
  140. rapidtide/scripts/{histtc → histtc.py} +7 -2
  141. rapidtide/scripts/{glmfilt → linfitfilt.py} +7 -4
  142. rapidtide/scripts/{localflow → localflow.py} +7 -2
  143. rapidtide/scripts/{mergequality → mergequality.py} +7 -2
  144. rapidtide/scripts/{pairproc → pairproc.py} +7 -2
  145. rapidtide/scripts/{pairwisemergenifti → pairwisemergenifti.py} +7 -2
  146. rapidtide/scripts/{physiofreq → physiofreq.py} +7 -2
  147. rapidtide/scripts/{pixelcomp → pixelcomp.py} +7 -2
  148. rapidtide/scripts/{plethquality → plethquality.py} +7 -2
  149. rapidtide/scripts/{polyfitim → polyfitim.py} +7 -2
  150. rapidtide/scripts/{proj2flow → proj2flow.py} +7 -2
  151. rapidtide/scripts/{rankimage → rankimage.py} +7 -2
  152. rapidtide/scripts/{rapidtide → rapidtide.py} +7 -2
  153. rapidtide/scripts/{rapidtide2std → rapidtide2std.py} +7 -2
  154. rapidtide/scripts/{resamplenifti → resamplenifti.py} +7 -2
  155. rapidtide/scripts/{resampletc → resampletc.py} +7 -2
  156. rapidtide/scripts/retrolagtcs.py +28 -0
  157. rapidtide/scripts/retroregress.py +28 -0
  158. rapidtide/scripts/{roisummarize → roisummarize.py} +7 -2
  159. rapidtide/scripts/{runqualitycheck → runqualitycheck.py} +7 -2
  160. rapidtide/scripts/{showarbcorr → showarbcorr.py} +7 -2
  161. rapidtide/scripts/{showhist → showhist.py} +7 -2
  162. rapidtide/scripts/{showstxcorr → showstxcorr.py} +7 -2
  163. rapidtide/scripts/{showtc → showtc.py} +7 -2
  164. rapidtide/scripts/{showxcorr_legacy → showxcorr_legacy.py} +8 -8
  165. rapidtide/scripts/{showxcorrx → showxcorrx.py} +7 -2
  166. rapidtide/scripts/{showxy → showxy.py} +7 -2
  167. rapidtide/scripts/{simdata → simdata.py} +7 -2
  168. rapidtide/scripts/{spatialdecomp → spatialdecomp.py} +7 -2
  169. rapidtide/scripts/{spatialfit → spatialfit.py} +7 -2
  170. rapidtide/scripts/{spatialmi → spatialmi.py} +7 -2
  171. rapidtide/scripts/{spectrogram → spectrogram.py} +7 -2
  172. rapidtide/scripts/stupidramtricks.py +238 -0
  173. rapidtide/scripts/{synthASL → synthASL.py} +7 -2
  174. rapidtide/scripts/{tcfrom2col → tcfrom2col.py} +7 -2
  175. rapidtide/scripts/{tcfrom3col → tcfrom3col.py} +7 -2
  176. rapidtide/scripts/{temporaldecomp → temporaldecomp.py} +7 -2
  177. rapidtide/scripts/{testhrv → testhrv.py} +1 -1
  178. rapidtide/scripts/{threeD → threeD.py} +7 -2
  179. rapidtide/scripts/{tidepool → tidepool.py} +7 -2
  180. rapidtide/scripts/{variabilityizer → variabilityizer.py} +7 -2
  181. rapidtide/simFuncClasses.py +2113 -0
  182. rapidtide/simfuncfit.py +312 -108
  183. rapidtide/stats.py +579 -247
  184. rapidtide/tests/.coveragerc +27 -6
  185. rapidtide-2.9.6.data/scripts/fdica → rapidtide/tests/cleanposttest +4 -6
  186. rapidtide/tests/happycomp +9 -0
  187. rapidtide/tests/resethappytargets +1 -1
  188. rapidtide/tests/resetrapidtidetargets +1 -1
  189. rapidtide/tests/resettargets +1 -1
  190. rapidtide/tests/runlocaltest +3 -3
  191. rapidtide/tests/showkernels +1 -1
  192. rapidtide/tests/test_aliasedcorrelate.py +4 -4
  193. rapidtide/tests/test_aligntcs.py +1 -1
  194. rapidtide/tests/test_calcicc.py +1 -1
  195. rapidtide/tests/test_cleanregressor.py +184 -0
  196. rapidtide/tests/test_congrid.py +70 -81
  197. rapidtide/tests/test_correlate.py +1 -1
  198. rapidtide/tests/test_corrpass.py +4 -4
  199. rapidtide/tests/test_delayestimation.py +54 -59
  200. rapidtide/tests/test_dlfiltertorch.py +437 -0
  201. rapidtide/tests/test_doresample.py +2 -2
  202. rapidtide/tests/test_externaltools.py +69 -0
  203. rapidtide/tests/test_fastresampler.py +9 -5
  204. rapidtide/tests/test_filter.py +96 -57
  205. rapidtide/tests/test_findmaxlag.py +50 -19
  206. rapidtide/tests/test_fullrunhappy_v1.py +15 -10
  207. rapidtide/tests/test_fullrunhappy_v2.py +19 -13
  208. rapidtide/tests/test_fullrunhappy_v3.py +28 -13
  209. rapidtide/tests/test_fullrunhappy_v4.py +30 -11
  210. rapidtide/tests/test_fullrunhappy_v5.py +62 -0
  211. rapidtide/tests/test_fullrunrapidtide_v1.py +61 -7
  212. rapidtide/tests/test_fullrunrapidtide_v2.py +26 -14
  213. rapidtide/tests/test_fullrunrapidtide_v3.py +28 -8
  214. rapidtide/tests/test_fullrunrapidtide_v4.py +16 -8
  215. rapidtide/tests/test_fullrunrapidtide_v5.py +15 -6
  216. rapidtide/tests/test_fullrunrapidtide_v6.py +142 -0
  217. rapidtide/tests/test_fullrunrapidtide_v7.py +114 -0
  218. rapidtide/tests/test_fullrunrapidtide_v8.py +66 -0
  219. rapidtide/tests/test_getparsers.py +158 -0
  220. rapidtide/tests/test_io.py +59 -18
  221. rapidtide/tests/{test_glmpass.py → test_linfitfiltpass.py} +10 -10
  222. rapidtide/tests/test_mi.py +1 -1
  223. rapidtide/tests/test_miscmath.py +1 -1
  224. rapidtide/tests/test_motionregress.py +5 -5
  225. rapidtide/tests/test_nullcorr.py +6 -9
  226. rapidtide/tests/test_padvec.py +216 -0
  227. rapidtide/tests/test_parserfuncs.py +101 -0
  228. rapidtide/tests/test_phaseanalysis.py +1 -1
  229. rapidtide/tests/test_rapidtideparser.py +59 -53
  230. rapidtide/tests/test_refinedelay.py +296 -0
  231. rapidtide/tests/test_runmisc.py +5 -5
  232. rapidtide/tests/test_sharedmem.py +60 -0
  233. rapidtide/tests/test_simroundtrip.py +132 -0
  234. rapidtide/tests/test_simulate.py +1 -1
  235. rapidtide/tests/test_stcorrelate.py +4 -2
  236. rapidtide/tests/test_timeshift.py +2 -2
  237. rapidtide/tests/test_valtoindex.py +1 -1
  238. rapidtide/tests/test_zRapidtideDataset.py +5 -3
  239. rapidtide/tests/utils.py +10 -9
  240. rapidtide/tidepoolTemplate.py +88 -70
  241. rapidtide/tidepoolTemplate.ui +60 -46
  242. rapidtide/tidepoolTemplate_alt.py +88 -53
  243. rapidtide/tidepoolTemplate_alt.ui +62 -52
  244. rapidtide/tidepoolTemplate_alt_qt6.py +921 -0
  245. rapidtide/tidepoolTemplate_big.py +1125 -0
  246. rapidtide/tidepoolTemplate_big.ui +2386 -0
  247. rapidtide/tidepoolTemplate_big_qt6.py +1129 -0
  248. rapidtide/tidepoolTemplate_qt6.py +793 -0
  249. rapidtide/util.py +1389 -148
  250. rapidtide/voxelData.py +1048 -0
  251. rapidtide/wiener.py +138 -25
  252. rapidtide/wiener2.py +114 -8
  253. rapidtide/workflows/adjustoffset.py +107 -5
  254. rapidtide/workflows/aligntcs.py +86 -3
  255. rapidtide/workflows/applydlfilter.py +231 -89
  256. rapidtide/workflows/applyppgproc.py +540 -0
  257. rapidtide/workflows/atlasaverage.py +309 -48
  258. rapidtide/workflows/atlastool.py +130 -9
  259. rapidtide/workflows/calcSimFuncMap.py +490 -0
  260. rapidtide/workflows/calctexticc.py +202 -10
  261. rapidtide/workflows/ccorrica.py +123 -15
  262. rapidtide/workflows/cleanregressor.py +415 -0
  263. rapidtide/workflows/delayvar.py +1268 -0
  264. rapidtide/workflows/diffrois.py +84 -6
  265. rapidtide/workflows/endtidalproc.py +149 -9
  266. rapidtide/workflows/fdica.py +197 -17
  267. rapidtide/workflows/filtnifti.py +71 -4
  268. rapidtide/workflows/filttc.py +76 -5
  269. rapidtide/workflows/fitSimFuncMap.py +578 -0
  270. rapidtide/workflows/fixtr.py +74 -4
  271. rapidtide/workflows/gmscalc.py +116 -6
  272. rapidtide/workflows/happy.py +1242 -480
  273. rapidtide/workflows/happy2std.py +145 -13
  274. rapidtide/workflows/happy_parser.py +277 -59
  275. rapidtide/workflows/histnifti.py +120 -4
  276. rapidtide/workflows/histtc.py +85 -4
  277. rapidtide/workflows/{glmfilt.py → linfitfilt.py} +128 -14
  278. rapidtide/workflows/localflow.py +329 -29
  279. rapidtide/workflows/mergequality.py +80 -4
  280. rapidtide/workflows/niftidecomp.py +323 -19
  281. rapidtide/workflows/niftistats.py +178 -8
  282. rapidtide/workflows/pairproc.py +99 -5
  283. rapidtide/workflows/pairwisemergenifti.py +86 -3
  284. rapidtide/workflows/parser_funcs.py +1488 -56
  285. rapidtide/workflows/physiofreq.py +139 -12
  286. rapidtide/workflows/pixelcomp.py +211 -9
  287. rapidtide/workflows/plethquality.py +105 -23
  288. rapidtide/workflows/polyfitim.py +159 -19
  289. rapidtide/workflows/proj2flow.py +76 -3
  290. rapidtide/workflows/rankimage.py +115 -8
  291. rapidtide/workflows/rapidtide.py +1785 -1858
  292. rapidtide/workflows/rapidtide2std.py +101 -3
  293. rapidtide/workflows/rapidtide_parser.py +590 -389
  294. rapidtide/workflows/refineDelayMap.py +249 -0
  295. rapidtide/workflows/refineRegressor.py +1215 -0
  296. rapidtide/workflows/regressfrommaps.py +308 -0
  297. rapidtide/workflows/resamplenifti.py +86 -4
  298. rapidtide/workflows/resampletc.py +92 -4
  299. rapidtide/workflows/retrolagtcs.py +442 -0
  300. rapidtide/workflows/retroregress.py +1501 -0
  301. rapidtide/workflows/roisummarize.py +176 -7
  302. rapidtide/workflows/runqualitycheck.py +72 -7
  303. rapidtide/workflows/showarbcorr.py +172 -16
  304. rapidtide/workflows/showhist.py +87 -3
  305. rapidtide/workflows/showstxcorr.py +161 -4
  306. rapidtide/workflows/showtc.py +172 -10
  307. rapidtide/workflows/showxcorrx.py +250 -62
  308. rapidtide/workflows/showxy.py +186 -16
  309. rapidtide/workflows/simdata.py +418 -112
  310. rapidtide/workflows/spatialfit.py +83 -8
  311. rapidtide/workflows/spatialmi.py +252 -29
  312. rapidtide/workflows/spectrogram.py +306 -33
  313. rapidtide/workflows/synthASL.py +157 -6
  314. rapidtide/workflows/tcfrom2col.py +77 -3
  315. rapidtide/workflows/tcfrom3col.py +75 -3
  316. rapidtide/workflows/tidepool.py +3829 -666
  317. rapidtide/workflows/utils.py +45 -19
  318. rapidtide/workflows/utils_doc.py +293 -0
  319. rapidtide/workflows/variabilityizer.py +118 -5
  320. {rapidtide-2.9.6.dist-info → rapidtide-3.1.3.dist-info}/METADATA +30 -223
  321. rapidtide-3.1.3.dist-info/RECORD +393 -0
  322. {rapidtide-2.9.6.dist-info → rapidtide-3.1.3.dist-info}/WHEEL +1 -1
  323. rapidtide-3.1.3.dist-info/entry_points.txt +65 -0
  324. rapidtide-3.1.3.dist-info/top_level.txt +2 -0
  325. rapidtide/calcandfitcorrpairs.py +0 -262
  326. rapidtide/data/examples/src/testoutputsize +0 -45
  327. rapidtide/data/models/model_revised/model.h5 +0 -0
  328. rapidtide/data/models/model_serdar/model.h5 +0 -0
  329. rapidtide/data/models/model_serdar2/model.h5 +0 -0
  330. rapidtide/data/reference/ASPECTS_nlin_asym_09c_2mm.nii.gz +0 -0
  331. rapidtide/data/reference/ASPECTS_nlin_asym_09c_2mm_mask.nii.gz +0 -0
  332. rapidtide/data/reference/ATTbasedFlowTerritories_split_nlin_asym_09c_2mm.nii.gz +0 -0
  333. rapidtide/data/reference/ATTbasedFlowTerritories_split_nlin_asym_09c_2mm_mask.nii.gz +0 -0
  334. rapidtide/data/reference/HCP1200_binmask_2mm_2009c_asym.nii.gz +0 -0
  335. rapidtide/data/reference/HCP1200_lag_2mm_2009c_asym.nii.gz +0 -0
  336. rapidtide/data/reference/HCP1200_mask_2mm_2009c_asym.nii.gz +0 -0
  337. rapidtide/data/reference/HCP1200_negmask_2mm_2009c_asym.nii.gz +0 -0
  338. rapidtide/data/reference/HCP1200_sigma_2mm_2009c_asym.nii.gz +0 -0
  339. rapidtide/data/reference/HCP1200_strength_2mm_2009c_asym.nii.gz +0 -0
  340. rapidtide/glmpass.py +0 -434
  341. rapidtide/refine_factored.py +0 -641
  342. rapidtide/scripts/retroglm +0 -23
  343. rapidtide/workflows/glmfrommaps.py +0 -202
  344. rapidtide/workflows/retroglm.py +0 -643
  345. rapidtide-2.9.6.data/scripts/adjustoffset +0 -23
  346. rapidtide-2.9.6.data/scripts/aligntcs +0 -23
  347. rapidtide-2.9.6.data/scripts/applydlfilter +0 -23
  348. rapidtide-2.9.6.data/scripts/atlasaverage +0 -23
  349. rapidtide-2.9.6.data/scripts/atlastool +0 -23
  350. rapidtide-2.9.6.data/scripts/calcicc +0 -22
  351. rapidtide-2.9.6.data/scripts/calctexticc +0 -23
  352. rapidtide-2.9.6.data/scripts/calcttest +0 -22
  353. rapidtide-2.9.6.data/scripts/ccorrica +0 -23
  354. rapidtide-2.9.6.data/scripts/diffrois +0 -23
  355. rapidtide-2.9.6.data/scripts/endtidalproc +0 -23
  356. rapidtide-2.9.6.data/scripts/filtnifti +0 -23
  357. rapidtide-2.9.6.data/scripts/filttc +0 -23
  358. rapidtide-2.9.6.data/scripts/fingerprint +0 -593
  359. rapidtide-2.9.6.data/scripts/fixtr +0 -23
  360. rapidtide-2.9.6.data/scripts/glmfilt +0 -24
  361. rapidtide-2.9.6.data/scripts/gmscalc +0 -22
  362. rapidtide-2.9.6.data/scripts/happy +0 -25
  363. rapidtide-2.9.6.data/scripts/happy2std +0 -23
  364. rapidtide-2.9.6.data/scripts/happywarp +0 -350
  365. rapidtide-2.9.6.data/scripts/histnifti +0 -23
  366. rapidtide-2.9.6.data/scripts/histtc +0 -23
  367. rapidtide-2.9.6.data/scripts/localflow +0 -23
  368. rapidtide-2.9.6.data/scripts/mergequality +0 -23
  369. rapidtide-2.9.6.data/scripts/pairproc +0 -23
  370. rapidtide-2.9.6.data/scripts/pairwisemergenifti +0 -23
  371. rapidtide-2.9.6.data/scripts/physiofreq +0 -23
  372. rapidtide-2.9.6.data/scripts/pixelcomp +0 -23
  373. rapidtide-2.9.6.data/scripts/plethquality +0 -23
  374. rapidtide-2.9.6.data/scripts/polyfitim +0 -23
  375. rapidtide-2.9.6.data/scripts/proj2flow +0 -23
  376. rapidtide-2.9.6.data/scripts/rankimage +0 -23
  377. rapidtide-2.9.6.data/scripts/rapidtide +0 -23
  378. rapidtide-2.9.6.data/scripts/rapidtide2std +0 -23
  379. rapidtide-2.9.6.data/scripts/resamplenifti +0 -23
  380. rapidtide-2.9.6.data/scripts/resampletc +0 -23
  381. rapidtide-2.9.6.data/scripts/retroglm +0 -23
  382. rapidtide-2.9.6.data/scripts/roisummarize +0 -23
  383. rapidtide-2.9.6.data/scripts/runqualitycheck +0 -23
  384. rapidtide-2.9.6.data/scripts/showarbcorr +0 -23
  385. rapidtide-2.9.6.data/scripts/showhist +0 -23
  386. rapidtide-2.9.6.data/scripts/showstxcorr +0 -23
  387. rapidtide-2.9.6.data/scripts/showtc +0 -23
  388. rapidtide-2.9.6.data/scripts/showxcorr_legacy +0 -536
  389. rapidtide-2.9.6.data/scripts/showxcorrx +0 -23
  390. rapidtide-2.9.6.data/scripts/showxy +0 -23
  391. rapidtide-2.9.6.data/scripts/simdata +0 -23
  392. rapidtide-2.9.6.data/scripts/spatialdecomp +0 -23
  393. rapidtide-2.9.6.data/scripts/spatialfit +0 -23
  394. rapidtide-2.9.6.data/scripts/spatialmi +0 -23
  395. rapidtide-2.9.6.data/scripts/spectrogram +0 -23
  396. rapidtide-2.9.6.data/scripts/synthASL +0 -23
  397. rapidtide-2.9.6.data/scripts/tcfrom2col +0 -23
  398. rapidtide-2.9.6.data/scripts/tcfrom3col +0 -23
  399. rapidtide-2.9.6.data/scripts/temporaldecomp +0 -23
  400. rapidtide-2.9.6.data/scripts/threeD +0 -236
  401. rapidtide-2.9.6.data/scripts/tidepool +0 -23
  402. rapidtide-2.9.6.data/scripts/variabilityizer +0 -23
  403. rapidtide-2.9.6.dist-info/RECORD +0 -359
  404. rapidtide-2.9.6.dist-info/top_level.txt +0 -86
  405. {rapidtide-2.9.6.dist-info → rapidtide-3.1.3.dist-info/licenses}/LICENSE +0 -0
@@ -0,0 +1,69 @@
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.externaltools as tide_exttools
24
+ from rapidtide.tests.utils import get_examples_path, get_test_temp_path, mse
25
+
26
+
27
+ def test_externaltools(debug=False, local=False):
28
+ # set input and output directories
29
+ if local:
30
+ exampleroot = "../data/examples/src"
31
+ testtemproot = "./tmp"
32
+ else:
33
+ exampleroot = get_examples_path()
34
+ testtemproot = get_test_temp_path()
35
+
36
+ thefsldir = tide_exttools.fslinfo()
37
+ if debug:
38
+ print(f"{thefsldir=}")
39
+
40
+ if not local:
41
+ os.environ["FSLDIR"] = "/plausible_FSLDIR"
42
+
43
+ thefsldir = tide_exttools.fslinfo()
44
+ if debug:
45
+ print(f"{thefsldir=}")
46
+
47
+ fslexists, c3dexists, antsexists = tide_exttools.whatexists()
48
+ if debug:
49
+ print(f"{fslexists=}, {c3dexists=}, {antsexists=}")
50
+
51
+ fslsubcmd, flirtcmd, applywarpcmd = tide_exttools.getfslcmds()
52
+ if debug:
53
+ print(f"{fslsubcmd=}, {flirtcmd=}, {applywarpcmd=}")
54
+
55
+ tide_exttools.runflirt(
56
+ "inputname", "targetname", "xform", "outputname", warpfile="thewarp", fake=True
57
+ )
58
+ tide_exttools.runflirt("inputname", "targetname", "xform", "outputname", fake=True)
59
+
60
+ tide_exttools.n4correct("inputname", "outputdir", fake=True)
61
+
62
+ tide_exttools.antsapply(
63
+ "inputname", "targetname", "outputroot", ["transform1", "transform2"], fake=True
64
+ )
65
+
66
+
67
+ if __name__ == "__main__":
68
+ mpl.use("TkAgg")
69
+ test_externaltools(debug=True, local=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.
@@ -16,12 +16,14 @@
16
16
  # limitations under the License.
17
17
  #
18
18
  #
19
+ import os
20
+
19
21
  import matplotlib as mpl
20
22
  import matplotlib.pyplot as plt
21
23
  import numpy as np
22
24
 
23
25
  from rapidtide.resample import FastResampler, FastResamplerFromFile
24
- from rapidtide.tests.utils import mse
26
+ from rapidtide.tests.utils import get_test_temp_path, mse
25
27
 
26
28
 
27
29
  def test_FastResampler(debug=False):
@@ -29,7 +31,7 @@ def test_FastResampler(debug=False):
29
31
  padtime = 50.0
30
32
  testlen = 1000
31
33
  timeaxis = np.arange(0.0, 1.0 * testlen) * tr
32
- timecoursein = np.float64(timeaxis * 0.0)
34
+ timecoursein = np.zeros_like(timeaxis, np.float64)
33
35
  midpoint = int(testlen // 2) + 1
34
36
  timecoursein[midpoint - 1] = np.float64(1.0)
35
37
  timecoursein[midpoint] = np.float64(1.0)
@@ -43,10 +45,12 @@ def test_FastResampler(debug=False):
43
45
  if debug:
44
46
  print(f"{genlaggedtc.initstart=}, {genlaggedtc.initend=}, {genlaggedtc.initstep=}")
45
47
  print(f"{genlaggedtc.hiresstart=}, {genlaggedtc.hiresend=}, {genlaggedtc.hiresstep=}")
48
+ genlaggedtc.info()
46
49
 
47
50
  # save and reload with another name
48
- genlaggedtc.save("savedresampler")
49
- genlaggedtc2 = FastResamplerFromFile("savedresampler", padtime=padtime, debug=debug)
51
+ resamplername = os.path.join(get_test_temp_path(), "savedresampler")
52
+ genlaggedtc.save(resamplername)
53
+ genlaggedtc2 = FastResamplerFromFile(resamplername, padtime=padtime, debug=debug)
50
54
  if debug:
51
55
  print(f"{genlaggedtc2.initstart=}, {genlaggedtc2.initend=}, {genlaggedtc2.initstep=}")
52
56
  print(f"{genlaggedtc2.hiresstart=}, {genlaggedtc2.hiresend=}, {genlaggedtc2.hiresstep=}")
@@ -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,9 +21,51 @@ import matplotlib.pyplot as plt
21
21
  import numpy as np
22
22
  import scipy as sp
23
23
 
24
+ from rapidtide.ffttools import showfftcache
24
25
  from rapidtide.filter import NoncausalFilter
25
26
 
26
27
 
28
+ def maketestwaves(timeaxis):
29
+ tclen = len(timeaxis)
30
+ testwaves = []
31
+ testwaves.append(
32
+ {
33
+ "name": "constant high",
34
+ "timeaxis": 1.0 * timeaxis,
35
+ "waveform": np.ones((tclen), dtype="float"),
36
+ }
37
+ )
38
+ testwaves.append(
39
+ {
40
+ "name": "white noise",
41
+ "timeaxis": 1.0 * timeaxis,
42
+ "waveform": 0.3 * np.random.normal(size=tclen),
43
+ }
44
+ )
45
+
46
+ scratch = np.zeros_like(timeaxis)
47
+ scratch[int(tclen / 5) : int(2 * tclen / 5)] = 1.0
48
+ scratch[int(3 * tclen / 5) : int(4 * tclen / 5)] = 1.0
49
+ testwaves.append(
50
+ {
51
+ "name": "block regressor",
52
+ "timeaxis": 1.0 * timeaxis,
53
+ "waveform": 1.0 * scratch,
54
+ }
55
+ )
56
+
57
+ scratch = np.zeros_like(timeaxis)
58
+ scratch[int(tclen / 2) :] = 1.0
59
+ testwaves.append(
60
+ {
61
+ "name": "step regressor",
62
+ "timeaxis": 1.0 * timeaxis,
63
+ "waveform": 1.0 * scratch,
64
+ }
65
+ )
66
+ return testwaves
67
+
68
+
27
69
  def spectralfilterprops(thefilter, thefiltername, debug=False):
28
70
  lowerstop, lowerpass, upperpass, upperstop = thefilter["filter"].getfreqs()
29
71
  freqspace = thefilter["frequencies"][1] - thefilter["frequencies"][0]
@@ -33,6 +75,11 @@ def spectralfilterprops(thefilter, thefiltername, debug=False):
33
75
  upperstopindex = int(
34
76
  np.min([np.ceil(upperstop / freqspace), len(thefilter["frequencies"]) - 1])
35
77
  )
78
+ print(f"max allowable index: {len(thefilter['frequencies']) - 1}")
79
+ lowerstopindex = np.max([0, lowerstopindex])
80
+ lowerpassindex = np.max([0, lowerpassindex])
81
+ upperstopindex = np.min([len(thefilter["frequencies"]) - 1, upperstopindex])
82
+ upperpassindex = np.min([len(thefilter["frequencies"]) - 1, upperpassindex])
36
83
  if debug:
37
84
  print("filter name:", thefiltername)
38
85
  print("freqspace:", freqspace)
@@ -105,7 +152,7 @@ def eval_filterprops(
105
152
  allfilters = []
106
153
 
107
154
  # construct all the physiological filters
108
- for filtertype in ["lfo", "resp", "cardiac", "hrv_lf", "hrv_hf", "hrv_vhf"]:
155
+ for filtertype in ["None", "lfo", "resp", "cardiac", "hrv_lf", "hrv_hf", "hrv_vhf"]:
109
156
  testfilter = NoncausalFilter(filtertype=filtertype)
110
157
  lstest, lptest, uptest, ustest = testfilter.getfreqs()
111
158
  if lptest < nyquist:
@@ -121,43 +168,59 @@ def eval_filterprops(
121
168
  }
122
169
  )
123
170
 
124
- """'# make the lowpass filters
171
+ # make the lowpass filters
125
172
  for transferfunc in transferfunclist:
126
173
  testfilter = NoncausalFilter(
127
- filtertype='arb',
128
- transferfunc=transferfunc,
129
- initlowerstop=0.0, initlowerpass=0.0,
130
- initupperpass=0.1, initupperstop=0.11)
174
+ filtertype="arb",
175
+ transferfunc=transferfunc,
176
+ initlowerstop=0.0,
177
+ initlowerpass=0.0,
178
+ initupperpass=0.1,
179
+ initupperstop=0.11,
180
+ )
131
181
  lstest, lptest, uptest, ustest = testfilter.getfreqs()
132
182
  if lptest < nyquist:
133
183
  allfilters.append(
134
184
  {
135
- 'name': '0.1Hz LP ' + transferfunc,
136
- 'filter': NoncausalFilter(
137
- filtertype='arb',
138
- transferfunc=transferfunc,
139
- initlowerstop=0.0, initlowerpass=0.0,
140
- initupperpass=0.1, initupperstop=0.11, debug=False)
141
- })
185
+ "name": "0.1Hz LP " + transferfunc,
186
+ "filter": NoncausalFilter(
187
+ filtertype="arb",
188
+ transferfunc=transferfunc,
189
+ initlowerstop=0.0,
190
+ initlowerpass=0.0,
191
+ initupperpass=0.1,
192
+ initupperstop=0.11,
193
+ debug=False,
194
+ ),
195
+ }
196
+ )
142
197
 
143
198
  # make the highpass filters
144
199
  for transferfunc in transferfunclist:
145
200
  testfilter = NoncausalFilter(
146
- filtertype='arb',
147
- transferfunc=transferfunc,
148
- initlowerstop=0.09, initlowerpass=0.1,
149
- initupperpass=-1.0, initupperstop=-1.0)
201
+ filtertype="arb",
202
+ transferfunc=transferfunc,
203
+ initlowerstop=0.09,
204
+ initlowerpass=0.1,
205
+ initupperpass=1.0e20,
206
+ initupperstop=1.0e20,
207
+ )
150
208
  lstest, lptest, uptest, ustest = testfilter.getfreqs()
151
209
  if lptest < nyquist:
152
210
  allfilters.append(
153
211
  {
154
- 'name': '0.1Hz HP ' + transferfunc,
155
- 'filter': NoncausalFilter(
156
- filtertype='arb',
157
- transferfunc=transferfunc,
158
- initlowerstop=0.09, initlowerpass=0.1,
159
- initupperpass=-1.0, initupperstop=-1.0, debug=False)
160
- })"""
212
+ "name": "0.1Hz HP " + transferfunc,
213
+ "filter": NoncausalFilter(
214
+ filtertype="arb",
215
+ transferfunc=transferfunc,
216
+ initlowerstop=0.09,
217
+ initlowerpass=0.1,
218
+ initupperpass=1.0e20,
219
+ initupperstop=1.0e20,
220
+ debug=False,
221
+ ),
222
+ }
223
+ )
161
224
 
162
225
  # calculate the transfer functions for the filters
163
226
  for index in range(0, len(allfilters)):
@@ -204,50 +267,22 @@ def eval_filterprops(
204
267
  assert response["upperstopmean"] < 1e4
205
268
 
206
269
  # construct some test waveforms for end effects
207
- testwaves = []
208
- testwaves.append(
209
- {
210
- "name": "constant high",
211
- "timeaxis": 1.0 * timeaxis,
212
- "waveform": np.ones((tclen), dtype="float"),
213
- }
214
- )
215
- testwaves.append(
216
- {
217
- "name": "white noise",
218
- "timeaxis": 1.0 * timeaxis,
219
- "waveform": 0.3 * np.random.normal(size=tclen),
220
- }
221
- )
222
-
223
- scratch = timeaxis * 0.0
224
- scratch[int(tclen / 5) : int(2 * tclen / 5)] = 1.0
225
- scratch[int(3 * tclen / 5) : int(4 * tclen / 5)] = 1.0
226
- testwaves.append(
227
- {
228
- "name": "block regressor",
229
- "timeaxis": 1.0 * timeaxis,
230
- "waveform": 1.0 * scratch,
231
- }
232
- )
270
+ testwaves = maketestwaves(timeaxis)
233
271
 
234
272
  # show the end effects waveforms
235
273
  if displayplots:
236
- legend = []
237
274
  plt.figure()
238
275
  plt.ylim([-2.2, 2.2 * len(testwaves)])
239
- offset = 0.0
240
276
  for thewave in testwaves:
277
+ legend = []
278
+ offset = 0.0
241
279
  for thefilter in allfilters:
242
280
  plt.plot(
243
281
  thewave["timeaxis"],
244
282
  offset + thefilter["filter"].apply(1.0 / sampletime, thewave["waveform"]),
245
283
  )
246
284
  legend.append(thewave["name"] + ": " + thefilter["name"])
247
- offset += 1.0
248
- # plt.plot(thewave['timeaxis'], thewave['waveform'] + offset)
249
- # legend.append(thewave['name'])
250
- # offset += 2.2
285
+ offset += 1.25
251
286
  plt.legend(legend)
252
287
  plt.show()
253
288
 
@@ -262,6 +297,10 @@ def test_filterprops(displayplots=False, debug=False):
262
297
  eval_filterprops(
263
298
  sampletime=0.1, tclengthinsecs=30000.0, numruns=10, displayplots=displayplots, debug=debug
264
299
  )
300
+ eval_filterprops(
301
+ sampletime=0.1, tclengthinsecs=30000.1, numruns=10, displayplots=displayplots, debug=debug
302
+ )
303
+ showfftcache()
265
304
 
266
305
 
267
306
  if __name__ == "__main__":
@@ -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.
@@ -24,9 +24,9 @@ import matplotlib.pyplot as plt
24
24
  import numpy as np
25
25
 
26
26
  import rapidtide.fit as tide_fit
27
- import rapidtide.helper_classes as tide_classes
28
27
  import rapidtide.io as tide_io
29
- from rapidtide.tests.utils import get_examples_path
28
+ import rapidtide.simFuncClasses as tide_simFuncClasses
29
+ from rapidtide.tests.utils import get_examples_path, get_test_temp_path
30
30
 
31
31
 
32
32
  def dumplists(results, targets, failflags):
@@ -39,7 +39,14 @@ def dumplists(results, targets, failflags):
39
39
  print(results[i], targets[i], failflags[i])
40
40
 
41
41
 
42
- def eval_fml_result(absmin, absmax, testvalues, foundvalues, failflags, tolerance=0.0001):
42
+ def eval_fml_result(
43
+ absmin, absmax, testvalues, foundvalues, failflags, tolerance=0.0001, debug=False
44
+ ):
45
+ if debug:
46
+ print(f"{absmin=}, {absmax=}, {tolerance=}")
47
+ print(f"{testvalues=}")
48
+ print(f"{foundvalues=}")
49
+ print(f"{failflags=}")
43
50
  for i in range(len(testvalues)):
44
51
  if testvalues[i] < absmin:
45
52
  if foundvalues[i] != absmin:
@@ -61,12 +68,22 @@ def eval_fml_result(absmin, absmax, testvalues, foundvalues, failflags, toleranc
61
68
  return True
62
69
 
63
70
 
64
- def test_findmaxlag(displayplots=False, debug=False):
71
+ def test_findmaxlag(displayplots=False, local=False, debug=False):
72
+ # set input and output directories
73
+ if local:
74
+ exampleroot = "../data/examples/src"
75
+ testtemproot = "./tmp"
76
+ else:
77
+ exampleroot = get_examples_path()
78
+ testtemproot = get_test_temp_path()
79
+
80
+ if debug:
81
+ print("debug flag is set")
65
82
  # for fittype in ["gauss", "quad", "fastquad", "COM", "None", "fastgauss", "gausscf"]:
66
83
  for fittype in ["gauss"]:
67
84
  print("*************************************")
68
85
  print(f"testing fittype: {fittype}")
69
- textfilename = op.join(get_examples_path(), "lt_rt.txt")
86
+ textfilename = op.join(exampleroot, "lt_rt.txt")
70
87
 
71
88
  # set default variable values
72
89
  searchfrac = 0.75
@@ -101,7 +118,7 @@ def test_findmaxlag(displayplots=False, debug=False):
101
118
  fmlc_lfailreasons = np.zeros(len(testlags), dtype=np.uint16)
102
119
 
103
120
  # initialize the correlation fitter
104
- thefitter = tide_classes.SimilarityFunctionFitter(
121
+ thefitter = tide_simFuncClasses.SimilarityFunctionFitter(
105
122
  corrtimeaxis=xvecs,
106
123
  lagmin=lagmin,
107
124
  lagmax=lagmax,
@@ -172,16 +189,24 @@ def test_findmaxlag(displayplots=False, debug=False):
172
189
  for i in range(len(testlags)):
173
190
  print(testlags[i], fml_maxlags[i], fml_lfailreasons[i])
174
191
 
175
- assert eval_fml_result(lagmin, lagmax, testlags, fml_maxlags, fml_lfailreasons)
176
- assert eval_fml_result(absminval, absmaxval, testvals, fml_maxvals, fml_lfailreasons)
177
192
  assert eval_fml_result(
178
- absminsigma, absmaxsigma, testsigmas, fml_maxsigmas, fml_lfailreasons
193
+ lagmin, lagmax, testlags, fml_maxlags, fml_lfailreasons, debug=debug
194
+ )
195
+ assert eval_fml_result(
196
+ absminval, absmaxval, testvals, fml_maxvals, fml_lfailreasons, debug=debug
197
+ )
198
+ assert eval_fml_result(
199
+ absminsigma, absmaxsigma, testsigmas, fml_maxsigmas, fml_lfailreasons, debug=debug
179
200
  )
180
201
 
181
- assert eval_fml_result(lagmin, lagmax, testlags, fmlc_maxlags, fmlc_lfailreasons)
182
- assert eval_fml_result(absminval, absmaxval, testvals, fmlc_maxvals, fmlc_lfailreasons)
183
202
  assert eval_fml_result(
184
- absminsigma, absmaxsigma, testsigmas, fmlc_maxsigmas, fmlc_lfailreasons
203
+ lagmin, lagmax, testlags, fmlc_maxlags, fmlc_lfailreasons, debug=debug
204
+ )
205
+ assert eval_fml_result(
206
+ absminval, absmaxval, testvals, fmlc_maxvals, fmlc_lfailreasons, debug=debug
207
+ )
208
+ assert eval_fml_result(
209
+ absminsigma, absmaxsigma, testsigmas, fmlc_maxsigmas, fmlc_lfailreasons, debug=debug
185
210
  )
186
211
 
187
212
  if displayplots:
@@ -315,19 +340,25 @@ def test_findmaxlag(displayplots=False, debug=False):
315
340
  ax.legend(["findmaxlag_gauss", "classes"])
316
341
  plt.show()
317
342
 
318
- assert eval_fml_result(lagmin, lagmax, testlags, fml_maxlags, fml_wfailreasons)
343
+ assert eval_fml_result(
344
+ lagmin, lagmax, testlags, fml_maxlags, fml_wfailreasons, debug=debug
345
+ )
319
346
  # assert eval_fml_result(absminval, absmaxval, testvals, fml_maxvals, fml_wfailreasons)
320
347
  assert eval_fml_result(
321
- absminsigma, absmaxsigma, testsigmas, fml_maxsigmas, fml_wfailreasons
348
+ absminsigma, absmaxsigma, testsigmas, fml_maxsigmas, fml_wfailreasons, debug=debug
322
349
  )
323
350
 
324
- assert eval_fml_result(lagmin, lagmax, testlags, fmlc_maxlags, fmlc_wfailreasons)
325
- assert eval_fml_result(absminval, absmaxval, testvals, fmlc_maxvals, fmlc_wfailreasons)
326
351
  assert eval_fml_result(
327
- absminsigma, absmaxsigma, testsigmas, fmlc_maxsigmas, fmlc_wfailreasons
352
+ lagmin, lagmax, testlags, fmlc_maxlags, fmlc_wfailreasons, debug=debug
353
+ )
354
+ assert eval_fml_result(
355
+ absminval, absmaxval, testvals, fmlc_maxvals, fmlc_wfailreasons, debug=debug
356
+ )
357
+ assert eval_fml_result(
358
+ absminsigma, absmaxsigma, testsigmas, fmlc_maxsigmas, fmlc_wfailreasons, debug=debug
328
359
  )
329
360
 
330
361
 
331
362
  if __name__ == "__main__":
332
363
  mpl.use("TkAgg")
333
- test_findmaxlag(displayplots=True, debug=True)
364
+ test_findmaxlag(displayplots=True, local=True, 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,22 +25,27 @@ import rapidtide.workflows.happy_parser as happy_parser
25
25
  from rapidtide.tests.utils import create_dir, get_examples_path, get_test_temp_path, mse
26
26
 
27
27
 
28
- def test_fullrunhappy_v1(debug=False, displayplots=False):
28
+ def test_fullrunhappy_v1(debug=False, 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
  # run happy
30
38
  inputargs = [
31
- os.path.join(get_examples_path(), "sub-HAPPYTEST.nii.gz"),
32
- os.path.join(get_examples_path(), "sub-HAPPYTEST.json"),
33
- os.path.join(get_test_temp_path(), "happyout1"),
39
+ os.path.join(exampleroot, "sub-HAPPYTEST.nii.gz"),
40
+ os.path.join(exampleroot, "sub-HAPPYTEST.json"),
41
+ os.path.join(testtemproot, "happyout1"),
34
42
  "--mklthreads",
35
43
  "-1",
36
- "--spatialglm",
37
- "--model",
38
- "model_revised",
39
- "--aliasedcorrelation",
44
+ "--spatialregression",
40
45
  ]
41
46
  happy_workflow.happy_main(happy_parser.process_args(inputargs=inputargs))
42
47
 
43
48
 
44
49
  if __name__ == "__main__":
45
50
  mpl.use("TkAgg")
46
- test_fullrunhappy_v1(debug=True, displayplots=True)
51
+ test_fullrunhappy_v1(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.
@@ -25,25 +25,31 @@ import rapidtide.workflows.happy_parser as happy_parser
25
25
  from rapidtide.tests.utils import get_examples_path, get_test_temp_path
26
26
 
27
27
 
28
- def test_fullrunhappy_v2(debug=False, displayplots=False):
28
+ def test_fullrunhappy_v2(debug=False, 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
  # run happy
30
38
  inputargs = [
31
- os.path.join(get_examples_path(), "sub-HAPPYTEST.nii.gz"),
32
- os.path.join(get_examples_path(), "sub-HAPPYTEST.json"),
33
- os.path.join(get_test_temp_path(), "happyout2"),
34
- "--estmask",
35
- os.path.join(get_examples_path(), "sub-HAPPYTEST_smallmask.nii.gz"),
39
+ os.path.join(exampleroot, "sub-HAPPYTEST.nii.gz"),
40
+ os.path.join(exampleroot, "sub-HAPPYTEST.json"),
41
+ os.path.join(testtemproot, "happyout2"),
42
+ "--estweights",
43
+ os.path.join(exampleroot, "sub-HAPPYTEST_smallmask.nii.gz"),
36
44
  "--projmask",
37
- os.path.join(get_examples_path(), "sub-HAPPYTEST_smallmask.nii.gz"),
45
+ os.path.join(exampleroot, "sub-HAPPYTEST_smallmask.nii.gz"),
38
46
  "--mklthreads",
39
47
  "-1",
40
- "--model",
41
- "model_revised",
42
48
  "--fliparteries",
43
- "--temporalglm",
49
+ "--temporalregression",
44
50
  "--cardiacfile",
45
51
  os.path.join(
46
- get_examples_path(),
52
+ exampleroot,
47
53
  "sub-HAPPYTEST_desc-slicerescardfromfmri_timeseries.json:cardiacfromfmri_dlfiltered",
48
54
  ),
49
55
  "--increaseoutputlevel",
@@ -54,4 +60,4 @@ def test_fullrunhappy_v2(debug=False, displayplots=False):
54
60
 
55
61
  if __name__ == "__main__":
56
62
  mpl.use("TkAgg")
57
- test_fullrunhappy_v2(debug=True, displayplots=True)
63
+ test_fullrunhappy_v2(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.
@@ -24,28 +24,43 @@ import rapidtide.workflows.happy as happy_workflow
24
24
  import rapidtide.workflows.happy_parser as happy_parser
25
25
  from rapidtide.tests.utils import get_examples_path, get_test_temp_path
26
26
 
27
+ try:
28
+ import tensorflow as tf
29
+
30
+ tensorflowexists = True
31
+ except ImportError:
32
+ tensorflowexists = False
33
+
34
+
35
+ def test_fullrunhappy_v3(debug=False, local=False, displayplots=False):
36
+ # set input and output directories
37
+ if local:
38
+ exampleroot = "../data/examples/src"
39
+ testtemproot = "./tmp"
40
+ else:
41
+ exampleroot = get_examples_path()
42
+ testtemproot = get_test_temp_path()
27
43
 
28
- def test_fullrunhappy_v3(debug=False, displayplots=False):
29
44
  # run happy
30
45
  inputargs = [
31
- os.path.join(get_examples_path(), "sub-HAPPYTEST.nii.gz"),
32
- os.path.join(get_examples_path(), "sub-HAPPYTEST.json"),
33
- os.path.join(get_test_temp_path(), "happyout3"),
34
- "--estmask",
35
- os.path.join(get_examples_path(), "sub-HAPPYTEST_smallmask.nii.gz"),
46
+ os.path.join(exampleroot, "sub-HAPPYTEST.nii.gz"),
47
+ os.path.join(exampleroot, "sub-HAPPYTEST.json"),
48
+ os.path.join(testtemproot, "happyout3"),
49
+ "--estweights",
50
+ os.path.join(exampleroot, "sub-HAPPYTEST_smallmask.nii.gz"),
36
51
  "--projmask",
37
- os.path.join(get_examples_path(), "sub-HAPPYTEST_smallmask.nii.gz"),
52
+ os.path.join(exampleroot, "sub-HAPPYTEST_smallmask.nii.gz"),
38
53
  "--mklthreads",
39
54
  "-1",
40
- "--model",
41
- "model_revised",
42
55
  "--cardcalconly",
43
56
  ]
44
- # "--motionfile",
45
- # os.path.join(get_examples_path(), "sub-HAPPYTEST_mcf.par"),
57
+ if tensorflowexists:
58
+ inputargs.append("--usetensorflow")
59
+ inputargs.append("--model")
60
+ inputargs.append("model_revised_tf2")
46
61
  happy_workflow.happy_main(happy_parser.process_args(inputargs=inputargs))
47
62
 
48
63
 
49
64
  if __name__ == "__main__":
50
65
  mpl.use("TkAgg")
51
- test_fullrunhappy_v3(debug=True, displayplots=True)
66
+ test_fullrunhappy_v3(debug=True, local=True, displayplots=True)