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,296 @@
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 copy
20
+ import os
21
+
22
+ import matplotlib as mpl
23
+ import matplotlib.pyplot as plt
24
+ import numpy as np
25
+
26
+ import rapidtide.io as tide_io
27
+ import rapidtide.miscmath as tide_math
28
+ import rapidtide.refinedelay as tide_refinedelay
29
+ import rapidtide.resample as tide_resample
30
+ from rapidtide.filter import NoncausalFilter
31
+ from rapidtide.tests.utils import get_examples_path, get_test_temp_path, mse
32
+
33
+
34
+ def eval_refinedelay(
35
+ sampletime=0.72,
36
+ tclengthinsecs=300.0,
37
+ mindelay=-5.0,
38
+ maxdelay=5.0,
39
+ lagpad=0.0,
40
+ numpoints=501,
41
+ smoothpts=3,
42
+ nativespaceshape=(10, 10, 10),
43
+ displayplots=False,
44
+ padtime=30.0,
45
+ noiselevel=0.0,
46
+ outputsuffix="",
47
+ local=False,
48
+ debug=False,
49
+ ):
50
+ # set input and output directories
51
+ if local:
52
+ exampleroot = "../data/examples/src"
53
+ testtemproot = "./tmp"
54
+ else:
55
+ exampleroot = get_examples_path()
56
+ testtemproot = get_test_temp_path()
57
+
58
+ np.random.seed(12345)
59
+ tclen = int(tclengthinsecs // sampletime)
60
+
61
+ Fs = 1.0 / sampletime
62
+ print("Testing transfer function:")
63
+ lowestfreq = 1.0 / (sampletime * tclen)
64
+ nyquist = 0.5 / sampletime
65
+ print(
66
+ " sampletime=",
67
+ sampletime,
68
+ ", timecourse length=",
69
+ tclengthinsecs,
70
+ "s, possible frequency range:",
71
+ lowestfreq,
72
+ nyquist,
73
+ )
74
+
75
+ # make an sLFO timecourse
76
+ timeaxis = np.linspace(0.0, sampletime * tclen, num=tclen, endpoint=False)
77
+ rawgms = tide_math.stdnormalize(np.random.normal(size=tclen))
78
+ testfilter = NoncausalFilter(filtertype="lfo")
79
+ sLFO = tide_math.stdnormalize(testfilter.apply(Fs, rawgms))
80
+ if displayplots:
81
+ fig = plt.figure()
82
+ ax = fig.add_subplot(111)
83
+ ax.set_title("Initial regressor")
84
+ plt.plot(timeaxis, rawgms)
85
+ plt.plot(timeaxis, sLFO)
86
+ plt.show()
87
+
88
+ # now turn it into a lagtc generator
89
+ numpadtrs = int(padtime // sampletime)
90
+ padtime = sampletime * numpadtrs
91
+ lagtcgenerator = tide_resample.FastResampler(timeaxis, sLFO, padtime=padtime)
92
+
93
+ # find the mapping of derivative ratios to delays
94
+ tide_refinedelay.trainratiotooffset(
95
+ lagtcgenerator,
96
+ timeaxis,
97
+ os.path.join(testtemproot, "refinedelaytest" + outputsuffix),
98
+ "norm",
99
+ mindelay=mindelay,
100
+ maxdelay=maxdelay,
101
+ numpoints=numpoints,
102
+ smoothpts=smoothpts,
103
+ debug=debug,
104
+ )
105
+
106
+ # make a delay map
107
+ numlags = nativespaceshape[0] * nativespaceshape[1] * nativespaceshape[2]
108
+ lagtimes = np.linspace(mindelay - lagpad, maxdelay + lagpad, numlags, endpoint=True)
109
+ if debug:
110
+ print(" lagtimes=", lagtimes)
111
+
112
+ # now make synthetic fMRI data
113
+ internalvalidfmrishape = (numlags, tclen)
114
+ fmridata = np.zeros(internalvalidfmrishape, dtype=float)
115
+ fmrimask = np.ones(numlags, dtype=float)
116
+ validvoxels = np.where(fmrimask > 0)[0]
117
+ for i in range(numlags):
118
+ noisevec = tide_math.stdnormalize(
119
+ testfilter.apply(Fs, tide_math.stdnormalize(np.random.normal(size=tclen)))
120
+ )
121
+ fmridata[i, :] = lagtcgenerator.yfromx(timeaxis - lagtimes[i]) + noiselevel * noisevec
122
+
123
+ """if displayplots:
124
+ fig = plt.figure()
125
+ ax = fig.add_subplot(111)
126
+ ax.set_title("Timecourses")
127
+ for i in range(0, numlags, 200):
128
+ plt.plot(timeaxis, fmridata[i, :])
129
+ plt.show()"""
130
+
131
+ # make a fake header
132
+ nim, nim_data, nim_hdr, thedims, thesizes = tide_io.readfromnifti(
133
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST_brainmask.nii.gz")
134
+ )
135
+ xdim, ydim, slicedim, fmritr = tide_io.parseniftisizes(thesizes)
136
+ theheader = copy.copy(nim_hdr)
137
+ theheader["dim"][0] = 3
138
+ theheader["dim"][1] = nativespaceshape[0]
139
+ theheader["dim"][2] = nativespaceshape[1]
140
+ theheader["dim"][3] = nativespaceshape[2]
141
+ theheader["pixdim"][1] = 1.0
142
+ theheader["pixdim"][2] = 1.0
143
+ theheader["pixdim"][3] = 1.0
144
+ theheader["pixdim"][4] = 1.0
145
+
146
+ rt_floattype = "float64"
147
+ sLFOfitmean = np.zeros(numlags, dtype=rt_floattype)
148
+ rvalue = np.zeros(numlags, dtype=rt_floattype)
149
+ r2value = np.zeros(numlags, dtype=rt_floattype)
150
+ fitNorm = np.zeros((numlags, 2), dtype=rt_floattype)
151
+ fitcoeff = np.zeros((numlags, 2), dtype=rt_floattype)
152
+ movingsignal = np.zeros(internalvalidfmrishape, dtype=rt_floattype)
153
+ lagtc = np.zeros(internalvalidfmrishape, dtype=rt_floattype)
154
+ filtereddata = np.zeros(internalvalidfmrishape, dtype=rt_floattype)
155
+ optiondict = {
156
+ "regressfiltthreshval": 0.0,
157
+ "saveminimumsLFOfiltfiles": False,
158
+ "nprocs_makelaggedtcs": 1,
159
+ "nprocs_regressionfilt": 1,
160
+ "mp_chunksize": 1000,
161
+ "showprogressbar": False,
162
+ "alwaysmultiproc": False,
163
+ "focaldebug": debug,
164
+ "fmrifreq": Fs,
165
+ }
166
+
167
+ regressderivratios, regressrvalues = tide_refinedelay.getderivratios(
168
+ fmridata,
169
+ validvoxels,
170
+ timeaxis,
171
+ 0.0 * lagtimes,
172
+ fmrimask,
173
+ lagtcgenerator,
174
+ "glm",
175
+ "refinedelaytest",
176
+ sampletime,
177
+ sLFOfitmean,
178
+ rvalue,
179
+ r2value,
180
+ fitNorm[:, :2],
181
+ fitcoeff[:, :2],
182
+ movingsignal,
183
+ lagtc,
184
+ filtereddata,
185
+ None,
186
+ None,
187
+ optiondict,
188
+ debug=debug,
189
+ )
190
+
191
+ medfilt, filteredregressderivratios, themad = tide_refinedelay.filterderivratios(
192
+ regressderivratios,
193
+ nativespaceshape,
194
+ validvoxels,
195
+ (xdim, ydim, slicedim),
196
+ patchthresh=3.0,
197
+ rt_floattype="float64",
198
+ debug=debug,
199
+ )
200
+
201
+ delayoffset = np.zeros_like(filteredregressderivratios)
202
+ for i in range(filteredregressderivratios.shape[0]):
203
+ delayoffset[i], closestoffset = tide_refinedelay.ratiotodelay(
204
+ filteredregressderivratios[i]
205
+ )
206
+
207
+ # do the tests
208
+ msethresh = 0.1
209
+ aethresh = 2
210
+ print(f"{mse(lagtimes, delayoffset)=}")
211
+ assert mse(lagtimes, delayoffset) < msethresh
212
+ # np.testing.assert_almost_equal(lagtimes, delayoffset, aethresh)
213
+
214
+ if displayplots:
215
+ fig = plt.figure()
216
+ ax = fig.add_subplot(111)
217
+ ax.set_title("Lagtimes")
218
+ plt.plot(lagtimes)
219
+ plt.plot(delayoffset)
220
+ plt.legend(["Target", "Fit"])
221
+ plt.show()
222
+
223
+
224
+ def test_refinedelay(displayplots=False, local=False, debug=False):
225
+ for noiselevel in np.linspace(0.0, 0.5, num=5, endpoint=True):
226
+ eval_refinedelay(
227
+ sampletime=0.72,
228
+ tclengthinsecs=300.0,
229
+ mindelay=-3.0,
230
+ maxdelay=3.0,
231
+ numpoints=501,
232
+ smoothpts=9,
233
+ nativespaceshape=(10, 10, 10),
234
+ displayplots=displayplots,
235
+ outputsuffix="_1",
236
+ noiselevel=noiselevel,
237
+ local=local,
238
+ debug=debug,
239
+ )
240
+ eval_refinedelay(
241
+ sampletime=0.72,
242
+ tclengthinsecs=300.0,
243
+ mindelay=-3.0,
244
+ maxdelay=3.0,
245
+ numpoints=501,
246
+ smoothpts=9,
247
+ nativespaceshape=(10, 10, 10),
248
+ displayplots=displayplots,
249
+ outputsuffix="_2",
250
+ local=local,
251
+ debug=debug,
252
+ )
253
+ eval_refinedelay(
254
+ sampletime=0.72,
255
+ tclengthinsecs=300.0,
256
+ mindelay=-3.0,
257
+ maxdelay=3.0,
258
+ numpoints=501,
259
+ smoothpts=5,
260
+ nativespaceshape=(10, 10, 10),
261
+ displayplots=displayplots,
262
+ outputsuffix="_3",
263
+ local=local,
264
+ debug=debug,
265
+ )
266
+ eval_refinedelay(
267
+ sampletime=1.5,
268
+ tclengthinsecs=300.0,
269
+ mindelay=-3.0,
270
+ maxdelay=3.0,
271
+ numpoints=501,
272
+ smoothpts=3,
273
+ nativespaceshape=(10, 10, 10),
274
+ displayplots=displayplots,
275
+ outputsuffix="_1p5_501_3",
276
+ local=local,
277
+ debug=debug,
278
+ )
279
+ eval_refinedelay(
280
+ sampletime=3.0,
281
+ tclengthinsecs=300.0,
282
+ mindelay=-3.0,
283
+ maxdelay=3.0,
284
+ numpoints=501,
285
+ smoothpts=3,
286
+ nativespaceshape=(10, 10, 10),
287
+ displayplots=displayplots,
288
+ outputsuffix="_3p0_501_3",
289
+ local=local,
290
+ debug=debug,
291
+ )
292
+
293
+
294
+ if __name__ == "__main__":
295
+ mpl.use("TkAgg")
296
+ test_refinedelay(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.
@@ -22,7 +22,7 @@ import matplotlib as mpl
22
22
 
23
23
  import rapidtide.workflows.parser_funcs as pf
24
24
  import rapidtide.workflows.showtc as showtc
25
- from rapidtide.tests.utils import get_examples_path
25
+ from rapidtide.tests.utils import get_examples_path, get_test_temp_path
26
26
 
27
27
 
28
28
  def test_runmisc(debug=False, displayplots=False):
@@ -35,7 +35,7 @@ def test_runmisc(debug=False, displayplots=False):
35
35
  "--sampletime",
36
36
  "12.5",
37
37
  "--tofile",
38
- "showtcout1.jpg",
38
+ os.path.join(get_test_temp_path(), "showtcout1.jpg"),
39
39
  "--starttime",
40
40
  "100",
41
41
  "--endtime",
@@ -55,7 +55,7 @@ def test_runmisc(debug=False, displayplots=False):
55
55
  "--displaytype",
56
56
  "power",
57
57
  "--tofile",
58
- "showtcout2.jpg",
58
+ os.path.join(get_test_temp_path(), "showtcout2.jpg"),
59
59
  "--noxax",
60
60
  "--noyax",
61
61
  "--nolegend",
@@ -90,7 +90,7 @@ def test_runmisc(debug=False, displayplots=False):
90
90
  "--displaytype",
91
91
  "phase",
92
92
  "--tofile",
93
- "showtcout3.jpg",
93
+ os.path.join(get_test_temp_path(), "showtcout3.jpg"),
94
94
  ]
95
95
  pf.generic_init(showtc._get_parser, showtc.showtc, inputargs=inputargs)
96
96
 
@@ -0,0 +1,60 @@
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
+ import numpy as np
18
+
19
+ import rapidtide.util as tide_util
20
+
21
+
22
+ def test_numpy2shared(debug=False):
23
+ vectorlen = 1000
24
+ for intype in [np.float32, np.float64]:
25
+ sourcevector = np.random.normal(size=vectorlen).astype(intype)
26
+ if debug:
27
+ print(f"{intype=}, {sourcevector.size=}, {sourcevector.dtype=}")
28
+ for outtype in [np.float32, np.float64]:
29
+
30
+ destvector, shm = tide_util.numpy2shared(sourcevector, outtype)
31
+ if debug:
32
+ print(f"\t{outtype=}, {destvector.size=}, {destvector.dtype=}")
33
+
34
+ # check everything
35
+ assert destvector.dtype == outtype
36
+ assert destvector.size == sourcevector.size
37
+ np.testing.assert_almost_equal(sourcevector, destvector, 3)
38
+
39
+ # clean up
40
+ tide_util.cleanup_shm(shm)
41
+
42
+
43
+ def test_allocshared(debug=False):
44
+ datashape = (10, 10, 10)
45
+ for outtype in [np.float32, np.float64]:
46
+ destarray, shm = tide_util.allocshared(datashape, outtype)
47
+ if debug:
48
+ print(f"{outtype=}, {destarray.size=}, {destarray.dtype=}")
49
+
50
+ # check everything
51
+ assert destarray.dtype == outtype
52
+ assert destarray.size == np.prod(datashape)
53
+
54
+ # clean up if needed
55
+ tide_util.cleanup_shm(shm)
56
+
57
+
58
+ if __name__ == "__main__":
59
+ test_numpy2shared(debug=True)
60
+ test_allocshared(debug=True)
@@ -0,0 +1,132 @@
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.io as tide_io
24
+ import rapidtide.workflows.parser_funcs as pf
25
+ import rapidtide.workflows.rapidtide as rapidtide_workflow
26
+ import rapidtide.workflows.rapidtide_parser as rapidtide_parser
27
+ import rapidtide.workflows.simdata as rapidtide_simdata
28
+ from rapidtide.tests.utils import get_examples_path, get_test_temp_path
29
+
30
+
31
+ def test_simroundtrip(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
+ # run initial rapidtide
41
+ inputargs = [
42
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST.nii.gz"),
43
+ os.path.join(testtemproot, "sub-RAPIDTIDETESTSIM"),
44
+ "--corrmask",
45
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST_restrictedmask.nii.gz"),
46
+ "--globalmeaninclude",
47
+ os.path.join(exampleroot, "sub-RAPIDTIDETEST_brainmask.nii.gz"),
48
+ "--spatialfilt",
49
+ "2",
50
+ "--simcalcrange",
51
+ "4",
52
+ "-1",
53
+ "--nprocs",
54
+ "-1",
55
+ "--passes",
56
+ "2",
57
+ "--despecklepasses",
58
+ "3",
59
+ "--delaypatchthresh",
60
+ "4.0",
61
+ ]
62
+ rapidtide_workflow.rapidtide_main(rapidtide_parser.process_args(inputargs=inputargs))
63
+
64
+ print("initial rapidtide run complete")
65
+
66
+ # now simulate data from maps
67
+ print(testtemproot)
68
+ inputargs = [
69
+ "1.5",
70
+ "260",
71
+ os.path.join(testtemproot, "sub-RAPIDTIDETESTSIM_desc-unfiltmean_map.nii.gz"),
72
+ os.path.join(testtemproot, "simulatedfmri_vn05"),
73
+ "--lfopctfile",
74
+ os.path.join(testtemproot, "sub-RAPIDTIDETESTSIM_desc-maxcorr_map.nii.gz"),
75
+ "--lfolagfile",
76
+ os.path.join(testtemproot, "sub-RAPIDTIDETESTSIM_desc-maxtimerefined_map.nii.gz"),
77
+ "--lforegressor",
78
+ os.path.join(
79
+ testtemproot, "sub-RAPIDTIDETESTSIM_desc-movingregressor_timeseries.json:pass2"
80
+ ),
81
+ "--voxelnoiselevel",
82
+ "5.0",
83
+ ]
84
+
85
+ pf.generic_init(rapidtide_simdata._get_parser, rapidtide_simdata.simdata, inputargs=inputargs)
86
+ print("simulated dataset generated")
87
+
88
+ # run repeat rapidtide
89
+ inputargs = [
90
+ os.path.join(testtemproot, "simulatedfmri_vn05.nii.gz"),
91
+ os.path.join(testtemproot, "sub-RAPIDTIDETESTSIMRERUN"),
92
+ "--spatialfilt",
93
+ "2",
94
+ "--simcalcrange",
95
+ "4",
96
+ "-1",
97
+ "--nprocs",
98
+ "-1",
99
+ "--passes",
100
+ "2",
101
+ "--despecklepasses",
102
+ "3",
103
+ "--delaypatchthresh",
104
+ "4.0",
105
+ ]
106
+ rapidtide_workflow.rapidtide_main(rapidtide_parser.process_args(inputargs=inputargs))
107
+ print("repeat rapidtide completed")
108
+
109
+ absthresh = 1e-10
110
+ msethresh = 1e-12
111
+ spacetolerance = 1e-3
112
+ """for map in [
113
+ "maxtime",
114
+ "maxtimerefined",
115
+ "lfofilterCoeff",
116
+ ]:
117
+ print(f"Testing map={map}")
118
+ filename1 = os.path.join(testtemproot, f"sub-RAPIDTIDETESTSIM_desc-{map}_map.nii.gz")
119
+ filename2 = os.path.join(testtemproot, f"sub-RAPIDTIDETESTSIMRERUN_desc-{map}_map.nii.gz")
120
+ assert tide_io.checkniftifilematch(
121
+ filename1,
122
+ filename2,
123
+ absthresh=absthresh,
124
+ msethresh=msethresh,
125
+ spacetolerance=spacetolerance,
126
+ debug=debug,
127
+ )"""
128
+
129
+
130
+ if __name__ == "__main__":
131
+ mpl.use("TkAgg")
132
+ test_simroundtrip(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 2017-2024 Blaise Frederick
4
+ # Copyright 2017-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.
@@ -58,6 +58,7 @@ def test_stcorrelate(debug=False):
58
58
  times, corrpertime, ppertime = shorttermcorr_1D(
59
59
  sig1, sig2, tr, windowtime, samplestep=int(stepsize // tr), detrendorder=0
60
60
  )
61
+ print(f"1D correlation: {corrpertime=}, {ppertime=}")
61
62
  # plength = len(times)
62
63
  times, xcorrpertime, Rvals, delayvals, valid = shorttermcorr_2D(
63
64
  sig1,
@@ -67,8 +68,9 @@ def test_stcorrelate(debug=False):
67
68
  samplestep=int(stepsize // tr),
68
69
  weighting=corrweighting,
69
70
  detrendorder=0,
70
- displayplots=False,
71
+ displayplots=debug,
71
72
  )
73
+ print(f"2D correlation: {Rvals=}, {delayvals=}, {valid=}")
72
74
  # xlength = len(times)
73
75
  writenpvecs(corrpertime, outfilename + "_pearson.txt")
74
76
  writenpvecs(ppertime, outfilename + "_pvalue.txt")
@@ -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.
@@ -32,7 +32,7 @@ def test_timeshift(debug=False):
32
32
  shiftdist = 30
33
33
  timeaxis = np.arange(0.0, 1.0 * testlen) * tr
34
34
  # timecoursein = np.zeros((testlen), dtype='float64')
35
- timecoursein = np.float64(timeaxis * 0.0)
35
+ timecoursein = np.zeros_like(timeaxis, np.float64)
36
36
  midpoint = int(testlen // 2) + 1
37
37
  timecoursein[midpoint - 1] = np.float64(1.0)
38
38
  timecoursein[midpoint] = np.float64(1.0)
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
  #
4
- # Copyright 2016-2024 Blaise Frederick
4
+ # Copyright 2016-2025 Blaise Frederick
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -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.
@@ -26,7 +26,7 @@ from rapidtide.RapidtideDataset import RapidtideDataset
26
26
  from rapidtide.tests.utils import get_examples_path, get_test_temp_path
27
27
 
28
28
 
29
- def main(runninglocally=False):
29
+ def main(runninglocally=False, debug=False):
30
30
  # initialize default values
31
31
  if runninglocally:
32
32
  datafileroot = "../data/examples/dst/sub-RAPIDTIDETEST_"
@@ -59,7 +59,9 @@ def main(runninglocally=False):
59
59
  verbose=verbose,
60
60
  )
61
61
 
62
+ print("getting overlays")
62
63
  theoverlays = thesubject.getoverlays()
64
+ print("getting regressors")
63
65
  theregressors = thesubject.getregressors()
64
66
 
65
67
  assert thesubject.focusregressor == "prefilt"
@@ -72,4 +74,4 @@ def main(runninglocally=False):
72
74
 
73
75
 
74
76
  if __name__ == "__main__":
75
- main(runninglocally=True)
77
+ main(runninglocally=True, debug=True)