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,308 @@
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
+
20
+ from typing import Any, Callable, Dict, List, Optional, Tuple, Union
21
+
22
+ import numpy as np
23
+ from numpy.typing import NDArray
24
+
25
+ import rapidtide.io as tide_io
26
+ import rapidtide.linfitfiltpass as tide_linfitfiltpass
27
+ import rapidtide.makelaggedtcs as tide_makelagged
28
+
29
+
30
+ def regressfrommaps(
31
+ fmri_data_valid: Any,
32
+ validvoxels: Any,
33
+ initial_fmri_x: Any,
34
+ lagtimes: Any,
35
+ fitmask: Any,
36
+ genlagtc: Any,
37
+ mode: Any,
38
+ outputname: Any,
39
+ oversamptr: Any,
40
+ sLFOfitmean: Any,
41
+ rvalue: Any,
42
+ r2value: Any,
43
+ fitNorm: Any,
44
+ fitcoeff: Any,
45
+ movingsignal: Any,
46
+ lagtc: Any,
47
+ filtereddata: Any,
48
+ LGR: Any,
49
+ TimingLGR: Any,
50
+ regressfiltthreshval: Any,
51
+ saveminimumsLFOfiltfiles: Any,
52
+ nprocs_makelaggedtcs: int = 1,
53
+ nprocs_regressionfilt: int = 1,
54
+ regressderivs: int = 0,
55
+ chunksize: int = 50000,
56
+ showprogressbar: bool = True,
57
+ alwaysmultiproc: bool = False,
58
+ saveEVsandquit: bool = False,
59
+ coefficientsonly: bool = False,
60
+ timemask: Optional[NDArray] = None,
61
+ debug: bool = False,
62
+ ) -> Tuple[int, NDArray, NDArray]:
63
+ """
64
+ Perform regression analysis on fMRI data using lagged timecourses.
65
+
66
+ This function generates voxel-specific regressors from lagged timecourses,
67
+ applies filtering, and performs regression to estimate model coefficients.
68
+ It supports various modes including cross-validation regression (cvrmap),
69
+ and can optionally save intermediate results or quit early.
70
+
71
+ Parameters
72
+ ----------
73
+ fmri_data_valid : array-like
74
+ Valid fMRI data to be processed.
75
+ validvoxels : array-like
76
+ Indices or mask of valid voxels.
77
+ initial_fmri_x : array-like
78
+ Initial fMRI timecourse (e.g., stimulus timing).
79
+ lagtimes : array-like
80
+ Time lags to be used for generating lagged regressors.
81
+ fitmask : array-like
82
+ Mask for selecting voxels to fit.
83
+ genlagtc : object
84
+ Generator for lagged timecourses.
85
+ mode : str
86
+ Processing mode (e.g., 'cvrmap').
87
+ outputname : str
88
+ Base name for output files.
89
+ oversamptr : float
90
+ Oversampling rate for timecourse generation.
91
+ sLFOfitmean : array-like
92
+ Mean of sLFO fit values.
93
+ rvalue : array-like
94
+ R-values from regression.
95
+ r2value : array-like
96
+ R-squared values from regression.
97
+ fitNorm : array-like
98
+ Normalization values for fit.
99
+ fitcoeff : array-like
100
+ Coefficients from the fit.
101
+ movingsignal : array-like
102
+ Moving signal components.
103
+ lagtc : array-like
104
+ Lagged timecourses.
105
+ filtereddata : array-like
106
+ Filtered fMRI data.
107
+ LGR : object, optional
108
+ Logger for general logging.
109
+ TimingLGR : object, optional
110
+ Logger for timing information.
111
+ regressfiltthreshval : float
112
+ Threshold for regression filtering.
113
+ saveminimumsLFOfiltfiles : bool
114
+ Whether to save noise removed timeseries.
115
+ nprocs_makelaggedtcs : int, optional
116
+ Number of processes for making lagged timecourses (default is 1).
117
+ nprocs_regressionfilt : int, optional
118
+ Number of processes for regression filtering (default is 1).
119
+ regressderivs : int, optional
120
+ Order of derivatives to include in regressors (default is 0).
121
+ chunksize : int, optional
122
+ Size of chunks for processing (default is 50000).
123
+ showprogressbar : bool, optional
124
+ Whether to show progress bar (default is True).
125
+ alwaysmultiproc : bool, optional
126
+ Force multiprocessing even for small tasks (default is False).
127
+ saveEVsandquit : bool, optional
128
+ Save EVs and quit early (default is False).
129
+ coefficientsonly : bool, optional
130
+ Return only coefficients (default is False).
131
+ timemask : NDArray, optional
132
+ Mask of timepoints to include in regression filtering.
133
+ debug : bool, optional
134
+ Enable debug output (default is False).
135
+
136
+ Returns
137
+ -------
138
+ tuple
139
+ If `saveEVsandquit` is True, returns (0, regressorset, evset).
140
+ Otherwise, returns (voxelsprocessed_regressionfilt, regressorset, evset).
141
+
142
+ Notes
143
+ -----
144
+ - The function modifies `fitcoeff` in-place when `mode == "cvrmap"` by multiplying by 100.
145
+ - The function uses multiprocessing if `alwaysmultiproc` is True or if `nprocs > 1`.
146
+ - Filtering is performed using `tide_linfitfiltpass.linfitfiltpass`.
147
+
148
+ Examples
149
+ --------
150
+ >>> regressfrommaps(
151
+ ... fmri_data_valid=data,
152
+ ... validvoxels=voxels,
153
+ ... initial_fmri_x=stimulus,
154
+ ... lagtimes=lags,
155
+ ... fitmask=mask,
156
+ ... genlagtc=gen,
157
+ ... mode="cvrmap",
158
+ ... outputname="output",
159
+ ... oversamptr=2.0,
160
+ ... sLFOfitmean=mean,
161
+ ... rvalue=r_vals,
162
+ ... r2value=r2_vals,
163
+ ... fitNorm=norm,
164
+ ... fitcoeff=coeffs,
165
+ ... movingsignal=moving,
166
+ ... lagtc=lagged_tc,
167
+ ... filtereddata=filtered,
168
+ ... LGR=logger,
169
+ ... TimingLGR=timing_logger,
170
+ ... regressfiltthreshval=0.5,
171
+ ... saveminimumsLFOfiltfiles=True,
172
+ ... nprocs_makelaggedtcs=4,
173
+ ... nprocs_regressionfilt=2,
174
+ ... regressderivs=2,
175
+ ... chunksize=10000,
176
+ ... showprogressbar=True,
177
+ ... alwaysmultiproc=False,
178
+ ... saveEVsandquit=False,
179
+ ... coefficientsonly=False,
180
+ ... debug=False,
181
+ ... )
182
+ """
183
+ if debug:
184
+ print("regressfrommaps: Starting")
185
+ print(f"\t{nprocs_makelaggedtcs=}")
186
+ print(f"\t{nprocs_regressionfilt=}")
187
+ print(f"\t{regressderivs=}")
188
+ print(f"\t{chunksize=}")
189
+ print(f"\t{showprogressbar=}")
190
+ print(f"\t{alwaysmultiproc=}")
191
+ print(f"\t{mode=}")
192
+ print(f"\t{outputname=}")
193
+ print(f"\t{oversamptr=}")
194
+ print(f"\t{regressfiltthreshval=}")
195
+ rt_floattype = np.float64
196
+ numvalidspatiallocs = np.shape(validvoxels)[0]
197
+
198
+ # generate the voxel specific regressors
199
+ if LGR is not None:
200
+ LGR.info("Start lagged timecourse creation")
201
+ if TimingLGR is not None:
202
+ TimingLGR.info("Start lagged timecourse creation")
203
+
204
+ voxelsprocessed_makelagged = tide_makelagged.makelaggedtcs(
205
+ genlagtc,
206
+ initial_fmri_x,
207
+ fitmask,
208
+ lagtimes,
209
+ lagtc,
210
+ LGR=LGR,
211
+ nprocs=nprocs_makelaggedtcs,
212
+ alwaysmultiproc=alwaysmultiproc,
213
+ showprogressbar=showprogressbar,
214
+ chunksize=chunksize,
215
+ rt_floattype=rt_floattype,
216
+ debug=debug,
217
+ )
218
+ if timemask is not None:
219
+ lagtc = lagtc * timemask[None, :]
220
+
221
+ if debug:
222
+ print(f"\t{lagtimes.shape=}")
223
+ threshmask = np.where(fitmask > 0, 1, 0)
224
+ print(f"\t{np.sum(threshmask)} nonzero mask voxels")
225
+ print(f"\tafter makelaggedtcs: shifted {voxelsprocessed_makelagged} timecourses")
226
+ if LGR is not None:
227
+ LGR.info("End lagged timecourse creation")
228
+ if TimingLGR is not None:
229
+ TimingLGR.info(
230
+ "Lagged timecourse creation end",
231
+ {
232
+ "message2": voxelsprocessed_makelagged,
233
+ "message3": "voxels",
234
+ },
235
+ )
236
+
237
+ if regressderivs > 0:
238
+ if debug:
239
+ print(f"adding derivatives up to order {regressderivs} prior to regression")
240
+ regressorset = tide_linfitfiltpass.makevoxelspecificderivs(lagtc, regressderivs)
241
+ baseev = (genlagtc.yfromx(initial_fmri_x)).astype(rt_floattype)
242
+ evset = tide_linfitfiltpass.makevoxelspecificderivs(
243
+ baseev.reshape((1, -1)), regressderivs
244
+ ).reshape((-1, 2))
245
+ else:
246
+ if debug:
247
+ print(f"using raw lagged regressors for regression")
248
+ regressorset = lagtc
249
+ evset = (genlagtc.yfromx(initial_fmri_x)).astype(rt_floattype)
250
+ if debug:
251
+ print(f"{regressorset.shape=}")
252
+
253
+ if saveEVsandquit:
254
+ return 0, regressorset, evset
255
+
256
+ # now do the filtering
257
+ if LGR is not None:
258
+ LGR.info("Start filtering operation")
259
+ if TimingLGR is not None:
260
+ TimingLGR.info("Start filtering operation")
261
+
262
+ voxelsprocessed_regressionfilt = tide_linfitfiltpass.linfitfiltpass(
263
+ numvalidspatiallocs,
264
+ fmri_data_valid,
265
+ regressfiltthreshval,
266
+ regressorset,
267
+ sLFOfitmean,
268
+ rvalue,
269
+ r2value,
270
+ fitcoeff,
271
+ fitNorm,
272
+ movingsignal,
273
+ filtereddata,
274
+ coefficientsonly=coefficientsonly,
275
+ nprocs=nprocs_regressionfilt,
276
+ alwaysmultiproc=alwaysmultiproc,
277
+ showprogressbar=showprogressbar,
278
+ verbose=(LGR is not None),
279
+ chunksize=chunksize,
280
+ rt_floattype=rt_floattype,
281
+ debug=debug,
282
+ )
283
+
284
+ if mode == "cvrmap":
285
+ # if we are doing a cvr map, multiply the fitcoeff by 100, so we are in percent
286
+ fitcoeff *= 100.0
287
+
288
+ # determine what was removed
289
+ if not coefficientsonly:
290
+ removeddata = fmri_data_valid - filtereddata
291
+ noiseremoved = np.var(removeddata, axis=0)
292
+ if saveminimumsLFOfiltfiles:
293
+ tide_io.writebidstsv(
294
+ f"{outputname}_desc-lfofilterNoiseRemoved_timeseries",
295
+ noiseremoved,
296
+ 1.0 / oversamptr,
297
+ starttime=0.0,
298
+ columns=[f"removedbyglm"],
299
+ extraheaderinfo={
300
+ "Description": "Variance over space of data removed by the sLFO filter at each timepoint"
301
+ },
302
+ append=False,
303
+ )
304
+
305
+ if debug:
306
+ print("regressfrommaps: End\n\n")
307
+
308
+ return voxelsprocessed_regressionfilt, regressorset, evset
@@ -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.
@@ -30,6 +30,10 @@ with warnings.catch_warnings():
30
30
  else:
31
31
  pyfftwpresent = True
32
32
 
33
+ from argparse import Namespace
34
+ from typing import Any, Callable, Dict, List, Optional, Tuple, Union
35
+
36
+ from numpy.typing import NDArray
33
37
  from scipy import fftpack
34
38
 
35
39
  import rapidtide.io as tide_io
@@ -40,9 +44,37 @@ if pyfftwpresent:
40
44
  pyfftw.interfaces.cache.enable()
41
45
 
42
46
 
43
- def _get_parser():
47
+ def _get_parser() -> Any:
44
48
  """
45
- Argument parser for resamplenifti
49
+ Argument parser for resamplenifti.
50
+
51
+ Creates and configures an argument parser for the resamplenifti command-line tool
52
+ that resamples NIfTI files to a different temporal resolution (TR).
53
+
54
+ Returns
55
+ -------
56
+ argparse.ArgumentParser
57
+ Configured argument parser object with all required and optional arguments
58
+ for the resamplenifti tool.
59
+
60
+ Notes
61
+ -----
62
+ The returned parser includes the following positional arguments:
63
+ - inputfile: Path to the input NIfTI file
64
+ - outputfile: Path to the output NIfTI file
65
+ - outputtr: Target temporal resolution in seconds
66
+
67
+ And the following optional arguments:
68
+ - --noantialias: Disable antialiasing filter (enabled by default)
69
+ - --normalize: Normalize data and save as UINT16 (disabled by default)
70
+ - --debug: Print debugging information (disabled by default)
71
+
72
+ Examples
73
+ --------
74
+ >>> parser = _get_parser()
75
+ >>> args = parser.parse_args(['input.nii', 'output.nii', '2.0'])
76
+ >>> print(args.inputfile)
77
+ 'input.nii'
46
78
  """
47
79
  parser = argparse.ArgumentParser(
48
80
  prog="resamplenifti",
@@ -78,7 +110,57 @@ def _get_parser():
78
110
  return parser
79
111
 
80
112
 
81
- def resamplenifti(args):
113
+ def resamplenifti(args: Any) -> None:
114
+ """
115
+ Resample a 4D NIfTI file to a specified temporal resolution.
116
+
117
+ This function reads a 4D NIfTI file, resamples its time series data to a
118
+ new temporal resolution specified by `args.outputtr`, and saves the
119
+ resampled data to a new NIfTI file. The resampling is performed using
120
+ spline interpolation, and optional antialiasing is applied based on the
121
+ input and output temporal resolutions.
122
+
123
+ Parameters
124
+ ----------
125
+ args : argparse.Namespace
126
+ An object containing the following attributes:
127
+ - inputfile : str
128
+ Path to the input NIfTI file.
129
+ - outputfile : str
130
+ Path to the output NIfTI file.
131
+ - outputtr : float
132
+ Desired output temporal resolution (TR) in seconds.
133
+ - antialias : bool, optional
134
+ Whether to apply antialiasing during resampling. Default is True.
135
+ - debug : bool, optional
136
+ If True, print debugging information. Default is False.
137
+
138
+ Returns
139
+ -------
140
+ None
141
+ This function does not return a value but saves the resampled NIfTI
142
+ file to the specified output path.
143
+
144
+ Notes
145
+ -----
146
+ - If the input TR is greater than the output TR (i.e., upsampling), antialiasing
147
+ is automatically disabled.
148
+ - The function processes each voxel individually, which may be time-consuming
149
+ for large datasets.
150
+ - The output NIfTI header is updated to reflect the new temporal resolution.
151
+
152
+ Examples
153
+ --------
154
+ >>> import argparse
155
+ >>> args = argparse.Namespace(
156
+ ... inputfile='input.nii.gz',
157
+ ... outputfile='output.nii.gz',
158
+ ... outputtr=1.0,
159
+ ... antialias=True,
160
+ ... debug=False
161
+ ... )
162
+ >>> resamplenifti(args)
163
+ """
82
164
  # get the input TR
83
165
  inputtr, numinputtrs = tide_io.fmritimeinfo(args.inputfile)
84
166
  if args.debug:
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
  #
4
- # Copyright 2016-2024 Blaise Frederick
4
+ # Copyright 2016-2025 Blaise Frederick
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -17,18 +17,49 @@
17
17
  #
18
18
  #
19
19
  import argparse
20
+ from argparse import Namespace
21
+ from typing import Any, Callable, Dict, List, Optional, Tuple, Union
20
22
 
21
23
  import matplotlib.pyplot as plt
22
24
  import numpy as np
25
+ from numpy.typing import NDArray
23
26
 
24
27
  import rapidtide.io as tide_io
25
28
  import rapidtide.resample as tide_resample
26
29
  import rapidtide.workflows.parser_funcs as pf
27
30
 
28
31
 
29
- def _get_parser():
32
+ def _get_parser() -> Any:
30
33
  """
31
- Argument parser for resamp1tc
34
+ Argument parser for resamp1tc.
35
+
36
+ This function constructs and returns an `argparse.ArgumentParser` object configured
37
+ for parsing command-line arguments for the `resamp1tc` utility. It defines required
38
+ and optional arguments needed to resample a timeseries file.
39
+
40
+ Returns
41
+ -------
42
+ argparse.ArgumentParser
43
+ Configured argument parser for the resamp1tc utility.
44
+
45
+ Notes
46
+ -----
47
+ The parser includes the following required arguments:
48
+
49
+ - ``inputfile``: Path to the input timeseries file.
50
+ - ``insamplerate``: Input sample rate in Hz.
51
+ - ``outputfile``: Path to the output resampled file.
52
+ - ``outsamplerate``: Output sample rate in Hz.
53
+
54
+ Optional arguments include:
55
+
56
+ - ``--nodisplay``: Do not display data.
57
+ - ``--noantialias``: Disable antialiasing.
58
+
59
+ Examples
60
+ --------
61
+ >>> parser = _get_parser()
62
+ >>> args = parser.parse_args()
32
63
  """
33
64
  parser = argparse.ArgumentParser(
34
65
  prog="resampletc",
@@ -91,7 +122,64 @@ def _get_parser():
91
122
  return parser
92
123
 
93
124
 
94
- def resampletc(args):
125
+ def resampletc(args: Any) -> None:
126
+ """
127
+ Resample a time series signal from an input file to a specified output sampling rate.
128
+
129
+ This function reads a time series from a text file, resamples it to a new sampling rate,
130
+ and writes the resampled data to an output file. Optionally, it displays the original
131
+ and resampled signals for visual comparison.
132
+
133
+ Parameters
134
+ ----------
135
+ args : Any
136
+ An object containing the following attributes:
137
+ - `inputfile` : str
138
+ Path to the input text file containing the time series data.
139
+ - `outputfile` : str
140
+ Path to the output text file where resampled data will be written.
141
+ - `insamplerate` : float
142
+ Input sampling rate (Hz) of the data in the input file.
143
+ - `outsamplerate` : float
144
+ Desired output sampling rate (Hz) for the resampled data.
145
+ - `antialias` : bool
146
+ Whether to apply anti-aliasing during resampling.
147
+ - `display` : bool
148
+ If True, plots the original and resampled signals.
149
+ - `starttime` : float, optional
150
+ Start time for the output signal. If None, uses the start time from input.
151
+ - `endtime` : float, optional
152
+ End time for the output signal. If None, uses the end time from input.
153
+
154
+ Returns
155
+ -------
156
+ None
157
+ This function does not return a value. It writes the resampled data to a file
158
+ and optionally displays a plot.
159
+
160
+ Notes
161
+ -----
162
+ - The input file is expected to contain a single column of time series data.
163
+ - If the sampling rate specified in the input file does not match `args.insamplerate`,
164
+ a warning is printed.
165
+ - The function uses `tide_resample.arbresample` for resampling with configurable
166
+ anti-aliasing.
167
+ - If `args.display` is True, the original and resampled signals are plotted
168
+ with the original in black and the resampled in red.
169
+
170
+ Examples
171
+ --------
172
+ >>> import argparse
173
+ >>> args = argparse.Namespace(
174
+ ... inputfile='input.txt',
175
+ ... outputfile='output.txt',
176
+ ... insamplerate=10.0,
177
+ ... outsamplerate=5.0,
178
+ ... antialias=True,
179
+ ... display=False
180
+ ... )
181
+ >>> resampletc(args)
182
+ """
95
183
  intimestep = 1.0 / args.insamplerate
96
184
  outtimestep = 1.0 / args.outsamplerate
97
185
  (