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.
Files changed (50) hide show
  1. rapidtide/_version.py +3 -3
  2. rapidtide/calcnullsimfunc.py +1 -3
  3. rapidtide/data/examples/src/test_findmaxlag.py +1 -1
  4. rapidtide/data/examples/src/testfmri +22 -16
  5. rapidtide/data/examples/src/testnewrefine +0 -23
  6. rapidtide/fMRIData_class.py +29 -52
  7. rapidtide/fit.py +4 -4
  8. rapidtide/happy_supportfuncs.py +1 -1
  9. rapidtide/helper_classes.py +0 -1099
  10. rapidtide/linfitfiltpass.py +59 -0
  11. rapidtide/makelaggedtcs.py +10 -0
  12. rapidtide/refinedelay.py +10 -19
  13. rapidtide/simFuncClasses.py +1132 -0
  14. rapidtide/simfuncfit.py +30 -30
  15. rapidtide/stats.py +5 -2
  16. rapidtide/tests/.coveragerc +6 -0
  17. rapidtide/tests/cleanposttest +1 -1
  18. rapidtide/tests/runlocaltest +2 -2
  19. rapidtide/tests/test_cleanregressor.py +3 -3
  20. rapidtide/tests/test_congrid.py +1 -1
  21. rapidtide/tests/test_corrpass.py +3 -3
  22. rapidtide/tests/test_delayestimation.py +8 -7
  23. rapidtide/tests/test_findmaxlag.py +2 -2
  24. rapidtide/tests/test_fullrunrapidtide_v3.py +2 -1
  25. rapidtide/tests/test_getparsers.py +14 -6
  26. rapidtide/tests/test_io.py +2 -6
  27. rapidtide/tests/test_nullcorr.py +3 -3
  28. rapidtide/tests/test_refinedelay.py +20 -5
  29. rapidtide/tidepoolTemplate_alt.py +1 -1
  30. rapidtide/util.py +7 -0
  31. rapidtide/voxelData.py +3 -6
  32. rapidtide/workflows/cleanregressor.py +2 -2
  33. rapidtide/workflows/delayvar.py +44 -58
  34. rapidtide/workflows/{delayestimation.py → estimateDelayMap.py} +84 -31
  35. rapidtide/workflows/rapidtide.py +361 -865
  36. rapidtide/workflows/rapidtide_parser.py +8 -41
  37. rapidtide/workflows/refineDelayMap.py +138 -0
  38. rapidtide/{RegressorRefiner.py → workflows/refineRegressor.py} +200 -28
  39. rapidtide/workflows/regressfrommaps.py +35 -27
  40. rapidtide/workflows/retrolagtcs.py +5 -6
  41. rapidtide/workflows/retroregress.py +93 -193
  42. rapidtide/workflows/showarbcorr.py +2 -2
  43. rapidtide/workflows/showxcorrx.py +5 -5
  44. rapidtide/workflows/tidepool.py +5 -5
  45. {rapidtide-3.0.7.dist-info → rapidtide-3.0.8.dist-info}/METADATA +2 -2
  46. {rapidtide-3.0.7.dist-info → rapidtide-3.0.8.dist-info}/RECORD +50 -48
  47. {rapidtide-3.0.7.dist-info → rapidtide-3.0.8.dist-info}/WHEEL +0 -0
  48. {rapidtide-3.0.7.dist-info → rapidtide-3.0.8.dist-info}/entry_points.txt +0 -0
  49. {rapidtide-3.0.7.dist-info → rapidtide-3.0.8.dist-info}/licenses/LICENSE +0 -0
  50. {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([args.refineregressderivs + 1, args.regressderivs + 1])
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
- TimingLGR.info("Refinement calibration start")
636
- regressderivratios, regressrvalues = tide_refinedelay.getderivratios(
637
- fmri_data_valid,
638
- validvoxels,
639
- initial_fmri_x,
640
- lagtimes_valid,
641
- corrmask_valid,
642
- genlagtc,
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
- args.outputlevel,
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
- # now calculate the delay offsets
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
- corrmask_valid,
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
- corrmask_valid,
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 = tide_classes.SimilarityFunctionFitter(
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 = tide_classes.Correlator(
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 = tide_classes.MutualInformationator(
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 = tide_classes.SimilarityFunctionFitter(
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 = tide_classes.SimilarityFunctionFitter(
577
+ thexsimfuncfitter = tide_simFuncClasses.SimilarityFunctionFitter(
578
578
  corrtimeaxis=xcorr_x,
579
579
  lagmin=args.lagmin,
580
580
  lagmax=args.lagmax,
@@ -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": "GLM Fit R2",
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 GLM",
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 GLM",
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": "GLM fit coefficient",
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.7
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