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 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,23 @@
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 matplotlib.cm as cm
23
25
  import numpy as np
24
26
  import scipy as sp
27
+ from numpy.typing import NDArray
25
28
  from scipy.signal import correlate
26
29
  from scipy.stats import pearsonr
27
30
 
28
31
  import rapidtide.calcnullsimfunc as tide_nullsimfunc
29
32
  import rapidtide.correlate as tide_corr
30
33
  import rapidtide.fit as tide_fit
31
- import rapidtide.helper_classes as tide_classes
32
34
  import rapidtide.io as tide_io
33
35
  import rapidtide.miscmath as tide_math
34
36
  import rapidtide.peakeval as tide_peakeval
37
+ import rapidtide.simFuncClasses as tide_simFuncClasses
35
38
  import rapidtide.stats as tide_stats
36
39
  import rapidtide.util as tide_util
37
40
  import rapidtide.workflows.parser_funcs as pf
@@ -40,9 +43,31 @@ DEFAULT_SIGMAMAX = 1000.0
40
43
  DEFAULT_SIGMAMIN = 0.25
41
44
 
42
45
 
43
- def _get_parser():
46
+ def _get_parser() -> Any:
44
47
  """
45
- Argument parser for showxcorrx
48
+ Argument parser for showxcorrx.
49
+
50
+ This function constructs and returns an `argparse.ArgumentParser` object configured
51
+ to handle command-line arguments for the `showxcorrx` utility. It supports a wide
52
+ range of options for loading time series data, preprocessing, cross-correlation
53
+ computation, and output formatting.
54
+
55
+ Returns
56
+ -------
57
+ argparse.ArgumentParser
58
+ Configured argument parser for `showxcorrx`.
59
+
60
+ Notes
61
+ -----
62
+ The parser includes groups for general options, preprocessing, similarity function
63
+ options, output settings, and debugging. It supports optional arguments such as
64
+ sample rate specification, data filtering, detrending, correlation weighting,
65
+ and plotting controls.
66
+
67
+ Examples
68
+ --------
69
+ >>> parser = _get_parser()
70
+ >>> args = parser.parse_args()
46
71
  """
47
72
  parser = argparse.ArgumentParser(
48
73
  prog="showxcorrx",
@@ -179,7 +204,7 @@ def _get_parser():
179
204
  default=False,
180
205
  )
181
206
 
182
- pf.addpermutationopts(preproc, numreps=0)
207
+ pf.addpermutationopts(parser, numreps=0)
183
208
 
184
209
  # similarity function options
185
210
  similarityopts = parser.add_argument_group("Similarity function options")
@@ -317,13 +342,168 @@ def _get_parser():
317
342
  return parser
318
343
 
319
344
 
320
- def printthresholds(pcts, thepercentiles, labeltext):
345
+ def printthresholds(pcts: Any, thepercentiles: Any, labeltext: Any) -> None:
346
+ """
347
+ Print thresholds with corresponding percentiles.
348
+
349
+ This function prints a formatted list of thresholds along with their
350
+ corresponding percentile values for statistical analysis reporting.
351
+
352
+ Parameters
353
+ ----------
354
+ pcts : Any
355
+ Array or list of percentile values to be printed
356
+ thepercentiles : Any
357
+ Array or list of percentile thresholds (typically between 0 and 1)
358
+ labeltext : Any
359
+ Text label to be printed before the threshold values
360
+
361
+ Returns
362
+ -------
363
+ None
364
+ This function prints to stdout and does not return any value
365
+
366
+ Notes
367
+ -----
368
+ The function formats the output to show "p < threshold: value" format
369
+ where the threshold is calculated as 1.0 - thepercentiles[i].
370
+
371
+ Examples
372
+ --------
373
+ >>> printthresholds([0.05, 0.01], [0.95, 0.99], "Significance Levels:")
374
+ Significance Levels:
375
+ p < 0.050 : 0.05
376
+ p < 0.010 : 0.01
377
+ """
321
378
  print(labeltext)
322
379
  for i in range(0, len(pcts)):
323
380
  print("\tp <", "{:.3f}".format(1.0 - thepercentiles[i]), ": ", pcts[i])
324
381
 
325
382
 
326
- def showxcorrx(args):
383
+ def showxcorrx(args: Any) -> None:
384
+ """
385
+ Compute and display cross-correlation or mutual information between two time series.
386
+
387
+ This function performs cross-correlation or mutual information analysis between two
388
+ time series, with optional filtering, normalization, and statistical significance
389
+ testing. It supports various similarity metrics and can output results to files or
390
+ display plots.
391
+
392
+ Parameters
393
+ ----------
394
+ args : argparse.Namespace
395
+ Command-line arguments containing parameters for the analysis. Expected attributes include:
396
+ - infilename1, infilename2 : str
397
+ File names for the two time series.
398
+ - display : bool
399
+ Whether to display plots.
400
+ - samplerate : float or str
401
+ Sampling rate of the time series. If "auto", defaults to 1.0 Hz.
402
+ - startpoint, endpoint : float
403
+ Time range to analyze.
404
+ - trimdata : bool
405
+ Whether to trim data to the shortest length.
406
+ - invert : bool
407
+ Whether to invert the second time series.
408
+ - theprefilter : object
409
+ Filter object for preprocessing data.
410
+ - detrendorder : int
411
+ Order of detrending for correlation normalization.
412
+ - windowfunc : str
413
+ Window function for correlation normalization.
414
+ - corrweighting : str
415
+ Weighting method for correlation.
416
+ - zeropadding : int
417
+ Zero padding for correlation.
418
+ - smoothingtime : float
419
+ Smoothing time for mutual information calculation.
420
+ - minorm : bool
421
+ Whether to normalize mutual information.
422
+ - similaritymetric : str
423
+ Similarity metric to use ("correlation", "mutualinfo", "hybrid").
424
+ - lagmin, lagmax : float
425
+ Minimum and maximum lag for analysis.
426
+ - absmaxsigma, absminsigma : float
427
+ Sigma thresholds for peak fitting.
428
+ - cepstral : bool
429
+ Whether to compute cepstral delay.
430
+ - calccoherence : bool
431
+ Whether to compute coherence.
432
+ - calccsd : bool
433
+ Whether to compute cross-spectral density.
434
+ - numestreps : int
435
+ Number of bootstrap replicates for significance testing.
436
+ - showprogressbar : bool
437
+ Whether to show progress bar during bootstrap.
438
+ - permutationmethod : str
439
+ Permutation method for bootstrap.
440
+ - nprocs : int
441
+ Number of processes for parallel computation.
442
+ - summarymode : bool
443
+ Whether to output in summary format.
444
+ - resoutputfile : str
445
+ Output file for results.
446
+ - label : str
447
+ Label for output.
448
+ - labelline : bool
449
+ Whether to include label in output.
450
+ - colors : str
451
+ Comma-separated list of colors for plots.
452
+ - linewidths : str
453
+ Comma-separated list of line widths for plots.
454
+ - legendloc : int
455
+ Legend location for plots.
456
+ - legends : str
457
+ Legend labels for plots.
458
+ - dolegend : bool
459
+ Whether to display legend.
460
+ - thetitle : str
461
+ Title for plots.
462
+ - showxax, showyax : bool
463
+ Whether to show x and y axes.
464
+ - xlabel, ylabel : str
465
+ Axis labels.
466
+ - outputfile : str
467
+ Output file for plot.
468
+ - saveres : int
469
+ Resolution for saved plots.
470
+ - corroutputfile : str
471
+ Output file for correlation data.
472
+ - debug : bool
473
+ Whether to print debug information.
474
+ - verbose : bool
475
+ Whether to print verbose output.
476
+ - fontscalefac : float
477
+ Font scaling factor for plots.
478
+
479
+ Returns
480
+ -------
481
+ None
482
+ This function does not return a value but may display plots or write output files.
483
+
484
+ Notes
485
+ -----
486
+ The function supports multiple similarity metrics:
487
+ - "correlation": Pearson correlation coefficient
488
+ - "mutualinfo": Mutual information
489
+ - "hybrid": Combination of both metrics
490
+
491
+ Examples
492
+ --------
493
+ >>> import argparse
494
+ >>> args = argparse.Namespace(
495
+ ... infilename1='data1.txt',
496
+ ... infilename2='data2.txt',
497
+ ... display=True,
498
+ ... samplerate=1.0,
499
+ ... startpoint=0,
500
+ ... endpoint=100,
501
+ ... similaritymetric='correlation',
502
+ ... lagmin=-10,
503
+ ... lagmax=10
504
+ ... )
505
+ >>> showxcorrx(args)
506
+ """
327
507
  # set some default values
328
508
  zerooutbadfit = False
329
509
  peakfittype = "gauss"
@@ -454,12 +634,12 @@ def showxcorrx(args):
454
634
  )
455
635
  )
456
636
  if (np.max(filtereddata1) - np.min(filtereddata1)) > 0.0:
457
- thefit, filtereddata1 = tide_fit.mlregress(regressorvec, filtereddata1)
637
+ thefit, R2 = tide_fit.mlregress(regressorvec, filtereddata1)
458
638
  if (np.max(filtereddata2) - np.min(filtereddata2)) > 0.0:
459
- thefit, filtereddata2 = tide_fit.mlregress(regressorvec, filtereddata2)
639
+ thefit, R2 = tide_fit.mlregress(regressorvec, filtereddata2)
460
640
 
461
641
  # initialize the Correlator and MutualInformationator
462
- theCorrelator = tide_classes.Correlator(
642
+ theCorrelator = tide_simFuncClasses.Correlator(
463
643
  Fs=args.samplerate,
464
644
  ncprefilter=theprefilter,
465
645
  detrendorder=args.detrendorder,
@@ -469,7 +649,7 @@ def showxcorrx(args):
469
649
  debug=args.debug,
470
650
  )
471
651
  theCorrelator.setreftc(trimdata2 * flipfac)
472
- theMutualInformationator = tide_classes.MutualInformationator(
652
+ theMutualInformationator = tide_simFuncClasses.MutualInformationator(
473
653
  Fs=args.samplerate,
474
654
  smoothingtime=args.smoothingtime,
475
655
  ncprefilter=theprefilter,
@@ -497,14 +677,22 @@ def showxcorrx(args):
497
677
  else:
498
678
  # do the correlation
499
679
  thexcorr, xcorr_x, globalmax = theCorrelator.run(trimdata1, trim=False)
680
+ if args.display and args.debug:
681
+ plt.plot(xcorr_x, thexcorr)
682
+ plt.show()
500
683
  print("Correlator lengths (x, y):", len(xcorr_x), len(thexcorr))
501
684
  if dumpfiltered:
502
685
  tide_io.writenpvecs(theCorrelator.preptesttc, "correlator_filtereddata1.txt")
503
686
  tide_io.writenpvecs(theCorrelator.prepreftc, "correlator_filtereddata2.txt")
687
+ if args.debug:
688
+ print(f"limits: {args.lagmin, args.lagmax}")
504
689
  theCorrelator.setlimits(
505
690
  int((-args.lagmin * args.samplerate) - 0.5), int((args.lagmax * args.samplerate) + 0.5)
506
691
  )
507
692
  thexcorr_trim, xcorr_x_trim, dummy = theCorrelator.getfunction(trim=True)
693
+ if args.display and args.debug:
694
+ plt.plot(xcorr_x_trim, thexcorr_trim)
695
+ plt.show()
508
696
  print("trimmed Correlator lengths (x, y):", len(xcorr_x_trim), len(thexcorr_trim))
509
697
 
510
698
  if args.cepstral:
@@ -550,8 +738,8 @@ def showxcorrx(args):
550
738
  )
551
739
 
552
740
  if args.similaritymetric == "mutualinfo":
553
- # intitialize the similarity function fitter
554
- themifitter = tide_classes.SimilarityFunctionFitter(
741
+ # initialize the similarity function fitter
742
+ themifitter = tide_simFuncClasses.SimilarityFunctionFitter(
555
743
  corrtimeaxis=MI_x_trim,
556
744
  lagmin=args.lagmin,
557
745
  lagmax=args.lagmax,
@@ -565,8 +753,8 @@ def showxcorrx(args):
565
753
  )
566
754
  maxdelaymi = MI_x_trim[np.argmax(theMI_trim)]
567
755
  else:
568
- # intitialize the correlation fitter
569
- thexsimfuncfitter = tide_classes.SimilarityFunctionFitter(
756
+ # initialize the correlation fitter
757
+ thexsimfuncfitter = tide_simFuncClasses.SimilarityFunctionFitter(
570
758
  corrtimeaxis=xcorr_x,
571
759
  lagmin=args.lagmin,
572
760
  lagmax=args.lagmax,
@@ -591,9 +779,9 @@ def showxcorrx(args):
591
779
  print("\n\nmaxdelay before refinement", maxdelay)
592
780
 
593
781
  timeaxis = np.linspace(0, 1.0, num=len(trimdata1), endpoint=False) / args.samplerate
594
- thetc = trimdata1 * 0.0
782
+ thetc = np.zeros_like(trimdata1)
595
783
 
596
- if args.similaritymetric == "hybrid":
784
+ if args.similaritymetric == "hybrid" or args.similaritymetric == "correlation":
597
785
  peakstartind = tide_util.valtoindex(xcorr_x, args.lagmin, discretization="floor")
598
786
  peakendind = tide_util.valtoindex(xcorr_x, args.lagmax, discretization="ceiling") + 1
599
787
  dummy, thepeaks = tide_peakeval._procOneVoxelPeaks(
@@ -676,17 +864,15 @@ def showxcorrx(args):
676
864
  if args.numestreps > 0:
677
865
  # generate a list of correlations from shuffled data
678
866
  print("calculating null crosscorrelations")
679
- corrlist = tide_nullsimfunc.getNullDistributionDatax(
680
- filtereddata2,
867
+ corrlist = tide_nullsimfunc.getNullDistributionData(
681
868
  args.samplerate,
682
869
  theCorrelator,
683
870
  thexsimfuncfitter,
871
+ None,
684
872
  numestreps=args.numestreps,
685
- despeckle_thresh=1000.0,
686
873
  showprogressbar=args.showprogressbar,
687
874
  permutationmethod=args.permutationmethod,
688
875
  nprocs=args.nprocs,
689
- fixdelay=False,
690
876
  )
691
877
 
692
878
  # calculate percentiles for the crosscorrelation from the distribution data
@@ -709,17 +895,15 @@ def showxcorrx(args):
709
895
  )
710
896
 
711
897
  print("calculating null Pearson correlations")
712
- corrlist_pear = tide_nullsimfunc.getNullDistributionDatax(
713
- filtereddata2,
898
+ corrlist_pear = tide_nullsimfunc.getNullDistributionData(
714
899
  args.samplerate,
715
900
  theCorrelator,
716
901
  thexsimfuncfitter,
902
+ None,
717
903
  numestreps=args.numestreps,
718
- despeckle_thresh=1000.0,
719
904
  showprogressbar=args.showprogressbar,
720
905
  permutationmethod=args.permutationmethod,
721
906
  nprocs=args.nprocs,
722
- fixdelay=True,
723
907
  )
724
908
 
725
909
  # calculate significance for the pearson correlation
@@ -743,7 +927,7 @@ def showxcorrx(args):
743
927
  tide_io.writenpvecs(corrlist_pear, "corrlist_pear.txt")
744
928
 
745
929
  if args.debug:
746
- print(thepxcorr)
930
+ print(thepxcorr.statistic, thepxcorr.pvalue)
747
931
 
748
932
  if args.similaritymetric == "mutualinfo":
749
933
  print(f"{tcname1}[0] = {tcname2}[{-maxdelaymi} seconds]")
@@ -777,7 +961,7 @@ def showxcorrx(args):
777
961
  "xcorr_maxdelay",
778
962
  ]
779
963
  thedataitems = [
780
- str(thepxcorr[0]),
964
+ str(thepxcorr.statistic),
781
965
  str(pearpcts_fit[0]),
782
966
  str(R),
783
967
  str(pcts_fit[0]),
@@ -786,8 +970,8 @@ def showxcorrx(args):
786
970
  else:
787
971
  thelabelitems = ["pearson_R", "pearson_p", "xcorr_R", "xcorr_maxdelay"]
788
972
  thedataitems = [
789
- str(thepxcorr[0]),
790
- str(thepxcorr[1]),
973
+ str(thepxcorr.statistic),
974
+ str(thepxcorr.pvalue),
791
975
  str(R),
792
976
  str(-maxdelay),
793
977
  ]
@@ -806,7 +990,7 @@ def showxcorrx(args):
806
990
  """else:
807
991
  # report the pearson correlation
808
992
  if showpearson:
809
- print("Pearson_R:\t", thepxcorr[0])
993
+ print("Pearson_R:\t", thepxcorr.statistic)
810
994
  if args.numestreps > 0:
811
995
  for idx, percentile in enumerate(thepercentiles):
812
996
  print(
@@ -862,39 +1046,43 @@ def showxcorrx(args):
862
1046
  print("illegal legend location:", args.legendloc)
863
1047
  sys.exit()
864
1048
 
865
- fig = plt.figure()
866
- ax = fig.add_subplot(111)
867
- thelegend = []
868
- if args.legends is not None:
869
- thelegend.append = args.legends
870
- else:
871
- if args.similaritymetric == "mutualinfo":
872
- thelegend.append("Mutual Information")
873
- ax.plot(
874
- MI_x_trim,
875
- theMI_trim,
876
- color=colorlist[0],
877
- label=thelegend[0],
878
- linewidth=thelinewidth[0],
879
- )
880
- else:
881
- thelegend.append("Cross correlation")
882
- ax.plot(
883
- xcorr_x_trim,
884
- thexcorr_trim,
885
- color=colorlist[0],
886
- label=thelegend[0],
887
- linewidth=thelinewidth[0],
888
- )
889
- if args.dolegend:
890
- ax.legend(thelegend, fontsize=thelegendfontsize, loc=args.legendloc)
891
- ax.set_title("Similarity metric over the search range", fontsize=thetitlefontsize)
892
- if args.showxax:
893
- ax.tick_params(axis="x", labelsize=thexlabelfontsize, which="both")
894
- if args.showyax:
895
- ax.tick_params(axis="y", labelsize=theylabelfontsize, which="both")
896
-
897
1049
  if args.display:
1050
+ fig = plt.figure()
1051
+ ax = fig.add_subplot(111)
1052
+ thelegend = []
1053
+ if args.legends is not None:
1054
+ thelegend.append = args.legends
1055
+ else:
1056
+ if args.similaritymetric == "mutualinfo":
1057
+ thelegend.append("Mutual Information")
1058
+ ax.plot(
1059
+ MI_x_trim,
1060
+ theMI_trim,
1061
+ color=colorlist[0],
1062
+ label=thelegend[0],
1063
+ linewidth=thelinewidth[0],
1064
+ )
1065
+ else:
1066
+ thelegend.append("Cross correlation")
1067
+ ax.plot(
1068
+ xcorr_x_trim,
1069
+ thexcorr_trim,
1070
+ color=colorlist[0],
1071
+ label=thelegend[0],
1072
+ linewidth=thelinewidth[0],
1073
+ )
1074
+ if args.dolegend:
1075
+ ax.legend(thelegend, fontsize=thelegendfontsize, loc=args.legendloc)
1076
+ if args.thetitle is not None:
1077
+ ax.set_title(args.thetitle, fontsize=thetitlefontsize)
1078
+ else:
1079
+ ax.set_title("Similarity metric over the search range", fontsize=thetitlefontsize)
1080
+ if args.showxax:
1081
+ ax.set_xlabel(args.xlabel, fontsize=thexlabelfontsize, fontweight="bold")
1082
+ ax.tick_params(axis="x", labelsize=thexlabelfontsize, which="both")
1083
+ if args.showyax:
1084
+ ax.set_ylabel(args.ylabel, fontsize=theylabelfontsize, fontweight="bold")
1085
+ ax.tick_params(axis="y", labelsize=theylabelfontsize, which="both")
898
1086
  if args.outputfile is not None:
899
1087
  plt.savefig(args.outputfile, bbox_inches="tight", dpi=args.saveres)
900
1088
  else: