rapidtide 3.0.8__py3-none-any.whl → 3.0.10__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/OrthoImageItem.py +15 -6
- rapidtide/RapidtideDataset.py +22 -7
- rapidtide/_version.py +3 -3
- rapidtide/data/examples/src/testfmri +26 -20
- rapidtide/data/examples/src/testhappy +0 -1
- rapidtide/filter.py +60 -111
- rapidtide/fit.py +501 -108
- rapidtide/io.py +19 -8
- rapidtide/linfitfiltpass.py +44 -25
- rapidtide/refinedelay.py +2 -2
- rapidtide/refineregressor.py +1 -1
- rapidtide/resample.py +8 -8
- rapidtide/simFuncClasses.py +13 -7
- rapidtide/tests/.coveragerc +17 -11
- rapidtide/tests/test_delayestimation.py +1 -1
- rapidtide/tests/test_findmaxlag.py +31 -16
- rapidtide/tests/test_fullrunrapidtide_v8.py +66 -0
- rapidtide/tests/test_padvec.py +19 -1
- rapidtide/tests/test_simroundtrip.py +124 -0
- rapidtide/tidepoolTemplate.py +37 -37
- rapidtide/tidepoolTemplate_alt.py +40 -40
- rapidtide/tidepoolTemplate_big.py +56 -56
- rapidtide/workflows/calcSimFuncMap.py +271 -0
- rapidtide/workflows/delayvar.py +1 -1
- rapidtide/workflows/fitSimFuncMap.py +427 -0
- rapidtide/workflows/happy.py +2 -2
- rapidtide/workflows/parser_funcs.py +1 -1
- rapidtide/workflows/rapidtide.py +197 -48
- rapidtide/workflows/rapidtide_parser.py +23 -2
- rapidtide/workflows/regressfrommaps.py +7 -7
- rapidtide/workflows/tidepool.py +51 -15
- {rapidtide-3.0.8.dist-info → rapidtide-3.0.10.dist-info}/METADATA +3 -3
- {rapidtide-3.0.8.dist-info → rapidtide-3.0.10.dist-info}/RECORD +37 -34
- rapidtide/workflows/estimateDelayMap.py +0 -536
- {rapidtide-3.0.8.dist-info → rapidtide-3.0.10.dist-info}/WHEEL +0 -0
- {rapidtide-3.0.8.dist-info → rapidtide-3.0.10.dist-info}/entry_points.txt +0 -0
- {rapidtide-3.0.8.dist-info → rapidtide-3.0.10.dist-info}/licenses/LICENSE +0 -0
- {rapidtide-3.0.8.dist-info → rapidtide-3.0.10.dist-info}/top_level.txt +0 -0
rapidtide/OrthoImageItem.py
CHANGED
|
@@ -33,12 +33,17 @@ except ImportError:
|
|
|
33
33
|
PILexists = False
|
|
34
34
|
|
|
35
35
|
try:
|
|
36
|
-
from
|
|
36
|
+
from PySide6.QtCore import __version__
|
|
37
37
|
except ImportError:
|
|
38
|
-
|
|
38
|
+
try:
|
|
39
|
+
from PyQt6.QtCore import QT_VERSION_STR
|
|
40
|
+
except ImportError:
|
|
41
|
+
pyqtbinding = "pyqt5"
|
|
42
|
+
else:
|
|
43
|
+
pyqtbinding = "pyqt6"
|
|
39
44
|
else:
|
|
40
|
-
|
|
41
|
-
print(f"using {
|
|
45
|
+
pyqtbinding = "pyside6"
|
|
46
|
+
print(f"using {pyqtbinding=}")
|
|
42
47
|
|
|
43
48
|
|
|
44
49
|
def newColorbar(left, top, impixpervoxx, impixpervoxy, imgsize):
|
|
@@ -520,10 +525,14 @@ class OrthoImageItem(QtWidgets.QWidget):
|
|
|
520
525
|
if self.verbose > 1:
|
|
521
526
|
print("saving main window")
|
|
522
527
|
mydialog = QtWidgets.QFileDialog()
|
|
523
|
-
if
|
|
528
|
+
if pyqtbinding == "pyqt5":
|
|
524
529
|
options = mydialog.Options()
|
|
525
|
-
|
|
530
|
+
elif pyqtbinding == "pyqt6":
|
|
531
|
+
options = mydialog.options()
|
|
532
|
+
elif pyqtbinding == "pyside6":
|
|
526
533
|
options = mydialog.options()
|
|
534
|
+
else:
|
|
535
|
+
print("unsupported qt binding")
|
|
527
536
|
thedir = str(
|
|
528
537
|
mydialog.getExistingDirectory(options=options, caption="Image output directory")
|
|
529
538
|
)
|
rapidtide/RapidtideDataset.py
CHANGED
|
@@ -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")
|
|
@@ -600,12 +600,15 @@ class RapidtideDataset:
|
|
|
600
600
|
if self.focusregressor is None:
|
|
601
601
|
self.focusregressor = thisregressor[0]
|
|
602
602
|
else:
|
|
603
|
-
if
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
603
|
+
if thisregressor[6]:
|
|
604
|
+
raise FileNotFoundError(f"regressor file {self.fileroot + thisregressor[2]} does not exist")
|
|
605
|
+
else:
|
|
606
|
+
if self.verbose > 1:
|
|
607
|
+
print(
|
|
608
|
+
"file: ",
|
|
609
|
+
self.fileroot + thisregressor[2],
|
|
610
|
+
" does not exist - skipping...",
|
|
611
|
+
)
|
|
609
612
|
|
|
610
613
|
def _loadfuncmaps(self):
|
|
611
614
|
mapstoinvert = ["varChange"]
|
|
@@ -1047,6 +1050,7 @@ class RapidtideDataset:
|
|
|
1047
1050
|
self.inputfreq,
|
|
1048
1051
|
self.inputfreq,
|
|
1049
1052
|
self.inputstarttime,
|
|
1053
|
+
True,
|
|
1050
1054
|
],
|
|
1051
1055
|
[
|
|
1052
1056
|
"postfilt",
|
|
@@ -1055,6 +1059,7 @@ class RapidtideDataset:
|
|
|
1055
1059
|
self.inputfreq,
|
|
1056
1060
|
self.inputfreq,
|
|
1057
1061
|
self.inputstarttime,
|
|
1062
|
+
True,
|
|
1058
1063
|
],
|
|
1059
1064
|
[
|
|
1060
1065
|
"pass1",
|
|
@@ -1063,6 +1068,7 @@ class RapidtideDataset:
|
|
|
1063
1068
|
self.fmrifreq * self.oversampfactor,
|
|
1064
1069
|
self.fmrifreq,
|
|
1065
1070
|
0.0,
|
|
1071
|
+
True,
|
|
1066
1072
|
],
|
|
1067
1073
|
[
|
|
1068
1074
|
"pass2",
|
|
@@ -1071,6 +1077,7 @@ class RapidtideDataset:
|
|
|
1071
1077
|
self.fmrifreq * self.oversampfactor,
|
|
1072
1078
|
self.fmrifreq,
|
|
1073
1079
|
0.0,
|
|
1080
|
+
False,
|
|
1074
1081
|
],
|
|
1075
1082
|
[
|
|
1076
1083
|
"pass3",
|
|
@@ -1079,6 +1086,7 @@ class RapidtideDataset:
|
|
|
1079
1086
|
self.fmrifreq * self.oversampfactor,
|
|
1080
1087
|
self.fmrifreq,
|
|
1081
1088
|
0.0,
|
|
1089
|
+
False,
|
|
1082
1090
|
],
|
|
1083
1091
|
[
|
|
1084
1092
|
"pass4",
|
|
@@ -1087,6 +1095,7 @@ class RapidtideDataset:
|
|
|
1087
1095
|
self.fmrifreq * self.oversampfactor,
|
|
1088
1096
|
self.fmrifreq,
|
|
1089
1097
|
0.0,
|
|
1098
|
+
False,
|
|
1090
1099
|
],
|
|
1091
1100
|
]
|
|
1092
1101
|
else:
|
|
@@ -1098,6 +1107,7 @@ class RapidtideDataset:
|
|
|
1098
1107
|
self.inputfreq,
|
|
1099
1108
|
self.inputfreq,
|
|
1100
1109
|
self.inputstarttime,
|
|
1110
|
+
True,
|
|
1101
1111
|
],
|
|
1102
1112
|
[
|
|
1103
1113
|
"postfilt",
|
|
@@ -1106,6 +1116,7 @@ class RapidtideDataset:
|
|
|
1106
1116
|
self.inputfreq,
|
|
1107
1117
|
self.inputfreq,
|
|
1108
1118
|
self.inputstarttime,
|
|
1119
|
+
True,
|
|
1109
1120
|
],
|
|
1110
1121
|
[
|
|
1111
1122
|
"pass1",
|
|
@@ -1114,6 +1125,7 @@ class RapidtideDataset:
|
|
|
1114
1125
|
self.fmrifreq * self.oversampfactor,
|
|
1115
1126
|
self.fmrifreq,
|
|
1116
1127
|
0.0,
|
|
1128
|
+
True,
|
|
1117
1129
|
],
|
|
1118
1130
|
[
|
|
1119
1131
|
"pass2",
|
|
@@ -1122,6 +1134,7 @@ class RapidtideDataset:
|
|
|
1122
1134
|
self.fmrifreq * self.oversampfactor,
|
|
1123
1135
|
self.fmrifreq,
|
|
1124
1136
|
0.0,
|
|
1137
|
+
False,
|
|
1125
1138
|
],
|
|
1126
1139
|
[
|
|
1127
1140
|
"pass3",
|
|
@@ -1130,6 +1143,7 @@ class RapidtideDataset:
|
|
|
1130
1143
|
self.fmrifreq * self.oversampfactor,
|
|
1131
1144
|
self.fmrifreq,
|
|
1132
1145
|
0.0,
|
|
1146
|
+
False,
|
|
1133
1147
|
],
|
|
1134
1148
|
[
|
|
1135
1149
|
"pass4",
|
|
@@ -1138,6 +1152,7 @@ class RapidtideDataset:
|
|
|
1138
1152
|
self.fmrifreq * self.oversampfactor,
|
|
1139
1153
|
self.fmrifreq,
|
|
1140
1154
|
0.0,
|
|
1155
|
+
False,
|
|
1141
1156
|
],
|
|
1142
1157
|
]
|
|
1143
1158
|
self._loadregressors()
|
rapidtide/_version.py
CHANGED
|
@@ -8,11 +8,11 @@ import json
|
|
|
8
8
|
|
|
9
9
|
version_json = '''
|
|
10
10
|
{
|
|
11
|
-
"date": "2025-
|
|
11
|
+
"date": "2025-08-18T17:30:20-0400",
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "3.0.
|
|
14
|
+
"full-revisionid": "939d31d88a5839ee746b0f84f4d370248fe5b312",
|
|
15
|
+
"version": "3.0.10"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
|
@@ -1,25 +1,9 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
|
|
3
|
-
#rapidtide \
|
|
4
|
-
# --spatialfilt -1 \
|
|
5
|
-
# --nprocs -1 \
|
|
6
|
-
# --searchrange -5 20 \
|
|
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
|
-
# --similaritymetric correlation \
|
|
16
|
-
# sub-RAPIDTIDETEST.nii.gz \
|
|
17
|
-
# ../dst/sub-RAPIDTIDETEST
|
|
18
|
-
|
|
19
3
|
rapidtide \
|
|
20
|
-
--spatialfilt
|
|
4
|
+
--spatialfilt 2.5 \
|
|
21
5
|
--nprocs -1 \
|
|
22
|
-
--searchrange -5
|
|
6
|
+
--searchrange -7.5 30 \
|
|
23
7
|
--simcalcrange 50 -1 \
|
|
24
8
|
--outputlevel more \
|
|
25
9
|
--graymattermask sub-RAPIDTIDETEST_synthseg.nii.gz:SSEG_GRAY \
|
|
@@ -31,6 +15,28 @@ rapidtide \
|
|
|
31
15
|
--refinedelayeachpass \
|
|
32
16
|
--similaritymetric correlation \
|
|
33
17
|
sub-RAPIDTIDETEST.nii.gz \
|
|
34
|
-
../dst/sub-
|
|
18
|
+
../dst/sub-RAPIDTIDETEST_flexipass
|
|
35
19
|
|
|
36
|
-
|
|
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_ &
|