rapidtide 2.9.5__py3-none-any.whl → 3.1.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- cloud/gmscalc-HCPYA +1 -1
- cloud/mount-and-run +2 -0
- cloud/rapidtide-HCPYA +3 -3
- rapidtide/Colortables.py +538 -38
- rapidtide/OrthoImageItem.py +1094 -51
- rapidtide/RapidtideDataset.py +1709 -114
- rapidtide/__init__.py +0 -8
- rapidtide/_version.py +4 -4
- rapidtide/calccoherence.py +242 -97
- rapidtide/calcnullsimfunc.py +240 -140
- rapidtide/calcsimfunc.py +314 -129
- rapidtide/correlate.py +1211 -389
- rapidtide/data/examples/src/testLD +56 -0
- rapidtide/data/examples/src/test_findmaxlag.py +2 -2
- rapidtide/data/examples/src/test_mlregressallt.py +32 -17
- rapidtide/data/examples/src/testalign +1 -1
- rapidtide/data/examples/src/testatlasaverage +35 -7
- rapidtide/data/examples/src/testboth +21 -0
- rapidtide/data/examples/src/testcifti +11 -0
- rapidtide/data/examples/src/testdelayvar +13 -0
- rapidtide/data/examples/src/testdlfilt +25 -0
- rapidtide/data/examples/src/testfft +35 -0
- rapidtide/data/examples/src/testfileorfloat +37 -0
- rapidtide/data/examples/src/testfmri +94 -27
- rapidtide/data/examples/src/testfuncs +3 -3
- rapidtide/data/examples/src/testglmfilt +8 -6
- rapidtide/data/examples/src/testhappy +84 -51
- rapidtide/data/examples/src/testinitdelay +19 -0
- rapidtide/data/examples/src/testmodels +33 -0
- rapidtide/data/examples/src/testnewrefine +26 -0
- rapidtide/data/examples/src/testnoiseamp +21 -0
- rapidtide/data/examples/src/testppgproc +17 -0
- rapidtide/data/examples/src/testrefineonly +22 -0
- rapidtide/data/examples/src/testretro +26 -13
- rapidtide/data/examples/src/testretrolagtcs +16 -0
- rapidtide/data/examples/src/testrolloff +11 -0
- rapidtide/data/examples/src/testsimdata +45 -28
- rapidtide/data/models/model_cnn_pytorch/loss.png +0 -0
- rapidtide/data/models/model_cnn_pytorch/loss.txt +1 -0
- rapidtide/data/models/model_cnn_pytorch/model.pth +0 -0
- rapidtide/data/models/model_cnn_pytorch/model_meta.json +68 -0
- rapidtide/data/models/model_cnn_pytorch_fulldata/loss.png +0 -0
- rapidtide/data/models/model_cnn_pytorch_fulldata/loss.txt +1 -0
- rapidtide/data/models/model_cnn_pytorch_fulldata/model.pth +0 -0
- rapidtide/data/models/model_cnn_pytorch_fulldata/model_meta.json +80 -0
- rapidtide/data/models/model_cnnbp_pytorch_fullldata/loss.png +0 -0
- rapidtide/data/models/model_cnnbp_pytorch_fullldata/loss.txt +1 -0
- rapidtide/data/models/model_cnnbp_pytorch_fullldata/model.pth +0 -0
- rapidtide/data/models/model_cnnbp_pytorch_fullldata/model_meta.json +138 -0
- rapidtide/data/models/model_cnnfft_pytorch_fulldata/loss.png +0 -0
- rapidtide/data/models/model_cnnfft_pytorch_fulldata/loss.txt +1 -0
- rapidtide/data/models/model_cnnfft_pytorch_fulldata/model.pth +0 -0
- rapidtide/data/models/model_cnnfft_pytorch_fulldata/model_meta.json +128 -0
- rapidtide/data/models/model_ppgattention_pytorch_w128_fulldata/loss.png +0 -0
- rapidtide/data/models/model_ppgattention_pytorch_w128_fulldata/loss.txt +1 -0
- rapidtide/data/models/model_ppgattention_pytorch_w128_fulldata/model.pth +0 -0
- rapidtide/data/models/model_ppgattention_pytorch_w128_fulldata/model_meta.json +49 -0
- rapidtide/data/models/model_revised_tf2/model.keras +0 -0
- rapidtide/data/models/{model_serdar → model_revised_tf2}/model_meta.json +1 -1
- rapidtide/data/models/model_serdar2_tf2/model.keras +0 -0
- rapidtide/data/models/{model_serdar2 → model_serdar2_tf2}/model_meta.json +1 -1
- rapidtide/data/models/model_serdar_tf2/model.keras +0 -0
- rapidtide/data/models/{model_revised → model_serdar_tf2}/model_meta.json +1 -1
- rapidtide/data/reference/HCP1200v2_MTT_2mm.nii.gz +0 -0
- rapidtide/data/reference/HCP1200v2_binmask_2mm.nii.gz +0 -0
- rapidtide/data/reference/HCP1200v2_csf_2mm.nii.gz +0 -0
- rapidtide/data/reference/HCP1200v2_gray_2mm.nii.gz +0 -0
- rapidtide/data/reference/HCP1200v2_graylaghist.json +7 -0
- rapidtide/data/reference/HCP1200v2_graylaghist.tsv.gz +0 -0
- rapidtide/data/reference/HCP1200v2_laghist.json +7 -0
- rapidtide/data/reference/HCP1200v2_laghist.tsv.gz +0 -0
- rapidtide/data/reference/HCP1200v2_mask_2mm.nii.gz +0 -0
- rapidtide/data/reference/HCP1200v2_maxcorr_2mm.nii.gz +0 -0
- rapidtide/data/reference/HCP1200v2_maxtime_2mm.nii.gz +0 -0
- rapidtide/data/reference/HCP1200v2_maxwidth_2mm.nii.gz +0 -0
- rapidtide/data/reference/HCP1200v2_negmask_2mm.nii.gz +0 -0
- rapidtide/data/reference/HCP1200v2_timepercentile_2mm.nii.gz +0 -0
- rapidtide/data/reference/HCP1200v2_white_2mm.nii.gz +0 -0
- rapidtide/data/reference/HCP1200v2_whitelaghist.json +7 -0
- rapidtide/data/reference/HCP1200v2_whitelaghist.tsv.gz +0 -0
- rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1-seg2.xml +131 -0
- rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1-seg2_regions.txt +60 -0
- rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1-seg2_space-MNI152NLin6Asym_2mm.nii.gz +0 -0
- rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1_space-MNI152NLin2009cAsym_2mm.nii.gz +0 -0
- rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1_space-MNI152NLin2009cAsym_2mm_mask.nii.gz +0 -0
- rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1_space-MNI152NLin6Asym_2mm_mask.nii.gz +0 -0
- rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL2_space-MNI152NLin6Asym_2mm_mask.nii.gz +0 -0
- rapidtide/data/reference/MNI152_T1_1mm_Brain_FAST_seg.nii.gz +0 -0
- rapidtide/data/reference/MNI152_T1_1mm_Brain_Mask.nii.gz +0 -0
- rapidtide/data/reference/MNI152_T1_2mm_Brain_FAST_seg.nii.gz +0 -0
- rapidtide/data/reference/MNI152_T1_2mm_Brain_Mask.nii.gz +0 -0
- rapidtide/decorators.py +91 -0
- rapidtide/dlfilter.py +2553 -414
- rapidtide/dlfiltertorch.py +5201 -0
- rapidtide/externaltools.py +328 -13
- rapidtide/fMRIData_class.py +178 -0
- rapidtide/ffttools.py +168 -0
- rapidtide/filter.py +2704 -1462
- rapidtide/fit.py +2361 -579
- rapidtide/genericmultiproc.py +197 -0
- rapidtide/happy_supportfuncs.py +3255 -548
- rapidtide/helper_classes.py +590 -1181
- rapidtide/io.py +2569 -468
- rapidtide/linfitfiltpass.py +784 -0
- rapidtide/makelaggedtcs.py +267 -97
- rapidtide/maskutil.py +555 -25
- rapidtide/miscmath.py +867 -137
- rapidtide/multiproc.py +217 -44
- rapidtide/patchmatch.py +752 -0
- rapidtide/peakeval.py +32 -32
- rapidtide/ppgproc.py +2205 -0
- rapidtide/qualitycheck.py +353 -40
- rapidtide/refinedelay.py +854 -0
- rapidtide/refineregressor.py +939 -0
- rapidtide/resample.py +725 -204
- rapidtide/scripts/__init__.py +1 -0
- rapidtide/scripts/{adjustoffset → adjustoffset.py} +7 -2
- rapidtide/scripts/{aligntcs → aligntcs.py} +7 -2
- rapidtide/scripts/{applydlfilter → applydlfilter.py} +7 -2
- rapidtide/scripts/applyppgproc.py +28 -0
- rapidtide/scripts/{atlasaverage → atlasaverage.py} +7 -2
- rapidtide/scripts/{atlastool → atlastool.py} +7 -2
- rapidtide/scripts/{calcicc → calcicc.py} +7 -2
- rapidtide/scripts/{calctexticc → calctexticc.py} +7 -2
- rapidtide/scripts/{calcttest → calcttest.py} +7 -2
- rapidtide/scripts/{ccorrica → ccorrica.py} +7 -2
- rapidtide/scripts/delayvar.py +28 -0
- rapidtide/scripts/{diffrois → diffrois.py} +7 -2
- rapidtide/scripts/{endtidalproc → endtidalproc.py} +7 -2
- rapidtide/scripts/{fdica → fdica.py} +7 -2
- rapidtide/scripts/{filtnifti → filtnifti.py} +7 -2
- rapidtide/scripts/{filttc → filttc.py} +7 -2
- rapidtide/scripts/{fingerprint → fingerprint.py} +20 -16
- rapidtide/scripts/{fixtr → fixtr.py} +7 -2
- rapidtide/scripts/{gmscalc → gmscalc.py} +7 -2
- rapidtide/scripts/{happy → happy.py} +7 -2
- rapidtide/scripts/{happy2std → happy2std.py} +7 -2
- rapidtide/scripts/{happywarp → happywarp.py} +8 -4
- rapidtide/scripts/{histnifti → histnifti.py} +7 -2
- rapidtide/scripts/{histtc → histtc.py} +7 -2
- rapidtide/scripts/{glmfilt → linfitfilt.py} +7 -4
- rapidtide/scripts/{localflow → localflow.py} +7 -2
- rapidtide/scripts/{mergequality → mergequality.py} +7 -2
- rapidtide/scripts/{pairproc → pairproc.py} +7 -2
- rapidtide/scripts/{pairwisemergenifti → pairwisemergenifti.py} +7 -2
- rapidtide/scripts/{physiofreq → physiofreq.py} +7 -2
- rapidtide/scripts/{pixelcomp → pixelcomp.py} +7 -2
- rapidtide/scripts/{plethquality → plethquality.py} +7 -2
- rapidtide/scripts/{polyfitim → polyfitim.py} +7 -2
- rapidtide/scripts/{proj2flow → proj2flow.py} +7 -2
- rapidtide/scripts/{rankimage → rankimage.py} +7 -2
- rapidtide/scripts/{rapidtide → rapidtide.py} +7 -2
- rapidtide/scripts/{rapidtide2std → rapidtide2std.py} +7 -2
- rapidtide/scripts/{resamplenifti → resamplenifti.py} +7 -2
- rapidtide/scripts/{resampletc → resampletc.py} +7 -2
- rapidtide/scripts/retrolagtcs.py +28 -0
- rapidtide/scripts/retroregress.py +28 -0
- rapidtide/scripts/{roisummarize → roisummarize.py} +7 -2
- rapidtide/scripts/{runqualitycheck → runqualitycheck.py} +7 -2
- rapidtide/scripts/{showarbcorr → showarbcorr.py} +7 -2
- rapidtide/scripts/{showhist → showhist.py} +7 -2
- rapidtide/scripts/{showstxcorr → showstxcorr.py} +7 -2
- rapidtide/scripts/{showtc → showtc.py} +7 -2
- rapidtide/scripts/{showxcorr_legacy → showxcorr_legacy.py} +8 -8
- rapidtide/scripts/{showxcorrx → showxcorrx.py} +7 -2
- rapidtide/scripts/{showxy → showxy.py} +7 -2
- rapidtide/scripts/{simdata → simdata.py} +7 -2
- rapidtide/scripts/{spatialdecomp → spatialdecomp.py} +7 -2
- rapidtide/scripts/{spatialfit → spatialfit.py} +7 -2
- rapidtide/scripts/{spatialmi → spatialmi.py} +7 -2
- rapidtide/scripts/{spectrogram → spectrogram.py} +7 -2
- rapidtide/scripts/stupidramtricks.py +238 -0
- rapidtide/scripts/{synthASL → synthASL.py} +7 -2
- rapidtide/scripts/{tcfrom2col → tcfrom2col.py} +7 -2
- rapidtide/scripts/{tcfrom3col → tcfrom3col.py} +7 -2
- rapidtide/scripts/{temporaldecomp → temporaldecomp.py} +7 -2
- rapidtide/scripts/{testhrv → testhrv.py} +1 -1
- rapidtide/scripts/{threeD → threeD.py} +7 -2
- rapidtide/scripts/{tidepool → tidepool.py} +7 -2
- rapidtide/scripts/{variabilityizer → variabilityizer.py} +7 -2
- rapidtide/simFuncClasses.py +2113 -0
- rapidtide/simfuncfit.py +312 -108
- rapidtide/stats.py +579 -247
- rapidtide/tests/.coveragerc +27 -6
- rapidtide-2.9.5.data/scripts/fdica → rapidtide/tests/cleanposttest +4 -6
- rapidtide/tests/happycomp +9 -0
- rapidtide/tests/resethappytargets +1 -1
- rapidtide/tests/resetrapidtidetargets +1 -1
- rapidtide/tests/resettargets +1 -1
- rapidtide/tests/runlocaltest +3 -3
- rapidtide/tests/showkernels +1 -1
- rapidtide/tests/test_aliasedcorrelate.py +4 -4
- rapidtide/tests/test_aligntcs.py +1 -1
- rapidtide/tests/test_calcicc.py +1 -1
- rapidtide/tests/test_cleanregressor.py +184 -0
- rapidtide/tests/test_congrid.py +70 -81
- rapidtide/tests/test_correlate.py +1 -1
- rapidtide/tests/test_corrpass.py +4 -4
- rapidtide/tests/test_delayestimation.py +54 -59
- rapidtide/tests/test_dlfiltertorch.py +437 -0
- rapidtide/tests/test_doresample.py +2 -2
- rapidtide/tests/test_externaltools.py +69 -0
- rapidtide/tests/test_fastresampler.py +9 -5
- rapidtide/tests/test_filter.py +96 -57
- rapidtide/tests/test_findmaxlag.py +50 -19
- rapidtide/tests/test_fullrunhappy_v1.py +15 -10
- rapidtide/tests/test_fullrunhappy_v2.py +19 -13
- rapidtide/tests/test_fullrunhappy_v3.py +28 -13
- rapidtide/tests/test_fullrunhappy_v4.py +30 -11
- rapidtide/tests/test_fullrunhappy_v5.py +62 -0
- rapidtide/tests/test_fullrunrapidtide_v1.py +61 -7
- rapidtide/tests/test_fullrunrapidtide_v2.py +27 -15
- rapidtide/tests/test_fullrunrapidtide_v3.py +28 -8
- rapidtide/tests/test_fullrunrapidtide_v4.py +16 -8
- rapidtide/tests/test_fullrunrapidtide_v5.py +15 -6
- rapidtide/tests/test_fullrunrapidtide_v6.py +142 -0
- rapidtide/tests/test_fullrunrapidtide_v7.py +114 -0
- rapidtide/tests/test_fullrunrapidtide_v8.py +66 -0
- rapidtide/tests/test_getparsers.py +158 -0
- rapidtide/tests/test_io.py +59 -18
- rapidtide/tests/{test_glmpass.py → test_linfitfiltpass.py} +10 -10
- rapidtide/tests/test_mi.py +1 -1
- rapidtide/tests/test_miscmath.py +1 -1
- rapidtide/tests/test_motionregress.py +5 -5
- rapidtide/tests/test_nullcorr.py +6 -9
- rapidtide/tests/test_padvec.py +216 -0
- rapidtide/tests/test_parserfuncs.py +101 -0
- rapidtide/tests/test_phaseanalysis.py +1 -1
- rapidtide/tests/test_rapidtideparser.py +59 -53
- rapidtide/tests/test_refinedelay.py +296 -0
- rapidtide/tests/test_runmisc.py +5 -5
- rapidtide/tests/test_sharedmem.py +60 -0
- rapidtide/tests/test_simroundtrip.py +132 -0
- rapidtide/tests/test_simulate.py +1 -1
- rapidtide/tests/test_stcorrelate.py +4 -2
- rapidtide/tests/test_timeshift.py +2 -2
- rapidtide/tests/test_valtoindex.py +1 -1
- rapidtide/tests/test_zRapidtideDataset.py +5 -3
- rapidtide/tests/utils.py +10 -9
- rapidtide/tidepoolTemplate.py +88 -70
- rapidtide/tidepoolTemplate.ui +60 -46
- rapidtide/tidepoolTemplate_alt.py +88 -53
- rapidtide/tidepoolTemplate_alt.ui +62 -52
- rapidtide/tidepoolTemplate_alt_qt6.py +921 -0
- rapidtide/tidepoolTemplate_big.py +1125 -0
- rapidtide/tidepoolTemplate_big.ui +2386 -0
- rapidtide/tidepoolTemplate_big_qt6.py +1129 -0
- rapidtide/tidepoolTemplate_qt6.py +793 -0
- rapidtide/util.py +1389 -148
- rapidtide/voxelData.py +1048 -0
- rapidtide/wiener.py +138 -25
- rapidtide/wiener2.py +114 -8
- rapidtide/workflows/adjustoffset.py +107 -5
- rapidtide/workflows/aligntcs.py +86 -3
- rapidtide/workflows/applydlfilter.py +231 -89
- rapidtide/workflows/applyppgproc.py +540 -0
- rapidtide/workflows/atlasaverage.py +309 -48
- rapidtide/workflows/atlastool.py +130 -9
- rapidtide/workflows/calcSimFuncMap.py +490 -0
- rapidtide/workflows/calctexticc.py +202 -10
- rapidtide/workflows/ccorrica.py +123 -15
- rapidtide/workflows/cleanregressor.py +415 -0
- rapidtide/workflows/delayvar.py +1268 -0
- rapidtide/workflows/diffrois.py +84 -6
- rapidtide/workflows/endtidalproc.py +149 -9
- rapidtide/workflows/fdica.py +197 -17
- rapidtide/workflows/filtnifti.py +71 -4
- rapidtide/workflows/filttc.py +76 -5
- rapidtide/workflows/fitSimFuncMap.py +578 -0
- rapidtide/workflows/fixtr.py +74 -4
- rapidtide/workflows/gmscalc.py +116 -6
- rapidtide/workflows/happy.py +1242 -480
- rapidtide/workflows/happy2std.py +145 -13
- rapidtide/workflows/happy_parser.py +277 -59
- rapidtide/workflows/histnifti.py +120 -4
- rapidtide/workflows/histtc.py +85 -4
- rapidtide/workflows/{glmfilt.py → linfitfilt.py} +128 -14
- rapidtide/workflows/localflow.py +329 -29
- rapidtide/workflows/mergequality.py +80 -4
- rapidtide/workflows/niftidecomp.py +323 -19
- rapidtide/workflows/niftistats.py +178 -8
- rapidtide/workflows/pairproc.py +99 -5
- rapidtide/workflows/pairwisemergenifti.py +86 -3
- rapidtide/workflows/parser_funcs.py +1488 -56
- rapidtide/workflows/physiofreq.py +139 -12
- rapidtide/workflows/pixelcomp.py +211 -9
- rapidtide/workflows/plethquality.py +105 -23
- rapidtide/workflows/polyfitim.py +159 -19
- rapidtide/workflows/proj2flow.py +76 -3
- rapidtide/workflows/rankimage.py +115 -8
- rapidtide/workflows/rapidtide.py +1833 -1919
- rapidtide/workflows/rapidtide2std.py +101 -3
- rapidtide/workflows/rapidtide_parser.py +607 -372
- rapidtide/workflows/refineDelayMap.py +249 -0
- rapidtide/workflows/refineRegressor.py +1215 -0
- rapidtide/workflows/regressfrommaps.py +308 -0
- rapidtide/workflows/resamplenifti.py +86 -4
- rapidtide/workflows/resampletc.py +92 -4
- rapidtide/workflows/retrolagtcs.py +442 -0
- rapidtide/workflows/retroregress.py +1501 -0
- rapidtide/workflows/roisummarize.py +176 -7
- rapidtide/workflows/runqualitycheck.py +72 -7
- rapidtide/workflows/showarbcorr.py +172 -16
- rapidtide/workflows/showhist.py +87 -3
- rapidtide/workflows/showstxcorr.py +161 -4
- rapidtide/workflows/showtc.py +172 -10
- rapidtide/workflows/showxcorrx.py +250 -62
- rapidtide/workflows/showxy.py +186 -16
- rapidtide/workflows/simdata.py +418 -112
- rapidtide/workflows/spatialfit.py +83 -8
- rapidtide/workflows/spatialmi.py +252 -29
- rapidtide/workflows/spectrogram.py +306 -33
- rapidtide/workflows/synthASL.py +157 -6
- rapidtide/workflows/tcfrom2col.py +77 -3
- rapidtide/workflows/tcfrom3col.py +75 -3
- rapidtide/workflows/tidepool.py +3829 -666
- rapidtide/workflows/utils.py +45 -19
- rapidtide/workflows/utils_doc.py +293 -0
- rapidtide/workflows/variabilityizer.py +118 -5
- {rapidtide-2.9.5.dist-info → rapidtide-3.1.3.dist-info}/METADATA +30 -223
- rapidtide-3.1.3.dist-info/RECORD +393 -0
- {rapidtide-2.9.5.dist-info → rapidtide-3.1.3.dist-info}/WHEEL +1 -1
- rapidtide-3.1.3.dist-info/entry_points.txt +65 -0
- rapidtide-3.1.3.dist-info/top_level.txt +2 -0
- rapidtide/calcandfitcorrpairs.py +0 -262
- rapidtide/data/examples/src/testoutputsize +0 -45
- rapidtide/data/models/model_revised/model.h5 +0 -0
- rapidtide/data/models/model_serdar/model.h5 +0 -0
- rapidtide/data/models/model_serdar2/model.h5 +0 -0
- rapidtide/data/reference/ASPECTS_nlin_asym_09c_2mm.nii.gz +0 -0
- rapidtide/data/reference/ASPECTS_nlin_asym_09c_2mm_mask.nii.gz +0 -0
- rapidtide/data/reference/ATTbasedFlowTerritories_split_nlin_asym_09c_2mm.nii.gz +0 -0
- rapidtide/data/reference/ATTbasedFlowTerritories_split_nlin_asym_09c_2mm_mask.nii.gz +0 -0
- rapidtide/data/reference/HCP1200_binmask_2mm_2009c_asym.nii.gz +0 -0
- rapidtide/data/reference/HCP1200_lag_2mm_2009c_asym.nii.gz +0 -0
- rapidtide/data/reference/HCP1200_mask_2mm_2009c_asym.nii.gz +0 -0
- rapidtide/data/reference/HCP1200_negmask_2mm_2009c_asym.nii.gz +0 -0
- rapidtide/data/reference/HCP1200_sigma_2mm_2009c_asym.nii.gz +0 -0
- rapidtide/data/reference/HCP1200_strength_2mm_2009c_asym.nii.gz +0 -0
- rapidtide/glmpass.py +0 -434
- rapidtide/refine_factored.py +0 -641
- rapidtide/scripts/retroglm +0 -23
- rapidtide/workflows/glmfrommaps.py +0 -202
- rapidtide/workflows/retroglm.py +0 -643
- rapidtide-2.9.5.data/scripts/adjustoffset +0 -23
- rapidtide-2.9.5.data/scripts/aligntcs +0 -23
- rapidtide-2.9.5.data/scripts/applydlfilter +0 -23
- rapidtide-2.9.5.data/scripts/atlasaverage +0 -23
- rapidtide-2.9.5.data/scripts/atlastool +0 -23
- rapidtide-2.9.5.data/scripts/calcicc +0 -22
- rapidtide-2.9.5.data/scripts/calctexticc +0 -23
- rapidtide-2.9.5.data/scripts/calcttest +0 -22
- rapidtide-2.9.5.data/scripts/ccorrica +0 -23
- rapidtide-2.9.5.data/scripts/diffrois +0 -23
- rapidtide-2.9.5.data/scripts/endtidalproc +0 -23
- rapidtide-2.9.5.data/scripts/filtnifti +0 -23
- rapidtide-2.9.5.data/scripts/filttc +0 -23
- rapidtide-2.9.5.data/scripts/fingerprint +0 -593
- rapidtide-2.9.5.data/scripts/fixtr +0 -23
- rapidtide-2.9.5.data/scripts/glmfilt +0 -24
- rapidtide-2.9.5.data/scripts/gmscalc +0 -22
- rapidtide-2.9.5.data/scripts/happy +0 -25
- rapidtide-2.9.5.data/scripts/happy2std +0 -23
- rapidtide-2.9.5.data/scripts/happywarp +0 -350
- rapidtide-2.9.5.data/scripts/histnifti +0 -23
- rapidtide-2.9.5.data/scripts/histtc +0 -23
- rapidtide-2.9.5.data/scripts/localflow +0 -23
- rapidtide-2.9.5.data/scripts/mergequality +0 -23
- rapidtide-2.9.5.data/scripts/pairproc +0 -23
- rapidtide-2.9.5.data/scripts/pairwisemergenifti +0 -23
- rapidtide-2.9.5.data/scripts/physiofreq +0 -23
- rapidtide-2.9.5.data/scripts/pixelcomp +0 -23
- rapidtide-2.9.5.data/scripts/plethquality +0 -23
- rapidtide-2.9.5.data/scripts/polyfitim +0 -23
- rapidtide-2.9.5.data/scripts/proj2flow +0 -23
- rapidtide-2.9.5.data/scripts/rankimage +0 -23
- rapidtide-2.9.5.data/scripts/rapidtide +0 -23
- rapidtide-2.9.5.data/scripts/rapidtide2std +0 -23
- rapidtide-2.9.5.data/scripts/resamplenifti +0 -23
- rapidtide-2.9.5.data/scripts/resampletc +0 -23
- rapidtide-2.9.5.data/scripts/retroglm +0 -23
- rapidtide-2.9.5.data/scripts/roisummarize +0 -23
- rapidtide-2.9.5.data/scripts/runqualitycheck +0 -23
- rapidtide-2.9.5.data/scripts/showarbcorr +0 -23
- rapidtide-2.9.5.data/scripts/showhist +0 -23
- rapidtide-2.9.5.data/scripts/showstxcorr +0 -23
- rapidtide-2.9.5.data/scripts/showtc +0 -23
- rapidtide-2.9.5.data/scripts/showxcorr_legacy +0 -536
- rapidtide-2.9.5.data/scripts/showxcorrx +0 -23
- rapidtide-2.9.5.data/scripts/showxy +0 -23
- rapidtide-2.9.5.data/scripts/simdata +0 -23
- rapidtide-2.9.5.data/scripts/spatialdecomp +0 -23
- rapidtide-2.9.5.data/scripts/spatialfit +0 -23
- rapidtide-2.9.5.data/scripts/spatialmi +0 -23
- rapidtide-2.9.5.data/scripts/spectrogram +0 -23
- rapidtide-2.9.5.data/scripts/synthASL +0 -23
- rapidtide-2.9.5.data/scripts/tcfrom2col +0 -23
- rapidtide-2.9.5.data/scripts/tcfrom3col +0 -23
- rapidtide-2.9.5.data/scripts/temporaldecomp +0 -23
- rapidtide-2.9.5.data/scripts/threeD +0 -236
- rapidtide-2.9.5.data/scripts/tidepool +0 -23
- rapidtide-2.9.5.data/scripts/variabilityizer +0 -23
- rapidtide-2.9.5.dist-info/RECORD +0 -357
- rapidtide-2.9.5.dist-info/top_level.txt +0 -86
- {rapidtide-2.9.5.dist-info → rapidtide-3.1.3.dist-info/licenses}/LICENSE +0 -0
rapidtide/__init__.py
CHANGED
rapidtide/_version.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
# This file was generated by 'versioneer.py' (0.
|
|
2
|
+
# This file was generated by 'versioneer.py' (0.29) from
|
|
3
3
|
# revision-control system data, or from the parent directory name of an
|
|
4
4
|
# unpacked source archive. Distribution tarballs contain a pre-generated copy
|
|
5
5
|
# of this file.
|
|
@@ -8,11 +8,11 @@ import json
|
|
|
8
8
|
|
|
9
9
|
version_json = '''
|
|
10
10
|
{
|
|
11
|
-
"date": "
|
|
11
|
+
"date": "2026-01-21T11:49:41-0500",
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "
|
|
14
|
+
"full-revisionid": "63ac9a63f9549380f07bf90d8c5f0d80db38bb53",
|
|
15
|
+
"version": "3.1.3"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
rapidtide/calccoherence.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
# -*- coding: utf-8 -*-
|
|
3
3
|
#
|
|
4
|
-
# Copyright 2016-
|
|
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.
|
|
@@ -19,19 +19,79 @@
|
|
|
19
19
|
import gc
|
|
20
20
|
import logging
|
|
21
21
|
import warnings
|
|
22
|
+
from typing import Any
|
|
22
23
|
|
|
23
24
|
import numpy as np
|
|
24
|
-
from
|
|
25
|
+
from numpy.typing import NDArray
|
|
25
26
|
|
|
26
|
-
import rapidtide.
|
|
27
|
+
import rapidtide.genericmultiproc as tide_genericmultiproc
|
|
27
28
|
|
|
28
29
|
warnings.simplefilter(action="ignore", category=FutureWarning)
|
|
29
30
|
LGR = logging.getLogger("GENERAL")
|
|
30
31
|
|
|
31
32
|
|
|
32
33
|
def _procOneVoxelCoherence(
|
|
33
|
-
vox
|
|
34
|
-
|
|
34
|
+
vox: int,
|
|
35
|
+
voxelargs: list,
|
|
36
|
+
**kwargs: Any,
|
|
37
|
+
) -> tuple[int, NDArray, NDArray, float, float]:
|
|
38
|
+
"""
|
|
39
|
+
Process coherence for a single voxel.
|
|
40
|
+
|
|
41
|
+
This function computes coherence values for a given voxel using the provided
|
|
42
|
+
coherence calculator and fMRI time course data. It returns the voxel index
|
|
43
|
+
along with coherence values and the location of the maximum coherence.
|
|
44
|
+
|
|
45
|
+
Parameters
|
|
46
|
+
----------
|
|
47
|
+
vox : int
|
|
48
|
+
The voxel index being processed.
|
|
49
|
+
voxelargs : list
|
|
50
|
+
A list containing two elements: the coherence calculator object and
|
|
51
|
+
the fMRI time course data (fmritc).
|
|
52
|
+
**kwargs : Any
|
|
53
|
+
Additional keyword arguments that can override default options:
|
|
54
|
+
- alt : bool, optional (default: False)
|
|
55
|
+
Flag to indicate alternative computation mode.
|
|
56
|
+
- debug : bool, optional (default: False)
|
|
57
|
+
Flag to enable debug printing.
|
|
58
|
+
|
|
59
|
+
Returns
|
|
60
|
+
-------
|
|
61
|
+
tuple[int, NDArray, NDArray, float, float]
|
|
62
|
+
A tuple containing:
|
|
63
|
+
- vox : int
|
|
64
|
+
The input voxel index
|
|
65
|
+
- thecoherence_x : NDArray
|
|
66
|
+
X-axis coherence values
|
|
67
|
+
- thecoherence_y : NDArray
|
|
68
|
+
Y-axis coherence values
|
|
69
|
+
- thecoherence_y[maxindex] : float
|
|
70
|
+
Maximum coherence value
|
|
71
|
+
- thecoherence_x[maxindex] : float
|
|
72
|
+
X-coordinate corresponding to maximum coherence
|
|
73
|
+
|
|
74
|
+
Notes
|
|
75
|
+
-----
|
|
76
|
+
The function uses the `theCoherer.run()` method to compute coherence values.
|
|
77
|
+
When `alt=True`, the function returns additional dummy values from the
|
|
78
|
+
coherence calculation. The maximum coherence is determined using `np.argmax()`.
|
|
79
|
+
|
|
80
|
+
Examples
|
|
81
|
+
--------
|
|
82
|
+
>>> result = _procOneVoxelCoherence(10, [coherer_obj, fmri_data], alt=True)
|
|
83
|
+
>>> voxel_idx, x_vals, y_vals, max_coherence, max_x = result
|
|
84
|
+
"""
|
|
85
|
+
options = {
|
|
86
|
+
"alt": False,
|
|
87
|
+
"debug": False,
|
|
88
|
+
}
|
|
89
|
+
options.update(kwargs)
|
|
90
|
+
alt = options["alt"]
|
|
91
|
+
debug = options["debug"]
|
|
92
|
+
(theCoherer, fmritc) = voxelargs
|
|
93
|
+
if debug:
|
|
94
|
+
print(f"{alt=}")
|
|
35
95
|
if alt:
|
|
36
96
|
(
|
|
37
97
|
thecoherence_y,
|
|
@@ -53,109 +113,194 @@ def _procOneVoxelCoherence(
|
|
|
53
113
|
)
|
|
54
114
|
|
|
55
115
|
|
|
116
|
+
def _packvoxeldata(voxnum: int, voxelargs: list) -> list:
|
|
117
|
+
"""
|
|
118
|
+
Pack voxel data for processing.
|
|
119
|
+
|
|
120
|
+
Parameters
|
|
121
|
+
----------
|
|
122
|
+
voxnum : int
|
|
123
|
+
The voxel number to extract from the second element of voxelargs.
|
|
124
|
+
voxelargs : list
|
|
125
|
+
A list containing voxel arguments where:
|
|
126
|
+
- voxelargs[0] is the first voxel argument (returned as-is)
|
|
127
|
+
- voxelargs[1] is a 2D array from which row voxnum is extracted
|
|
128
|
+
|
|
129
|
+
Returns
|
|
130
|
+
-------
|
|
131
|
+
list
|
|
132
|
+
A list containing:
|
|
133
|
+
- voxelargs[0] (unchanged)
|
|
134
|
+
- The voxnum-th row of voxelargs[1] as a 1D array
|
|
135
|
+
|
|
136
|
+
Notes
|
|
137
|
+
-----
|
|
138
|
+
This function is typically used in voxel-based data processing workflows
|
|
139
|
+
where data needs to be extracted and reorganized for further analysis.
|
|
140
|
+
|
|
141
|
+
Examples
|
|
142
|
+
--------
|
|
143
|
+
>>> voxelargs = [10, [[1, 2, 3], [4, 5, 6], [7, 8, 9]]]
|
|
144
|
+
>>> _packvoxeldata(1, voxelargs)
|
|
145
|
+
[10, [4, 5, 6]]
|
|
146
|
+
"""
|
|
147
|
+
return [
|
|
148
|
+
voxelargs[0],
|
|
149
|
+
(voxelargs[1])[voxnum, :],
|
|
150
|
+
]
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
def _unpackvoxeldata(retvals: tuple, voxelproducts: list) -> None:
|
|
154
|
+
"""
|
|
155
|
+
Unpack voxel data from retvals tuple into corresponding voxel product lists.
|
|
156
|
+
|
|
157
|
+
This function takes a tuple of voxel data and distributes the values into
|
|
158
|
+
three separate voxel product lists based on the index specified in the first
|
|
159
|
+
element of the retvals tuple.
|
|
160
|
+
|
|
161
|
+
Parameters
|
|
162
|
+
----------
|
|
163
|
+
retvals : tuple
|
|
164
|
+
A tuple containing voxel data where:
|
|
165
|
+
- retvals[0] : int, index for insertion
|
|
166
|
+
- retvals[1] : unused
|
|
167
|
+
- retvals[2] : value to insert into voxelproducts[0]
|
|
168
|
+
- retvals[3] : value to insert into voxelproducts[1]
|
|
169
|
+
- retvals[4] : value to insert into voxelproducts[2]
|
|
170
|
+
voxelproducts : list
|
|
171
|
+
A list of three voxel product arrays/lists where:
|
|
172
|
+
- voxelproducts[0] : first voxel product array
|
|
173
|
+
- voxelproducts[1] : second voxel product array
|
|
174
|
+
- voxelproducts[2] : third voxel product array
|
|
175
|
+
|
|
176
|
+
Returns
|
|
177
|
+
-------
|
|
178
|
+
None
|
|
179
|
+
This function modifies the voxelproducts lists in-place and does not return anything.
|
|
180
|
+
|
|
181
|
+
Notes
|
|
182
|
+
-----
|
|
183
|
+
The function assumes that retvals contains exactly 5 elements and that
|
|
184
|
+
voxelproducts contains exactly 3 elements. The first element of retvals
|
|
185
|
+
is used as an index to determine the position where values should be inserted
|
|
186
|
+
into each of the three voxel product arrays.
|
|
187
|
+
|
|
188
|
+
Examples
|
|
189
|
+
--------
|
|
190
|
+
>>> voxel1 = [0, 0, 0]
|
|
191
|
+
>>> voxel2 = [0, 0, 0]
|
|
192
|
+
>>> voxel3 = [0, 0, 0]
|
|
193
|
+
>>> retvals = (1, None, 10, 20, 30)
|
|
194
|
+
>>> voxelproducts = [voxel1, voxel2, voxel3]
|
|
195
|
+
>>> _unpackvoxeldata(retvals, voxelproducts)
|
|
196
|
+
>>> print(voxel1[1])
|
|
197
|
+
10
|
|
198
|
+
>>> print(voxel2[1])
|
|
199
|
+
20
|
|
200
|
+
>>> print(voxel3[1])
|
|
201
|
+
30
|
|
202
|
+
"""
|
|
203
|
+
(voxelproducts[0])[retvals[0]] = retvals[2]
|
|
204
|
+
(voxelproducts[1])[retvals[0]] = retvals[3]
|
|
205
|
+
(voxelproducts[2])[retvals[0]] = retvals[4]
|
|
206
|
+
|
|
207
|
+
|
|
56
208
|
def coherencepass(
|
|
57
|
-
fmridata,
|
|
58
|
-
theCoherer,
|
|
59
|
-
coherencefunc,
|
|
60
|
-
coherencepeakval,
|
|
61
|
-
coherencepeakfreq,
|
|
62
|
-
alt=False,
|
|
63
|
-
chunksize=1000,
|
|
64
|
-
nprocs=1,
|
|
65
|
-
alwaysmultiproc=False,
|
|
66
|
-
showprogressbar=True,
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
):
|
|
209
|
+
fmridata: NDArray,
|
|
210
|
+
theCoherer: Any,
|
|
211
|
+
coherencefunc: NDArray,
|
|
212
|
+
coherencepeakval: NDArray,
|
|
213
|
+
coherencepeakfreq: NDArray,
|
|
214
|
+
alt: bool = False,
|
|
215
|
+
chunksize: int = 1000,
|
|
216
|
+
nprocs: int = 1,
|
|
217
|
+
alwaysmultiproc: bool = False,
|
|
218
|
+
showprogressbar: bool = True,
|
|
219
|
+
debug: bool = False,
|
|
220
|
+
) -> int:
|
|
70
221
|
"""
|
|
222
|
+
Perform coherence analysis on fMRI data across voxels using multiprocessing.
|
|
223
|
+
|
|
224
|
+
This function applies coherence analysis to each voxel in the input fMRI data,
|
|
225
|
+
storing results in the provided output arrays. It supports parallel processing
|
|
226
|
+
for improved performance and includes optional debugging and progress tracking.
|
|
71
227
|
|
|
72
228
|
Parameters
|
|
73
229
|
----------
|
|
74
|
-
fmridata
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
230
|
+
fmridata : NDArray
|
|
231
|
+
Input fMRI data array with shape (time, voxels).
|
|
232
|
+
theCoherer : Any
|
|
233
|
+
Object or function used to perform coherence calculations.
|
|
234
|
+
coherencefunc : NDArray
|
|
235
|
+
Array to store coherence function results for each voxel.
|
|
236
|
+
coherencepeakval : NDArray
|
|
237
|
+
Array to store peak coherence values for each voxel.
|
|
238
|
+
coherencepeakfreq : NDArray
|
|
239
|
+
Array to store peak coherence frequencies for each voxel.
|
|
240
|
+
alt : bool, optional
|
|
241
|
+
If True, use alternative coherence calculation method. Default is False.
|
|
242
|
+
chunksize : int, optional
|
|
243
|
+
Number of voxels to process in each chunk during multiprocessing.
|
|
244
|
+
Default is 1000.
|
|
245
|
+
nprocs : int, optional
|
|
246
|
+
Number of processes to use for multiprocessing. Default is 1.
|
|
247
|
+
alwaysmultiproc : bool, optional
|
|
248
|
+
If True, always use multiprocessing even for small datasets.
|
|
249
|
+
Default is False.
|
|
250
|
+
showprogressbar : bool, optional
|
|
251
|
+
If True, display a progress bar during processing. Default is True.
|
|
252
|
+
debug : bool, optional
|
|
253
|
+
If True, enable debug logging. Default is False.
|
|
85
254
|
|
|
86
255
|
Returns
|
|
87
256
|
-------
|
|
257
|
+
int
|
|
258
|
+
Total number of voxels processed.
|
|
259
|
+
|
|
260
|
+
Notes
|
|
261
|
+
-----
|
|
262
|
+
This function uses `tide_genericmultiproc.run_multiproc` to distribute
|
|
263
|
+
voxel-wise coherence computations across multiple processes. The results
|
|
264
|
+
are stored directly into the provided output arrays (`coherencefunc`,
|
|
265
|
+
`coherencepeakval`, `coherencepeakfreq`).
|
|
88
266
|
|
|
267
|
+
Examples
|
|
268
|
+
--------
|
|
269
|
+
>>> import numpy as np
|
|
270
|
+
>>> fmri_data = np.random.rand(100, 50)
|
|
271
|
+
>>> coherer = SomeCohererClass()
|
|
272
|
+
>>> coherence_func = np.zeros((100, 50))
|
|
273
|
+
>>> peak_val = np.zeros((1, 50))
|
|
274
|
+
>>> peak_freq = np.zeros((1, 50))
|
|
275
|
+
>>> n_voxels = coherencepass(
|
|
276
|
+
... fmri_data, coherer, coherence_func, peak_val, peak_freq
|
|
277
|
+
... )
|
|
278
|
+
>>> print(f"Processed {n_voxels} voxels")
|
|
89
279
|
"""
|
|
90
280
|
inputshape = np.shape(fmridata)
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
)
|
|
115
|
-
|
|
116
|
-
except Exception as e:
|
|
117
|
-
print("error!", e)
|
|
118
|
-
break
|
|
119
|
-
|
|
120
|
-
data_out = tide_multiproc.run_multiproc(
|
|
121
|
-
coherence_consumer,
|
|
122
|
-
inputshape,
|
|
123
|
-
None,
|
|
124
|
-
nprocs=nprocs,
|
|
125
|
-
showprogressbar=showprogressbar,
|
|
126
|
-
chunksize=chunksize,
|
|
127
|
-
)
|
|
128
|
-
|
|
129
|
-
# unpack the data
|
|
130
|
-
volumetotal = 0
|
|
131
|
-
for voxel in data_out:
|
|
132
|
-
coherencefunc[voxel[0], :] = voxel[2] + 0.0
|
|
133
|
-
coherencepeakval[voxel[0]] = voxel[3] + 0.0
|
|
134
|
-
coherencepeakfreq[voxel[0]] = voxel[4] + 0.0
|
|
135
|
-
volumetotal += 1
|
|
136
|
-
del data_out
|
|
137
|
-
else:
|
|
138
|
-
for vox in tqdm(
|
|
139
|
-
range(0, inputshape[0]),
|
|
140
|
-
desc="Voxel",
|
|
141
|
-
unit="voxels",
|
|
142
|
-
disable=(not showprogressbar),
|
|
143
|
-
):
|
|
144
|
-
(
|
|
145
|
-
dummy,
|
|
146
|
-
dummy,
|
|
147
|
-
coherencefunc[vox],
|
|
148
|
-
coherencepeakval[vox],
|
|
149
|
-
coherencepeakfreq[vox],
|
|
150
|
-
) = _procOneVoxelCoherence(
|
|
151
|
-
vox,
|
|
152
|
-
theCoherer,
|
|
153
|
-
fmridata[vox, :],
|
|
154
|
-
alt=alt,
|
|
155
|
-
rt_floatset=rt_floatset,
|
|
156
|
-
rt_floattype=rt_floattype,
|
|
157
|
-
)
|
|
158
|
-
volumetotal += 1
|
|
281
|
+
voxelargs = [theCoherer, fmridata]
|
|
282
|
+
voxelfunc = _procOneVoxelCoherence
|
|
283
|
+
packfunc = _packvoxeldata
|
|
284
|
+
unpackfunc = _unpackvoxeldata
|
|
285
|
+
voxeltargets = [coherencefunc, coherencepeakval, coherencepeakfreq]
|
|
286
|
+
voxelmask = np.ones_like(fmridata[:, 0])
|
|
287
|
+
|
|
288
|
+
volumetotal = tide_genericmultiproc.run_multiproc(
|
|
289
|
+
voxelfunc,
|
|
290
|
+
packfunc,
|
|
291
|
+
unpackfunc,
|
|
292
|
+
voxelargs,
|
|
293
|
+
voxeltargets,
|
|
294
|
+
inputshape,
|
|
295
|
+
voxelmask,
|
|
296
|
+
LGR,
|
|
297
|
+
nprocs,
|
|
298
|
+
alwaysmultiproc,
|
|
299
|
+
showprogressbar,
|
|
300
|
+
chunksize,
|
|
301
|
+
alt=alt,
|
|
302
|
+
debug=debug,
|
|
303
|
+
)
|
|
159
304
|
LGR.info(f"\nCoherence performed on {volumetotal} voxels")
|
|
160
305
|
|
|
161
306
|
# garbage collect
|