rapidtide 3.0.7__py3-none-any.whl → 3.0.8__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.
- rapidtide/_version.py +3 -3
- rapidtide/calcnullsimfunc.py +1 -3
- rapidtide/data/examples/src/test_findmaxlag.py +1 -1
- rapidtide/data/examples/src/testfmri +22 -16
- rapidtide/data/examples/src/testnewrefine +0 -23
- rapidtide/fMRIData_class.py +29 -52
- rapidtide/fit.py +4 -4
- rapidtide/happy_supportfuncs.py +1 -1
- rapidtide/helper_classes.py +0 -1099
- rapidtide/linfitfiltpass.py +59 -0
- rapidtide/makelaggedtcs.py +10 -0
- rapidtide/refinedelay.py +10 -19
- rapidtide/simFuncClasses.py +1132 -0
- rapidtide/simfuncfit.py +30 -30
- rapidtide/stats.py +5 -2
- rapidtide/tests/.coveragerc +6 -0
- rapidtide/tests/cleanposttest +1 -1
- rapidtide/tests/runlocaltest +2 -2
- rapidtide/tests/test_cleanregressor.py +3 -3
- rapidtide/tests/test_congrid.py +1 -1
- rapidtide/tests/test_corrpass.py +3 -3
- rapidtide/tests/test_delayestimation.py +8 -7
- rapidtide/tests/test_findmaxlag.py +2 -2
- rapidtide/tests/test_fullrunrapidtide_v3.py +2 -1
- rapidtide/tests/test_getparsers.py +14 -6
- rapidtide/tests/test_io.py +2 -6
- rapidtide/tests/test_nullcorr.py +3 -3
- rapidtide/tests/test_refinedelay.py +20 -5
- rapidtide/tidepoolTemplate_alt.py +1 -1
- rapidtide/util.py +7 -0
- rapidtide/voxelData.py +3 -6
- rapidtide/workflows/cleanregressor.py +2 -2
- rapidtide/workflows/delayvar.py +44 -58
- rapidtide/workflows/{delayestimation.py → estimateDelayMap.py} +84 -31
- rapidtide/workflows/rapidtide.py +361 -865
- rapidtide/workflows/rapidtide_parser.py +8 -41
- rapidtide/workflows/refineDelayMap.py +138 -0
- rapidtide/{RegressorRefiner.py → workflows/refineRegressor.py} +200 -28
- rapidtide/workflows/regressfrommaps.py +35 -27
- rapidtide/workflows/retrolagtcs.py +5 -6
- rapidtide/workflows/retroregress.py +93 -193
- rapidtide/workflows/showarbcorr.py +2 -2
- rapidtide/workflows/showxcorrx.py +5 -5
- rapidtide/workflows/tidepool.py +5 -5
- {rapidtide-3.0.7.dist-info → rapidtide-3.0.8.dist-info}/METADATA +2 -2
- {rapidtide-3.0.7.dist-info → rapidtide-3.0.8.dist-info}/RECORD +50 -48
- {rapidtide-3.0.7.dist-info → rapidtide-3.0.8.dist-info}/WHEEL +0 -0
- {rapidtide-3.0.7.dist-info → rapidtide-3.0.8.dist-info}/entry_points.txt +0 -0
- {rapidtide-3.0.7.dist-info → rapidtide-3.0.8.dist-info}/licenses/LICENSE +0 -0
- {rapidtide-3.0.7.dist-info → rapidtide-3.0.8.dist-info}/top_level.txt +0 -0
|
@@ -32,12 +32,12 @@ import rapidtide.io as tide_io
|
|
|
32
32
|
import rapidtide.maskutil as tide_mask
|
|
33
33
|
import rapidtide.miscmath as tide_math
|
|
34
34
|
import rapidtide.multiproc as tide_multiproc
|
|
35
|
-
import rapidtide.refinedelay as tide_refinedelay
|
|
36
35
|
import rapidtide.resample as tide_resample
|
|
37
36
|
import rapidtide.stats as tide_stats
|
|
38
37
|
import rapidtide.util as tide_util
|
|
39
38
|
import rapidtide.voxelData as tide_voxelData
|
|
40
39
|
import rapidtide.workflows.parser_funcs as pf
|
|
40
|
+
import rapidtide.workflows.refineDelayMap as tide_refineDelayMap
|
|
41
41
|
import rapidtide.workflows.regressfrommaps as tide_regressfrommaps
|
|
42
42
|
|
|
43
43
|
from .rapidtide_parser import DEFAULT_REGRESSIONFILTDERIVS
|
|
@@ -61,7 +61,6 @@ DEFAULT_REFINEDELAYMINDELAY = -5.0
|
|
|
61
61
|
DEFAULT_REFINEDELAYMAXDELAY = 5.0
|
|
62
62
|
DEFAULT_REFINEDELAYNUMPOINTS = 501
|
|
63
63
|
DEFAULT_DELAYOFFSETSPATIALFILT = -1
|
|
64
|
-
DEFAULT_REFINEREGRESSDERIVS = 1
|
|
65
64
|
|
|
66
65
|
|
|
67
66
|
def _get_parser():
|
|
@@ -219,21 +218,16 @@ def _get_parser():
|
|
|
219
218
|
help=("Output lots of helpful information on a limited subset of operations."),
|
|
220
219
|
default=False,
|
|
221
220
|
)
|
|
221
|
+
parser.add_argument(
|
|
222
|
+
"--sLFOfiltmask",
|
|
223
|
+
dest="sLFOfiltmask",
|
|
224
|
+
action="store_true",
|
|
225
|
+
help=("Limit sLFO filter to fit voxels."),
|
|
226
|
+
default=False,
|
|
227
|
+
)
|
|
222
228
|
experimental = parser.add_argument_group(
|
|
223
229
|
"Experimental options (not fully tested, or not tested at all, may not work). Beware!"
|
|
224
230
|
)
|
|
225
|
-
experimental.add_argument(
|
|
226
|
-
"--refineregressderivs",
|
|
227
|
-
dest="refineregressderivs",
|
|
228
|
-
action="store",
|
|
229
|
-
type=lambda x: pf.is_int(parser, x, minval=1),
|
|
230
|
-
metavar="NDERIVS",
|
|
231
|
-
help=(
|
|
232
|
-
f"When doing GLM for delay refinement, include derivatives up to NDERIVS order. Must be 1 or more. "
|
|
233
|
-
f"Default is {DEFAULT_REFINEREGRESSDERIVS}"
|
|
234
|
-
),
|
|
235
|
-
default=DEFAULT_REFINEREGRESSDERIVS,
|
|
236
|
-
)
|
|
237
231
|
|
|
238
232
|
return parser
|
|
239
233
|
|
|
@@ -497,7 +491,7 @@ def retroregress(args):
|
|
|
497
491
|
print(f"{numvalidspatiallocs=}")
|
|
498
492
|
internalvalidspaceshape = numvalidspatiallocs
|
|
499
493
|
if args.refinedelay:
|
|
500
|
-
derivaxissize = np.max([
|
|
494
|
+
derivaxissize = np.max([2, args.regressderivs + 1])
|
|
501
495
|
else:
|
|
502
496
|
derivaxissize = args.regressderivs + 1
|
|
503
497
|
internalvalidspaceshapederivs = (
|
|
@@ -515,40 +509,36 @@ def retroregress(args):
|
|
|
515
509
|
lagtimes_valid = lagtimes_spacebytime[validvoxels]
|
|
516
510
|
corrmask_valid = corrmask_spacebytime[validvoxels]
|
|
517
511
|
procmask_valid = procmask_spacebytime[validvoxels]
|
|
512
|
+
if args.sLFOfiltmask:
|
|
513
|
+
sLFOfiltmask_valid = corrmask_spacebytime[validvoxels] + 0.0
|
|
514
|
+
else:
|
|
515
|
+
sLFOfiltmask_valid = corrmask_spacebytime[validvoxels] * 0.0 + 1.0
|
|
518
516
|
if args.debug:
|
|
519
517
|
print(f"{fmri_data_valid.shape=}")
|
|
520
518
|
|
|
519
|
+
sLFOfitmean, sLFOfitmean_shm = tide_util.allocarray(
|
|
520
|
+
internalvalidspaceshape, rt_outfloattype, shared=usesharedmem
|
|
521
|
+
)
|
|
522
|
+
rvalue, rvalue_shm = tide_util.allocarray(internalvalidspaceshape, rt_outfloattype, shared=usesharedmem)
|
|
523
|
+
r2value, r2value_shm = tide_util.allocarray(internalvalidspaceshape, rt_outfloattype, shared=usesharedmem)
|
|
524
|
+
fitNorm, fitNorm_shm = tide_util.allocarray(internalvalidspaceshapederivs, rt_outfloattype, shared=usesharedmem)
|
|
525
|
+
fitcoeff, fitcoeff_shm = tide_util.allocarray(
|
|
526
|
+
internalvalidspaceshapederivs, rt_outfloattype, shared=usesharedmem
|
|
527
|
+
)
|
|
528
|
+
movingsignal, movingsignal_shm = tide_util.allocarray(
|
|
529
|
+
internalvalidfmrishape, rt_outfloattype, shared=usesharedmem
|
|
530
|
+
)
|
|
531
|
+
lagtc, lagtc_shm = tide_util.allocarray(internalvalidfmrishape, rt_floattype, shared=usesharedmem)
|
|
532
|
+
filtereddata, filtereddata_shm = tide_util.allocarray(
|
|
533
|
+
internalvalidfmrishape, rt_outfloattype, shared=usesharedmem
|
|
534
|
+
)
|
|
521
535
|
if usesharedmem:
|
|
522
536
|
if args.debug:
|
|
523
537
|
print("allocating shared memory")
|
|
524
|
-
sLFOfitmean, sLFOfitmean_shm = tide_util.allocshared(
|
|
525
|
-
internalvalidspaceshape, rt_outfloatset
|
|
526
|
-
)
|
|
527
|
-
rvalue, rvalue_shm = tide_util.allocshared(internalvalidspaceshape, rt_outfloatset)
|
|
528
|
-
r2value, r2value_shm = tide_util.allocshared(internalvalidspaceshape, rt_outfloatset)
|
|
529
|
-
fitNorm, fitNorm_shm = tide_util.allocshared(internalvalidspaceshapederivs, rt_outfloatset)
|
|
530
|
-
fitcoeff, fitcoeff_shm = tide_util.allocshared(
|
|
531
|
-
internalvalidspaceshapederivs, rt_outfloatset
|
|
532
|
-
)
|
|
533
|
-
movingsignal, movingsignal_shm = tide_util.allocshared(
|
|
534
|
-
internalvalidfmrishape, rt_outfloatset
|
|
535
|
-
)
|
|
536
|
-
lagtc, lagtc_shm = tide_util.allocshared(internalvalidfmrishape, rt_floatset)
|
|
537
|
-
filtereddata, filtereddata_shm = tide_util.allocshared(
|
|
538
|
-
internalvalidfmrishape, rt_outfloatset
|
|
539
|
-
)
|
|
540
538
|
ramlocation = "in shared memory"
|
|
541
539
|
else:
|
|
542
540
|
if args.debug:
|
|
543
541
|
print("allocating memory")
|
|
544
|
-
sLFOfitmean = np.zeros(internalvalidspaceshape, dtype=rt_outfloattype)
|
|
545
|
-
rvalue = np.zeros(internalvalidspaceshape, dtype=rt_outfloattype)
|
|
546
|
-
r2value = np.zeros(internalvalidspaceshape, dtype=rt_outfloattype)
|
|
547
|
-
fitNorm = np.zeros(internalvalidspaceshapederivs, dtype=rt_outfloattype)
|
|
548
|
-
fitcoeff = np.zeros(internalvalidspaceshapederivs, dtype=rt_outfloattype)
|
|
549
|
-
movingsignal = np.zeros(internalvalidfmrishape, dtype=rt_outfloattype)
|
|
550
|
-
lagtc = np.zeros(internalvalidfmrishape, dtype=rt_floattype)
|
|
551
|
-
filtereddata = np.zeros(internalvalidfmrishape, dtype=rt_outfloattype)
|
|
552
542
|
ramlocation = "locally"
|
|
553
543
|
|
|
554
544
|
totalbytes = (
|
|
@@ -632,118 +622,49 @@ def retroregress(args):
|
|
|
632
622
|
# set gausssigma automatically
|
|
633
623
|
args.delayoffsetgausssigma = np.mean([xdim, ydim, slicethickness]) / 2.0
|
|
634
624
|
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
mode,
|
|
644
|
-
outputname,
|
|
645
|
-
oversamptr,
|
|
646
|
-
sLFOfitmean,
|
|
647
|
-
rvalue,
|
|
648
|
-
r2value,
|
|
649
|
-
fitNorm[:, : (args.refineregressderivs + 1)],
|
|
650
|
-
fitcoeff[:, : (args.refineregressderivs + 1)],
|
|
651
|
-
movingsignal,
|
|
652
|
-
lagtc,
|
|
653
|
-
filtereddata,
|
|
654
|
-
LGR,
|
|
655
|
-
TimingLGR,
|
|
656
|
-
therunoptions,
|
|
657
|
-
regressderivs=args.refineregressderivs,
|
|
658
|
-
debug=args.debug,
|
|
659
|
-
)
|
|
660
|
-
|
|
661
|
-
if args.refineregressderivs == 1:
|
|
662
|
-
medfiltregressderivratios, filteredregressderivratios, delayoffsetMAD = (
|
|
663
|
-
tide_refinedelay.filterderivratios(
|
|
664
|
-
regressderivratios,
|
|
665
|
-
(xsize, ysize, numslices),
|
|
666
|
-
validvoxels,
|
|
667
|
-
(xdim, ydim, slicethickness),
|
|
668
|
-
gausssigma=args.delayoffsetgausssigma,
|
|
669
|
-
patchthresh=args.delaypatchthresh,
|
|
670
|
-
rt_floattype=rt_floattype,
|
|
671
|
-
debug=args.debug,
|
|
672
|
-
)
|
|
673
|
-
)
|
|
674
|
-
|
|
675
|
-
# find the mapping of glm ratios to delays
|
|
676
|
-
tide_refinedelay.trainratiotooffset(
|
|
677
|
-
genlagtc,
|
|
625
|
+
(
|
|
626
|
+
delayoffset,
|
|
627
|
+
regressderivratios,
|
|
628
|
+
medfiltregressderivratios,
|
|
629
|
+
filteredregressderivratios,
|
|
630
|
+
delayoffsetMAD,
|
|
631
|
+
) = tide_refineDelayMap.refineDelay(
|
|
632
|
+
fmri_data_valid,
|
|
678
633
|
initial_fmri_x,
|
|
634
|
+
xdim,
|
|
635
|
+
ydim,
|
|
636
|
+
slicethickness,
|
|
637
|
+
sLFOfiltmask_valid,
|
|
638
|
+
genlagtc,
|
|
639
|
+
oversamptr,
|
|
640
|
+
sLFOfitmean,
|
|
641
|
+
rvalue,
|
|
642
|
+
r2value,
|
|
643
|
+
fitNorm,
|
|
644
|
+
fitcoeff,
|
|
645
|
+
lagtc,
|
|
679
646
|
outputname,
|
|
680
|
-
|
|
647
|
+
validvoxels,
|
|
648
|
+
theinputdata.nativespaceshape,
|
|
649
|
+
theinputdata,
|
|
650
|
+
lagtimes_valid,
|
|
651
|
+
therunoptions,
|
|
652
|
+
LGR,
|
|
653
|
+
TimingLGR,
|
|
654
|
+
outputlevel=args.outputlevel,
|
|
655
|
+
gausssigma=args.delayoffsetgausssigma,
|
|
656
|
+
patchthresh=args.delaypatchthresh,
|
|
681
657
|
mindelay=args.mindelay,
|
|
682
658
|
maxdelay=args.maxdelay,
|
|
683
659
|
numpoints=args.numpoints,
|
|
660
|
+
histlen=therunoptions["histlen"],
|
|
661
|
+
rt_floatset=rt_floatset,
|
|
662
|
+
rt_floattype=rt_floattype,
|
|
684
663
|
debug=args.debug,
|
|
685
664
|
)
|
|
686
|
-
TimingLGR.info("Refinement calibration end")
|
|
687
665
|
|
|
688
|
-
|
|
689
|
-
TimingLGR.info("Calculating delay offsets")
|
|
690
|
-
delayoffset = np.zeros_like(filteredregressderivratios)
|
|
691
|
-
if args.debug:
|
|
692
|
-
print(f"calculating delayoffsets for {filteredregressderivratios.shape[0]} voxels")
|
|
693
|
-
for i in range(filteredregressderivratios.shape[0]):
|
|
694
|
-
delayoffset[i], closestoffset = tide_refinedelay.ratiotodelay(
|
|
695
|
-
filteredregressderivratios[i]
|
|
696
|
-
)
|
|
697
|
-
"""delayoffset[i] = tide_refinedelay.coffstodelay(
|
|
698
|
-
np.asarray([filteredregressderivratios[i]]),
|
|
699
|
-
mindelay=args.mindelay,
|
|
700
|
-
maxdelay=args.maxdelay,
|
|
701
|
-
)"""
|
|
702
|
-
|
|
703
|
-
refinedvoxelstoreport = filteredregressderivratios.shape[0]
|
|
704
|
-
else:
|
|
705
|
-
medfiltregressderivratios = np.zeros_like(regressderivratios)
|
|
706
|
-
filteredregressderivratios = np.zeros_like(regressderivratios)
|
|
707
|
-
delayoffsetMAD = np.zeros(args.refineregressderivs, dtype=float)
|
|
708
|
-
for i in range(args.refineregressderivs):
|
|
709
|
-
(
|
|
710
|
-
medfiltregressderivratios[i, :],
|
|
711
|
-
filteredregressderivratios[i, :],
|
|
712
|
-
delayoffsetMAD[i],
|
|
713
|
-
) = tide_refinedelay.filterderivratios(
|
|
714
|
-
regressderivratios[i, :],
|
|
715
|
-
(xsize, ysize, numslices),
|
|
716
|
-
validvoxels,
|
|
717
|
-
(xdim, ydim, slicethickness),
|
|
718
|
-
gausssigma=args.delayoffsetgausssigma,
|
|
719
|
-
patchthresh=args.delaypatchthresh,
|
|
720
|
-
rt_floattype=rt_floattype,
|
|
721
|
-
debug=args.debug,
|
|
722
|
-
)
|
|
723
|
-
|
|
724
|
-
# now calculate the delay offsets
|
|
725
|
-
delayoffset = np.zeros_like(filteredregressderivratios[0, :])
|
|
726
|
-
if args.debug:
|
|
727
|
-
print(f"calculating delayoffsets for {filteredregressderivratios.shape[1]} voxels")
|
|
728
|
-
for i in range(filteredregressderivratios.shape[1]):
|
|
729
|
-
delayoffset[i] = tide_refinedelay.coffstodelay(
|
|
730
|
-
filteredregressderivratios[:, i],
|
|
731
|
-
mindelay=args.mindelay,
|
|
732
|
-
maxdelay=args.maxdelay,
|
|
733
|
-
)
|
|
734
|
-
refinedvoxelstoreport = filteredregressderivratios.shape[1]
|
|
666
|
+
refinedvoxelstoreport = filteredregressderivratios.shape[0]
|
|
735
667
|
|
|
736
|
-
if not args.saveEVsandquit:
|
|
737
|
-
namesuffix = "_desc-delayoffset_hist"
|
|
738
|
-
tide_stats.makeandsavehistogram(
|
|
739
|
-
delayoffset,
|
|
740
|
-
therunoptions["histlen"],
|
|
741
|
-
1,
|
|
742
|
-
outputname + namesuffix,
|
|
743
|
-
displaytitle="Histogram of delay offsets calculated from GLM",
|
|
744
|
-
dictvarname="delayoffsethist",
|
|
745
|
-
thedict=None,
|
|
746
|
-
)
|
|
747
668
|
lagtimesrefined_valid = lagtimes_valid + delayoffset
|
|
748
669
|
|
|
749
670
|
TimingLGR.info(
|
|
@@ -770,7 +691,7 @@ def retroregress(args):
|
|
|
770
691
|
validvoxels,
|
|
771
692
|
initial_fmri_x,
|
|
772
693
|
lagstouse_valid,
|
|
773
|
-
|
|
694
|
+
sLFOfiltmask_valid,
|
|
774
695
|
genlagtc,
|
|
775
696
|
mode,
|
|
776
697
|
outputname,
|
|
@@ -1032,6 +953,13 @@ def retroregress(args):
|
|
|
1032
953
|
"corrfitREAD",
|
|
1033
954
|
"mask",
|
|
1034
955
|
None,
|
|
956
|
+
"Correlation mask read for calculation",
|
|
957
|
+
),
|
|
958
|
+
(
|
|
959
|
+
sLFOfiltmask_valid,
|
|
960
|
+
"corrfitUSED",
|
|
961
|
+
"mask",
|
|
962
|
+
None,
|
|
1035
963
|
"Correlation mask used for calculation",
|
|
1036
964
|
),
|
|
1037
965
|
(
|
|
@@ -1072,56 +1000,28 @@ def retroregress(args):
|
|
|
1072
1000
|
]
|
|
1073
1001
|
|
|
1074
1002
|
if args.refinedelay:
|
|
1075
|
-
if args.refineregressderivs > 1:
|
|
1076
|
-
for i in range(args.refineregressderivs):
|
|
1077
|
-
maplist += [
|
|
1078
|
-
(
|
|
1079
|
-
regressderivratios[i, :],
|
|
1080
|
-
f"regressderivratios_{i}",
|
|
1081
|
-
"map",
|
|
1082
|
-
None,
|
|
1083
|
-
f"Ratio of derivative {i+1} of delayed sLFO to the delayed sLFO",
|
|
1084
|
-
),
|
|
1085
|
-
(
|
|
1086
|
-
medfiltregressderivratios[i, :],
|
|
1087
|
-
f"medfiltregressderivratios_{i}",
|
|
1088
|
-
"map",
|
|
1089
|
-
None,
|
|
1090
|
-
f"Median filtered version of the regressderivratios_{i} map",
|
|
1091
|
-
),
|
|
1092
|
-
(
|
|
1093
|
-
filteredregressderivratios[i, :],
|
|
1094
|
-
f"filteredregressderivratios_{i}",
|
|
1095
|
-
"map",
|
|
1096
|
-
None,
|
|
1097
|
-
f"regressderivratios_{i}, with outliers patched using median filtered data",
|
|
1098
|
-
),
|
|
1099
|
-
]
|
|
1100
|
-
else:
|
|
1101
|
-
maplist += [
|
|
1102
|
-
(
|
|
1103
|
-
regressderivratios,
|
|
1104
|
-
"regressderivratios",
|
|
1105
|
-
"map",
|
|
1106
|
-
None,
|
|
1107
|
-
"Ratio of the first derivative of delayed sLFO to the delayed sLFO",
|
|
1108
|
-
),
|
|
1109
|
-
(
|
|
1110
|
-
medfiltregressderivratios,
|
|
1111
|
-
"medfiltregressderivratios",
|
|
1112
|
-
"map",
|
|
1113
|
-
None,
|
|
1114
|
-
"Median filtered version of the regressderivratios map",
|
|
1115
|
-
),
|
|
1116
|
-
(
|
|
1117
|
-
filteredregressderivratios,
|
|
1118
|
-
"filteredregressderivratios",
|
|
1119
|
-
"map",
|
|
1120
|
-
None,
|
|
1121
|
-
"regressderivratios, with outliers patched using median filtered data",
|
|
1122
|
-
),
|
|
1123
|
-
]
|
|
1124
1003
|
maplist += [
|
|
1004
|
+
(
|
|
1005
|
+
regressderivratios,
|
|
1006
|
+
"regressderivratios",
|
|
1007
|
+
"map",
|
|
1008
|
+
None,
|
|
1009
|
+
"Ratio of the first derivative of delayed sLFO to the delayed sLFO",
|
|
1010
|
+
),
|
|
1011
|
+
(
|
|
1012
|
+
medfiltregressderivratios,
|
|
1013
|
+
"medfiltregressderivratios",
|
|
1014
|
+
"map",
|
|
1015
|
+
None,
|
|
1016
|
+
"Median filtered version of the regressderivratios map",
|
|
1017
|
+
),
|
|
1018
|
+
(
|
|
1019
|
+
filteredregressderivratios,
|
|
1020
|
+
"filteredregressderivratios",
|
|
1021
|
+
"map",
|
|
1022
|
+
None,
|
|
1023
|
+
"regressderivratios, with outliers patched using median filtered data",
|
|
1024
|
+
),
|
|
1125
1025
|
(
|
|
1126
1026
|
delayoffset,
|
|
1127
1027
|
"delayoffset",
|
|
@@ -1255,7 +1155,7 @@ def retroregress(args):
|
|
|
1255
1155
|
validvoxels,
|
|
1256
1156
|
initial_fmri_x,
|
|
1257
1157
|
lagstouse_valid,
|
|
1258
|
-
|
|
1158
|
+
sLFOfiltmask_valid,
|
|
1259
1159
|
genlagtc,
|
|
1260
1160
|
mode,
|
|
1261
1161
|
outputname,
|
|
@@ -23,9 +23,9 @@ import numpy as np
|
|
|
23
23
|
from scipy.stats import pearsonr
|
|
24
24
|
|
|
25
25
|
import rapidtide.correlate as tide_corr
|
|
26
|
-
import rapidtide.helper_classes as tide_classes
|
|
27
26
|
import rapidtide.io as tide_io
|
|
28
27
|
import rapidtide.miscmath as tide_math
|
|
28
|
+
import rapidtide.simFuncClasses as tide_simFuncClasses
|
|
29
29
|
import rapidtide.workflows.parser_funcs as pf
|
|
30
30
|
|
|
31
31
|
|
|
@@ -391,7 +391,7 @@ def showarbcorr(args):
|
|
|
391
391
|
thepxcorr = pearsonr(filtereddata1, filtereddata2)
|
|
392
392
|
|
|
393
393
|
# initialize the correlation fitter
|
|
394
|
-
thexsimfuncfitter =
|
|
394
|
+
thexsimfuncfitter = tide_simFuncClasses.SimilarityFunctionFitter(
|
|
395
395
|
corrtimeaxis=xcorr_x,
|
|
396
396
|
lagmin=args.lagmin,
|
|
397
397
|
lagmax=args.lagmax,
|
|
@@ -28,10 +28,10 @@ from scipy.stats import pearsonr
|
|
|
28
28
|
import rapidtide.calcnullsimfunc as tide_nullsimfunc
|
|
29
29
|
import rapidtide.correlate as tide_corr
|
|
30
30
|
import rapidtide.fit as tide_fit
|
|
31
|
-
import rapidtide.helper_classes as tide_classes
|
|
32
31
|
import rapidtide.io as tide_io
|
|
33
32
|
import rapidtide.miscmath as tide_math
|
|
34
33
|
import rapidtide.peakeval as tide_peakeval
|
|
34
|
+
import rapidtide.simFuncClasses as tide_simFuncClasses
|
|
35
35
|
import rapidtide.stats as tide_stats
|
|
36
36
|
import rapidtide.util as tide_util
|
|
37
37
|
import rapidtide.workflows.parser_funcs as pf
|
|
@@ -459,7 +459,7 @@ def showxcorrx(args):
|
|
|
459
459
|
thefit, R2 = tide_fit.mlregress(regressorvec, filtereddata2)
|
|
460
460
|
|
|
461
461
|
# initialize the Correlator and MutualInformationator
|
|
462
|
-
theCorrelator =
|
|
462
|
+
theCorrelator = tide_simFuncClasses.Correlator(
|
|
463
463
|
Fs=args.samplerate,
|
|
464
464
|
ncprefilter=theprefilter,
|
|
465
465
|
detrendorder=args.detrendorder,
|
|
@@ -469,7 +469,7 @@ def showxcorrx(args):
|
|
|
469
469
|
debug=args.debug,
|
|
470
470
|
)
|
|
471
471
|
theCorrelator.setreftc(trimdata2 * flipfac)
|
|
472
|
-
theMutualInformationator =
|
|
472
|
+
theMutualInformationator = tide_simFuncClasses.MutualInformationator(
|
|
473
473
|
Fs=args.samplerate,
|
|
474
474
|
smoothingtime=args.smoothingtime,
|
|
475
475
|
ncprefilter=theprefilter,
|
|
@@ -559,7 +559,7 @@ def showxcorrx(args):
|
|
|
559
559
|
|
|
560
560
|
if args.similaritymetric == "mutualinfo":
|
|
561
561
|
# initialize the similarity function fitter
|
|
562
|
-
themifitter =
|
|
562
|
+
themifitter = tide_simFuncClasses.SimilarityFunctionFitter(
|
|
563
563
|
corrtimeaxis=MI_x_trim,
|
|
564
564
|
lagmin=args.lagmin,
|
|
565
565
|
lagmax=args.lagmax,
|
|
@@ -574,7 +574,7 @@ def showxcorrx(args):
|
|
|
574
574
|
maxdelaymi = MI_x_trim[np.argmax(theMI_trim)]
|
|
575
575
|
else:
|
|
576
576
|
# initialize the correlation fitter
|
|
577
|
-
thexsimfuncfitter =
|
|
577
|
+
thexsimfuncfitter = tide_simFuncClasses.SimilarityFunctionFitter(
|
|
578
578
|
corrtimeaxis=xcorr_x,
|
|
579
579
|
lagmin=args.lagmin,
|
|
580
580
|
lagmax=args.lagmax,
|
rapidtide/workflows/tidepool.py
CHANGED
|
@@ -33,9 +33,9 @@ from pyqtgraph.Qt import QtCore, QtGui, QtWidgets
|
|
|
33
33
|
|
|
34
34
|
import rapidtide.util as tide_util
|
|
35
35
|
from rapidtide.Colortables import *
|
|
36
|
-
from rapidtide.helper_classes import SimilarityFunctionFitter
|
|
37
36
|
from rapidtide.OrthoImageItem import OrthoImageItem
|
|
38
37
|
from rapidtide.RapidtideDataset import RapidtideDataset, check_rt_spatialmatch
|
|
38
|
+
from rapidtide.simFuncClasses import SimilarityFunctionFitter
|
|
39
39
|
from rapidtide.workflows.atlasaverage import summarizevoxels
|
|
40
40
|
|
|
41
41
|
try:
|
|
@@ -2002,7 +2002,7 @@ def tidepool(args):
|
|
|
2002
2002
|
},
|
|
2003
2003
|
"R2": {
|
|
2004
2004
|
"colormap": gen_thermal_state(),
|
|
2005
|
-
"label": "
|
|
2005
|
+
"label": "sLFO Fit R2",
|
|
2006
2006
|
"display": extramaps,
|
|
2007
2007
|
"funcmask": "p_lt_0p050_mask",
|
|
2008
2008
|
},
|
|
@@ -2020,13 +2020,13 @@ def tidepool(args):
|
|
|
2020
2020
|
},
|
|
2021
2021
|
"varBefore": {
|
|
2022
2022
|
"colormap": gen_thermal_state(),
|
|
2023
|
-
"label": "LFO variance before
|
|
2023
|
+
"label": "LFO variance before filtering",
|
|
2024
2024
|
"display": extramaps,
|
|
2025
2025
|
"funcmask": "p_lt_0p050_mask",
|
|
2026
2026
|
},
|
|
2027
2027
|
"varAfter": {
|
|
2028
2028
|
"colormap": gen_thermal_state(),
|
|
2029
|
-
"label": "LFO variance after
|
|
2029
|
+
"label": "LFO variance after filtering",
|
|
2030
2030
|
"display": extramaps,
|
|
2031
2031
|
"funcmask": "p_lt_0p050_mask",
|
|
2032
2032
|
},
|
|
@@ -2074,7 +2074,7 @@ def tidepool(args):
|
|
|
2074
2074
|
},
|
|
2075
2075
|
"fitcoff": {
|
|
2076
2076
|
"colormap": gen_thermal_state(),
|
|
2077
|
-
"label": "
|
|
2077
|
+
"label": "sLFO fit coefficient",
|
|
2078
2078
|
"display": True,
|
|
2079
2079
|
"funcmask": "p_lt_0p050_mask",
|
|
2080
2080
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rapidtide
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.8
|
|
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>
|
|
@@ -24,7 +24,7 @@ Requires-Python: >=3.9
|
|
|
24
24
|
Description-Content-Type: text/x-rst
|
|
25
25
|
License-File: LICENSE
|
|
26
26
|
Requires-Dist: numpy
|
|
27
|
-
Requires-Dist: scipy
|
|
27
|
+
Requires-Dist: scipy<=1.15.3
|
|
28
28
|
Requires-Dist: pandas
|
|
29
29
|
Requires-Dist: pyarrow
|
|
30
30
|
Requires-Dist: scikit-image
|