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
rapidtide/Colortables.py CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
  #
4
- # Copyright 2016-2024 Blaise Frederick
4
+ # Copyright 2016-2025 Blaise Frederick
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -16,7 +16,57 @@
16
16
  # limitations under the License.
17
17
  #
18
18
  #
19
- def setendalpha(thestate, alpha, debug=False):
19
+
20
+
21
+ def setendalpha(thestate: dict, alpha: int, debug: bool = False) -> dict:
22
+ """
23
+ Adjust the alpha values of the first and last color ticks in a gradient state.
24
+
25
+ This function modifies the alpha channel of the first and last color stops in a
26
+ gradient defined by `thestate`. It ensures that the first tick starts with the
27
+ specified alpha value and the last tick ends with the specified alpha value,
28
+ while preserving the original color values and intermediate ticks.
29
+
30
+ Parameters
31
+ ----------
32
+ thestate : dict
33
+ A dictionary representing the current gradient state. It must contain:
34
+ - "ticks": list of tuples (float, tuple), where the first element is the
35
+ position (0.0 to 1.0) and the second is the RGBA color tuple.
36
+ - "mode": string, either "rgb" or "hsv", indicating the color mode.
37
+ alpha : int
38
+ The alpha value (0-255) to set for the first and last color ticks.
39
+ debug : bool, optional
40
+ If True, prints debug information about the process. Default is False.
41
+
42
+ Returns
43
+ -------
44
+ dict
45
+ A new gradient state dictionary with updated ticks. The returned dictionary
46
+ has the same structure as the input `thestate`, but with modified alpha
47
+ values at the start and end of the gradient.
48
+
49
+ Notes
50
+ -----
51
+ - The function ensures that the first tick starts at 0.0000 and the last tick
52
+ ends at 1.0000.
53
+ - If the original first tick is not at 0.0, a new tick at 0.0000 is added with
54
+ the specified alpha and a black color (0, 0, 0).
55
+ - If the original last tick is not at 1.0, a new tick at 1.0000 is added with
56
+ the specified alpha and a white color (255, 255, 255) in RGB mode or red (255, 0, 0)
57
+ in HSV mode.
58
+ - Intermediate ticks are preserved as-is.
59
+
60
+ Examples
61
+ --------
62
+ >>> thestate = {
63
+ ... "ticks": [(0.2, (255, 0, 0, 255)), (0.8, (0, 255, 0, 255))],
64
+ ... "mode": "rgb"
65
+ ... }
66
+ >>> result = setendalpha(thestate, alpha=128)
67
+ >>> print(result["ticks"])
68
+ [(0.0, (0, 0, 0, 128)), (0.0001, (0, 0, 0, 255)), (0.2, (255, 0, 0, 255)), (0.8, (0, 255, 0, 255)), (0.9999, (255, 255, 255, 255)), (1.0, (255, 255, 255, 128))]
69
+ """
20
70
  if debug:
21
71
  print("color mode:", thestate["mode"])
22
72
  sortedticks = sorted(thestate["ticks"], key=lambda x: x[0])
@@ -60,87 +110,452 @@ def setendalpha(thestate, alpha, debug=False):
60
110
  return adjustedgradient
61
111
 
62
112
 
63
- def gen_thermal_state():
64
- from pyqtgraph.graphicsItems.GradientEditorItem import Gradients
65
-
66
- return Gradients["thermal"]
67
-
113
+ def gen_thermal_state() -> dict:
114
+ """
115
+ Generate and return a thermal gradient dictionary for use in pyqtgraph.
68
116
 
69
- def gen_flame_state():
70
- from pyqtgraph.graphicsItems.GradientEditorItem import Gradients
117
+ This function retrieves the built-in "thermal" gradient from pyqtgraph's
118
+ GradientEditorItem and ensures it has the correct name attribute set.
71
119
 
72
- return Gradients["flame"]
120
+ Returns
121
+ -------
122
+ dict
123
+ A dictionary representing the thermal gradient with the following structure:
124
+ - 'name': str, gradient name ("thermal")
125
+ - Gradient color stops and their positions
73
126
 
127
+ Notes
128
+ -----
129
+ The thermal gradient is a predefined color map that transitions from blue
130
+ through purple to red, commonly used for thermal imaging and heat maps.
74
131
 
75
- def gen_yellowy_state():
132
+ Examples
133
+ --------
134
+ >>> thermal_gradient = gen_thermal_state()
135
+ >>> print(thermal_gradient['name'])
136
+ 'thermal'
137
+ """
76
138
  from pyqtgraph.graphicsItems.GradientEditorItem import Gradients
77
139
 
78
- return Gradients["yellowy"]
140
+ thegradient = Gradients["thermal"]
141
+ thegradient["name"] = "thermal"
142
+ return thegradient
143
+
144
+
145
+ def gen_flame_state() -> dict:
146
+ """
147
+ Generate and return a flame color gradient dictionary.
148
+
149
+ This function creates a flame-colored gradient using the pyqtgraph GradientEditorItem
150
+ gradients collection. The returned gradient can be used for styling plots, widgets,
151
+ or other graphical elements that support gradient color schemes.
152
+
153
+ Returns
154
+ -------
155
+ dict
156
+ A dictionary containing the flame gradient definition with the following structure:
157
+ - 'name': str, gradient name ("flame")
158
+ - Gradient color stops and their corresponding RGB values
159
+ - Other gradient properties as defined in pyqtgraph's GradientEditorItem
160
+
161
+ Notes
162
+ -----
163
+ The function relies on pyqtgraph's built-in gradients collection. The "flame" gradient
164
+ typically represents a color scheme transitioning from dark colors to bright orange/red
165
+ colors, resembling a flame or fire effect.
166
+
167
+ Examples
168
+ --------
169
+ >>> flame_gradient = gen_flame_state()
170
+ >>> print(flame_gradient['name'])
171
+ 'flame'
172
+
173
+ See Also
174
+ --------
175
+ pyqtgraph.graphicsItems.GradientEditorItem.Gradients :
176
+ The source of built-in gradients in pyqtgraph
177
+ """
178
+ from pyqtgraph.graphicsItems.GradientEditorItem import Gradients
79
179
 
180
+ thegradient = Gradients["flame"]
181
+ thegradient["name"] = "flame"
182
+ return thegradient
183
+
184
+
185
+ def gen_yellowy_state() -> dict:
186
+ """
187
+ Generate and return the yellowy gradient definition.
188
+
189
+ This function retrieves the predefined 'yellowy' gradient from pyqtgraph's
190
+ GradientEditorItem Gradients collection and returns it as a dictionary with
191
+ the gradient data and name.
192
+
193
+ Returns
194
+ -------
195
+ dict
196
+ A dictionary containing the yellowy gradient definition with the following structure:
197
+ - Keys: Gradient color point definitions
198
+ - 'name': str, the name of the gradient ('yellowy')
199
+
200
+ Notes
201
+ -----
202
+ The yellowy gradient is predefined in pyqtgraph's GradientEditorItem module.
203
+ This function provides a convenient way to access and return the gradient data
204
+ for use in plotting and visualization applications.
205
+
206
+ Examples
207
+ --------
208
+ >>> gradient = gen_yellowy_state()
209
+ >>> print(gradient['name'])
210
+ 'yellowy'
211
+ """
212
+ from pyqtgraph.graphicsItems.GradientEditorItem import Gradients
80
213
 
81
- def gen_bipolar_state():
214
+ thegradient = Gradients["yellowy"]
215
+ thegradient["name"] = "yellowy"
216
+ return thegradient
217
+
218
+
219
+ def gen_bipolar_state() -> dict:
220
+ """
221
+ Generate and return the bipolar gradient configuration.
222
+
223
+ This function retrieves the bipolar gradient from pyqtgraph's GradientEditorItem
224
+ and returns it as a dictionary with the gradient name set to "bipolar".
225
+
226
+ Returns
227
+ -------
228
+ dict
229
+ A dictionary containing the bipolar gradient configuration with the following structure:
230
+ - 'name': str, gradient name ("bipolar")
231
+ - Gradient color stops and values as defined in pyqtgraph's bipolar gradient
232
+
233
+ Notes
234
+ -----
235
+ The bipolar gradient is commonly used for visualizing data with both positive and negative values,
236
+ typically displaying negative values in one color (e.g., blue) and positive values in another (e.g., red).
237
+ This gradient is particularly useful for scientific visualization and data analysis applications.
238
+
239
+ Examples
240
+ --------
241
+ >>> gradient = gen_bipolar_state()
242
+ >>> print(gradient['name'])
243
+ 'bipolar'
244
+ """
82
245
  from pyqtgraph.graphicsItems.GradientEditorItem import Gradients
83
246
 
84
- return Gradients["bipolar"]
247
+ thegradient = Gradients["bipolar"]
248
+ thegradient["name"] = "bipolar"
249
+ return thegradient
85
250
 
86
251
 
87
- def gen_spectrum_state():
88
- from pyqtgraph.graphicsItems.GradientEditorItem import Gradients
252
+ def gen_spectrum_state() -> dict:
253
+ """Generate and return the spectrum gradient dictionary.
89
254
 
90
- return Gradients["spectrum"]
255
+ This function retrieves the 'spectrum' gradient from pyqtgraph's GradientEditorItem
256
+ and ensures it has the correct name attribute set.
91
257
 
258
+ Returns
259
+ -------
260
+ dict
261
+ A dictionary containing the spectrum gradient definition with keys:
262
+ - 'name': str, set to "spectrum"
263
+ - Gradient color stops and other properties from pyqtgraph's spectrum gradient
92
264
 
93
- def gen_turbo_state():
94
- from pyqtgraph.graphicsItems.GradientEditorItem import Gradients
265
+ Notes
266
+ -----
267
+ The function relies on pyqtgraph's built-in gradients and specifically uses
268
+ the "spectrum" gradient which provides a rainbow-like color mapping.
95
269
 
96
- return Gradients["turbo"]
270
+ Examples
271
+ --------
272
+ >>> spectrum_grad = gen_spectrum_state()
273
+ >>> print(spectrum_grad['name'])
274
+ 'spectrum'
275
+ """
276
+ from pyqtgraph.graphicsItems.GradientEditorItem import Gradients
97
277
 
278
+ thegradient = Gradients["spectrum"]
279
+ thegradient["name"] = "spectrum"
280
+ return thegradient
281
+
282
+
283
+ def gen_turbo_state() -> dict:
284
+ """
285
+ Generate and return the turbo color gradient definition.
286
+
287
+ This function retrieves the 'turbo' color gradient from pyqtgraph's GradientEditorItem
288
+ and returns it as a dictionary with the gradient data and name.
289
+
290
+ Returns
291
+ -------
292
+ dict
293
+ A dictionary containing the turbo color gradient definition with the following structure:
294
+ - 'colorMap': list of color stops
295
+ - 'name': string identifier "turbo"
296
+ - Other gradient properties as defined in pyqtgraph's Gradients
297
+
298
+ Notes
299
+ -----
300
+ The turbo gradient is a perceptually uniform color map designed for scientific visualization.
301
+ It provides better color distinction across the entire range of values compared to traditional
302
+ colormaps like 'jet' or 'hsv'.
303
+
304
+ Examples
305
+ --------
306
+ >>> gradient = gen_turbo_state()
307
+ >>> print(gradient['name'])
308
+ 'turbo'
309
+ >>> print(len(gradient['colorMap']))
310
+ 256
311
+ """
312
+ from pyqtgraph.graphicsItems.GradientEditorItem import Gradients
98
313
 
99
- def gen_gray_state():
314
+ thegradient = Gradients["turbo"]
315
+ thegradient["name"] = "turbo"
316
+ return thegradient
317
+
318
+
319
+ def gen_gray_state() -> dict:
320
+ """
321
+ Generate a gray color state configuration.
322
+
323
+ Returns
324
+ -------
325
+ dict
326
+ A dictionary containing color state configuration with the following keys:
327
+ - ticks: List of tuples containing time values and RGBA color tuples
328
+ - mode: Color mode string, currently "rgb"
329
+ - name: Name of the color state, currently "gray"
330
+
331
+ Notes
332
+ -----
333
+ This function returns a predefined gray color state configuration with:
334
+ - Start color: Black (0, 0, 0, 255)
335
+ - End color: White (255, 255, 255, 255)
336
+ - Time values: 0.0 and 1.0
337
+
338
+ Examples
339
+ --------
340
+ >>> state = gen_gray_state()
341
+ >>> print(state['name'])
342
+ 'gray'
343
+ >>> print(state['ticks'])
344
+ [(0.0, (0, 0, 0, 255)), (1.0, (255, 255, 255, 255))]
345
+ """
100
346
  return {
101
347
  "ticks": [
102
348
  (0.0000, (0, 0, 0, 255)),
103
349
  (1.0000, (255, 255, 255, 255)),
104
350
  ],
105
351
  "mode": "rgb",
352
+ "name": "gray",
106
353
  }
107
354
 
108
355
 
109
- def gen_grey_state():
356
+ def gen_grey_state() -> dict:
357
+ """
358
+ Generate a grey color state configuration.
359
+
360
+ Returns
361
+ -------
362
+ dict
363
+ A dictionary containing grey color state configuration with the following keys:
364
+ - ticks: list of tuples containing time and RGBA color values
365
+ - mode: string indicating color mode ('rgb')
366
+ - name: string identifier for the color state
367
+
368
+ Notes
369
+ -----
370
+ This function returns a predefined grey color state where:
371
+ - Time 0.0 corresponds to black (0, 0, 0, 255)
372
+ - Time 1.0 corresponds to white (255, 255, 255, 255)
373
+
374
+ Examples
375
+ --------
376
+ >>> state = gen_grey_state()
377
+ >>> print(state['name'])
378
+ 'grey'
379
+ >>> print(state['ticks'])
380
+ [(0.0, (0, 0, 0, 255)), (1.0, (255, 255, 255, 255))]
381
+ """
110
382
  return {
111
383
  "ticks": [
112
384
  (0.0000, (0, 0, 0, 255)),
113
385
  (1.0000, (255, 255, 255, 255)),
114
386
  ],
115
387
  "mode": "rgb",
388
+ "name": "grey",
116
389
  }
117
390
 
118
391
 
119
- def gen_viridis_state():
392
+ def gen_viridis_state() -> dict:
393
+ """Generate and return the viridis color gradient configuration.
394
+
395
+ This function retrieves the viridis color gradient from pyqtgraph's GradientEditorItem
396
+ and returns it as a dictionary with the gradient data and name.
397
+
398
+ Returns
399
+ -------
400
+ dict
401
+ A dictionary containing the viridis color gradient data with the following structure:
402
+ - 'colorMap': list of QColor objects representing the gradient colors
403
+ - 'positions': list of float values representing the color positions (0.0 to 1.0)
404
+ - 'name': str, the name of the gradient ('viridis')
405
+
406
+ Notes
407
+ -----
408
+ The viridis gradient is a perceptually uniform colormap designed to be
409
+ visible to colorblind individuals and optimized for scientific visualization.
410
+
411
+ Examples
412
+ --------
413
+ >>> gradient_dict = gen_viridis_state()
414
+ >>> print(gradient_dict['name'])
415
+ 'viridis'
416
+ >>> print(len(gradient_dict['colorMap']))
417
+ 256
418
+ """
120
419
  from pyqtgraph.graphicsItems.GradientEditorItem import Gradients
121
420
 
122
- return Gradients["viridis"]
123
-
124
-
125
- def gen_inferno_state():
126
- from pyqtgraph.graphicsItems.GradientEditorItem import Gradients
421
+ thegradient = Gradients["viridis"]
422
+ thegradient["name"] = "viridis"
423
+ return thegradient
127
424
 
128
- return Gradients["inferno"]
129
425
 
426
+ def gen_inferno_state() -> dict:
427
+ """Generate and return the inferno color gradient configuration.
130
428
 
131
- def gen_plasma_state():
132
- from pyqtgraph.graphicsItems.GradientEditorItem import Gradients
429
+ This function retrieves the inferno color gradient from pyqtgraph's GradientEditorItem
430
+ and returns it as a dictionary with the gradient data and name.
133
431
 
134
- return Gradients["plasma"]
432
+ Returns
433
+ -------
434
+ dict
435
+ A dictionary containing the inferno color gradient data with the following structure:
436
+ - 'name': str, gradient name ("inferno")
437
+ - Gradient color points and their corresponding colors
135
438
 
439
+ Notes
440
+ -----
441
+ The inferno gradient is a perceptually uniform color map designed for scientific visualization.
442
+ It transitions from dark to bright colors, making it suitable for heat maps and other data visualizations.
136
443
 
137
- def gen_magma_state():
444
+ Examples
445
+ --------
446
+ >>> gradient = gen_inferno_state()
447
+ >>> print(gradient['name'])
448
+ 'inferno'
449
+ """
138
450
  from pyqtgraph.graphicsItems.GradientEditorItem import Gradients
139
451
 
140
- return Gradients["magma"]
452
+ thegradient = Gradients["inferno"]
453
+ thegradient["name"] = "inferno"
454
+ return thegradient
455
+
456
+
457
+ def gen_plasma_state() -> dict:
458
+ """
459
+ Generate and return the plasma color gradient definition.
460
+
461
+ This function retrieves the plasma gradient from PyQtd's GradientEditorItem
462
+ and returns it as a dictionary with the gradient data and name.
463
+
464
+ Returns
465
+ -------
466
+ dict
467
+ Dictionary containing the plasma color gradient definition with keys:
468
+ - 'colorMap': The color mapping data for the gradient
469
+ - 'name': String identifier "plasma"
470
+
471
+ Notes
472
+ -----
473
+ The plasma gradient is a popular color scheme that maps values to colors
474
+ in a way that resembles plasma physics visualization. It typically transitions
475
+ from blue through purple to red as values increase.
476
+
477
+ Examples
478
+ --------
479
+ >>> gradient = gen_plasma_state()
480
+ >>> print(gradient['name'])
481
+ 'plasma'
482
+ """
483
+ from pyqtgraph.graphicsItems.GradientEditorItem import Gradients
141
484
 
485
+ thegradient = Gradients["plasma"]
486
+ thegradient["name"] = "plasma"
487
+ return thegradient
488
+
489
+
490
+ def gen_magma_state() -> dict:
491
+ """
492
+ Generate and return the magma color gradient definition.
493
+
494
+ This function retrieves the magma color gradient from pyqtgraph's gradient collection
495
+ and returns it as a dictionary with the gradient data and name.
496
+
497
+ Returns
498
+ -------
499
+ dict
500
+ A dictionary containing the magma color gradient definition with the following structure:
501
+ - Keys: Color stop positions (float values between 0 and 1)
502
+ - Values: RGBA color tuples (float values between 0 and 1)
503
+ - Additional key: "name" with value "magma"
504
+
505
+ Notes
506
+ -----
507
+ The magma gradient is a perceptually uniform colormap designed for scientific visualization.
508
+ It transitions from dark purple to bright yellow, making it suitable for displaying
509
+ data with varying magnitudes.
510
+
511
+ Examples
512
+ --------
513
+ >>> magma_gradient = gen_magma_state()
514
+ >>> print(magma_gradient["name"])
515
+ 'magma'
516
+ >>> print(len(magma_gradient) > 1)
517
+ True
518
+ """
519
+ from pyqtgraph.graphicsItems.GradientEditorItem import Gradients
142
520
 
143
- def gen_g2y2r_state():
521
+ thegradient = Gradients["magma"]
522
+ thegradient["name"] = "magma"
523
+ return thegradient
524
+
525
+
526
+ def gen_g2y2r_state() -> dict:
527
+ """
528
+ Generate a color transition state configuration for green-to-yellow-to-red transition.
529
+
530
+ This function returns a dictionary containing color transition data that defines
531
+ a smooth color transition from green to yellow to red, with intermediate states
532
+ and timing information for animation or visualization purposes.
533
+
534
+ Returns
535
+ -------
536
+ dict
537
+ A dictionary containing the following keys:
538
+ - ticks: list of tuples containing (time, rgba_color) pairs
539
+ - mode: str, color mode identifier ("rgb")
540
+ - name: str, transition name ("g2y2r")
541
+
542
+ Notes
543
+ -----
544
+ The color transition follows this sequence:
545
+ - Start: (0, 0, 0, 0) - Transparent black
546
+ - Green: (0, 255, 0, 255) - Pure green
547
+ - Yellow: (255, 255, 0, 255) - Pure yellow
548
+ - Red: (255, 0, 0, 255) - Pure red
549
+ - End: (255, 0, 0, 0) - Transparent red
550
+
551
+ Examples
552
+ --------
553
+ >>> state = gen_g2y2r_state()
554
+ >>> print(state['name'])
555
+ 'g2y2r'
556
+ >>> print(len(state['ticks']))
557
+ 5
558
+ """
144
559
  return {
145
560
  "ticks": [
146
561
  (0.0000, (0, 0, 0, 0)),
@@ -150,17 +565,77 @@ def gen_g2y2r_state():
150
565
  (1.0000, (255, 0, 0, 0)),
151
566
  ],
152
567
  "mode": "rgb",
568
+ "name": "g2y2r",
153
569
  }
154
570
 
155
571
 
156
- def gen_mask_state():
572
+ def gen_mask_state() -> dict:
573
+ """Generate a mask state configuration dictionary.
574
+
575
+ This function creates and returns a dictionary containing mask state
576
+ configuration parameters including tick values, color mode, and name.
577
+
578
+ Returns
579
+ -------
580
+ dict
581
+ A dictionary containing mask state configuration with the following keys:
582
+ - ticks: list of tuples containing (time, rgba_color) values
583
+ - mode: string indicating color mode ('rgb')
584
+ - name: string identifier for the mask
585
+
586
+ Notes
587
+ -----
588
+ The returned dictionary represents a simple mask state with two ticks:
589
+ - First tick at time 0.0 with black color (0, 0, 0, 255)
590
+ - Second tick at time 1.0 with white color (255, 255, 255, 0)
591
+
592
+ Examples
593
+ --------
594
+ >>> mask_state = gen_mask_state()
595
+ >>> print(mask_state['name'])
596
+ 'mask'
597
+ >>> print(mask_state['ticks'])
598
+ [(0.0, (0, 0, 0, 255)), (1.0, (255, 255, 255, 0))]
599
+ """
157
600
  return {
158
601
  "ticks": [(0.0000, (0, 0, 0, 255)), (1.0000, (255, 255, 255, 0))],
159
602
  "mode": "rgb",
603
+ "name": "mask",
160
604
  }
161
605
 
162
606
 
163
- def gen_greyclip_state():
607
+ def gen_greyclip_state() -> dict:
608
+ """
609
+ Generate a greyclip color state configuration.
610
+
611
+ This function returns a dictionary containing color state information for a greyclip
612
+ color mapping. The color state defines a gradient transition from black to white
613
+ to red, with specific tick points and color values.
614
+
615
+ Returns
616
+ -------
617
+ dict
618
+ A dictionary containing the color state configuration with the following keys:
619
+ - ticks: list of tuples containing (position, rgba_color) where position is
620
+ a float between 0.0 and 1.0, and rgba_color is a tuple of (r, g, b, a)
621
+ values in the range 0-255
622
+ - mode: string indicating the color mode, always "rgb" for this function
623
+ - name: string identifier for the color state, always "greyclip"
624
+
625
+ Notes
626
+ -----
627
+ The returned color state defines a gradient that starts at black (0, 0, 0, 255),
628
+ transitions to white (255, 255, 255, 255) at 99% position, and ends at red
629
+ (255, 0, 0, 255) at 100% position.
630
+
631
+ Examples
632
+ --------
633
+ >>> state = gen_greyclip_state()
634
+ >>> print(state['name'])
635
+ 'greyclip'
636
+ >>> print(len(state['ticks']))
637
+ 3
638
+ """
164
639
  return {
165
640
  "ticks": [
166
641
  (0.0, (0, 0, 0, 255)),
@@ -168,10 +643,35 @@ def gen_greyclip_state():
168
643
  (1.0, (255, 0, 0, 255)),
169
644
  ],
170
645
  "mode": "rgb",
646
+ "name": "greyclip",
171
647
  }
172
648
 
173
649
 
174
- def getagradient():
650
+ def getagradient(): # type: ignore
651
+ """Create and return a gradient widget for color selection.
652
+
653
+ This function creates a PyQtGraph GradientWidget configured for right-oriented
654
+ gradient editing with the ability to add new color points.
655
+
656
+ Returns
657
+ -------
658
+ pyqtgraph.GradientWidget
659
+ A configured GradientWidget instance with:
660
+ - orientation="right" (vertical gradient)
661
+ - allowAdd=True (allows adding new color points)
662
+
663
+ Notes
664
+ -----
665
+ The returned widget can be used to create color gradients for visualization
666
+ purposes. The gradient widget allows users to interactively modify color
667
+ stops and create custom color mappings.
668
+
669
+ Examples
670
+ --------
671
+ >>> gradient_widget = getagradient()
672
+ >>> # Use the gradient widget in a PyQt application
673
+ >>> layout.addWidget(gradient_widget)
674
+ """
175
675
  from pyqtgraph import GradientWidget
176
676
 
177
677
  return GradientWidget(orientation="right", allowAdd=True)