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
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
  #
4
- # Copyright 2021-2024 Blaise Frederick
4
+ # Copyright 2021-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.
@@ -18,17 +18,42 @@
18
18
  #
19
19
  import argparse
20
20
  import sys
21
+ from typing import Any, Callable, Dict, List, Optional, Tuple, Union
21
22
 
22
23
  import numpy as np
24
+ from numpy.typing import NDArray
23
25
 
24
26
  import rapidtide.io as tide_io
25
27
  import rapidtide.miscmath as tide_math
26
28
  import rapidtide.workflows.parser_funcs as pf
27
29
 
28
30
 
29
- def _get_parser():
31
+ def _get_parser() -> Any:
30
32
  """
31
- Argument parser for roisummarize
33
+ Argument parser for roisummarize.
34
+
35
+ This function constructs and returns an `argparse.ArgumentParser` object configured
36
+ for parsing command-line arguments used by the `roisummarize` tool. It defines
37
+ required inputs, optional arguments for sampling frequency, filtering, normalization,
38
+ and debugging options.
39
+
40
+ Returns
41
+ -------
42
+ argparse.ArgumentParser
43
+ Configured argument parser for the roisummarize tool.
44
+
45
+ Notes
46
+ -----
47
+ The parser supports two mutually exclusive ways to specify sampling frequency:
48
+ either via `--samplerate` or `--sampletstep`. These are equivalent and both
49
+ set the same internal `samplerate` parameter.
50
+
51
+ Examples
52
+ --------
53
+ >>> parser = _get_parser()
54
+ >>> args = parser.parse_args(['--inputfilename', 'input.txt',
55
+ ... '--templatefile', 'template.nii',
56
+ ... '--outputfile', 'output.txt'])
32
57
  """
33
58
  parser = argparse.ArgumentParser(
34
59
  prog="filttc",
@@ -101,7 +126,50 @@ def _get_parser():
101
126
  return parser
102
127
 
103
128
 
104
- def summarize4Dbylabel(inputvoxels, templatevoxels, normmethod="z", debug=False):
129
+ def summarize4Dbylabel(
130
+ inputvoxels: NDArray, templatevoxels: NDArray, normmethod: str = "z", debug: bool = False
131
+ ) -> NDArray:
132
+ """
133
+ Summarize 4D voxel data by region labels from a template.
134
+
135
+ This function extracts time series data for each region defined in a template
136
+ and computes normalized mean time courses for each region across time points.
137
+
138
+ Parameters
139
+ ----------
140
+ inputvoxels : NDArray
141
+ 4D array containing voxel data with shape (n_voxels, n_timepoints, n_other_dims)
142
+ templatevoxels : NDArray
143
+ 3D array containing region labels with shape (n_voxels, 1, 1)
144
+ normmethod : str, optional
145
+ Normalization method to apply to time courses, default is "z"
146
+ Supported methods depend on tide_math.normalize function
147
+ debug : bool, optional
148
+ If True, print debugging information including voxel counts and shapes,
149
+ default is False
150
+
151
+ Returns
152
+ -------
153
+ timecourses : NDArray
154
+ 2D array of shape (n_regions, n_timepoints) containing normalized mean
155
+ time courses for each region
156
+
157
+ Notes
158
+ -----
159
+ - Regions are assumed to be labeled starting from 1
160
+ - Zero-valued voxels in template are ignored
161
+ - NaN values are converted to zeros before computing means
162
+ - The function uses tide_math.normalize for normalization
163
+
164
+ Examples
165
+ --------
166
+ >>> import numpy as np
167
+ >>> input_data = np.random.rand(100, 50, 1)
168
+ >>> template = np.random.randint(1, 4, (100, 1, 1))
169
+ >>> result = summarize4Dbylabel(input_data, template, normmethod="z")
170
+ >>> print(result.shape)
171
+ (3, 50)
172
+ """
105
173
  numregions = np.max(templatevoxels)
106
174
  numtimepoints = inputvoxels.shape[1]
107
175
  timecourses = np.zeros((numregions, numtimepoints), dtype="float")
@@ -111,14 +179,58 @@ def summarize4Dbylabel(inputvoxels, templatevoxels, normmethod="z", debug=False)
111
179
  if thevoxels.shape[1] > 0:
112
180
  regiontimecourse = np.nan_to_num(np.mean(thevoxels, axis=0))
113
181
  else:
114
- regiontimecourse = timecourses[0, :] * 0.0
182
+ regiontimecourse = np.zeros_like(timecourses[0, :])
115
183
  if debug:
116
184
  print("thevoxels, data shape are:", thevoxels.shape, regiontimecourse.shape)
117
185
  timecourses[theregion - 1, :] = tide_math.normalize(regiontimecourse, method=normmethod)
118
186
  return timecourses
119
187
 
120
188
 
121
- def summarize3Dbylabel(inputvoxels, templatevoxels, debug=False):
189
+ def summarize3Dbylabel(
190
+ inputvoxels: NDArray, templatevoxels: NDArray, debug: bool = False
191
+ ) -> Tuple[NDArray, list]:
192
+ """
193
+ Summarize 3D voxel data by label using mean, standard deviation, and median statistics.
194
+
195
+ This function processes 3D voxel data by grouping voxels according to labels in a template
196
+ and computes summary statistics for each labeled region. The input voxels are replaced
197
+ with the mean value of each region, and statistics are returned for further analysis.
198
+
199
+ Parameters
200
+ ----------
201
+ inputvoxels : NDArray
202
+ 3D array containing the voxel values to be summarized
203
+ templatevoxels : NDArray
204
+ 3D array containing integer labels defining regions of interest
205
+ debug : bool, optional
206
+ Flag to enable debug output (default is False)
207
+
208
+ Returns
209
+ -------
210
+ tuple
211
+ A tuple containing:
212
+ - outputvoxels : NDArray
213
+ 3D array with each labeled region replaced by its mean value
214
+ - regionstats : list
215
+ List of lists containing [mean, std, median] statistics for each region
216
+
217
+ Notes
218
+ -----
219
+ - Regions are labeled starting from 1 to max(templatevoxels)
220
+ - NaN values are converted to 0 during statistics calculation
221
+ - The function modifies the input arrays in-place during processing
222
+
223
+ Examples
224
+ --------
225
+ >>> import numpy as np
226
+ >>> input_data = np.random.rand(10, 10, 10)
227
+ >>> template = np.zeros((10, 10, 10), dtype=int)
228
+ >>> template[2:5, 2:5, 2:5] = 1
229
+ >>> template[6:8, 6:8, 6:8] = 2
230
+ >>> result, stats = summarize3Dbylabel(input_data, template)
231
+ >>> print(f"Region 1 mean: {stats[0][0]:.3f}")
232
+ >>> print(f"Region 2 mean: {stats[1][0]:.3f}")
233
+ """
122
234
  numregions = np.max(templatevoxels)
123
235
  outputvoxels = 0.0 * inputvoxels
124
236
  regionstats = []
@@ -132,7 +244,64 @@ def summarize3Dbylabel(inputvoxels, templatevoxels, debug=False):
132
244
  return outputvoxels, regionstats
133
245
 
134
246
 
135
- def roisummarize(args):
247
+ def roisummarize(args: Any) -> None:
248
+ """
249
+ Summarize fMRI data by regions of interest (ROIs) using a template image.
250
+
251
+ This function reads input fMRI and template NIfTI files, checks spatial
252
+ compatibility, and computes either 3D or 4D summaries depending on the
253
+ number of timepoints in the input data. For 4D data, it applies a filter
254
+ and summarizes timecourses by ROI. For 3D data, it computes mean values and
255
+ region statistics.
256
+
257
+ Parameters
258
+ ----------
259
+ args : Any
260
+ Command-line arguments parsed by `_get_parser()`. Expected attributes include:
261
+ - `inputfilename` : str
262
+ Path to the input fMRI NIfTI file.
263
+ - `templatefile` : str
264
+ Path to the template NIfTI file defining ROIs.
265
+ - `samplerate` : str or float
266
+ Sampling rate for filtering. If "auto", defaults to 1.0.
267
+ - `numskip` : int
268
+ Number of initial timepoints to skip when summarizing 4D data.
269
+ - `normmethod` : str
270
+ Normalization method for 4D summarization.
271
+ - `debug` : bool
272
+ Enable debug mode for additional output.
273
+ - `outputfile` : str
274
+ Base name for output files.
275
+
276
+ Returns
277
+ -------
278
+ None
279
+ The function writes output files to disk:
280
+ - `<outputfile>_timecourses`: Timecourses for each ROI (4D case).
281
+ - `<outputfile>_meanvals`: Mean values per ROI (3D case).
282
+ - `<outputfile>_regionstats.txt`: Statistics for each ROI (3D case).
283
+
284
+ Notes
285
+ -----
286
+ - The function assumes that the template file defines ROIs with integer labels.
287
+ - For 4D data, the input is filtered using `pf.postprocessfilteropts`.
288
+ - If the spatial dimensions of the input and template files do not match,
289
+ the function exits with an error message.
290
+
291
+ Examples
292
+ --------
293
+ >>> import argparse
294
+ >>> args = argparse.Namespace(
295
+ ... inputfilename='fmri.nii',
296
+ ... templatefile='roi_template.nii',
297
+ ... samplerate='auto',
298
+ ... numskip=5,
299
+ ... normmethod='zscore',
300
+ ... debug=False,
301
+ ... outputfile='output'
302
+ ... )
303
+ >>> roisummarize(args)
304
+ """
136
305
  # grab the command line arguments then pass them off.
137
306
  try:
138
307
  args = _get_parser().parse_args()
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
  #
4
- # Copyright 2024-2024 Blaise Frederick
4
+ # Copyright 2024-2025 Blaise Frederick
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -17,17 +17,41 @@
17
17
  #
18
18
  #
19
19
  import argparse
20
-
21
- import matplotlib as mpl
22
- import numpy as np
20
+ from argparse import Namespace
21
+ from typing import Any, Callable, Dict, List, Optional, Tuple, Union
23
22
 
24
23
  import rapidtide.io as tide_io
25
24
  import rapidtide.qualitycheck as tide_quality
26
25
 
27
26
 
28
- def _get_parser():
27
+ def _get_parser() -> Any:
29
28
  """
30
- Argument parser for runqualitycheck
29
+ Argument parser for runqualitycheck.
30
+
31
+ This function creates and configures an argument parser for the runqualitycheck
32
+ command-line tool. The parser handles both required and optional arguments needed
33
+ to perform quality checks on rapidtide datasets.
34
+
35
+ Returns
36
+ -------
37
+ argparse.ArgumentParser
38
+ Configured argument parser object with all required and optional arguments
39
+ for the runqualitycheck tool.
40
+
41
+ Notes
42
+ -----
43
+ The argument parser is configured with:
44
+ - Required input file root name
45
+ - Optional gray matter mask specification
46
+ - Optional white matter mask specification
47
+ - Debug flag for additional output
48
+
49
+ Examples
50
+ --------
51
+ >>> parser = _get_parser()
52
+ >>> args = parser.parse_args(['dataset_root'])
53
+ >>> print(args.inputfileroot)
54
+ 'dataset_root'
31
55
  """
32
56
  parser = argparse.ArgumentParser(
33
57
  prog="runqualitycheck",
@@ -69,7 +93,48 @@ def _get_parser():
69
93
  return parser
70
94
 
71
95
 
72
- def runqualitycheck(args):
96
+ def runqualitycheck(args: Any) -> None:
97
+ """
98
+ Run quality check on input data and write results to JSON file.
99
+
100
+ This function performs a quality check on the input data using the tide_quality
101
+ module and writes the results to a JSON file with a standardized naming convention.
102
+
103
+ Parameters
104
+ ----------
105
+ args : Any
106
+ An object containing input arguments with the following attributes:
107
+ - inputfileroot : str
108
+ Root name of the input file(s)
109
+ - graymaskspec : str, optional
110
+ Specification for gray matter masking
111
+ - whitemaskspec : str, optional
112
+ Specification for white matter masking
113
+ - debug : bool, optional
114
+ Flag to enable debug mode
115
+
116
+ Returns
117
+ -------
118
+ None
119
+ This function does not return any value but writes results to a JSON file.
120
+
121
+ Notes
122
+ -----
123
+ The output JSON file will be named as '{inputfileroot}_desc-qualitymetrics_info.json'
124
+ where inputfileroot is the root name provided in the args object.
125
+
126
+ Examples
127
+ --------
128
+ >>> class Args:
129
+ ... def __init__(self):
130
+ ... self.inputfileroot = "sub-01_task-rest"
131
+ ... self.graymaskspec = "gray_mask.nii.gz"
132
+ ... self.whitemaskspec = "white_mask.nii.gz"
133
+ ... self.debug = False
134
+ ...
135
+ >>> args = Args()
136
+ >>> runqualitycheck(args)
137
+ """
73
138
  resultsdict = tide_quality.qualitycheck(
74
139
  args.inputfileroot,
75
140
  graymaskspec=args.graymaskspec,
@@ -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.
@@ -18,20 +18,48 @@
18
18
  #
19
19
  import argparse
20
20
  import sys
21
+ from argparse import Namespace
22
+ from typing import Any, Callable, Dict, List, Optional, Tuple, Union
21
23
 
22
24
  import numpy as np
25
+ from numpy.typing import NDArray
23
26
  from scipy.stats import pearsonr
24
27
 
25
28
  import rapidtide.correlate as tide_corr
26
- import rapidtide.helper_classes as tide_classes
27
29
  import rapidtide.io as tide_io
28
30
  import rapidtide.miscmath as tide_math
31
+ import rapidtide.simFuncClasses as tide_simFuncClasses
29
32
  import rapidtide.workflows.parser_funcs as pf
30
33
 
31
34
 
32
- def _get_parser():
35
+ def _get_parser() -> Any:
33
36
  """
34
- Argument parser for showarbcorr
37
+ Argument parser for showarbcorr.
38
+
39
+ This function constructs and returns an `argparse.ArgumentParser` object configured
40
+ for the `showarbcorr` command-line tool. It defines required and optional arguments
41
+ for calculating and displaying crosscorrelation between two time series, supporting
42
+ variable lengths and sampling frequencies.
43
+
44
+ Returns
45
+ -------
46
+ argparse.ArgumentParser
47
+ Configured argument parser for `showarbcorr`.
48
+
49
+ Notes
50
+ -----
51
+ The parser includes groups for:
52
+ - Required input files
53
+ - Optional arguments (e.g., sample rates, display control)
54
+ - Preprocessing options (e.g., detrending, correlation weighting)
55
+ - Filtering and windowing options
56
+ - Output configuration (e.g., files for results, plots)
57
+ - Miscellaneous settings (e.g., multiprocessing, progress bar)
58
+
59
+ Examples
60
+ --------
61
+ >>> parser = _get_parser()
62
+ >>> args = parser.parse_args()
35
63
  """
36
64
  parser = argparse.ArgumentParser(
37
65
  prog="showarbcorr",
@@ -240,13 +268,128 @@ def _get_parser():
240
268
  return parser
241
269
 
242
270
 
243
- def printthresholds(pcts, thepercentiles, labeltext):
271
+ def printthresholds(pcts: Any, thepercentiles: Any, labeltext: Any) -> None:
272
+ """
273
+ Print thresholds with corresponding percentile labels.
274
+
275
+ This function prints a formatted list of thresholds along with their
276
+ corresponding percentile labels for statistical analysis output.
277
+
278
+ Parameters
279
+ ----------
280
+ pcts : Any
281
+ Array or list of threshold values to be printed.
282
+ thepercentiles : Any
283
+ Array or list of percentile values corresponding to the thresholds.
284
+ labeltext : Any
285
+ Text label to be printed before the threshold list.
286
+
287
+ Returns
288
+ -------
289
+ None
290
+ This function prints to standard output and does not return any value.
291
+
292
+ Notes
293
+ -----
294
+ The function formats the percentile values as "1.0 - thepercentiles[i]"
295
+ to show the alpha level (significance threshold) for each percentile.
296
+
297
+ Examples
298
+ --------
299
+ >>> pcts = [0.05, 0.01, 0.001]
300
+ >>> thepercentiles = [0.95, 0.99, 0.999]
301
+ >>> labeltext = "Critical Values:"
302
+ >>> printthresholds(pcts, thepercentiles, labeltext)
303
+ Critical Values:
304
+ p < 0.050 : 0.05
305
+ p < 0.010 : 0.01
306
+ p < 0.001 : 0.001
307
+ """
244
308
  print(labeltext)
245
309
  for i in range(0, len(pcts)):
246
310
  print("\tp <", "{:.3f}".format(1.0 - thepercentiles[i]), ": ", pcts[i])
247
311
 
248
312
 
249
- def showarbcorr(args):
313
+ def showarbcorr(args: Any) -> None:
314
+ """
315
+ Compute and display cross-correlation between two time series with optional filtering and plotting.
316
+
317
+ This function reads two time series from text files, matches their sampling rates, applies
318
+ optional filtering, and computes the cross-correlation. It supports various options for
319
+ data trimming, inversion, and output formatting, including optional visualization and
320
+ correlation fitting.
321
+
322
+ Parameters
323
+ ----------
324
+ args : Any
325
+ An object containing command-line arguments and configuration options. Expected
326
+ attributes include:
327
+ - infilename1, infilename2 : str
328
+ Paths to input text files containing the two time series.
329
+ - samplerate1, samplerate2 : float, optional
330
+ Sampling rates for the two time series. If not provided, they are inferred
331
+ from the input files.
332
+ - start1, start2 : float, optional
333
+ Start times for the two time series.
334
+ - trimdata : bool
335
+ If True, trim the data to the shorter of the two time series.
336
+ - invert : bool
337
+ If True, invert the second time series before correlation.
338
+ - windowfunc : str, optional
339
+ Window function to apply during correlation normalization.
340
+ - detrendorder : int, optional
341
+ Order of detrending to apply before correlation.
342
+ - display : bool
343
+ If True, display the cross-correlation plot.
344
+ - graphfile : str, optional
345
+ Output filename for saving the plot.
346
+ - label : str, optional
347
+ Label to use in output.
348
+ - lagmin, lagmax : float
349
+ Minimum and maximum lags (in seconds) to consider in the correlation.
350
+ - debug : bool
351
+ If True, enable debug output.
352
+ - bipolar : bool
353
+ If True, fit the peak using bipolar symmetry.
354
+ - summarymode : bool
355
+ If True, output results in a tab-separated summary format.
356
+ - outputfile : str, optional
357
+ File to write summary output.
358
+ - corroutputfile : str, optional
359
+ File to write full cross-correlation data.
360
+ - verbose : bool
361
+ If True, print verbose messages.
362
+
363
+ Returns
364
+ -------
365
+ None
366
+ This function does not return a value but may produce plots, print outputs,
367
+ and write files depending on the provided arguments.
368
+
369
+ Notes
370
+ -----
371
+ - The function uses `tide_io.readvectorsfromtextfile` to read input data.
372
+ - Filtering is applied via `tide_math.corrnormalize` and `theprefilter.apply`.
373
+ - Cross-correlation is computed using `tide_corr.arbcorr`.
374
+ - A peak-fitting procedure is used to refine the maximum correlation lag.
375
+ - If `summarymode` is True, output is written in tab-separated format to stdout or a file.
376
+
377
+ Examples
378
+ --------
379
+ >>> import argparse
380
+ >>> args = argparse.Namespace(
381
+ ... infilename1="data1.txt",
382
+ ... infilename2="data2.txt",
383
+ ... samplerate1=10.0,
384
+ ... samplerate2=10.0,
385
+ ... display=True,
386
+ ... lagmin=-5.0,
387
+ ... lagmax=5.0,
388
+ ... windowfunc="hanning",
389
+ ... debug=False
390
+ ... )
391
+ >>> showarbcorr(args)
392
+ """
250
393
  # set some default values
251
394
  absmaxsigma = 1000.0
252
395
  absminsigma = 0.25
@@ -297,6 +440,8 @@ def showarbcorr(args):
297
440
  sys.exit()
298
441
  if starttime1 == None:
299
442
  starttime1 = 0.0
443
+ endtime1 = starttime1 + len(inputdata1) / Fs1
444
+ print(f"inputdata1 goes from {starttime1} to {endtime1}")
300
445
 
301
446
  if args.samplerate2 is not None:
302
447
  Fs2 = args.samplerate2
@@ -305,9 +450,19 @@ def showarbcorr(args):
305
450
  sys.exit()
306
451
  if starttime2 == None:
307
452
  starttime2 = 0.0
453
+ endtime2 = starttime2 + len(inputdata2) / Fs2
454
+ print(f"inputdata2 goes from {starttime2} to {endtime2}")
308
455
 
309
- trimdata1 = inputdata1
310
- trimdata2 = inputdata2
456
+ matchedinput1, matchedinput2, commonFs = tide_corr.matchsamplerates(
457
+ inputdata1,
458
+ Fs1,
459
+ inputdata2,
460
+ Fs2,
461
+ method="univariate",
462
+ debug=args.debug,
463
+ )
464
+ trimdata1 = matchedinput1
465
+ trimdata2 = matchedinput2
311
466
 
312
467
  if args.trimdata:
313
468
  minlen = np.min([len(trimdata1), len(trimdata2)])
@@ -324,12 +479,12 @@ def showarbcorr(args):
324
479
  if args.verbose:
325
480
  print("filtering to ", theprefilter.gettype(), " band")
326
481
  filtereddata1 = tide_math.corrnormalize(
327
- theprefilter.apply(Fs1, trimdata1),
482
+ theprefilter.apply(commonFs, trimdata1),
328
483
  detrendorder=args.detrendorder,
329
484
  windowfunc=args.windowfunc,
330
485
  )
331
486
  filtereddata2 = tide_math.corrnormalize(
332
- theprefilter.apply(Fs2, trimdata2),
487
+ theprefilter.apply(commonFs, trimdata2),
333
488
  detrendorder=args.detrendorder,
334
489
  windowfunc=args.windowfunc,
335
490
  )
@@ -341,9 +496,9 @@ def showarbcorr(args):
341
496
  print(f"{Fs1=}, {Fs2=}, {starttime1=}, {starttime2=}, {args.windowfunc=}")
342
497
  xcorr_x, thexcorr, corrFs, zeroloc = tide_corr.arbcorr(
343
498
  filtereddata1,
344
- Fs1,
499
+ commonFs,
345
500
  filtereddata2,
346
- Fs2,
501
+ commonFs,
347
502
  start1=starttime1,
348
503
  start2=starttime2,
349
504
  windowfunc=args.windowfunc,
@@ -375,10 +530,11 @@ def showarbcorr(args):
375
530
  thexcorr_trim = thexcorr[lowerlim:upperlim]
376
531
  print("trimmed Correlator lengths (x, y):", len(xcorr_x_trim), len(thexcorr_trim))
377
532
 
378
- thepxcorr = pearsonr(filtereddata1, filtereddata2)
533
+ print(f"{len(filtereddata1)=}, {len(filtereddata2)=}")
534
+ thepxcorr = pearsonr(filtereddata1, filtereddata2).statistic
379
535
 
380
- # intitialize the correlation fitter
381
- thexsimfuncfitter = tide_classes.SimilarityFunctionFitter(
536
+ # initialize the correlation fitter
537
+ thexsimfuncfitter = tide_simFuncClasses.SimilarityFunctionFitter(
382
538
  corrtimeaxis=xcorr_x,
383
539
  lagmin=args.lagmin,
384
540
  lagmax=args.lagmax,
@@ -441,7 +597,7 @@ def showarbcorr(args):
441
597
  else:
442
598
  # report the pearson correlation
443
599
  if showpearson:
444
- print("Pearson_R:\t", thepxcorr[0])
600
+ print("Pearson_R:\t", thepxcorr)
445
601
  print("")
446
602
  if args.label is not None:
447
603
  print(args.label, ":\t", -maxdelay)