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
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
#
|
|
4
|
+
# Copyright 2016-2025 Blaise Frederick
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
# you may not use this file except in compliance with the License.
|
|
8
|
+
# You may obtain a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
# See the License for the specific language governing permissions and
|
|
16
|
+
# limitations under the License.
|
|
17
|
+
#
|
|
18
|
+
#
|
|
19
|
+
import os
|
|
20
|
+
|
|
21
|
+
import matplotlib as mpl
|
|
22
|
+
import numpy as np
|
|
23
|
+
|
|
24
|
+
import rapidtide.io as tide_io
|
|
25
|
+
import rapidtide.workflows.rapidtide as rapidtide_workflow
|
|
26
|
+
import rapidtide.workflows.rapidtide_parser as rapidtide_parser
|
|
27
|
+
import rapidtide.workflows.retroregress as rapidtide_retroregress
|
|
28
|
+
from rapidtide.tests.utils import get_examples_path, get_test_temp_path, mse
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def test_fullrunrapidtide_v7(debug=False, local=False, displayplots=False):
|
|
32
|
+
# set input and output directories
|
|
33
|
+
if local:
|
|
34
|
+
exampleroot = "../data/examples/src"
|
|
35
|
+
testtemproot = "./tmp"
|
|
36
|
+
else:
|
|
37
|
+
exampleroot = get_examples_path()
|
|
38
|
+
testtemproot = get_test_temp_path()
|
|
39
|
+
|
|
40
|
+
# test anatomic masks
|
|
41
|
+
inputargs = [
|
|
42
|
+
os.path.join(exampleroot, "sub-RAPIDTIDETEST.nii.gz"),
|
|
43
|
+
os.path.join(testtemproot, "sub-RAPIDTIDETEST_seg"),
|
|
44
|
+
"--nprocs",
|
|
45
|
+
"-1",
|
|
46
|
+
"--passes",
|
|
47
|
+
"3",
|
|
48
|
+
"--brainmask",
|
|
49
|
+
os.path.join(exampleroot, "sub-RAPIDTIDETEST_brainmask.nii.gz"),
|
|
50
|
+
"--graymattermask",
|
|
51
|
+
os.path.join(exampleroot, "sub-RAPIDTIDETEST_synthseg.nii.gz:SSEG_GRAY"),
|
|
52
|
+
"--whitemattermask",
|
|
53
|
+
os.path.join(exampleroot, "sub-RAPIDTIDETEST_synthseg.nii.gz:SSEG_WHITE"),
|
|
54
|
+
"--csfmask",
|
|
55
|
+
os.path.join(exampleroot, "sub-RAPIDTIDETEST_synthseg.nii.gz:SSEG_CSF"),
|
|
56
|
+
]
|
|
57
|
+
rapidtide_workflow.rapidtide_main(rapidtide_parser.process_args(inputargs=inputargs))
|
|
58
|
+
|
|
59
|
+
inputargs = [
|
|
60
|
+
os.path.join(exampleroot, "sub-RAPIDTIDETEST.nii.gz"),
|
|
61
|
+
os.path.join(testtemproot, "sub-RAPIDTIDETEST_seg"),
|
|
62
|
+
"--alternateoutput",
|
|
63
|
+
os.path.join(testtemproot, "segtest"),
|
|
64
|
+
"--nprocs",
|
|
65
|
+
"-1",
|
|
66
|
+
"--outputlevel",
|
|
67
|
+
"max",
|
|
68
|
+
]
|
|
69
|
+
rapidtide_retroregress.retroregress(rapidtide_retroregress.process_args(inputargs=inputargs))
|
|
70
|
+
|
|
71
|
+
inputargs = [
|
|
72
|
+
os.path.join(exampleroot, "sub-RAPIDTIDETEST.nii.gz"),
|
|
73
|
+
os.path.join(testtemproot, "sub-RAPIDTIDETEST_seg"),
|
|
74
|
+
"--alternateoutput",
|
|
75
|
+
os.path.join(testtemproot, "regressoronly"),
|
|
76
|
+
"--nprocs",
|
|
77
|
+
"-1",
|
|
78
|
+
"--outputlevel",
|
|
79
|
+
"onlyregressors",
|
|
80
|
+
]
|
|
81
|
+
rapidtide_retroregress.retroregress(rapidtide_retroregress.process_args(inputargs=inputargs))
|
|
82
|
+
|
|
83
|
+
# check to see that rapidtide and retroregress output match
|
|
84
|
+
msethresh = 2e-6
|
|
85
|
+
aethresh = 2
|
|
86
|
+
tclist = ["brain", "GM", "WM", "CSF"]
|
|
87
|
+
for timecourse in tclist:
|
|
88
|
+
infilespec = os.path.join(
|
|
89
|
+
testtemproot,
|
|
90
|
+
f"sub-RAPIDTIDETEST_seg_desc-regionalpostfilter_timeseries.json:{timecourse}",
|
|
91
|
+
)
|
|
92
|
+
insamplerate, instarttime, incolumns, indata, incompressed, infiletype = (
|
|
93
|
+
tide_io.readvectorsfromtextfile(infilespec, onecol=True, debug=debug)
|
|
94
|
+
)
|
|
95
|
+
outfilespec = os.path.join(
|
|
96
|
+
testtemproot, f"segtest_desc-regionalpostfilter_timeseries.json:{timecourse}"
|
|
97
|
+
)
|
|
98
|
+
outsamplerate, outstarttime, outcolumns, outdata, outcompressed, outfiletype = (
|
|
99
|
+
tide_io.readvectorsfromtextfile(outfilespec, onecol=True, debug=debug)
|
|
100
|
+
)
|
|
101
|
+
assert insamplerate == outsamplerate
|
|
102
|
+
assert instarttime == outstarttime
|
|
103
|
+
assert incompressed == outcompressed
|
|
104
|
+
assert infiletype == outfiletype
|
|
105
|
+
assert incolumns == outcolumns
|
|
106
|
+
assert indata.shape == outdata.shape
|
|
107
|
+
assert indata.shape[0] == indata.shape[0]
|
|
108
|
+
assert mse(indata, outdata) < msethresh
|
|
109
|
+
np.testing.assert_almost_equal(indata, outdata, aethresh)
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
if __name__ == "__main__":
|
|
113
|
+
mpl.use("TkAgg")
|
|
114
|
+
test_fullrunrapidtide_v7(debug=True, local=True, displayplots=True)
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
#
|
|
4
|
+
# Copyright 2016-2025 Blaise Frederick
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
# you may not use this file except in compliance with the License.
|
|
8
|
+
# You may obtain a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
# See the License for the specific language governing permissions and
|
|
16
|
+
# limitations under the License.
|
|
17
|
+
#
|
|
18
|
+
#
|
|
19
|
+
import os
|
|
20
|
+
|
|
21
|
+
import matplotlib as mpl
|
|
22
|
+
|
|
23
|
+
import rapidtide.qualitycheck as rapidtide_quality
|
|
24
|
+
import rapidtide.workflows.rapidtide as rapidtide_workflow
|
|
25
|
+
import rapidtide.workflows.rapidtide_parser as rapidtide_parser
|
|
26
|
+
from rapidtide.tests.utils import get_examples_path, get_test_temp_path
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def test_fullrunrapidtide_v8(debug=False, local=False, displayplots=False):
|
|
30
|
+
# set input and output directories
|
|
31
|
+
if local:
|
|
32
|
+
exampleroot = "../data/examples/src"
|
|
33
|
+
testtemproot = "./tmp"
|
|
34
|
+
else:
|
|
35
|
+
exampleroot = get_examples_path()
|
|
36
|
+
testtemproot = get_test_temp_path()
|
|
37
|
+
|
|
38
|
+
# run rapidtide
|
|
39
|
+
inputargs = [
|
|
40
|
+
os.path.join(exampleroot, "sub-RAPIDTIDETEST.nii.gz"),
|
|
41
|
+
os.path.join(testtemproot, "sub-RAPIDTIDETEST8"),
|
|
42
|
+
"--spatialfilt",
|
|
43
|
+
"2",
|
|
44
|
+
"--simcalcrange",
|
|
45
|
+
"4",
|
|
46
|
+
"-1",
|
|
47
|
+
"--searchrange",
|
|
48
|
+
"-5",
|
|
49
|
+
"10",
|
|
50
|
+
"--nprocs",
|
|
51
|
+
"-1",
|
|
52
|
+
"--passes",
|
|
53
|
+
"1",
|
|
54
|
+
"--despecklepasses",
|
|
55
|
+
"3",
|
|
56
|
+
"--similaritymetric",
|
|
57
|
+
"riptide",
|
|
58
|
+
"--riptidestep",
|
|
59
|
+
"1.5",
|
|
60
|
+
]
|
|
61
|
+
rapidtide_workflow.rapidtide_main(rapidtide_parser.process_args(inputargs=inputargs))
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
if __name__ == "__main__":
|
|
65
|
+
mpl.use("TkAgg")
|
|
66
|
+
test_fullrunrapidtide_v8(debug=True, local=True, displayplots=True)
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
#
|
|
4
|
+
# Copyright 2016-2025 Blaise Frederick
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
# you may not use this file except in compliance with the License.
|
|
8
|
+
# You may obtain a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
# See the License for the specific language governing permissions and
|
|
16
|
+
# limitations under the License.
|
|
17
|
+
#
|
|
18
|
+
#
|
|
19
|
+
import numpy as np
|
|
20
|
+
|
|
21
|
+
from rapidtide.workflows.adjustoffset import _get_parser as adjustoffset_getparser
|
|
22
|
+
from rapidtide.workflows.aligntcs import _get_parser as aligntcs_getparser
|
|
23
|
+
from rapidtide.workflows.atlasaverage import _get_parser as atlasaverage_getparser
|
|
24
|
+
from rapidtide.workflows.atlastool import _get_parser as atlastool_getparser
|
|
25
|
+
from rapidtide.workflows.calctexticc import _get_parser as calctexticc_getparser
|
|
26
|
+
from rapidtide.workflows.ccorrica import _get_parser as ccorrica_getparser
|
|
27
|
+
from rapidtide.workflows.delayvar import _get_parser as delayvar_getparser
|
|
28
|
+
from rapidtide.workflows.diffrois import _get_parser as diffrois_getparser
|
|
29
|
+
from rapidtide.workflows.endtidalproc import _get_parser as endtidalproc_getparser
|
|
30
|
+
from rapidtide.workflows.fdica import _get_parser as fdica_getparser
|
|
31
|
+
from rapidtide.workflows.filtnifti import _get_parser as filtnifti_getparser
|
|
32
|
+
from rapidtide.workflows.filttc import _get_parser as filttc_getparser
|
|
33
|
+
from rapidtide.workflows.fixtr import _get_parser as fixtr_getparser
|
|
34
|
+
from rapidtide.workflows.gmscalc import _get_parser as gmscalc_getparser
|
|
35
|
+
from rapidtide.workflows.happy2std import _get_parser as happy2std_getparser
|
|
36
|
+
from rapidtide.workflows.happy_parser import _get_parser as happy_parser_getparser
|
|
37
|
+
from rapidtide.workflows.histnifti import _get_parser as histnifti_getparser
|
|
38
|
+
from rapidtide.workflows.histtc import _get_parser as histtc_getparser
|
|
39
|
+
from rapidtide.workflows.linfitfilt import _get_parser as linfitfilt_getparser
|
|
40
|
+
from rapidtide.workflows.localflow import _get_parser as localflow_getparser
|
|
41
|
+
from rapidtide.workflows.mergequality import _get_parser as mergequality_getparser
|
|
42
|
+
from rapidtide.workflows.niftidecomp import (
|
|
43
|
+
_get_parser_spatial as niftidecomp_getparser_spatial,
|
|
44
|
+
)
|
|
45
|
+
from rapidtide.workflows.niftidecomp import (
|
|
46
|
+
_get_parser_temporal as niftidecomp_getparser_temporal,
|
|
47
|
+
)
|
|
48
|
+
from rapidtide.workflows.niftistats import _get_parser as niftistats_getparser
|
|
49
|
+
from rapidtide.workflows.pairproc import _get_parser as pairproc_getparser
|
|
50
|
+
from rapidtide.workflows.pairwisemergenifti import (
|
|
51
|
+
_get_parser as pairwisemergenifti_getparser,
|
|
52
|
+
)
|
|
53
|
+
from rapidtide.workflows.physiofreq import _get_parser as physiofreq_getparser
|
|
54
|
+
from rapidtide.workflows.pixelcomp import _get_parser as pixelcomp_getparser
|
|
55
|
+
from rapidtide.workflows.plethquality import _get_parser as plethquality_getparser
|
|
56
|
+
from rapidtide.workflows.polyfitim import _get_parser as polyfitim_getparser
|
|
57
|
+
from rapidtide.workflows.proj2flow import _get_parser as proj2flow_getparser
|
|
58
|
+
from rapidtide.workflows.rankimage import _get_parser as rankimage_getparser
|
|
59
|
+
from rapidtide.workflows.rapidtide2std import _get_parser as rapidtide2std_getparser
|
|
60
|
+
from rapidtide.workflows.resamplenifti import _get_parser as resamplenifti_getparser
|
|
61
|
+
from rapidtide.workflows.resampletc import _get_parser as resampletc_getparser
|
|
62
|
+
from rapidtide.workflows.retrolagtcs import _get_parser as retrolagtcs_getparser
|
|
63
|
+
from rapidtide.workflows.retroregress import _get_parser as retroregress_getparser
|
|
64
|
+
from rapidtide.workflows.roisummarize import _get_parser as roisummarize_getparser
|
|
65
|
+
from rapidtide.workflows.runqualitycheck import _get_parser as runqualitycheck_getparser
|
|
66
|
+
from rapidtide.workflows.showarbcorr import _get_parser as showarbcorr_getparser
|
|
67
|
+
from rapidtide.workflows.showhist import _get_parser as showhist_getparser
|
|
68
|
+
from rapidtide.workflows.showstxcorr import _get_parser as showstxcorr_getparser
|
|
69
|
+
from rapidtide.workflows.showtc import _get_parser as showtc_getparser
|
|
70
|
+
from rapidtide.workflows.showxcorrx import _get_parser as showxcorrx_getparser
|
|
71
|
+
from rapidtide.workflows.showxy import _get_parser as showxy_getparser
|
|
72
|
+
from rapidtide.workflows.simdata import _get_parser as simdata_getparser
|
|
73
|
+
from rapidtide.workflows.spatialfit import _get_parser as spatialfit_getparser
|
|
74
|
+
from rapidtide.workflows.spatialmi import _get_parser as spatialmi_getparser
|
|
75
|
+
from rapidtide.workflows.spectrogram import _get_parser as spectrogram_getparser
|
|
76
|
+
from rapidtide.workflows.synthASL import _get_parser as synthASL_getparser
|
|
77
|
+
from rapidtide.workflows.tcfrom2col import _get_parser as tcfrom2col_getparser
|
|
78
|
+
from rapidtide.workflows.tcfrom3col import _get_parser as tcfrom3col_getparser
|
|
79
|
+
from rapidtide.workflows.variabilityizer import _get_parser as variabilityizer_getparser
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
def test_parsers(debug=False):
|
|
83
|
+
parserlist = [
|
|
84
|
+
adjustoffset_getparser,
|
|
85
|
+
aligntcs_getparser,
|
|
86
|
+
atlasaverage_getparser,
|
|
87
|
+
atlastool_getparser,
|
|
88
|
+
calctexticc_getparser,
|
|
89
|
+
ccorrica_getparser,
|
|
90
|
+
delayvar_getparser,
|
|
91
|
+
diffrois_getparser,
|
|
92
|
+
endtidalproc_getparser,
|
|
93
|
+
fdica_getparser,
|
|
94
|
+
filtnifti_getparser,
|
|
95
|
+
filttc_getparser,
|
|
96
|
+
fixtr_getparser,
|
|
97
|
+
gmscalc_getparser,
|
|
98
|
+
happy_parser_getparser,
|
|
99
|
+
happy2std_getparser,
|
|
100
|
+
histnifti_getparser,
|
|
101
|
+
histtc_getparser,
|
|
102
|
+
linfitfilt_getparser,
|
|
103
|
+
localflow_getparser,
|
|
104
|
+
mergequality_getparser,
|
|
105
|
+
niftidecomp_getparser_temporal,
|
|
106
|
+
niftidecomp_getparser_spatial,
|
|
107
|
+
niftistats_getparser,
|
|
108
|
+
pairproc_getparser,
|
|
109
|
+
pairwisemergenifti_getparser,
|
|
110
|
+
physiofreq_getparser,
|
|
111
|
+
pixelcomp_getparser,
|
|
112
|
+
plethquality_getparser,
|
|
113
|
+
polyfitim_getparser,
|
|
114
|
+
proj2flow_getparser,
|
|
115
|
+
rankimage_getparser,
|
|
116
|
+
rapidtide2std_getparser,
|
|
117
|
+
resamplenifti_getparser,
|
|
118
|
+
resampletc_getparser,
|
|
119
|
+
retrolagtcs_getparser,
|
|
120
|
+
retroregress_getparser,
|
|
121
|
+
roisummarize_getparser,
|
|
122
|
+
runqualitycheck_getparser,
|
|
123
|
+
showarbcorr_getparser,
|
|
124
|
+
showhist_getparser,
|
|
125
|
+
showstxcorr_getparser,
|
|
126
|
+
showtc_getparser,
|
|
127
|
+
showxcorrx_getparser,
|
|
128
|
+
showxy_getparser,
|
|
129
|
+
simdata_getparser,
|
|
130
|
+
spatialfit_getparser,
|
|
131
|
+
spatialmi_getparser,
|
|
132
|
+
spectrogram_getparser,
|
|
133
|
+
synthASL_getparser,
|
|
134
|
+
tcfrom2col_getparser,
|
|
135
|
+
tcfrom3col_getparser,
|
|
136
|
+
variabilityizer_getparser,
|
|
137
|
+
]
|
|
138
|
+
try:
|
|
139
|
+
import tensorflow as tf
|
|
140
|
+
|
|
141
|
+
dlfilterloads = True
|
|
142
|
+
except ImportError:
|
|
143
|
+
dlfilterloads = False
|
|
144
|
+
if dlfilterloads:
|
|
145
|
+
from rapidtide.workflows.applydlfilter import (
|
|
146
|
+
_get_parser as applydlfilter_getparser,
|
|
147
|
+
)
|
|
148
|
+
|
|
149
|
+
parserlist.append(applydlfilter_getparser)
|
|
150
|
+
|
|
151
|
+
for thegetparser in parserlist:
|
|
152
|
+
theusage = thegetparser().format_help()
|
|
153
|
+
if debug:
|
|
154
|
+
print(theusage)
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
if __name__ == "__main__":
|
|
158
|
+
test_parsers(debug=True)
|
rapidtide/tests/test_io.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.
|
|
@@ -25,9 +25,17 @@ import rapidtide.io as tide_io
|
|
|
25
25
|
from rapidtide.tests.utils import create_dir, get_examples_path, get_test_temp_path, mse
|
|
26
26
|
|
|
27
27
|
|
|
28
|
-
def test_io(debug=True, displayplots=False):
|
|
28
|
+
def test_io(debug=True, local=False, displayplots=False):
|
|
29
|
+
# set input and output directories
|
|
30
|
+
if local:
|
|
31
|
+
exampleroot = "../data/examples/src"
|
|
32
|
+
testtemproot = "./tmp"
|
|
33
|
+
else:
|
|
34
|
+
exampleroot = get_examples_path()
|
|
35
|
+
testtemproot = get_test_temp_path()
|
|
36
|
+
|
|
29
37
|
# create outputdir if it doesn't exist
|
|
30
|
-
create_dir(
|
|
38
|
+
create_dir(testtemproot)
|
|
31
39
|
|
|
32
40
|
# test checkifnifti
|
|
33
41
|
assert tide_io.checkifnifti("test.nii") == True
|
|
@@ -87,24 +95,20 @@ def test_io(debug=True, displayplots=False):
|
|
|
87
95
|
|
|
88
96
|
# test fmritimeinfo
|
|
89
97
|
fmritimeinfothresh = 1e-2
|
|
90
|
-
tr, timepoints = tide_io.fmritimeinfo(
|
|
91
|
-
os.path.join(get_examples_path(), "sub-HAPPYTEST.nii.gz")
|
|
92
|
-
)
|
|
98
|
+
tr, timepoints = tide_io.fmritimeinfo(os.path.join(exampleroot, "sub-HAPPYTEST.nii.gz"))
|
|
93
99
|
assert np.fabs(tr - 1.16) < fmritimeinfothresh
|
|
94
100
|
assert timepoints == 110
|
|
95
|
-
tr, timepoints = tide_io.fmritimeinfo(
|
|
96
|
-
os.path.join(get_examples_path(), "sub-RAPIDTIDETEST.nii.gz")
|
|
97
|
-
)
|
|
101
|
+
tr, timepoints = tide_io.fmritimeinfo(os.path.join(exampleroot, "sub-RAPIDTIDETEST.nii.gz"))
|
|
98
102
|
assert np.fabs(tr - 1.5) < fmritimeinfothresh
|
|
99
103
|
assert timepoints == 260
|
|
100
104
|
|
|
101
105
|
# test niftifile reading
|
|
102
106
|
sizethresh = 1e-3
|
|
103
107
|
happy_img, happy_data, happy_hdr, happydims, happysizes = tide_io.readfromnifti(
|
|
104
|
-
os.path.join(
|
|
108
|
+
os.path.join(exampleroot, "sub-HAPPYTEST.nii.gz")
|
|
105
109
|
)
|
|
106
110
|
fmri_img, fmri_data, fmri_hdr, fmridims, fmrisizes = tide_io.readfromnifti(
|
|
107
|
-
os.path.join(
|
|
111
|
+
os.path.join(exampleroot, "sub-RAPIDTIDETEST.nii.gz")
|
|
108
112
|
)
|
|
109
113
|
targetdims = [4, 65, 89, 64, 110, 1, 1, 1]
|
|
110
114
|
targetsizes = [-1.00, 2.39583, 2.395830, 2.4, 1.16, 0.00, 0.00, 0.00]
|
|
@@ -120,7 +124,7 @@ def test_io(debug=True, displayplots=False):
|
|
|
120
124
|
# test file writing
|
|
121
125
|
datathresh = 2e-3 # relaxed threshold because sub-RAPIDTIDETEST has been converted to INT16
|
|
122
126
|
tide_io.savetonifti(
|
|
123
|
-
fmri_data, fmri_hdr, os.path.join(
|
|
127
|
+
fmri_data, fmri_hdr, os.path.join(testtemproot, "sub-RAPIDTIDETEST_copy.nii.gz")
|
|
124
128
|
)
|
|
125
129
|
(
|
|
126
130
|
fmricopy_img,
|
|
@@ -128,7 +132,7 @@ def test_io(debug=True, displayplots=False):
|
|
|
128
132
|
fmricopy_hdr,
|
|
129
133
|
fmricopydims,
|
|
130
134
|
fmricopysizes,
|
|
131
|
-
) = tide_io.readfromnifti(os.path.join(
|
|
135
|
+
) = tide_io.readfromnifti(os.path.join(testtemproot, "sub-RAPIDTIDETEST_copy.nii.gz"))
|
|
132
136
|
assert tide_io.checkspacematch(fmri_hdr, fmricopy_hdr)
|
|
133
137
|
assert tide_io.checktimematch(fmridims, fmridims)
|
|
134
138
|
assert mse(fmri_data, fmricopy_data) < datathresh
|
|
@@ -141,10 +145,10 @@ def test_io(debug=True, displayplots=False):
|
|
|
141
145
|
|
|
142
146
|
# test writing and reading text files
|
|
143
147
|
debug = False
|
|
144
|
-
DESTDIR =
|
|
145
|
-
SOURCEDIR =
|
|
148
|
+
DESTDIR = testtemproot
|
|
149
|
+
SOURCEDIR = exampleroot
|
|
146
150
|
EPSILON = 1e-5
|
|
147
|
-
numpoints =
|
|
151
|
+
numpoints = 100
|
|
148
152
|
the2darray = np.zeros((6, numpoints), dtype=float)
|
|
149
153
|
the2darray[0, :] = np.linspace(0, 1.0, numpoints, endpoint=False)
|
|
150
154
|
the2darray[1, :] = np.sin(the2darray[0, :] * 2.0 * np.pi)
|
|
@@ -174,7 +178,7 @@ def test_io(debug=True, displayplots=False):
|
|
|
174
178
|
["plaintsv", True, ".tsv.gz"],
|
|
175
179
|
]
|
|
176
180
|
|
|
177
|
-
print("writing files")
|
|
181
|
+
print("writing files as a unit")
|
|
178
182
|
for thistest in thetests:
|
|
179
183
|
thetype = thistest[0]
|
|
180
184
|
compressed = thistest[1]
|
|
@@ -218,6 +222,43 @@ def test_io(debug=True, displayplots=False):
|
|
|
218
222
|
debug=debug,
|
|
219
223
|
)
|
|
220
224
|
|
|
225
|
+
theappendtests = [
|
|
226
|
+
["bidscontinuous", False, ".tsv"],
|
|
227
|
+
["bidscontinuous", True, ".tsv.gz"],
|
|
228
|
+
]
|
|
229
|
+
|
|
230
|
+
print("writing files with append")
|
|
231
|
+
for thistest in theappendtests:
|
|
232
|
+
thetype = thistest[0]
|
|
233
|
+
compressed = thistest[1]
|
|
234
|
+
if compressed:
|
|
235
|
+
compname = "compressed"
|
|
236
|
+
else:
|
|
237
|
+
compname = "uncompressed"
|
|
238
|
+
|
|
239
|
+
print(f"{the2darray.shape=}")
|
|
240
|
+
thefileroot = os.path.join(DESTDIR, f"testout_withcol_{thetype}_{compname}")
|
|
241
|
+
print(f"\t writing: {thefileroot}")
|
|
242
|
+
tide_io.writebidstsv(
|
|
243
|
+
thefileroot + "_append",
|
|
244
|
+
the2darray[:5, :],
|
|
245
|
+
inputsamplerate,
|
|
246
|
+
starttime=inputstarttime,
|
|
247
|
+
columns=thecols[:5],
|
|
248
|
+
compressed=compressed,
|
|
249
|
+
debug=debug,
|
|
250
|
+
)
|
|
251
|
+
tide_io.writebidstsv(
|
|
252
|
+
thefileroot + "_append",
|
|
253
|
+
the2darray[5, :],
|
|
254
|
+
inputsamplerate,
|
|
255
|
+
starttime=inputstarttime,
|
|
256
|
+
columns=[thecols[5]],
|
|
257
|
+
compressed=compressed,
|
|
258
|
+
append=True,
|
|
259
|
+
debug=debug,
|
|
260
|
+
)
|
|
261
|
+
|
|
221
262
|
print("reading complete files")
|
|
222
263
|
for thistest in thetests:
|
|
223
264
|
thetype = thistest[0]
|
|
@@ -456,4 +497,4 @@ def test_io(debug=True, displayplots=False):
|
|
|
456
497
|
|
|
457
498
|
|
|
458
499
|
if __name__ == "__main__":
|
|
459
|
-
test_io(debug=True, displayplots=True)
|
|
500
|
+
test_io(debug=True, local=True, displayplots=True)
|
|
@@ -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,7 +20,7 @@ import matplotlib as mpl
|
|
|
20
20
|
import matplotlib.pyplot as plt
|
|
21
21
|
import numpy as np
|
|
22
22
|
|
|
23
|
-
import rapidtide.
|
|
23
|
+
import rapidtide.linfitfiltpass as tide_linfitfiltpass
|
|
24
24
|
from rapidtide.tests.utils import mse
|
|
25
25
|
|
|
26
26
|
|
|
@@ -41,7 +41,7 @@ def gen2d(xsize=150, xcycles=11, tsize=200, tcycles=13, mean=10.0):
|
|
|
41
41
|
return thearray, xwaves, twaves
|
|
42
42
|
|
|
43
43
|
|
|
44
|
-
def
|
|
44
|
+
def test_linfitfiltpass(debug=True, displayplots=False):
|
|
45
45
|
np.random.seed(12345)
|
|
46
46
|
xsize = 150
|
|
47
47
|
xcycles = 7
|
|
@@ -77,8 +77,8 @@ def test_glmpass(debug=True, displayplots=False):
|
|
|
77
77
|
fitcoffs_x = np.zeros((xsize, tsize), dtype=np.float64)
|
|
78
78
|
fitNorm_x = np.zeros((xsize, tsize), dtype=np.float64)
|
|
79
79
|
|
|
80
|
-
for
|
|
81
|
-
if
|
|
80
|
+
for confoundregress in [True, False]:
|
|
81
|
+
if confoundregress:
|
|
82
82
|
twaveformrange = np.transpose(twaveforms[:6, :])
|
|
83
83
|
xwaveformrange = xwaveforms[:, :6]
|
|
84
84
|
print(f"{twaveformrange.shape=} - {xwaveformrange.shape=}")
|
|
@@ -115,9 +115,9 @@ def test_glmpass(debug=True, displayplots=False):
|
|
|
115
115
|
|
|
116
116
|
if debug:
|
|
117
117
|
print(
|
|
118
|
-
f"
|
|
118
|
+
f"confoundregress={confoundregress}, proc by {direction}, {procstring} proc, {maskstatus}"
|
|
119
119
|
)
|
|
120
|
-
|
|
120
|
+
tide_linfitfiltpass.linfitfiltpass(
|
|
121
121
|
xsize,
|
|
122
122
|
testarray,
|
|
123
123
|
thisthreshval,
|
|
@@ -132,7 +132,7 @@ def test_glmpass(debug=True, displayplots=False):
|
|
|
132
132
|
showprogressbar=False,
|
|
133
133
|
procbyvoxel=procbyvoxel,
|
|
134
134
|
nprocs=nprocs,
|
|
135
|
-
|
|
135
|
+
confoundregress=confoundregress,
|
|
136
136
|
)
|
|
137
137
|
if displayplots:
|
|
138
138
|
plt.figure()
|
|
@@ -142,10 +142,10 @@ def test_glmpass(debug=True, displayplots=False):
|
|
|
142
142
|
plt.show()
|
|
143
143
|
if debug:
|
|
144
144
|
print(f"\tMSE: {mse(datatoremove, targetarray)}\n")
|
|
145
|
-
if not
|
|
145
|
+
if not confoundregress:
|
|
146
146
|
assert mse(datatoremove, targetarray) < 1e-3
|
|
147
147
|
|
|
148
148
|
|
|
149
149
|
if __name__ == "__main__":
|
|
150
150
|
mpl.use("TkAgg")
|
|
151
|
-
|
|
151
|
+
test_linfitfiltpass(debug=True, displayplots=True)
|
rapidtide/tests/test_mi.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.
|
rapidtide/tests/test_miscmath.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.
|
|
@@ -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,8 +21,8 @@ import matplotlib.pyplot as plt
|
|
|
21
21
|
import numpy as np
|
|
22
22
|
|
|
23
23
|
import rapidtide.fit as tide_fit
|
|
24
|
-
import rapidtide.glmpass as tide_glmpass
|
|
25
24
|
import rapidtide.io as tide_io
|
|
25
|
+
import rapidtide.linfitfiltpass as tide_linfitfiltpass
|
|
26
26
|
from rapidtide.tests.utils import mse
|
|
27
27
|
|
|
28
28
|
|
|
@@ -130,9 +130,9 @@ def test_motionregress(debug=False, displayplots=False):
|
|
|
130
130
|
|
|
131
131
|
thedataarray = makedataarray(motionregressors)
|
|
132
132
|
numprocitems = thedataarray.shape[0]
|
|
133
|
-
filtereddata = thedataarray
|
|
133
|
+
filtereddata = np.zeros_like(thedataarray)
|
|
134
134
|
r2value = np.zeros(numprocitems)
|
|
135
|
-
dummy =
|
|
135
|
+
dummy = tide_linfitfiltpass.linfitfiltpass(
|
|
136
136
|
numprocitems,
|
|
137
137
|
thedataarray,
|
|
138
138
|
None,
|
|
@@ -144,7 +144,7 @@ def test_motionregress(debug=False, displayplots=False):
|
|
|
144
144
|
None,
|
|
145
145
|
None,
|
|
146
146
|
filtereddata,
|
|
147
|
-
|
|
147
|
+
confoundregress=True,
|
|
148
148
|
nprocs=1,
|
|
149
149
|
showprogressbar=debug,
|
|
150
150
|
procbyvoxel=True,
|
rapidtide/tests/test_nullcorr.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.
|
|
@@ -25,8 +25,8 @@ import numpy as np
|
|
|
25
25
|
import rapidtide.calcnullsimfunc as tide_nullsimfunc
|
|
26
26
|
import rapidtide.correlate as tide_corr
|
|
27
27
|
import rapidtide.filter as tide_filt
|
|
28
|
-
import rapidtide.helper_classes as tide_classes
|
|
29
28
|
import rapidtide.io as tide_io
|
|
29
|
+
import rapidtide.simFuncClasses as tide_simFuncClasses
|
|
30
30
|
import rapidtide.stats as tide_stats
|
|
31
31
|
from rapidtide.tests.utils import get_test_data_path, get_test_temp_path
|
|
32
32
|
|
|
@@ -94,7 +94,7 @@ def test_nullsimfunc(debug=False, displayplots=False):
|
|
|
94
94
|
"hardlimit": True,
|
|
95
95
|
}
|
|
96
96
|
theprefilter = tide_filt.NoncausalFilter("lfo")
|
|
97
|
-
theCorrelator =
|
|
97
|
+
theCorrelator = tide_simFuncClasses.Correlator(
|
|
98
98
|
Fs=Fs,
|
|
99
99
|
ncprefilter=theprefilter,
|
|
100
100
|
detrendorder=optiondict["detrendorder"],
|
|
@@ -102,7 +102,7 @@ def test_nullsimfunc(debug=False, displayplots=False):
|
|
|
102
102
|
corrweighting=optiondict["corrweighting"],
|
|
103
103
|
)
|
|
104
104
|
|
|
105
|
-
thefitter =
|
|
105
|
+
thefitter = tide_simFuncClasses.SimilarityFunctionFitter(
|
|
106
106
|
lagmod=optiondict["lagmod"],
|
|
107
107
|
lthreshval=optiondict["lthreshval"],
|
|
108
108
|
uthreshval=optiondict["uthreshval"],
|
|
@@ -128,14 +128,11 @@ def test_nullsimfunc(debug=False, displayplots=False):
|
|
|
128
128
|
histograms = []
|
|
129
129
|
for thenprocs in [1, -1]:
|
|
130
130
|
for i in range(numpasses):
|
|
131
|
-
corrlist = tide_nullsimfunc.
|
|
132
|
-
sourcedata,
|
|
131
|
+
corrlist = tide_nullsimfunc.getNullDistributionData(
|
|
133
132
|
Fs,
|
|
134
133
|
theCorrelator,
|
|
135
134
|
thefitter,
|
|
136
|
-
|
|
137
|
-
fixdelay=False,
|
|
138
|
-
fixeddelayvalue=0.0,
|
|
135
|
+
None,
|
|
139
136
|
numestreps=optiondict["numestreps"],
|
|
140
137
|
nprocs=thenprocs,
|
|
141
138
|
showprogressbar=optiondict["showprogressbar"],
|