rapidtide 2.9.6__py3-none-any.whl → 3.1.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +92 -42
- 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 +2 -2
- 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 +108 -92
- 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 +587 -1116
- rapidtide/io.py +2569 -468
- rapidtide/linfitfiltpass.py +784 -0
- rapidtide/makelaggedtcs.py +267 -97
- rapidtide/maskutil.py +555 -25
- rapidtide/miscmath.py +835 -144
- 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.6.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 +26 -14
- 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 +1785 -1858
- rapidtide/workflows/rapidtide2std.py +101 -3
- rapidtide/workflows/rapidtide_parser.py +590 -389
- 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.6.dist-info → rapidtide-3.1.3.dist-info}/METADATA +30 -223
- rapidtide-3.1.3.dist-info/RECORD +393 -0
- {rapidtide-2.9.6.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.6.data/scripts/adjustoffset +0 -23
- rapidtide-2.9.6.data/scripts/aligntcs +0 -23
- rapidtide-2.9.6.data/scripts/applydlfilter +0 -23
- rapidtide-2.9.6.data/scripts/atlasaverage +0 -23
- rapidtide-2.9.6.data/scripts/atlastool +0 -23
- rapidtide-2.9.6.data/scripts/calcicc +0 -22
- rapidtide-2.9.6.data/scripts/calctexticc +0 -23
- rapidtide-2.9.6.data/scripts/calcttest +0 -22
- rapidtide-2.9.6.data/scripts/ccorrica +0 -23
- rapidtide-2.9.6.data/scripts/diffrois +0 -23
- rapidtide-2.9.6.data/scripts/endtidalproc +0 -23
- rapidtide-2.9.6.data/scripts/filtnifti +0 -23
- rapidtide-2.9.6.data/scripts/filttc +0 -23
- rapidtide-2.9.6.data/scripts/fingerprint +0 -593
- rapidtide-2.9.6.data/scripts/fixtr +0 -23
- rapidtide-2.9.6.data/scripts/glmfilt +0 -24
- rapidtide-2.9.6.data/scripts/gmscalc +0 -22
- rapidtide-2.9.6.data/scripts/happy +0 -25
- rapidtide-2.9.6.data/scripts/happy2std +0 -23
- rapidtide-2.9.6.data/scripts/happywarp +0 -350
- rapidtide-2.9.6.data/scripts/histnifti +0 -23
- rapidtide-2.9.6.data/scripts/histtc +0 -23
- rapidtide-2.9.6.data/scripts/localflow +0 -23
- rapidtide-2.9.6.data/scripts/mergequality +0 -23
- rapidtide-2.9.6.data/scripts/pairproc +0 -23
- rapidtide-2.9.6.data/scripts/pairwisemergenifti +0 -23
- rapidtide-2.9.6.data/scripts/physiofreq +0 -23
- rapidtide-2.9.6.data/scripts/pixelcomp +0 -23
- rapidtide-2.9.6.data/scripts/plethquality +0 -23
- rapidtide-2.9.6.data/scripts/polyfitim +0 -23
- rapidtide-2.9.6.data/scripts/proj2flow +0 -23
- rapidtide-2.9.6.data/scripts/rankimage +0 -23
- rapidtide-2.9.6.data/scripts/rapidtide +0 -23
- rapidtide-2.9.6.data/scripts/rapidtide2std +0 -23
- rapidtide-2.9.6.data/scripts/resamplenifti +0 -23
- rapidtide-2.9.6.data/scripts/resampletc +0 -23
- rapidtide-2.9.6.data/scripts/retroglm +0 -23
- rapidtide-2.9.6.data/scripts/roisummarize +0 -23
- rapidtide-2.9.6.data/scripts/runqualitycheck +0 -23
- rapidtide-2.9.6.data/scripts/showarbcorr +0 -23
- rapidtide-2.9.6.data/scripts/showhist +0 -23
- rapidtide-2.9.6.data/scripts/showstxcorr +0 -23
- rapidtide-2.9.6.data/scripts/showtc +0 -23
- rapidtide-2.9.6.data/scripts/showxcorr_legacy +0 -536
- rapidtide-2.9.6.data/scripts/showxcorrx +0 -23
- rapidtide-2.9.6.data/scripts/showxy +0 -23
- rapidtide-2.9.6.data/scripts/simdata +0 -23
- rapidtide-2.9.6.data/scripts/spatialdecomp +0 -23
- rapidtide-2.9.6.data/scripts/spatialfit +0 -23
- rapidtide-2.9.6.data/scripts/spatialmi +0 -23
- rapidtide-2.9.6.data/scripts/spectrogram +0 -23
- rapidtide-2.9.6.data/scripts/synthASL +0 -23
- rapidtide-2.9.6.data/scripts/tcfrom2col +0 -23
- rapidtide-2.9.6.data/scripts/tcfrom3col +0 -23
- rapidtide-2.9.6.data/scripts/temporaldecomp +0 -23
- rapidtide-2.9.6.data/scripts/threeD +0 -236
- rapidtide-2.9.6.data/scripts/tidepool +0 -23
- rapidtide-2.9.6.data/scripts/variabilityizer +0 -23
- rapidtide-2.9.6.dist-info/RECORD +0 -359
- rapidtide-2.9.6.dist-info/top_level.txt +0 -86
- {rapidtide-2.9.6.dist-info → rapidtide-3.1.3.dist-info/licenses}/LICENSE +0 -0
|
@@ -0,0 +1,69 @@
|
|
|
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.externaltools as tide_exttools
|
|
24
|
+
from rapidtide.tests.utils import get_examples_path, get_test_temp_path, mse
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def test_externaltools(debug=False, local=False):
|
|
28
|
+
# set input and output directories
|
|
29
|
+
if local:
|
|
30
|
+
exampleroot = "../data/examples/src"
|
|
31
|
+
testtemproot = "./tmp"
|
|
32
|
+
else:
|
|
33
|
+
exampleroot = get_examples_path()
|
|
34
|
+
testtemproot = get_test_temp_path()
|
|
35
|
+
|
|
36
|
+
thefsldir = tide_exttools.fslinfo()
|
|
37
|
+
if debug:
|
|
38
|
+
print(f"{thefsldir=}")
|
|
39
|
+
|
|
40
|
+
if not local:
|
|
41
|
+
os.environ["FSLDIR"] = "/plausible_FSLDIR"
|
|
42
|
+
|
|
43
|
+
thefsldir = tide_exttools.fslinfo()
|
|
44
|
+
if debug:
|
|
45
|
+
print(f"{thefsldir=}")
|
|
46
|
+
|
|
47
|
+
fslexists, c3dexists, antsexists = tide_exttools.whatexists()
|
|
48
|
+
if debug:
|
|
49
|
+
print(f"{fslexists=}, {c3dexists=}, {antsexists=}")
|
|
50
|
+
|
|
51
|
+
fslsubcmd, flirtcmd, applywarpcmd = tide_exttools.getfslcmds()
|
|
52
|
+
if debug:
|
|
53
|
+
print(f"{fslsubcmd=}, {flirtcmd=}, {applywarpcmd=}")
|
|
54
|
+
|
|
55
|
+
tide_exttools.runflirt(
|
|
56
|
+
"inputname", "targetname", "xform", "outputname", warpfile="thewarp", fake=True
|
|
57
|
+
)
|
|
58
|
+
tide_exttools.runflirt("inputname", "targetname", "xform", "outputname", fake=True)
|
|
59
|
+
|
|
60
|
+
tide_exttools.n4correct("inputname", "outputdir", fake=True)
|
|
61
|
+
|
|
62
|
+
tide_exttools.antsapply(
|
|
63
|
+
"inputname", "targetname", "outputroot", ["transform1", "transform2"], fake=True
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
if __name__ == "__main__":
|
|
68
|
+
mpl.use("TkAgg")
|
|
69
|
+
test_externaltools(debug=True, local=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.
|
|
@@ -16,12 +16,14 @@
|
|
|
16
16
|
# limitations under the License.
|
|
17
17
|
#
|
|
18
18
|
#
|
|
19
|
+
import os
|
|
20
|
+
|
|
19
21
|
import matplotlib as mpl
|
|
20
22
|
import matplotlib.pyplot as plt
|
|
21
23
|
import numpy as np
|
|
22
24
|
|
|
23
25
|
from rapidtide.resample import FastResampler, FastResamplerFromFile
|
|
24
|
-
from rapidtide.tests.utils import mse
|
|
26
|
+
from rapidtide.tests.utils import get_test_temp_path, mse
|
|
25
27
|
|
|
26
28
|
|
|
27
29
|
def test_FastResampler(debug=False):
|
|
@@ -29,7 +31,7 @@ def test_FastResampler(debug=False):
|
|
|
29
31
|
padtime = 50.0
|
|
30
32
|
testlen = 1000
|
|
31
33
|
timeaxis = np.arange(0.0, 1.0 * testlen) * tr
|
|
32
|
-
timecoursein = np.
|
|
34
|
+
timecoursein = np.zeros_like(timeaxis, np.float64)
|
|
33
35
|
midpoint = int(testlen // 2) + 1
|
|
34
36
|
timecoursein[midpoint - 1] = np.float64(1.0)
|
|
35
37
|
timecoursein[midpoint] = np.float64(1.0)
|
|
@@ -43,10 +45,12 @@ def test_FastResampler(debug=False):
|
|
|
43
45
|
if debug:
|
|
44
46
|
print(f"{genlaggedtc.initstart=}, {genlaggedtc.initend=}, {genlaggedtc.initstep=}")
|
|
45
47
|
print(f"{genlaggedtc.hiresstart=}, {genlaggedtc.hiresend=}, {genlaggedtc.hiresstep=}")
|
|
48
|
+
genlaggedtc.info()
|
|
46
49
|
|
|
47
50
|
# save and reload with another name
|
|
48
|
-
|
|
49
|
-
|
|
51
|
+
resamplername = os.path.join(get_test_temp_path(), "savedresampler")
|
|
52
|
+
genlaggedtc.save(resamplername)
|
|
53
|
+
genlaggedtc2 = FastResamplerFromFile(resamplername, padtime=padtime, debug=debug)
|
|
50
54
|
if debug:
|
|
51
55
|
print(f"{genlaggedtc2.initstart=}, {genlaggedtc2.initend=}, {genlaggedtc2.initstep=}")
|
|
52
56
|
print(f"{genlaggedtc2.hiresstart=}, {genlaggedtc2.hiresend=}, {genlaggedtc2.hiresstep=}")
|
rapidtide/tests/test_filter.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,51 @@ import matplotlib.pyplot as plt
|
|
|
21
21
|
import numpy as np
|
|
22
22
|
import scipy as sp
|
|
23
23
|
|
|
24
|
+
from rapidtide.ffttools import showfftcache
|
|
24
25
|
from rapidtide.filter import NoncausalFilter
|
|
25
26
|
|
|
26
27
|
|
|
28
|
+
def maketestwaves(timeaxis):
|
|
29
|
+
tclen = len(timeaxis)
|
|
30
|
+
testwaves = []
|
|
31
|
+
testwaves.append(
|
|
32
|
+
{
|
|
33
|
+
"name": "constant high",
|
|
34
|
+
"timeaxis": 1.0 * timeaxis,
|
|
35
|
+
"waveform": np.ones((tclen), dtype="float"),
|
|
36
|
+
}
|
|
37
|
+
)
|
|
38
|
+
testwaves.append(
|
|
39
|
+
{
|
|
40
|
+
"name": "white noise",
|
|
41
|
+
"timeaxis": 1.0 * timeaxis,
|
|
42
|
+
"waveform": 0.3 * np.random.normal(size=tclen),
|
|
43
|
+
}
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
scratch = np.zeros_like(timeaxis)
|
|
47
|
+
scratch[int(tclen / 5) : int(2 * tclen / 5)] = 1.0
|
|
48
|
+
scratch[int(3 * tclen / 5) : int(4 * tclen / 5)] = 1.0
|
|
49
|
+
testwaves.append(
|
|
50
|
+
{
|
|
51
|
+
"name": "block regressor",
|
|
52
|
+
"timeaxis": 1.0 * timeaxis,
|
|
53
|
+
"waveform": 1.0 * scratch,
|
|
54
|
+
}
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
scratch = np.zeros_like(timeaxis)
|
|
58
|
+
scratch[int(tclen / 2) :] = 1.0
|
|
59
|
+
testwaves.append(
|
|
60
|
+
{
|
|
61
|
+
"name": "step regressor",
|
|
62
|
+
"timeaxis": 1.0 * timeaxis,
|
|
63
|
+
"waveform": 1.0 * scratch,
|
|
64
|
+
}
|
|
65
|
+
)
|
|
66
|
+
return testwaves
|
|
67
|
+
|
|
68
|
+
|
|
27
69
|
def spectralfilterprops(thefilter, thefiltername, debug=False):
|
|
28
70
|
lowerstop, lowerpass, upperpass, upperstop = thefilter["filter"].getfreqs()
|
|
29
71
|
freqspace = thefilter["frequencies"][1] - thefilter["frequencies"][0]
|
|
@@ -33,6 +75,11 @@ def spectralfilterprops(thefilter, thefiltername, debug=False):
|
|
|
33
75
|
upperstopindex = int(
|
|
34
76
|
np.min([np.ceil(upperstop / freqspace), len(thefilter["frequencies"]) - 1])
|
|
35
77
|
)
|
|
78
|
+
print(f"max allowable index: {len(thefilter['frequencies']) - 1}")
|
|
79
|
+
lowerstopindex = np.max([0, lowerstopindex])
|
|
80
|
+
lowerpassindex = np.max([0, lowerpassindex])
|
|
81
|
+
upperstopindex = np.min([len(thefilter["frequencies"]) - 1, upperstopindex])
|
|
82
|
+
upperpassindex = np.min([len(thefilter["frequencies"]) - 1, upperpassindex])
|
|
36
83
|
if debug:
|
|
37
84
|
print("filter name:", thefiltername)
|
|
38
85
|
print("freqspace:", freqspace)
|
|
@@ -105,7 +152,7 @@ def eval_filterprops(
|
|
|
105
152
|
allfilters = []
|
|
106
153
|
|
|
107
154
|
# construct all the physiological filters
|
|
108
|
-
for filtertype in ["lfo", "resp", "cardiac", "hrv_lf", "hrv_hf", "hrv_vhf"]:
|
|
155
|
+
for filtertype in ["None", "lfo", "resp", "cardiac", "hrv_lf", "hrv_hf", "hrv_vhf"]:
|
|
109
156
|
testfilter = NoncausalFilter(filtertype=filtertype)
|
|
110
157
|
lstest, lptest, uptest, ustest = testfilter.getfreqs()
|
|
111
158
|
if lptest < nyquist:
|
|
@@ -121,43 +168,59 @@ def eval_filterprops(
|
|
|
121
168
|
}
|
|
122
169
|
)
|
|
123
170
|
|
|
124
|
-
|
|
171
|
+
# make the lowpass filters
|
|
125
172
|
for transferfunc in transferfunclist:
|
|
126
173
|
testfilter = NoncausalFilter(
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
174
|
+
filtertype="arb",
|
|
175
|
+
transferfunc=transferfunc,
|
|
176
|
+
initlowerstop=0.0,
|
|
177
|
+
initlowerpass=0.0,
|
|
178
|
+
initupperpass=0.1,
|
|
179
|
+
initupperstop=0.11,
|
|
180
|
+
)
|
|
131
181
|
lstest, lptest, uptest, ustest = testfilter.getfreqs()
|
|
132
182
|
if lptest < nyquist:
|
|
133
183
|
allfilters.append(
|
|
134
184
|
{
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
185
|
+
"name": "0.1Hz LP " + transferfunc,
|
|
186
|
+
"filter": NoncausalFilter(
|
|
187
|
+
filtertype="arb",
|
|
188
|
+
transferfunc=transferfunc,
|
|
189
|
+
initlowerstop=0.0,
|
|
190
|
+
initlowerpass=0.0,
|
|
191
|
+
initupperpass=0.1,
|
|
192
|
+
initupperstop=0.11,
|
|
193
|
+
debug=False,
|
|
194
|
+
),
|
|
195
|
+
}
|
|
196
|
+
)
|
|
142
197
|
|
|
143
198
|
# make the highpass filters
|
|
144
199
|
for transferfunc in transferfunclist:
|
|
145
200
|
testfilter = NoncausalFilter(
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
201
|
+
filtertype="arb",
|
|
202
|
+
transferfunc=transferfunc,
|
|
203
|
+
initlowerstop=0.09,
|
|
204
|
+
initlowerpass=0.1,
|
|
205
|
+
initupperpass=1.0e20,
|
|
206
|
+
initupperstop=1.0e20,
|
|
207
|
+
)
|
|
150
208
|
lstest, lptest, uptest, ustest = testfilter.getfreqs()
|
|
151
209
|
if lptest < nyquist:
|
|
152
210
|
allfilters.append(
|
|
153
211
|
{
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
212
|
+
"name": "0.1Hz HP " + transferfunc,
|
|
213
|
+
"filter": NoncausalFilter(
|
|
214
|
+
filtertype="arb",
|
|
215
|
+
transferfunc=transferfunc,
|
|
216
|
+
initlowerstop=0.09,
|
|
217
|
+
initlowerpass=0.1,
|
|
218
|
+
initupperpass=1.0e20,
|
|
219
|
+
initupperstop=1.0e20,
|
|
220
|
+
debug=False,
|
|
221
|
+
),
|
|
222
|
+
}
|
|
223
|
+
)
|
|
161
224
|
|
|
162
225
|
# calculate the transfer functions for the filters
|
|
163
226
|
for index in range(0, len(allfilters)):
|
|
@@ -204,50 +267,22 @@ def eval_filterprops(
|
|
|
204
267
|
assert response["upperstopmean"] < 1e4
|
|
205
268
|
|
|
206
269
|
# construct some test waveforms for end effects
|
|
207
|
-
testwaves =
|
|
208
|
-
testwaves.append(
|
|
209
|
-
{
|
|
210
|
-
"name": "constant high",
|
|
211
|
-
"timeaxis": 1.0 * timeaxis,
|
|
212
|
-
"waveform": np.ones((tclen), dtype="float"),
|
|
213
|
-
}
|
|
214
|
-
)
|
|
215
|
-
testwaves.append(
|
|
216
|
-
{
|
|
217
|
-
"name": "white noise",
|
|
218
|
-
"timeaxis": 1.0 * timeaxis,
|
|
219
|
-
"waveform": 0.3 * np.random.normal(size=tclen),
|
|
220
|
-
}
|
|
221
|
-
)
|
|
222
|
-
|
|
223
|
-
scratch = timeaxis * 0.0
|
|
224
|
-
scratch[int(tclen / 5) : int(2 * tclen / 5)] = 1.0
|
|
225
|
-
scratch[int(3 * tclen / 5) : int(4 * tclen / 5)] = 1.0
|
|
226
|
-
testwaves.append(
|
|
227
|
-
{
|
|
228
|
-
"name": "block regressor",
|
|
229
|
-
"timeaxis": 1.0 * timeaxis,
|
|
230
|
-
"waveform": 1.0 * scratch,
|
|
231
|
-
}
|
|
232
|
-
)
|
|
270
|
+
testwaves = maketestwaves(timeaxis)
|
|
233
271
|
|
|
234
272
|
# show the end effects waveforms
|
|
235
273
|
if displayplots:
|
|
236
|
-
legend = []
|
|
237
274
|
plt.figure()
|
|
238
275
|
plt.ylim([-2.2, 2.2 * len(testwaves)])
|
|
239
|
-
offset = 0.0
|
|
240
276
|
for thewave in testwaves:
|
|
277
|
+
legend = []
|
|
278
|
+
offset = 0.0
|
|
241
279
|
for thefilter in allfilters:
|
|
242
280
|
plt.plot(
|
|
243
281
|
thewave["timeaxis"],
|
|
244
282
|
offset + thefilter["filter"].apply(1.0 / sampletime, thewave["waveform"]),
|
|
245
283
|
)
|
|
246
284
|
legend.append(thewave["name"] + ": " + thefilter["name"])
|
|
247
|
-
offset += 1.
|
|
248
|
-
# plt.plot(thewave['timeaxis'], thewave['waveform'] + offset)
|
|
249
|
-
# legend.append(thewave['name'])
|
|
250
|
-
# offset += 2.2
|
|
285
|
+
offset += 1.25
|
|
251
286
|
plt.legend(legend)
|
|
252
287
|
plt.show()
|
|
253
288
|
|
|
@@ -262,6 +297,10 @@ def test_filterprops(displayplots=False, debug=False):
|
|
|
262
297
|
eval_filterprops(
|
|
263
298
|
sampletime=0.1, tclengthinsecs=30000.0, numruns=10, displayplots=displayplots, debug=debug
|
|
264
299
|
)
|
|
300
|
+
eval_filterprops(
|
|
301
|
+
sampletime=0.1, tclengthinsecs=30000.1, numruns=10, displayplots=displayplots, debug=debug
|
|
302
|
+
)
|
|
303
|
+
showfftcache()
|
|
265
304
|
|
|
266
305
|
|
|
267
306
|
if __name__ == "__main__":
|
|
@@ -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.
|
|
@@ -24,9 +24,9 @@ import matplotlib.pyplot as plt
|
|
|
24
24
|
import numpy as np
|
|
25
25
|
|
|
26
26
|
import rapidtide.fit as tide_fit
|
|
27
|
-
import rapidtide.helper_classes as tide_classes
|
|
28
27
|
import rapidtide.io as tide_io
|
|
29
|
-
|
|
28
|
+
import rapidtide.simFuncClasses as tide_simFuncClasses
|
|
29
|
+
from rapidtide.tests.utils import get_examples_path, get_test_temp_path
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
def dumplists(results, targets, failflags):
|
|
@@ -39,7 +39,14 @@ def dumplists(results, targets, failflags):
|
|
|
39
39
|
print(results[i], targets[i], failflags[i])
|
|
40
40
|
|
|
41
41
|
|
|
42
|
-
def eval_fml_result(
|
|
42
|
+
def eval_fml_result(
|
|
43
|
+
absmin, absmax, testvalues, foundvalues, failflags, tolerance=0.0001, debug=False
|
|
44
|
+
):
|
|
45
|
+
if debug:
|
|
46
|
+
print(f"{absmin=}, {absmax=}, {tolerance=}")
|
|
47
|
+
print(f"{testvalues=}")
|
|
48
|
+
print(f"{foundvalues=}")
|
|
49
|
+
print(f"{failflags=}")
|
|
43
50
|
for i in range(len(testvalues)):
|
|
44
51
|
if testvalues[i] < absmin:
|
|
45
52
|
if foundvalues[i] != absmin:
|
|
@@ -61,12 +68,22 @@ def eval_fml_result(absmin, absmax, testvalues, foundvalues, failflags, toleranc
|
|
|
61
68
|
return True
|
|
62
69
|
|
|
63
70
|
|
|
64
|
-
def test_findmaxlag(displayplots=False, debug=False):
|
|
71
|
+
def test_findmaxlag(displayplots=False, local=False, debug=False):
|
|
72
|
+
# set input and output directories
|
|
73
|
+
if local:
|
|
74
|
+
exampleroot = "../data/examples/src"
|
|
75
|
+
testtemproot = "./tmp"
|
|
76
|
+
else:
|
|
77
|
+
exampleroot = get_examples_path()
|
|
78
|
+
testtemproot = get_test_temp_path()
|
|
79
|
+
|
|
80
|
+
if debug:
|
|
81
|
+
print("debug flag is set")
|
|
65
82
|
# for fittype in ["gauss", "quad", "fastquad", "COM", "None", "fastgauss", "gausscf"]:
|
|
66
83
|
for fittype in ["gauss"]:
|
|
67
84
|
print("*************************************")
|
|
68
85
|
print(f"testing fittype: {fittype}")
|
|
69
|
-
textfilename = op.join(
|
|
86
|
+
textfilename = op.join(exampleroot, "lt_rt.txt")
|
|
70
87
|
|
|
71
88
|
# set default variable values
|
|
72
89
|
searchfrac = 0.75
|
|
@@ -101,7 +118,7 @@ def test_findmaxlag(displayplots=False, debug=False):
|
|
|
101
118
|
fmlc_lfailreasons = np.zeros(len(testlags), dtype=np.uint16)
|
|
102
119
|
|
|
103
120
|
# initialize the correlation fitter
|
|
104
|
-
thefitter =
|
|
121
|
+
thefitter = tide_simFuncClasses.SimilarityFunctionFitter(
|
|
105
122
|
corrtimeaxis=xvecs,
|
|
106
123
|
lagmin=lagmin,
|
|
107
124
|
lagmax=lagmax,
|
|
@@ -172,16 +189,24 @@ def test_findmaxlag(displayplots=False, debug=False):
|
|
|
172
189
|
for i in range(len(testlags)):
|
|
173
190
|
print(testlags[i], fml_maxlags[i], fml_lfailreasons[i])
|
|
174
191
|
|
|
175
|
-
assert eval_fml_result(lagmin, lagmax, testlags, fml_maxlags, fml_lfailreasons)
|
|
176
|
-
assert eval_fml_result(absminval, absmaxval, testvals, fml_maxvals, fml_lfailreasons)
|
|
177
192
|
assert eval_fml_result(
|
|
178
|
-
|
|
193
|
+
lagmin, lagmax, testlags, fml_maxlags, fml_lfailreasons, debug=debug
|
|
194
|
+
)
|
|
195
|
+
assert eval_fml_result(
|
|
196
|
+
absminval, absmaxval, testvals, fml_maxvals, fml_lfailreasons, debug=debug
|
|
197
|
+
)
|
|
198
|
+
assert eval_fml_result(
|
|
199
|
+
absminsigma, absmaxsigma, testsigmas, fml_maxsigmas, fml_lfailreasons, debug=debug
|
|
179
200
|
)
|
|
180
201
|
|
|
181
|
-
assert eval_fml_result(lagmin, lagmax, testlags, fmlc_maxlags, fmlc_lfailreasons)
|
|
182
|
-
assert eval_fml_result(absminval, absmaxval, testvals, fmlc_maxvals, fmlc_lfailreasons)
|
|
183
202
|
assert eval_fml_result(
|
|
184
|
-
|
|
203
|
+
lagmin, lagmax, testlags, fmlc_maxlags, fmlc_lfailreasons, debug=debug
|
|
204
|
+
)
|
|
205
|
+
assert eval_fml_result(
|
|
206
|
+
absminval, absmaxval, testvals, fmlc_maxvals, fmlc_lfailreasons, debug=debug
|
|
207
|
+
)
|
|
208
|
+
assert eval_fml_result(
|
|
209
|
+
absminsigma, absmaxsigma, testsigmas, fmlc_maxsigmas, fmlc_lfailreasons, debug=debug
|
|
185
210
|
)
|
|
186
211
|
|
|
187
212
|
if displayplots:
|
|
@@ -315,19 +340,25 @@ def test_findmaxlag(displayplots=False, debug=False):
|
|
|
315
340
|
ax.legend(["findmaxlag_gauss", "classes"])
|
|
316
341
|
plt.show()
|
|
317
342
|
|
|
318
|
-
assert eval_fml_result(
|
|
343
|
+
assert eval_fml_result(
|
|
344
|
+
lagmin, lagmax, testlags, fml_maxlags, fml_wfailreasons, debug=debug
|
|
345
|
+
)
|
|
319
346
|
# assert eval_fml_result(absminval, absmaxval, testvals, fml_maxvals, fml_wfailreasons)
|
|
320
347
|
assert eval_fml_result(
|
|
321
|
-
absminsigma, absmaxsigma, testsigmas, fml_maxsigmas, fml_wfailreasons
|
|
348
|
+
absminsigma, absmaxsigma, testsigmas, fml_maxsigmas, fml_wfailreasons, debug=debug
|
|
322
349
|
)
|
|
323
350
|
|
|
324
|
-
assert eval_fml_result(lagmin, lagmax, testlags, fmlc_maxlags, fmlc_wfailreasons)
|
|
325
|
-
assert eval_fml_result(absminval, absmaxval, testvals, fmlc_maxvals, fmlc_wfailreasons)
|
|
326
351
|
assert eval_fml_result(
|
|
327
|
-
|
|
352
|
+
lagmin, lagmax, testlags, fmlc_maxlags, fmlc_wfailreasons, debug=debug
|
|
353
|
+
)
|
|
354
|
+
assert eval_fml_result(
|
|
355
|
+
absminval, absmaxval, testvals, fmlc_maxvals, fmlc_wfailreasons, debug=debug
|
|
356
|
+
)
|
|
357
|
+
assert eval_fml_result(
|
|
358
|
+
absminsigma, absmaxsigma, testsigmas, fmlc_maxsigmas, fmlc_wfailreasons, debug=debug
|
|
328
359
|
)
|
|
329
360
|
|
|
330
361
|
|
|
331
362
|
if __name__ == "__main__":
|
|
332
363
|
mpl.use("TkAgg")
|
|
333
|
-
test_findmaxlag(displayplots=True, debug=True)
|
|
364
|
+
test_findmaxlag(displayplots=True, local=True, debug=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.
|
|
@@ -25,22 +25,27 @@ import rapidtide.workflows.happy_parser as happy_parser
|
|
|
25
25
|
from rapidtide.tests.utils import create_dir, get_examples_path, get_test_temp_path, mse
|
|
26
26
|
|
|
27
27
|
|
|
28
|
-
def test_fullrunhappy_v1(debug=False, displayplots=False):
|
|
28
|
+
def test_fullrunhappy_v1(debug=False, 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
|
# run happy
|
|
30
38
|
inputargs = [
|
|
31
|
-
os.path.join(
|
|
32
|
-
os.path.join(
|
|
33
|
-
os.path.join(
|
|
39
|
+
os.path.join(exampleroot, "sub-HAPPYTEST.nii.gz"),
|
|
40
|
+
os.path.join(exampleroot, "sub-HAPPYTEST.json"),
|
|
41
|
+
os.path.join(testtemproot, "happyout1"),
|
|
34
42
|
"--mklthreads",
|
|
35
43
|
"-1",
|
|
36
|
-
"--
|
|
37
|
-
"--model",
|
|
38
|
-
"model_revised",
|
|
39
|
-
"--aliasedcorrelation",
|
|
44
|
+
"--spatialregression",
|
|
40
45
|
]
|
|
41
46
|
happy_workflow.happy_main(happy_parser.process_args(inputargs=inputargs))
|
|
42
47
|
|
|
43
48
|
|
|
44
49
|
if __name__ == "__main__":
|
|
45
50
|
mpl.use("TkAgg")
|
|
46
|
-
test_fullrunhappy_v1(debug=True, displayplots=True)
|
|
51
|
+
test_fullrunhappy_v1(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.
|
|
@@ -25,25 +25,31 @@ import rapidtide.workflows.happy_parser as happy_parser
|
|
|
25
25
|
from rapidtide.tests.utils import get_examples_path, get_test_temp_path
|
|
26
26
|
|
|
27
27
|
|
|
28
|
-
def test_fullrunhappy_v2(debug=False, displayplots=False):
|
|
28
|
+
def test_fullrunhappy_v2(debug=False, 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
|
# run happy
|
|
30
38
|
inputargs = [
|
|
31
|
-
os.path.join(
|
|
32
|
-
os.path.join(
|
|
33
|
-
os.path.join(
|
|
34
|
-
"--
|
|
35
|
-
os.path.join(
|
|
39
|
+
os.path.join(exampleroot, "sub-HAPPYTEST.nii.gz"),
|
|
40
|
+
os.path.join(exampleroot, "sub-HAPPYTEST.json"),
|
|
41
|
+
os.path.join(testtemproot, "happyout2"),
|
|
42
|
+
"--estweights",
|
|
43
|
+
os.path.join(exampleroot, "sub-HAPPYTEST_smallmask.nii.gz"),
|
|
36
44
|
"--projmask",
|
|
37
|
-
os.path.join(
|
|
45
|
+
os.path.join(exampleroot, "sub-HAPPYTEST_smallmask.nii.gz"),
|
|
38
46
|
"--mklthreads",
|
|
39
47
|
"-1",
|
|
40
|
-
"--model",
|
|
41
|
-
"model_revised",
|
|
42
48
|
"--fliparteries",
|
|
43
|
-
"--
|
|
49
|
+
"--temporalregression",
|
|
44
50
|
"--cardiacfile",
|
|
45
51
|
os.path.join(
|
|
46
|
-
|
|
52
|
+
exampleroot,
|
|
47
53
|
"sub-HAPPYTEST_desc-slicerescardfromfmri_timeseries.json:cardiacfromfmri_dlfiltered",
|
|
48
54
|
),
|
|
49
55
|
"--increaseoutputlevel",
|
|
@@ -54,4 +60,4 @@ def test_fullrunhappy_v2(debug=False, displayplots=False):
|
|
|
54
60
|
|
|
55
61
|
if __name__ == "__main__":
|
|
56
62
|
mpl.use("TkAgg")
|
|
57
|
-
test_fullrunhappy_v2(debug=True, displayplots=True)
|
|
63
|
+
test_fullrunhappy_v2(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.
|
|
@@ -24,28 +24,43 @@ import rapidtide.workflows.happy as happy_workflow
|
|
|
24
24
|
import rapidtide.workflows.happy_parser as happy_parser
|
|
25
25
|
from rapidtide.tests.utils import get_examples_path, get_test_temp_path
|
|
26
26
|
|
|
27
|
+
try:
|
|
28
|
+
import tensorflow as tf
|
|
29
|
+
|
|
30
|
+
tensorflowexists = True
|
|
31
|
+
except ImportError:
|
|
32
|
+
tensorflowexists = False
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def test_fullrunhappy_v3(debug=False, local=False, displayplots=False):
|
|
36
|
+
# set input and output directories
|
|
37
|
+
if local:
|
|
38
|
+
exampleroot = "../data/examples/src"
|
|
39
|
+
testtemproot = "./tmp"
|
|
40
|
+
else:
|
|
41
|
+
exampleroot = get_examples_path()
|
|
42
|
+
testtemproot = get_test_temp_path()
|
|
27
43
|
|
|
28
|
-
def test_fullrunhappy_v3(debug=False, displayplots=False):
|
|
29
44
|
# run happy
|
|
30
45
|
inputargs = [
|
|
31
|
-
os.path.join(
|
|
32
|
-
os.path.join(
|
|
33
|
-
os.path.join(
|
|
34
|
-
"--
|
|
35
|
-
os.path.join(
|
|
46
|
+
os.path.join(exampleroot, "sub-HAPPYTEST.nii.gz"),
|
|
47
|
+
os.path.join(exampleroot, "sub-HAPPYTEST.json"),
|
|
48
|
+
os.path.join(testtemproot, "happyout3"),
|
|
49
|
+
"--estweights",
|
|
50
|
+
os.path.join(exampleroot, "sub-HAPPYTEST_smallmask.nii.gz"),
|
|
36
51
|
"--projmask",
|
|
37
|
-
os.path.join(
|
|
52
|
+
os.path.join(exampleroot, "sub-HAPPYTEST_smallmask.nii.gz"),
|
|
38
53
|
"--mklthreads",
|
|
39
54
|
"-1",
|
|
40
|
-
"--model",
|
|
41
|
-
"model_revised",
|
|
42
55
|
"--cardcalconly",
|
|
43
56
|
]
|
|
44
|
-
|
|
45
|
-
|
|
57
|
+
if tensorflowexists:
|
|
58
|
+
inputargs.append("--usetensorflow")
|
|
59
|
+
inputargs.append("--model")
|
|
60
|
+
inputargs.append("model_revised_tf2")
|
|
46
61
|
happy_workflow.happy_main(happy_parser.process_args(inputargs=inputargs))
|
|
47
62
|
|
|
48
63
|
|
|
49
64
|
if __name__ == "__main__":
|
|
50
65
|
mpl.use("TkAgg")
|
|
51
|
-
test_fullrunhappy_v3(debug=True, displayplots=True)
|
|
66
|
+
test_fullrunhappy_v3(debug=True, local=True, displayplots=True)
|