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
|
@@ -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.
|
|
@@ -20,8 +20,11 @@ import argparse
|
|
|
20
20
|
import platform
|
|
21
21
|
import sys
|
|
22
22
|
import time
|
|
23
|
+
from argparse import Namespace
|
|
24
|
+
from typing import Any, Callable, Dict, List, Optional, Tuple, Union
|
|
23
25
|
|
|
24
26
|
import numpy as np
|
|
27
|
+
from numpy.typing import NDArray
|
|
25
28
|
from scipy.linalg import pinv
|
|
26
29
|
|
|
27
30
|
import rapidtide.io as tide_io
|
|
@@ -30,7 +33,42 @@ import rapidtide.util as tide_util
|
|
|
30
33
|
from rapidtide.workflows.parser_funcs import is_valid_file
|
|
31
34
|
|
|
32
35
|
|
|
33
|
-
def _get_parser():
|
|
36
|
+
def _get_parser() -> Any:
|
|
37
|
+
"""
|
|
38
|
+
Create and configure an argument parser for the calcicc command-line tool.
|
|
39
|
+
|
|
40
|
+
This function sets up an `argparse.ArgumentParser` with required and optional
|
|
41
|
+
arguments needed to run the ICC(3,1) calculation on text-based data files.
|
|
42
|
+
|
|
43
|
+
Returns
|
|
44
|
+
-------
|
|
45
|
+
argparse.ArgumentParser
|
|
46
|
+
Configured argument parser object with all required and optional arguments
|
|
47
|
+
for the calcicc tool.
|
|
48
|
+
|
|
49
|
+
Notes
|
|
50
|
+
-----
|
|
51
|
+
The parser is configured with:
|
|
52
|
+
- A program name "calcicc"
|
|
53
|
+
- A description explaining the purpose of the tool
|
|
54
|
+
- Three required positional arguments:
|
|
55
|
+
1. `datafile`: comma-separated list of 2D text files
|
|
56
|
+
2. `measurementlist`: multicolumn file specifying how to group measurements
|
|
57
|
+
3. `outputroot`: root name for output text files
|
|
58
|
+
- Several optional flags for controlling behavior:
|
|
59
|
+
- `--demedian`: subtract median from each map before ICC calculation
|
|
60
|
+
- `--demean`: subtract mean from each map before ICC calculation
|
|
61
|
+
- `--nocache`: disable caching for ICC calculation (not recommended)
|
|
62
|
+
- `--debug`: enable basic debugging output
|
|
63
|
+
- `--deepdebug`: enable verbose debugging output
|
|
64
|
+
|
|
65
|
+
Examples
|
|
66
|
+
--------
|
|
67
|
+
>>> parser = _get_parser()
|
|
68
|
+
>>> args = parser.parse_args(['file1.txt', 'measurements.txt', 'output_root'])
|
|
69
|
+
>>> print(args.datafile)
|
|
70
|
+
'file1.txt'
|
|
71
|
+
"""
|
|
34
72
|
parser = argparse.ArgumentParser(
|
|
35
73
|
prog="calcicc",
|
|
36
74
|
description="Calculate per-column ICC(3,1) on a set of text files.",
|
|
@@ -105,7 +143,55 @@ def _get_parser():
|
|
|
105
143
|
return parser
|
|
106
144
|
|
|
107
145
|
|
|
108
|
-
def parsetextmeasurementlist(
|
|
146
|
+
def parsetextmeasurementlist(
|
|
147
|
+
measlist: Any, numfiles: Any, debug: bool = False
|
|
148
|
+
) -> Tuple[NDArray, NDArray]:
|
|
149
|
+
"""
|
|
150
|
+
Parse a measurement list from text format into file and volume indices.
|
|
151
|
+
|
|
152
|
+
This function processes a 2D array of strings representing measurement entries,
|
|
153
|
+
where each entry is expected to contain either one or two comma-separated values.
|
|
154
|
+
The first value represents the file index, and the second represents the volume index.
|
|
155
|
+
If only one value is present, the file index is assumed to be 0.
|
|
156
|
+
|
|
157
|
+
Parameters
|
|
158
|
+
----------
|
|
159
|
+
measlist : array-like
|
|
160
|
+
A 2D array of strings where each string contains either one or two
|
|
161
|
+
comma-separated integers representing file and volume indices.
|
|
162
|
+
numfiles : int
|
|
163
|
+
The total number of available files, used to validate file indices.
|
|
164
|
+
debug : bool, optional
|
|
165
|
+
If True, prints debug information for each parsed element. Default is False.
|
|
166
|
+
|
|
167
|
+
Returns
|
|
168
|
+
-------
|
|
169
|
+
tuple of ndarray
|
|
170
|
+
A tuple containing two 2D arrays:
|
|
171
|
+
- `filesel`: File indices for each measurement.
|
|
172
|
+
- `volumesel`: Volume indices for each measurement.
|
|
173
|
+
|
|
174
|
+
Notes
|
|
175
|
+
-----
|
|
176
|
+
- Each entry in `measlist` should be a string of the form "file,volume" or "volume".
|
|
177
|
+
- File indices are validated to ensure they do not exceed `numfiles - 1`.
|
|
178
|
+
- The function will exit with an error if:
|
|
179
|
+
1. An entry contains more than one comma.
|
|
180
|
+
2. A file index is out of bounds.
|
|
181
|
+
|
|
182
|
+
Examples
|
|
183
|
+
--------
|
|
184
|
+
>>> import numpy as np
|
|
185
|
+
>>> measlist = np.array([["0,1", "1,2"], ["0", "2,3"]])
|
|
186
|
+
>>> numfiles = 3
|
|
187
|
+
>>> filesel, volumesel = parsetextmeasurementlist(measlist, numfiles)
|
|
188
|
+
>>> print(filesel)
|
|
189
|
+
[[0 1]
|
|
190
|
+
[0 2]]
|
|
191
|
+
>>> print(volumesel)
|
|
192
|
+
[[1 2]
|
|
193
|
+
[0 3]]
|
|
194
|
+
"""
|
|
109
195
|
# how do we get the number of subjects?
|
|
110
196
|
nummeas, numsubjs = measlist.shape[0], measlist.shape[1]
|
|
111
197
|
filesel = np.zeros((nummeas, numsubjs), dtype=int)
|
|
@@ -134,7 +220,54 @@ def parsetextmeasurementlist(measlist, numfiles, debug=False):
|
|
|
134
220
|
return filesel, volumesel
|
|
135
221
|
|
|
136
222
|
|
|
137
|
-
def makdcommandlinelist(
|
|
223
|
+
def makdcommandlinelist(
|
|
224
|
+
arglist: Any, starttime: Any, endtime: Any, extra: Optional[Any] = None
|
|
225
|
+
) -> Tuple[str, str, str, str, str] | Tuple[str, str, str, str]:
|
|
226
|
+
"""
|
|
227
|
+
Create a list of command line information for processing metadata.
|
|
228
|
+
|
|
229
|
+
This function generates a list of descriptive strings containing processing
|
|
230
|
+
information including timestamps, version details, and the command line
|
|
231
|
+
that was executed.
|
|
232
|
+
|
|
233
|
+
Parameters
|
|
234
|
+
----------
|
|
235
|
+
arglist : Any
|
|
236
|
+
List of command line arguments that were used to invoke the process
|
|
237
|
+
starttime : Any
|
|
238
|
+
Start time of the process, typically a timestamp or time object
|
|
239
|
+
endtime : Any
|
|
240
|
+
End time of the process, typically a timestamp or time object
|
|
241
|
+
extra : Any, optional
|
|
242
|
+
Additional descriptive text to include in the output list, by default None
|
|
243
|
+
|
|
244
|
+
Returns
|
|
245
|
+
-------
|
|
246
|
+
list of str
|
|
247
|
+
List containing metadata strings with processing information:
|
|
248
|
+
- Processing date and time
|
|
249
|
+
- Processing duration
|
|
250
|
+
- Version and system information
|
|
251
|
+
- Extra information (if provided)
|
|
252
|
+
- The original command line
|
|
253
|
+
|
|
254
|
+
Notes
|
|
255
|
+
-----
|
|
256
|
+
The function uses `time.strftime` to format the start time and calculates
|
|
257
|
+
the processing duration by subtracting starttime from endtime. It also
|
|
258
|
+
retrieves version information using `tide_util.version()` and system
|
|
259
|
+
information using `platform.node()`.
|
|
260
|
+
|
|
261
|
+
Examples
|
|
262
|
+
--------
|
|
263
|
+
>>> import time
|
|
264
|
+
>>> args = ['python', 'script.py', '--input', 'data.txt']
|
|
265
|
+
>>> start = time.time() - 10
|
|
266
|
+
>>> end = time.time()
|
|
267
|
+
>>> result = makdcommandlinelist(args, start, end)
|
|
268
|
+
>>> print(result[0])
|
|
269
|
+
'# Processed on Mon, 01 Jan 2024 12:00:00 UTC.'
|
|
270
|
+
"""
|
|
138
271
|
# get the processing date
|
|
139
272
|
dateline = (
|
|
140
273
|
"# Processed on "
|
|
@@ -166,12 +299,71 @@ def makdcommandlinelist(arglist, starttime, endtime, extra=None):
|
|
|
166
299
|
commandline = " ".join(arglist)
|
|
167
300
|
|
|
168
301
|
if extra is not None:
|
|
169
|
-
return
|
|
302
|
+
return dateline, timeline, nodeline, f"# {extra}", commandline
|
|
170
303
|
else:
|
|
171
|
-
return
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
def calctexticc(args):
|
|
304
|
+
return dateline, timeline, nodeline, commandline
|
|
305
|
+
|
|
306
|
+
|
|
307
|
+
def calctexticc(args: Any) -> None:
|
|
308
|
+
"""
|
|
309
|
+
Calculate intraclass correlation coefficients (ICC) for text-based measurement data across subjects.
|
|
310
|
+
|
|
311
|
+
This function reads measurement lists and corresponding data files, processes the data to
|
|
312
|
+
compute ICC(3,1) values for each voxel, and writes out the results along with variance components
|
|
313
|
+
and session effect F-values.
|
|
314
|
+
|
|
315
|
+
Parameters
|
|
316
|
+
----------
|
|
317
|
+
args : Any
|
|
318
|
+
An object containing command-line arguments. Expected attributes include:
|
|
319
|
+
- datafile : str
|
|
320
|
+
Comma-separated list of input data file paths.
|
|
321
|
+
- measurementlist : str
|
|
322
|
+
Path to the measurement list file.
|
|
323
|
+
- outputroot : str
|
|
324
|
+
Root name for output files.
|
|
325
|
+
- debug : bool, optional
|
|
326
|
+
Enable debug printing.
|
|
327
|
+
- deepdebug : bool, optional
|
|
328
|
+
Enable deep debug printing.
|
|
329
|
+
- demedian : bool, optional
|
|
330
|
+
Remove median from each subject's measurements.
|
|
331
|
+
- demean : bool, optional
|
|
332
|
+
Remove mean from each subject's measurements.
|
|
333
|
+
- nocache : bool, optional
|
|
334
|
+
Disable caching during ICC calculation.
|
|
335
|
+
|
|
336
|
+
Returns
|
|
337
|
+
-------
|
|
338
|
+
None
|
|
339
|
+
The function does not return a value but writes multiple output files:
|
|
340
|
+
- `{outputroot}_ICC.txt`
|
|
341
|
+
- `{outputroot}_r_var.txt`
|
|
342
|
+
- `{outputroot}_e_var.txt`
|
|
343
|
+
- `{outputroot}_session_effect_F.txt`
|
|
344
|
+
- `{outputroot}_commandline.txt`
|
|
345
|
+
|
|
346
|
+
Notes
|
|
347
|
+
-----
|
|
348
|
+
The function reshapes data into a voxel-by-subject-by-measurement format and computes ICC(3,1)
|
|
349
|
+
using a repeated measures ANOVA approach. It supports optional mean/median removal for each
|
|
350
|
+
subject and measurement.
|
|
351
|
+
|
|
352
|
+
Examples
|
|
353
|
+
--------
|
|
354
|
+
>>> import argparse
|
|
355
|
+
>>> args = argparse.Namespace(
|
|
356
|
+
... datafile="data1.txt,data2.txt",
|
|
357
|
+
... measurementlist="meas_list.txt",
|
|
358
|
+
... outputroot="output",
|
|
359
|
+
... debug=False,
|
|
360
|
+
... deepdebug=False,
|
|
361
|
+
... demedian=False,
|
|
362
|
+
... demean=False,
|
|
363
|
+
... nocache=False
|
|
364
|
+
... )
|
|
365
|
+
>>> calctexticc(args)
|
|
366
|
+
"""
|
|
175
367
|
runstarttime = time.time()
|
|
176
368
|
|
|
177
369
|
datafiles = (args.datafile).split(",")
|
|
@@ -297,4 +489,4 @@ def calctexticc(args):
|
|
|
297
489
|
|
|
298
490
|
runendtime = time.time()
|
|
299
491
|
thecommandfilelines = makdcommandlinelist(sys.argv, runstarttime, runendtime, extra=extraline)
|
|
300
|
-
tide_io.writevec(thecommandfilelines, args.outputroot + "_commandline.txt")
|
|
492
|
+
tide_io.writevec(np.asarray(thecommandfilelines), args.outputroot + "_commandline.txt")
|
rapidtide/workflows/ccorrica.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.
|
|
@@ -21,9 +21,12 @@ import warnings
|
|
|
21
21
|
warnings.simplefilter(action="ignore", category=FutureWarning)
|
|
22
22
|
import argparse
|
|
23
23
|
import sys
|
|
24
|
+
from argparse import Namespace
|
|
25
|
+
from typing import Any, Callable, Dict, List, Optional, Tuple, Union
|
|
24
26
|
|
|
25
27
|
import nibabel as nib
|
|
26
28
|
import numpy as np
|
|
29
|
+
from numpy.typing import NDArray
|
|
27
30
|
from scipy.stats import pearsonr
|
|
28
31
|
|
|
29
32
|
import rapidtide.correlate as tide_corr
|
|
@@ -34,10 +37,33 @@ import rapidtide.resample as tide_resample
|
|
|
34
37
|
import rapidtide.stats as tide_stats
|
|
35
38
|
import rapidtide.workflows.parser_funcs as pf
|
|
36
39
|
|
|
40
|
+
DEFAULT_DETREND_ORDER = 3
|
|
41
|
+
DEFAULT_CORRWEIGHTING = "phat"
|
|
37
42
|
|
|
38
|
-
|
|
43
|
+
|
|
44
|
+
def _get_parser() -> Any:
|
|
39
45
|
"""
|
|
40
|
-
Argument parser for ccorrica
|
|
46
|
+
Argument parser for ccorrica.
|
|
47
|
+
|
|
48
|
+
This function constructs and returns an `argparse.ArgumentParser` object configured
|
|
49
|
+
with all required and optional arguments for the `ccorrica` tool, which computes
|
|
50
|
+
temporal cross-correlations between timecourses.
|
|
51
|
+
|
|
52
|
+
Returns
|
|
53
|
+
-------
|
|
54
|
+
argparse.ArgumentParser
|
|
55
|
+
Configured argument parser for the ccorrica tool.
|
|
56
|
+
|
|
57
|
+
Notes
|
|
58
|
+
-----
|
|
59
|
+
The parser includes support for specifying sample rate or timestep, windowing options,
|
|
60
|
+
search range parameters, filtering, correlation weighting methods, detrending, and
|
|
61
|
+
oversampling factors. It also supports debugging output.
|
|
62
|
+
|
|
63
|
+
Examples
|
|
64
|
+
--------
|
|
65
|
+
>>> parser = _get_parser()
|
|
66
|
+
>>> args = parser.parse_args(['--timecoursefile', 'data.txt', '--outputroot', 'out'])
|
|
41
67
|
"""
|
|
42
68
|
parser = argparse.ArgumentParser(
|
|
43
69
|
prog="ccorrica",
|
|
@@ -95,15 +121,17 @@ def _get_parser():
|
|
|
95
121
|
action="store",
|
|
96
122
|
type=str,
|
|
97
123
|
choices=["None", "phat", "liang", "eckart"],
|
|
98
|
-
help=(
|
|
99
|
-
|
|
124
|
+
help=(
|
|
125
|
+
f"Method to use for cross-correlation weighting. Default is {DEFAULT_CORRWEIGHTING}. "
|
|
126
|
+
),
|
|
127
|
+
default=DEFAULT_CORRWEIGHTING,
|
|
100
128
|
)
|
|
101
129
|
parser.add_argument(
|
|
102
130
|
"--detrendorder",
|
|
103
131
|
dest="detrendorder",
|
|
104
132
|
type=int,
|
|
105
|
-
help=("Detrending order (default is
|
|
106
|
-
default=
|
|
133
|
+
help=(f"Detrending order (default is {DEFAULT_DETREND_ORDER}). Set to 0 to disable"),
|
|
134
|
+
default=DEFAULT_DETREND_ORDER,
|
|
107
135
|
)
|
|
108
136
|
|
|
109
137
|
parser.add_argument(
|
|
@@ -116,7 +144,6 @@ def _get_parser():
|
|
|
116
144
|
),
|
|
117
145
|
default=1,
|
|
118
146
|
)
|
|
119
|
-
|
|
120
147
|
parser.add_argument(
|
|
121
148
|
"--debug",
|
|
122
149
|
dest="debug",
|
|
@@ -130,7 +157,77 @@ def _get_parser():
|
|
|
130
157
|
return parser
|
|
131
158
|
|
|
132
159
|
|
|
133
|
-
def ccorrica(args):
|
|
160
|
+
def ccorrica(args: Any) -> None:
|
|
161
|
+
"""
|
|
162
|
+
Compute cross-correlations between time series components and save results in NIfTI and text formats.
|
|
163
|
+
|
|
164
|
+
This function reads time course data from a text file, applies preprocessing including
|
|
165
|
+
filtering, resampling, detrending, and windowing, then computes cross-correlations
|
|
166
|
+
between all pairs of components. The results are saved as NIfTI files and text vectors
|
|
167
|
+
for further analysis.
|
|
168
|
+
|
|
169
|
+
Parameters
|
|
170
|
+
----------
|
|
171
|
+
args : argparse.Namespace
|
|
172
|
+
Command-line arguments containing configuration options such as:
|
|
173
|
+
- timecoursefile : str
|
|
174
|
+
Path to the input time course file.
|
|
175
|
+
- samplerate : float or str
|
|
176
|
+
Sampling rate of the data. If "auto", it must be specified in the file header.
|
|
177
|
+
- oversampfactor : int
|
|
178
|
+
Oversampling factor for upsampling the data. If less than 0, it is auto-computed.
|
|
179
|
+
- detrendorder : int
|
|
180
|
+
Order of detrending to apply.
|
|
181
|
+
- windowfunc : str
|
|
182
|
+
Windowing function to apply.
|
|
183
|
+
- corrweighting : str
|
|
184
|
+
Type of weighting to use in correlation computation.
|
|
185
|
+
- debug : bool
|
|
186
|
+
If True, display plots during correlation computation.
|
|
187
|
+
- outputroot : str
|
|
188
|
+
Root name for output files.
|
|
189
|
+
|
|
190
|
+
Returns
|
|
191
|
+
-------
|
|
192
|
+
None
|
|
193
|
+
This function does not return a value but saves multiple output files:
|
|
194
|
+
- `_filtereddata.txt`: Filtered time series.
|
|
195
|
+
- `_xcorr.nii.gz`: Cross-correlation data as 4D NIfTI.
|
|
196
|
+
- `_pxcorr.nii.gz`: Pearson correlation coefficients.
|
|
197
|
+
- `_corrmax.nii.gz`: Maximum correlation values.
|
|
198
|
+
- `_corrlag.nii.gz`: Lag at maximum correlation.
|
|
199
|
+
- `_corrwidth.nii.gz`: Width of the correlation peak.
|
|
200
|
+
- `_corrmask.nii.gz`: Mask indicating correlation significance.
|
|
201
|
+
- `_reformdata.txt`: Final reformatted and normalized data.
|
|
202
|
+
|
|
203
|
+
Notes
|
|
204
|
+
-----
|
|
205
|
+
The function performs the following steps:
|
|
206
|
+
1. Reads input data from a text file.
|
|
207
|
+
2. Applies post-processing filter options.
|
|
208
|
+
3. Resamples data if necessary.
|
|
209
|
+
4. Filters data using a specified prefilter.
|
|
210
|
+
5. Normalizes data using standard and correlation normalization.
|
|
211
|
+
6. Computes cross-correlations using fast FFT-based methods.
|
|
212
|
+
7. Fits Gaussian peaks to find maximum correlation lag and width.
|
|
213
|
+
8. Saves symmetric matrices for correlation maxima, lags, widths, and masks.
|
|
214
|
+
9. Outputs results in both NIfTI and text formats.
|
|
215
|
+
|
|
216
|
+
Examples
|
|
217
|
+
--------
|
|
218
|
+
>>> import argparse
|
|
219
|
+
>>> args = argparse.Namespace(
|
|
220
|
+
... timecoursefile='data.txt',
|
|
221
|
+
... samplerate=2.0,
|
|
222
|
+
... oversampfactor=1,
|
|
223
|
+
... detrendorder=1,
|
|
224
|
+
... windowfunc='hanning',
|
|
225
|
+
... corrweighting='none',
|
|
226
|
+
... debug=False,
|
|
227
|
+
... outputroot='output'
|
|
228
|
+
... )
|
|
229
|
+
>>> ccorrica(args)
|
|
230
|
+
"""
|
|
134
231
|
args, theprefilter = pf.postprocessfilteropts(args)
|
|
135
232
|
|
|
136
233
|
# read in data
|
|
@@ -152,8 +249,7 @@ def ccorrica(args):
|
|
|
152
249
|
else:
|
|
153
250
|
Fs = args.samplerate
|
|
154
251
|
else:
|
|
155
|
-
|
|
156
|
-
Fs = args.samplerate
|
|
252
|
+
Fs = samplerate
|
|
157
253
|
|
|
158
254
|
sampletime = 1.0 / Fs
|
|
159
255
|
thedims = tcdata.shape
|
|
@@ -169,7 +265,7 @@ def ccorrica(args):
|
|
|
169
265
|
if args.oversampfactor == 1:
|
|
170
266
|
print("data array shape is ", reformdata.shape)
|
|
171
267
|
else:
|
|
172
|
-
resampdata = np.zeros((numcomponents, tclen * args.oversampfactor), dtype=
|
|
268
|
+
resampdata = np.zeros((numcomponents, tclen * args.oversampfactor), dtype=float)
|
|
173
269
|
for component in range(0, numcomponents):
|
|
174
270
|
resampdata[component, :] = tide_resample.upsample(
|
|
175
271
|
reformdata[component, :], Fs, Fs * args.oversampfactor, intfac=True
|
|
@@ -178,9 +274,19 @@ def ccorrica(args):
|
|
|
178
274
|
Fs *= args.oversampfactor
|
|
179
275
|
tclen *= args.oversampfactor
|
|
180
276
|
|
|
277
|
+
# filter the data
|
|
278
|
+
for component in range(0, numcomponents):
|
|
279
|
+
reformdata[component, :] = tide_math.stdnormalize(
|
|
280
|
+
theprefilter.apply(Fs, reformdata[component, :])
|
|
281
|
+
)
|
|
282
|
+
|
|
283
|
+
# save the filtered timecourses
|
|
284
|
+
tide_io.writenpvecs(reformdata, args.outputroot + "_filtereddata.txt")
|
|
285
|
+
|
|
286
|
+
# now detrend, window, and normalize the data
|
|
181
287
|
for component in range(0, numcomponents):
|
|
182
288
|
reformdata[component, :] = tide_math.corrnormalize(
|
|
183
|
-
|
|
289
|
+
reformdata[component, :],
|
|
184
290
|
detrendorder=args.detrendorder,
|
|
185
291
|
windowfunc=args.windowfunc,
|
|
186
292
|
)
|
|
@@ -214,9 +320,11 @@ def ccorrica(args):
|
|
|
214
320
|
zeropadding=0,
|
|
215
321
|
displayplots=args.debug,
|
|
216
322
|
)
|
|
217
|
-
thepxcorr = pearsonr(
|
|
323
|
+
thepxcorr = pearsonr(
|
|
324
|
+
reformdata[component1, :] / tclen, reformdata[component2, :]
|
|
325
|
+
).statistic
|
|
218
326
|
outputdata[component1, component2, 0, :] = thexcorr
|
|
219
|
-
outputpdata[component1, component2, 0, :] = thepxcorr
|
|
327
|
+
outputpdata[component1, component2, 0, :] = thepxcorr
|
|
220
328
|
(
|
|
221
329
|
maxindex,
|
|
222
330
|
maxlag,
|