rapidtide 3.0.8__tar.gz → 3.0.9__tar.gz
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.
- {rapidtide-3.0.8 → rapidtide-3.0.9}/CHANGELOG.md +8 -1
- {rapidtide-3.0.8/rapidtide.egg-info → rapidtide-3.0.9}/PKG-INFO +1 -1
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/RapidtideDataset.py +1 -1
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/_version.py +3 -3
- rapidtide-3.0.9/rapidtide/data/examples/src/testfmri +42 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/linfitfiltpass.py +44 -25
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/refinedelay.py +2 -2
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/refineregressor.py +1 -1
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/resample.py +8 -8
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_delayestimation.py +1 -1
- rapidtide-3.0.9/rapidtide/tests/test_fullrunrapidtide_v8.py +66 -0
- rapidtide-3.0.9/rapidtide/workflows/calcSimFuncMap.py +271 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/delayvar.py +1 -1
- rapidtide-3.0.9/rapidtide/workflows/fitSimFuncMap.py +427 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/happy.py +1 -1
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/rapidtide.py +173 -41
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/rapidtide_parser.py +23 -2
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/regressfrommaps.py +7 -7
- {rapidtide-3.0.8 → rapidtide-3.0.9/rapidtide.egg-info}/PKG-INFO +1 -1
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide.egg-info/SOURCES.txt +3 -1
- rapidtide-3.0.8/rapidtide/data/examples/src/testfmri +0 -36
- rapidtide-3.0.8/rapidtide/workflows/estimateDelayMap.py +0 -536
- {rapidtide-3.0.8 → rapidtide-3.0.9}/CODE_OF_CONDUCT.md +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/CONTRIBUTING.md +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/INSTALL.rst +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/LICENSE +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/MANIFEST.in +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/README.rst +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/TODO.md +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/USAGE.rst +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/cloud/download-nda-data +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/cloud/downloadcmd-auther +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/cloud/gmscalc-HCPYA +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/cloud/list-rapidtide-relevant-images +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/cloud/mount-and-run +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/cloud/rapidtide-HCPYA +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/cloud/rapidtide-cloud-test +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/cloud/simple-cp-test +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/pyproject.toml +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/Colortables.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/OrthoImageItem.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/__init__.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/calccoherence.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/calcnullsimfunc.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/calcsimfunc.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/correlate.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/examples/src/installtestdata +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/examples/src/test_findmaxlag.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/examples/src/test_io +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/examples/src/test_mlregressallt.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/examples/src/test_rapidtidecompare +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/examples/src/testalign +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/examples/src/testatlasaverage +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/examples/src/testboth +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/examples/src/testcifti +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/examples/src/testcomplex +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/examples/src/testdecomp +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/examples/src/testdelayvar +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/examples/src/testfileorfloat +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/examples/src/testfingerprint +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/examples/src/testfmridocker +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/examples/src/testfrozen +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/examples/src/testfuncs +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/examples/src/testglmfilt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/examples/src/testhappy +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/examples/src/testinitdelay +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/examples/src/testlinfit +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/examples/src/testlocalflow +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/examples/src/testmodels +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/examples/src/testnewrefine +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/examples/src/testnoiseamp +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/examples/src/testoscorr +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/examples/src/testpad +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/examples/src/testrefineonly +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/examples/src/testretro +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/examples/src/testretrolagtcs +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/examples/src/testsimdata +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/models/model_cnn_w064_l13_fn20_fl08/loss.png +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/models/model_cnn_w064_l13_fn20_fl08/loss.txt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/models/model_cnn_w064_l13_fn20_fl08/model.keras +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/models/model_cnn_w064_l13_fn20_fl08/model_meta.json +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/models/model_revised_tf2/model.keras +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/models/model_revised_tf2/model_meta.json +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/models/model_serdar2_tf2/model.keras +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/models/model_serdar2_tf2/model_meta.json +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/models/model_serdar_tf2/model.keras +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/models/model_serdar_tf2/model_meta.json +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/ASPECTS_2mm.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/ASPECTS_2mm_mask.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/ASPECTS_3mm.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/ASPECTS_3mm_mask.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/ASPECTS_regions.txt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/ATTbasedFlowTerritories_split_2mm.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/ATTbasedFlowTerritories_split_2mm_mask.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/ATTbasedFlowTerritories_split_regions.txt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/HCP1200_binmask_2mm.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/HCP1200_lag_2mm.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/HCP1200_mask_2mm.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/HCP1200_negmask_2mm.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/HCP1200_sigma_2mm.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/HCP1200_strength_2mm.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/HCP1200v2_MTT_2mm.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/HCP1200v2_binmask_2mm.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/HCP1200v2_csf_2mm.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/HCP1200v2_gray_2mm.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/HCP1200v2_graylaghist.json +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/HCP1200v2_graylaghist.tsv.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/HCP1200v2_laghist.json +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/HCP1200v2_laghist.tsv.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/HCP1200v2_mask_2mm.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/HCP1200v2_maxcorr_2mm.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/HCP1200v2_maxtime_2mm.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/HCP1200v2_maxwidth_2mm.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/HCP1200v2_negmask_2mm.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/HCP1200v2_timepercentile_2mm.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/HCP1200v2_white_2mm.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/HCP1200v2_whitelaghist.json +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/HCP1200v2_whitelaghist.tsv.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1-seg2.xml +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1-seg2_regions.txt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1-seg2_space-MNI152NLin6Asym_2mm.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1.xml +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1_regions.txt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1_space-MNI152NLin6Asym_2mm.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL1_space-MNI152NLin6Asym_2mm_mask.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL2.xml +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL2_regions.txt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL2_space-MNI152NLin6Asym_2mm.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/JHU-ArterialTerritoriesNoVent-LVL2_space-MNI152NLin6Asym_2mm_mask.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/MNI152_T1_1mm_Brain_FAST_seg.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/MNI152_T1_1mm_Brain_Mask.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/MNI152_T1_2mm_Brain_FAST_seg.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/MNI152_T1_2mm_Brain_Mask.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/MNI152_T1_3mm.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/MNI152_T1_3mm_brain_mask.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/data/reference/slicetimes/HCP-YA_slicetimes.txt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/dlfilter.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/externaltools.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/fMRIData_class.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/filter.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/fit.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/genericmultiproc.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/happy_supportfuncs.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/helper_classes.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/io.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/makelaggedtcs.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/maskutil.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/miscmath.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/multiproc.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/patchmatch.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/peakeval.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/qualitycheck.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/__init__.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/adjustoffset.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/aligntcs.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/applydlfilter.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/atlasaverage.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/atlastool.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/calcicc.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/calctexticc.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/calcttest.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/ccorrica.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/delayvar.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/diffrois.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/endtidalproc.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/fdica.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/filtnifti.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/filttc.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/fingerprint.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/fixtr.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/gmscalc.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/happy.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/happy2std.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/happywarp.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/histnifti.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/histtc.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/linfitfilt.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/localflow.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/mergequality.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/pairproc.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/pairwisemergenifti.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/physiofreq.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/pixelcomp.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/plethquality.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/polyfitim.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/proj2flow.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/rankimage.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/rapidtide.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/rapidtide2std.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/resamplenifti.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/resampletc.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/retrolagtcs.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/retroregress.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/roisummarize.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/runqualitycheck.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/showarbcorr.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/showhist.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/showstxcorr.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/showtc.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/showxcorr_legacy.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/showxcorrx.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/showxy.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/simdata.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/spatialdecomp.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/spatialfit.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/spatialmi.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/spectrogram.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/stupidramtricks.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/synthASL.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/tcfrom2col.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/tcfrom3col.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/temporaldecomp.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/testhrv.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/threeD.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/tidepool.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/scripts/variabilityizer.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/simFuncClasses.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/simfuncfit.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/stats.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/.coveragerc +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/__init__.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/cleanposttest +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/matplotlibrc +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/resethappytargets +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/resetrapidtidetargets +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/resettargets +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/runlocaltest +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/showdirectories +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/showkernels +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_aliasedcorrelate.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_aligntcs.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_calcicc.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_cleanregressor.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_congrid.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_correlate.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_corrpass.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_doresample.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_externaltools.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_fastresampler.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_filter.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_findmaxlag.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_fullrunhappy_v1.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_fullrunhappy_v2.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_fullrunhappy_v3.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_fullrunhappy_v4.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_fullrunhappy_v5.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_fullrunrapidtide_v1.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_fullrunrapidtide_v2.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_fullrunrapidtide_v3.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_fullrunrapidtide_v4.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_fullrunrapidtide_v5.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_fullrunrapidtide_v6.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_fullrunrapidtide_v7.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_getparsers.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_io.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_linfitfiltpass.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_mi.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_miscmath.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_motionregress.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_nullcorr.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_padvec.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_parserfuncs.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_phaseanalysis.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_rapidtideparser.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_refinedelay.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_runmisc.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_sharedmem.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_simulate.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_stcorrelate.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_timeshift.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_valtoindex.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/test_zRapidtideDataset.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/testdata/100206_REST1_LR_cardfromfmri_25.0Hz.txt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/testdata/100206_REST1_LR_cardfromfmri_dlfiltered_25.0Hz.txt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/testdata/100206_REST1_LR_info.txt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/testdata/100206_REST1_LR_normcardfromfmri_25.0Hz.txt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/testdata/100206_REST1_LR_normcardfromfmri_dlfiltered_25.0Hz.txt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/testdata/100206_REST1_LR_normpleth_25.0Hz.txt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/testdata/100206_REST1_LR_pleth_25.0Hz.txt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/testdata/100206_REST1_LR_pleth_dlfiltered_25.0Hz.txt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/testdata/fmri_globalmean.txt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/testdata/happy_phase1target_vesselmask.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/testdata/happy_phase2output_vesselmask.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/testdata/happy_target_vesselmask.nii.gz +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/testdata/lforegressor.txt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/testdata/lt_rt.txt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/testdata/phasetest.txt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/testdata/rapidtide2x_phase1target_reference_fmrires.txt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/testdata/stcorrtest_Rvalue.txt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/testdata/stcorrtest_delay.txt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/testdata/stcorrtest_mask.txt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/testdata/stcorrtest_pearson.txt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/testdata/stcorrtest_pvalue.txt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/testdata/testfilt.txt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/tmp/.placeholder.txt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/usercustomize.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tests/utils.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tidepoolTemplate.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tidepoolTemplate.ui +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tidepoolTemplate_alt.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tidepoolTemplate_alt.ui +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tidepoolTemplate_alt_qt6.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tidepoolTemplate_big.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tidepoolTemplate_big.ui +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tidepoolTemplate_big_qt6.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/tidepoolTemplate_qt6.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/util.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/voxelData.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/wiener.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/wiener2.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/__init__.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/adjustoffset.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/aligntcs.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/applydlfilter.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/atlasaverage.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/atlastool.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/calctexticc.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/ccorrica.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/cleanregressor.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/diffrois.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/endtidalproc.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/fdica.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/filtnifti.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/filttc.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/fixtr.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/gmscalc.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/happy2std.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/happy_parser.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/histnifti.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/histtc.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/linfitfilt.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/localflow.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/mergequality.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/niftidecomp.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/niftistats.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/pairproc.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/pairwisemergenifti.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/parser_funcs.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/physiofreq.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/pixelcomp.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/plethquality.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/polyfitim.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/proj2flow.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/rankimage.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/rapidtide2std.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/refineDelayMap.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/refineRegressor.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/resamplenifti.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/resampletc.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/retrolagtcs.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/retroregress.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/roisummarize.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/runqualitycheck.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/showarbcorr.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/showhist.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/showstxcorr.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/showtc.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/showxcorrx.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/showxy.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/simdata.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/spatialfit.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/spatialmi.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/spectrogram.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/synthASL.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/tcfrom2col.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/tcfrom3col.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/tidepool.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/utils.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide/workflows/variabilityizer.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide.egg-info/dependency_links.txt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide.egg-info/entry_points.txt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide.egg-info/requires.txt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/rapidtide.egg-info/top_level.txt +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/setup.cfg +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/setup.py +0 -0
- {rapidtide-3.0.8 → rapidtide-3.0.9}/versioneer.py +0 -0
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
# Release history
|
|
2
2
|
|
|
3
|
+
## Version 3.0.9 (7/3/25)
|
|
4
|
+
* (rapidtide) Added an alternative method for coarse delay estimation (set ``--similaritymetric riptide`` to select). This uses a fit to a set of delayed regressors (actually, this is the original RIPTiDe method from ~2010).
|
|
5
|
+
* (rapidtide) Separated coarse delay estimation and similarity function fitting into two separate workflows (they were together in v3.0.8).
|
|
6
|
+
* (rapidtide) Fixed a stupid bug in the placement of the delay refinement code block for each pass.
|
|
7
|
+
* (rapidtide) Laid most of the groundwork for dynamically switching delay estimation methods and parameters between passes.
|
|
8
|
+
* (package) Accepted several dependabot PRs.
|
|
9
|
+
|
|
3
10
|
## Version 3.0.8 (6/26/25)
|
|
4
11
|
* (rapidtide) Fix https://github.com/bbfrederick/rapidtide/issues/213 (thanks to https://github.com/tomosumi for reporting the bug).
|
|
5
12
|
* (rapidtide) Split coarse delay estimation and fitting out into a separate workflow.
|
|
6
13
|
* (rapidtide) Split delay refinement out into a separate workflow.
|
|
7
14
|
* (rapidtide) Split regressor refinement out into a separate workflow.
|
|
8
|
-
* (rapidtide) All this is in preparation for a new, modular workflow with more flexible control of the fitting process. It's not done yet,
|
|
15
|
+
* (rapidtide) All this is in preparation for a new, modular workflow with more flexible control of the fitting process. It's not done yet, but this is getting all internal code blocks ready for it. I want to pause here to make sure I haven't broken anything (all the automated tests pass, but I want to be careful).
|
|
9
16
|
* (docs) Some improvement to the tidepool section.
|
|
10
17
|
* (package) Made a more streamlined and rational interface for allocating shared memory.
|
|
11
18
|
* (package) Resolved incompatibility of statsmodels and scipy>1.15.3.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rapidtide
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.9
|
|
4
4
|
Summary: Tools for performing correlation analysis on fMRI data.
|
|
5
5
|
Author: Taylor Salo, Daniel M. Drucker, Ph.D., Jeffrey N Stout, Yaroslav O. Halchenko, Derek Monroe
|
|
6
6
|
Author-email: "Blaise deB. Frederick" <blaise.frederick@gmail.com>
|
|
@@ -408,7 +408,7 @@ class Overlay:
|
|
|
408
408
|
|
|
409
409
|
def maskData(self):
|
|
410
410
|
self.mask = self.geommask * self.funcmask
|
|
411
|
-
maskhash = hash(self.mask.
|
|
411
|
+
maskhash = hash(self.mask.tobytes())
|
|
412
412
|
# these operations are expensive, so only do them if the mask is changed
|
|
413
413
|
if (maskhash == self.maskhash) and (self.verbose > 1):
|
|
414
414
|
print("mask has not changed")
|
|
@@ -8,11 +8,11 @@ import json
|
|
|
8
8
|
|
|
9
9
|
version_json = '''
|
|
10
10
|
{
|
|
11
|
-
"date": "2025-
|
|
11
|
+
"date": "2025-07-03T10:21:49-0400",
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "3.0.
|
|
14
|
+
"full-revisionid": "292e93bbd0a9c13e2d62a00746e14522b0783156",
|
|
15
|
+
"version": "3.0.9"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
rapidtide \
|
|
4
|
+
--spatialfilt 2.5 \
|
|
5
|
+
--nprocs -1 \
|
|
6
|
+
--searchrange -7.5 30 \
|
|
7
|
+
--simcalcrange 50 -1 \
|
|
8
|
+
--outputlevel more \
|
|
9
|
+
--graymattermask sub-RAPIDTIDETEST_synthseg.nii.gz:SSEG_GRAY \
|
|
10
|
+
--brainmask sub-RAPIDTIDETEST_brainmask.nii.gz \
|
|
11
|
+
--whitemattermask sub-RAPIDTIDETEST_synthseg.nii.gz:SSEG_WHITE \
|
|
12
|
+
--csfmask sub-RAPIDTIDETEST_synthseg.nii.gz:SSEG_CSF \
|
|
13
|
+
--cleanrefined \
|
|
14
|
+
--nofitfilt \
|
|
15
|
+
--refinedelayeachpass \
|
|
16
|
+
--similaritymetric correlation \
|
|
17
|
+
sub-RAPIDTIDETEST.nii.gz \
|
|
18
|
+
../dst/sub-RAPIDTIDETEST_simfunc
|
|
19
|
+
|
|
20
|
+
rapidtide \
|
|
21
|
+
--spatialfilt 2.5 \
|
|
22
|
+
--nprocs -1 \
|
|
23
|
+
--searchrange -7.5 30 \
|
|
24
|
+
--simcalcrange 50 -1 \
|
|
25
|
+
--outputlevel more \
|
|
26
|
+
--graymattermask sub-RAPIDTIDETEST_synthseg.nii.gz:SSEG_GRAY \
|
|
27
|
+
--brainmask sub-RAPIDTIDETEST_brainmask.nii.gz \
|
|
28
|
+
--whitemattermask sub-RAPIDTIDETEST_synthseg.nii.gz:SSEG_WHITE \
|
|
29
|
+
--csfmask sub-RAPIDTIDETEST_synthseg.nii.gz:SSEG_CSF \
|
|
30
|
+
--cleanrefined \
|
|
31
|
+
--nofitfilt \
|
|
32
|
+
--refinedelayeachpass \
|
|
33
|
+
--similaritymetric riptide \
|
|
34
|
+
--riptidestep 1.5 \
|
|
35
|
+
--ampthresh 0.0 \
|
|
36
|
+
--numnull 0 \
|
|
37
|
+
sub-RAPIDTIDETEST.nii.gz \
|
|
38
|
+
../dst/sub-RAPIDTIDETEST_riptide
|
|
39
|
+
|
|
40
|
+
tidepool --uistyle big --dataset \
|
|
41
|
+
../dst/sub-RAPIDTIDETEST_simfunc_ \
|
|
42
|
+
../dst/sub-RAPIDTIDETEST_riptide_ &
|
|
@@ -91,11 +91,12 @@ def linfitfiltpass(
|
|
|
91
91
|
filtereddata,
|
|
92
92
|
nprocs=1,
|
|
93
93
|
alwaysmultiproc=False,
|
|
94
|
+
voxelspecific=True,
|
|
94
95
|
confoundregress=False,
|
|
95
|
-
|
|
96
|
+
coefficientsonly=False,
|
|
96
97
|
procbyvoxel=True,
|
|
97
98
|
showprogressbar=True,
|
|
98
|
-
|
|
99
|
+
chunksize=1000,
|
|
99
100
|
rt_floatset=np.float64,
|
|
100
101
|
rt_floattype="float64",
|
|
101
102
|
verbose=True,
|
|
@@ -142,7 +143,7 @@ def linfitfiltpass(
|
|
|
142
143
|
|
|
143
144
|
# process and send the data
|
|
144
145
|
if procbyvoxel:
|
|
145
|
-
if confoundregress:
|
|
146
|
+
if confoundregress or (not voxelspecific):
|
|
146
147
|
outQ.put(
|
|
147
148
|
_procOneRegressionFitItem(
|
|
148
149
|
val,
|
|
@@ -163,7 +164,7 @@ def linfitfiltpass(
|
|
|
163
164
|
)
|
|
164
165
|
)
|
|
165
166
|
else:
|
|
166
|
-
if confoundregress:
|
|
167
|
+
if confoundregress or (not voxelspecific):
|
|
167
168
|
outQ.put(
|
|
168
169
|
_procOneRegressionFitItem(
|
|
169
170
|
val,
|
|
@@ -197,7 +198,7 @@ def linfitfiltpass(
|
|
|
197
198
|
indexaxis=indexaxis,
|
|
198
199
|
procunit=procunit,
|
|
199
200
|
showprogressbar=showprogressbar,
|
|
200
|
-
chunksize=
|
|
201
|
+
chunksize=chunksize,
|
|
201
202
|
)
|
|
202
203
|
|
|
203
204
|
# unpack the data
|
|
@@ -208,7 +209,7 @@ def linfitfiltpass(
|
|
|
208
209
|
r2value[voxel[0]] = voxel[3]
|
|
209
210
|
filtereddata[voxel[0], :] = voxel[7]
|
|
210
211
|
itemstotal += 1
|
|
211
|
-
elif
|
|
212
|
+
elif coefficientsonly:
|
|
212
213
|
for voxel in data_out:
|
|
213
214
|
meanvalue[voxel[0]] = voxel[1]
|
|
214
215
|
rvalue[voxel[0]] = voxel[2]
|
|
@@ -240,7 +241,7 @@ def linfitfiltpass(
|
|
|
240
241
|
r2value[timepoint[0]] = timepoint[3]
|
|
241
242
|
filtereddata[:, timepoint[0]] = timepoint[7]
|
|
242
243
|
itemstotal += 1
|
|
243
|
-
elif
|
|
244
|
+
elif coefficientsonly:
|
|
244
245
|
for timepoint in data_out:
|
|
245
246
|
meanvalue[timepoint[0]] = timepoint[1]
|
|
246
247
|
rvalue[timepoint[0]] = timepoint[2]
|
|
@@ -296,23 +297,41 @@ def linfitfiltpass(
|
|
|
296
297
|
rt_floatset=rt_floatset,
|
|
297
298
|
rt_floattype=rt_floattype,
|
|
298
299
|
)
|
|
299
|
-
elif
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
300
|
+
elif coefficientsonly:
|
|
301
|
+
if voxelspecific:
|
|
302
|
+
(
|
|
303
|
+
dummy,
|
|
304
|
+
meanvalue[vox],
|
|
305
|
+
rvalue[vox],
|
|
306
|
+
r2value[vox],
|
|
307
|
+
fitcoeff[vox],
|
|
308
|
+
fitNorm[vox],
|
|
309
|
+
dummy,
|
|
310
|
+
dummy,
|
|
311
|
+
) = _procOneRegressionFitItem(
|
|
312
|
+
vox,
|
|
313
|
+
theevs[vox, :],
|
|
314
|
+
thedata,
|
|
315
|
+
rt_floatset=rt_floatset,
|
|
316
|
+
rt_floattype=rt_floattype,
|
|
317
|
+
)
|
|
318
|
+
else:
|
|
319
|
+
(
|
|
320
|
+
dummy,
|
|
321
|
+
meanvalue[vox],
|
|
322
|
+
rvalue[vox],
|
|
323
|
+
r2value[vox],
|
|
324
|
+
fitcoeff[vox],
|
|
325
|
+
fitNorm[vox],
|
|
326
|
+
dummy,
|
|
327
|
+
dummy,
|
|
328
|
+
) = _procOneRegressionFitItem(
|
|
329
|
+
vox,
|
|
330
|
+
theevs,
|
|
331
|
+
thedata,
|
|
332
|
+
rt_floatset=rt_floatset,
|
|
333
|
+
rt_floattype=rt_floattype,
|
|
334
|
+
)
|
|
316
335
|
else:
|
|
317
336
|
(
|
|
318
337
|
dummy,
|
|
@@ -357,7 +376,7 @@ def linfitfiltpass(
|
|
|
357
376
|
rt_floatset=rt_floatset,
|
|
358
377
|
rt_floattype=rt_floattype,
|
|
359
378
|
)
|
|
360
|
-
elif
|
|
379
|
+
elif coefficientsonly:
|
|
361
380
|
(
|
|
362
381
|
dummy,
|
|
363
382
|
meanvalue[timepoint],
|
|
@@ -391,10 +391,10 @@ def getderivratios(
|
|
|
391
391
|
nprocs_makelaggedtcs=optiondict["nprocs_makelaggedtcs"],
|
|
392
392
|
nprocs_regressionfilt=optiondict["nprocs_regressionfilt"],
|
|
393
393
|
regressderivs=regressderivs,
|
|
394
|
-
|
|
394
|
+
chunksize=optiondict["mp_chunksize"],
|
|
395
395
|
showprogressbar=optiondict["showprogressbar"],
|
|
396
396
|
alwaysmultiproc=optiondict["alwaysmultiproc"],
|
|
397
|
-
|
|
397
|
+
coefficientsonly=True,
|
|
398
398
|
debug=debug,
|
|
399
399
|
)
|
|
400
400
|
|
|
@@ -590,7 +590,7 @@ def dorefine(
|
|
|
590
590
|
sys.exit()
|
|
591
591
|
LGR.info(
|
|
592
592
|
f"Using {len(thefit.components_)} component(s), accounting for "
|
|
593
|
-
+ f"{100.0 * np.cumsum(thefit.explained_variance_ratio_)[len(thefit.components_) - 1]}% of the variance"
|
|
593
|
+
+ f"{100.0 * np.cumsum(thefit.explained_variance_ratio_)[len(thefit.components_) - 1]:.2f}% of the variance"
|
|
594
594
|
)
|
|
595
595
|
reduceddata = thefit.inverse_transform(thefit.transform(refinevoxels))
|
|
596
596
|
if debug:
|
|
@@ -597,7 +597,7 @@ def arbresample(
|
|
|
597
597
|
return resampled
|
|
598
598
|
|
|
599
599
|
|
|
600
|
-
def upsample(inputdata, Fs_init, Fs_higher, method="univariate", intfac=False, debug=False):
|
|
600
|
+
def upsample(inputdata, Fs_init, Fs_higher, method="univariate", intfac=False, dofilt=True, debug=False):
|
|
601
601
|
starttime = time.time()
|
|
602
602
|
if Fs_higher <= Fs_init:
|
|
603
603
|
print("upsample: target frequency must be higher than initial frequency")
|
|
@@ -607,19 +607,19 @@ def upsample(inputdata, Fs_init, Fs_higher, method="univariate", intfac=False, d
|
|
|
607
607
|
orig_x = np.linspace(0.0, (1.0 / Fs_init) * len(inputdata), num=len(inputdata), endpoint=False)
|
|
608
608
|
endpoint = orig_x[-1] - orig_x[0]
|
|
609
609
|
ts_higher = 1.0 / Fs_higher
|
|
610
|
-
numresamppts = int(endpoint // ts_higher + 1)
|
|
611
610
|
if intfac:
|
|
612
611
|
numresamppts = int(Fs_higher // Fs_init) * len(inputdata)
|
|
613
612
|
else:
|
|
614
613
|
numresamppts = int(endpoint // ts_higher + 1)
|
|
615
614
|
upsampled_x = np.arange(0.0, ts_higher * numresamppts, ts_higher)
|
|
616
615
|
upsampled_y = doresample(orig_x, inputdata, upsampled_x, method=method)
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
616
|
+
if dofilt:
|
|
617
|
+
initfilter = tide_filt.NoncausalFilter(
|
|
618
|
+
filtertype="arb", transferfunc="trapezoidal", debug=debug
|
|
619
|
+
)
|
|
620
|
+
stopfreq = np.min([1.1 * Fs_init / 2.0, Fs_higher / 2.0])
|
|
621
|
+
initfilter.setfreqs(0.0, 0.0, Fs_init / 2.0, stopfreq)
|
|
622
|
+
upsampled_y = initfilter.apply(Fs_higher, upsampled_y)
|
|
623
623
|
if debug:
|
|
624
624
|
print("upsampling took", time.time() - starttime, "seconds")
|
|
625
625
|
return upsampled_y
|
|
@@ -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,271 @@
|
|
|
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
|
+
import rapidtide.calcsimfunc as tide_calcsimfunc
|
|
22
|
+
import rapidtide.io as tide_io
|
|
23
|
+
import rapidtide.linfitfiltpass as tide_linfitfiltpass
|
|
24
|
+
import rapidtide.makelaggedtcs as tide_makelagged
|
|
25
|
+
import rapidtide.stats as tide_stats
|
|
26
|
+
import rapidtide.util as tide_util
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def makeRIPTiDeRegressors(
|
|
30
|
+
initial_fmri_x,
|
|
31
|
+
lagmin,
|
|
32
|
+
lagmax,
|
|
33
|
+
lagtcgenerator,
|
|
34
|
+
LGR,
|
|
35
|
+
nprocs=1,
|
|
36
|
+
alwaysmultiproc=False,
|
|
37
|
+
showprogressbar=True,
|
|
38
|
+
chunksize=1000,
|
|
39
|
+
targetstep=2.5,
|
|
40
|
+
edgepad=0,
|
|
41
|
+
rt_floatset=np.float64,
|
|
42
|
+
rt_floattype="float64",
|
|
43
|
+
debug=False,
|
|
44
|
+
):
|
|
45
|
+
# make the RIPTiDe evs
|
|
46
|
+
numdelays = int(np.round((lagmax - lagmin) / targetstep, 0))
|
|
47
|
+
numregressors = numdelays + 2 * edgepad
|
|
48
|
+
delaystep = (lagmax - lagmin) / numdelays
|
|
49
|
+
delaystouse = np.linspace(
|
|
50
|
+
lagmin - edgepad * delaystep,
|
|
51
|
+
lagmax + edgepad * delaystep,
|
|
52
|
+
numdelays + 2 * edgepad,
|
|
53
|
+
endpoint=True,
|
|
54
|
+
)
|
|
55
|
+
if debug:
|
|
56
|
+
print(f"{lagmin=}")
|
|
57
|
+
print(f"{lagmax=}")
|
|
58
|
+
print(f"{numdelays=}")
|
|
59
|
+
print(f"{edgepad=}")
|
|
60
|
+
print(f"{numregressors=}")
|
|
61
|
+
print(f"{delaystep=}")
|
|
62
|
+
print(f"{delaystouse=}, {len(delaystouse)}")
|
|
63
|
+
print(f"{len(initial_fmri_x)}")
|
|
64
|
+
|
|
65
|
+
regressorset = np.zeros((len(delaystouse), len(initial_fmri_x)), dtype=rt_floatset)
|
|
66
|
+
|
|
67
|
+
dummy = tide_makelagged.makelaggedtcs(
|
|
68
|
+
lagtcgenerator,
|
|
69
|
+
initial_fmri_x,
|
|
70
|
+
np.ones_like(delaystouse, dtype=np.float64),
|
|
71
|
+
delaystouse,
|
|
72
|
+
regressorset,
|
|
73
|
+
LGR=LGR,
|
|
74
|
+
nprocs=nprocs,
|
|
75
|
+
alwaysmultiproc=alwaysmultiproc,
|
|
76
|
+
showprogressbar=showprogressbar,
|
|
77
|
+
chunksize=chunksize,
|
|
78
|
+
rt_floatset=rt_floatset,
|
|
79
|
+
rt_floattype=rt_floattype,
|
|
80
|
+
debug=debug,
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
if debug:
|
|
84
|
+
print(regressorset)
|
|
85
|
+
|
|
86
|
+
return regressorset, delaystouse
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
def calcSimFunc(
|
|
90
|
+
numvalidspatiallocs,
|
|
91
|
+
fmri_data_valid,
|
|
92
|
+
validsimcalcstart,
|
|
93
|
+
validsimcalcend,
|
|
94
|
+
osvalidsimcalcstart,
|
|
95
|
+
osvalidsimcalcend,
|
|
96
|
+
initial_fmri_x,
|
|
97
|
+
os_fmri_x,
|
|
98
|
+
theCorrelator,
|
|
99
|
+
theMutualInformationator,
|
|
100
|
+
cleaned_referencetc,
|
|
101
|
+
corrout,
|
|
102
|
+
regressorset,
|
|
103
|
+
delayvals,
|
|
104
|
+
sLFOfitmean,
|
|
105
|
+
r2value,
|
|
106
|
+
fitcoeff,
|
|
107
|
+
fitNorm,
|
|
108
|
+
meanval,
|
|
109
|
+
corrscale,
|
|
110
|
+
outputname,
|
|
111
|
+
outcorrarray,
|
|
112
|
+
validvoxels,
|
|
113
|
+
nativecorrshape,
|
|
114
|
+
theinputdata,
|
|
115
|
+
theheader,
|
|
116
|
+
lagmininpts,
|
|
117
|
+
lagmaxinpts,
|
|
118
|
+
thepass,
|
|
119
|
+
optiondict,
|
|
120
|
+
LGR,
|
|
121
|
+
TimingLGR,
|
|
122
|
+
similaritymetric="correlation",
|
|
123
|
+
simcalcoffset=0,
|
|
124
|
+
echocancel=False,
|
|
125
|
+
checkpoint=False,
|
|
126
|
+
nprocs=1,
|
|
127
|
+
alwaysmultiproc=False,
|
|
128
|
+
oversampfactor=2,
|
|
129
|
+
interptype="univariate",
|
|
130
|
+
showprogressbar=True,
|
|
131
|
+
chunksize=1000,
|
|
132
|
+
rt_floatset=np.float64,
|
|
133
|
+
rt_floattype="float64",
|
|
134
|
+
mklthreads=1,
|
|
135
|
+
threaddebug=False,
|
|
136
|
+
debug=False,
|
|
137
|
+
):
|
|
138
|
+
# Step 1 - Correlation step
|
|
139
|
+
if similaritymetric == "mutualinfo":
|
|
140
|
+
similaritytype = "Mutual information"
|
|
141
|
+
elif similaritymetric == "correlation":
|
|
142
|
+
similaritytype = "Correlation"
|
|
143
|
+
elif similaritymetric == "riptide":
|
|
144
|
+
similaritytype = "RIPTiDe"
|
|
145
|
+
else:
|
|
146
|
+
similaritytype = "MI enhanced correlation"
|
|
147
|
+
LGR.info(f"\n\n{similaritytype} calculation, pass {thepass}")
|
|
148
|
+
TimingLGR.info(f"{similaritytype} calculation start, pass {thepass}")
|
|
149
|
+
|
|
150
|
+
tide_util.disablemkl(nprocs, debug=threaddebug)
|
|
151
|
+
if similaritymetric == "mutualinfo":
|
|
152
|
+
theMutualInformationator.setlimits(lagmininpts, lagmaxinpts)
|
|
153
|
+
(
|
|
154
|
+
voxelsprocessed_cp,
|
|
155
|
+
theglobalmaxlist,
|
|
156
|
+
trimmedcorrscale,
|
|
157
|
+
) = tide_calcsimfunc.correlationpass(
|
|
158
|
+
fmri_data_valid[:, validsimcalcstart : validsimcalcend + 1],
|
|
159
|
+
cleaned_referencetc,
|
|
160
|
+
theMutualInformationator,
|
|
161
|
+
initial_fmri_x[validsimcalcstart : validsimcalcend + 1],
|
|
162
|
+
os_fmri_x[osvalidsimcalcstart : osvalidsimcalcend + 1],
|
|
163
|
+
lagmininpts,
|
|
164
|
+
lagmaxinpts,
|
|
165
|
+
corrout,
|
|
166
|
+
meanval,
|
|
167
|
+
nprocs=nprocs,
|
|
168
|
+
alwaysmultiproc=alwaysmultiproc,
|
|
169
|
+
oversampfactor=oversampfactor,
|
|
170
|
+
interptype=interptype,
|
|
171
|
+
showprogressbar=showprogressbar,
|
|
172
|
+
chunksize=chunksize,
|
|
173
|
+
rt_floatset=rt_floatset,
|
|
174
|
+
rt_floattype=rt_floattype,
|
|
175
|
+
debug=debug,
|
|
176
|
+
)
|
|
177
|
+
elif (similaritymetric == "correlation") or (similaritymetric == "hybrid"):
|
|
178
|
+
(
|
|
179
|
+
voxelsprocessed_cp,
|
|
180
|
+
theglobalmaxlist,
|
|
181
|
+
trimmedcorrscale,
|
|
182
|
+
) = tide_calcsimfunc.correlationpass(
|
|
183
|
+
fmri_data_valid[:, validsimcalcstart : validsimcalcend + 1],
|
|
184
|
+
cleaned_referencetc,
|
|
185
|
+
theCorrelator,
|
|
186
|
+
initial_fmri_x[validsimcalcstart : validsimcalcend + 1],
|
|
187
|
+
os_fmri_x[osvalidsimcalcstart : osvalidsimcalcend + 1],
|
|
188
|
+
lagmininpts,
|
|
189
|
+
lagmaxinpts,
|
|
190
|
+
corrout,
|
|
191
|
+
meanval,
|
|
192
|
+
nprocs=nprocs,
|
|
193
|
+
alwaysmultiproc=alwaysmultiproc,
|
|
194
|
+
oversampfactor=oversampfactor,
|
|
195
|
+
interptype=interptype,
|
|
196
|
+
showprogressbar=showprogressbar,
|
|
197
|
+
chunksize=chunksize,
|
|
198
|
+
rt_floatset=rt_floatset,
|
|
199
|
+
rt_floattype=rt_floattype,
|
|
200
|
+
debug=debug,
|
|
201
|
+
)
|
|
202
|
+
elif similaritymetric == "riptide":
|
|
203
|
+
# do the linear fit to the comb of delayed regressors
|
|
204
|
+
for thedelay in range(len(delayvals)):
|
|
205
|
+
print(f"Fitting delay {delayvals[thedelay]:.2f}")
|
|
206
|
+
voxelsprocessed_cp = tide_linfitfiltpass.linfitfiltpass(
|
|
207
|
+
numvalidspatiallocs,
|
|
208
|
+
fmri_data_valid[:, validsimcalcstart : validsimcalcend + 1],
|
|
209
|
+
0.0,
|
|
210
|
+
regressorset[thedelay, validsimcalcstart : validsimcalcend + 1],
|
|
211
|
+
sLFOfitmean,
|
|
212
|
+
corrout[:, thedelay],
|
|
213
|
+
r2value,
|
|
214
|
+
fitcoeff,
|
|
215
|
+
fitNorm,
|
|
216
|
+
None,
|
|
217
|
+
None,
|
|
218
|
+
coefficientsonly=True,
|
|
219
|
+
voxelspecific=False,
|
|
220
|
+
nprocs=nprocs,
|
|
221
|
+
alwaysmultiproc=alwaysmultiproc,
|
|
222
|
+
showprogressbar=showprogressbar,
|
|
223
|
+
verbose=(LGR is not None),
|
|
224
|
+
chunksize=chunksize,
|
|
225
|
+
rt_floatset=rt_floatset,
|
|
226
|
+
rt_floattype=rt_floattype,
|
|
227
|
+
debug=debug,
|
|
228
|
+
)
|
|
229
|
+
else:
|
|
230
|
+
print("illegal similarity metric")
|
|
231
|
+
|
|
232
|
+
tide_util.enablemkl(mklthreads, debug=threaddebug)
|
|
233
|
+
|
|
234
|
+
if similaritymetric != "riptide":
|
|
235
|
+
for i in range(len(theglobalmaxlist)):
|
|
236
|
+
theglobalmaxlist[i] = corrscale[theglobalmaxlist[i]] - simcalcoffset
|
|
237
|
+
namesuffix = "_desc-globallag_hist"
|
|
238
|
+
tide_stats.makeandsavehistogram(
|
|
239
|
+
np.asarray(theglobalmaxlist),
|
|
240
|
+
len(corrscale),
|
|
241
|
+
0,
|
|
242
|
+
outputname + namesuffix,
|
|
243
|
+
displaytitle="Histogram of lag times from global lag calculation",
|
|
244
|
+
therange=(corrscale[0], corrscale[-1]),
|
|
245
|
+
refine=False,
|
|
246
|
+
dictvarname="globallaghist_pass" + str(thepass),
|
|
247
|
+
append=(echocancel or (thepass > 1)),
|
|
248
|
+
thedict=optiondict,
|
|
249
|
+
)
|
|
250
|
+
|
|
251
|
+
if checkpoint:
|
|
252
|
+
outcorrarray[:, :] = 0.0
|
|
253
|
+
outcorrarray[validvoxels, :] = corrout[:, :]
|
|
254
|
+
if theinputdata.filetype == "text":
|
|
255
|
+
tide_io.writenpvecs(
|
|
256
|
+
outcorrarray.reshape(nativecorrshape),
|
|
257
|
+
f"{outputname}_corrout_prefit_pass" + str(thepass) + ".txt",
|
|
258
|
+
)
|
|
259
|
+
else:
|
|
260
|
+
savename = f"{outputname}_desc-corroutprefit_pass-" + str(thepass)
|
|
261
|
+
tide_io.savetonifti(outcorrarray.reshape(nativecorrshape), theheader, savename)
|
|
262
|
+
|
|
263
|
+
TimingLGR.info(
|
|
264
|
+
f"{similaritytype} calculation end, pass {thepass}",
|
|
265
|
+
{
|
|
266
|
+
"message2": voxelsprocessed_cp,
|
|
267
|
+
"message3": "voxels",
|
|
268
|
+
},
|
|
269
|
+
)
|
|
270
|
+
|
|
271
|
+
return similaritytype
|
|
@@ -825,7 +825,7 @@ def delayvar(args):
|
|
|
825
825
|
sys.exit()
|
|
826
826
|
print(
|
|
827
827
|
f"Using {len(thefit.components_)} component(s), accounting for "
|
|
828
|
-
+ f"{100.0 * np.cumsum(thefit.explained_variance_ratio_)[len(thefit.components_) - 1]}% of the variance"
|
|
828
|
+
+ f"{100.0 * np.cumsum(thefit.explained_variance_ratio_)[len(thefit.components_) - 1]:.2f}% of the variance"
|
|
829
829
|
)
|
|
830
830
|
reduceddata = thefit.inverse_transform(thefit.transform(scaledvoxels))
|
|
831
831
|
# unscale the PCA cleaned data
|