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
|
@@ -42,15 +42,15 @@ class Ui_MainWindow(object):
|
|
|
42
42
|
self.gridLayout = QtWidgets.QGridLayout(self.imageData_groupBox)
|
|
43
43
|
self.gridLayout.setObjectName("gridLayout")
|
|
44
44
|
self.gridLayout_2 = QtWidgets.QGridLayout()
|
|
45
|
-
self.gridLayout_2.setSizeConstraint(QtCore.Qt.QLayout
|
|
45
|
+
self.gridLayout_2.setSizeConstraint(QtCore.Qt.QLayout.SizeConstraint.SetMaximumSize)
|
|
46
46
|
self.gridLayout_2.setObjectName("gridLayout_2")
|
|
47
47
|
self.verticalLayout_3 = QtWidgets.QVBoxLayout()
|
|
48
|
-
self.verticalLayout_3.setSizeConstraint(QtCore.Qt.QLayout
|
|
48
|
+
self.verticalLayout_3.setSizeConstraint(QtCore.Qt.QLayout.SizeConstraint.SetFixedSize)
|
|
49
49
|
self.verticalLayout_3.setContentsMargins(-1, 5, -1, 5)
|
|
50
50
|
self.verticalLayout_3.setSpacing(0)
|
|
51
51
|
self.verticalLayout_3.setObjectName("verticalLayout_3")
|
|
52
52
|
self.dispmax_doubleSpinBox = QtWidgets.QDoubleSpinBox(self.imageData_groupBox)
|
|
53
|
-
self.dispmax_doubleSpinBox.setAlignment(QtCore.Qt.Qt
|
|
53
|
+
self.dispmax_doubleSpinBox.setAlignment(QtCore.Qt.Qt.AlignmentFlag.AlignRight|QtCore.Qt.Qt.AlignmentFlag.AlignTrailing|QtCore.Qt.Qt.AlignmentFlag.AlignVCenter)
|
|
54
54
|
self.dispmax_doubleSpinBox.setDecimals(3)
|
|
55
55
|
self.dispmax_doubleSpinBox.setObjectName("dispmax_doubleSpinBox")
|
|
56
56
|
self.verticalLayout_3.addWidget(self.dispmax_doubleSpinBox)
|
|
@@ -67,7 +67,7 @@ class Ui_MainWindow(object):
|
|
|
67
67
|
self.setMask_Button.setObjectName("setMask_Button")
|
|
68
68
|
self.verticalLayout_3.addWidget(self.setMask_Button)
|
|
69
69
|
self.dispmin_doubleSpinBox = QtWidgets.QDoubleSpinBox(self.imageData_groupBox)
|
|
70
|
-
self.dispmin_doubleSpinBox.setAlignment(QtCore.Qt.Qt
|
|
70
|
+
self.dispmin_doubleSpinBox.setAlignment(QtCore.Qt.Qt.AlignmentFlag.AlignRight|QtCore.Qt.Qt.AlignmentFlag.AlignTrailing|QtCore.Qt.Qt.AlignmentFlag.AlignVCenter)
|
|
71
71
|
self.dispmin_doubleSpinBox.setDecimals(3)
|
|
72
72
|
self.dispmin_doubleSpinBox.setObjectName("dispmin_doubleSpinBox")
|
|
73
73
|
self.verticalLayout_3.addWidget(self.dispmin_doubleSpinBox)
|
|
@@ -85,11 +85,11 @@ class Ui_MainWindow(object):
|
|
|
85
85
|
self.graphicsView_colorbar.setMinimumSize(QtCore.QSize(25, 128))
|
|
86
86
|
self.graphicsView_colorbar.setMaximumSize(QtCore.QSize(25, 256))
|
|
87
87
|
self.graphicsView_colorbar.setSizeIncrement(QtCore.QSize(0, 1))
|
|
88
|
-
self.graphicsView_colorbar.setResizeAnchor(QtCore.Qt.QGraphicsView
|
|
88
|
+
self.graphicsView_colorbar.setResizeAnchor(QtCore.Qt.QGraphicsView.ViewportAnchor.AnchorViewCenter)
|
|
89
89
|
self.graphicsView_colorbar.setObjectName("graphicsView_colorbar")
|
|
90
90
|
self.gridLayout_2.addWidget(self.graphicsView_colorbar, 0, 0, 1, 1)
|
|
91
91
|
self.aspects_verticalLayout = QtWidgets.QVBoxLayout()
|
|
92
|
-
self.aspects_verticalLayout.setSizeConstraint(QtCore.Qt.QLayout
|
|
92
|
+
self.aspects_verticalLayout.setSizeConstraint(QtCore.Qt.QLayout.SizeConstraint.SetMinimumSize)
|
|
93
93
|
self.aspects_verticalLayout.setSpacing(0)
|
|
94
94
|
self.aspects_verticalLayout.setObjectName("aspects_verticalLayout")
|
|
95
95
|
self.verticalLayout_4 = QtWidgets.QVBoxLayout()
|
|
@@ -222,8 +222,8 @@ class Ui_MainWindow(object):
|
|
|
222
222
|
self.main_graphicsView_cor.setMinimumSize(QtCore.QSize(256, 128))
|
|
223
223
|
self.main_graphicsView_cor.setMaximumSize(QtCore.QSize(256, 256))
|
|
224
224
|
self.main_graphicsView_cor.setSizeIncrement(QtCore.QSize(1, 1))
|
|
225
|
-
self.main_graphicsView_cor.setFrameShape(QtCore.Qt.QFrame
|
|
226
|
-
self.main_graphicsView_cor.setAlignment(QtCore.Qt.Qt
|
|
225
|
+
self.main_graphicsView_cor.setFrameShape(QtCore.Qt.QFrame.Shape.NoFrame)
|
|
226
|
+
self.main_graphicsView_cor.setAlignment(QtCore.Qt.Qt.AlignmentFlag.AlignCenter)
|
|
227
227
|
self.main_graphicsView_cor.setObjectName("main_graphicsView_cor")
|
|
228
228
|
self.gridLayout.addWidget(self.main_graphicsView_cor, 1, 2, 1, 1)
|
|
229
229
|
self.main_graphicsView_sag = GraphicsLayoutWidget(self.imageData_groupBox)
|
|
@@ -235,8 +235,8 @@ class Ui_MainWindow(object):
|
|
|
235
235
|
self.main_graphicsView_sag.setMinimumSize(QtCore.QSize(256, 256))
|
|
236
236
|
self.main_graphicsView_sag.setMaximumSize(QtCore.QSize(256, 256))
|
|
237
237
|
self.main_graphicsView_sag.setSizeIncrement(QtCore.QSize(1, 1))
|
|
238
|
-
self.main_graphicsView_sag.setFrameShape(QtCore.Qt.QFrame
|
|
239
|
-
self.main_graphicsView_sag.setAlignment(QtCore.Qt.Qt
|
|
238
|
+
self.main_graphicsView_sag.setFrameShape(QtCore.Qt.QFrame.Shape.NoFrame)
|
|
239
|
+
self.main_graphicsView_sag.setAlignment(QtCore.Qt.Qt.AlignmentFlag.AlignCenter)
|
|
240
240
|
self.main_graphicsView_sag.setObjectName("main_graphicsView_sag")
|
|
241
241
|
self.gridLayout.addWidget(self.main_graphicsView_sag, 2, 1, 1, 1)
|
|
242
242
|
self.main_graphicsView_ax = GraphicsLayoutWidget(self.imageData_groupBox)
|
|
@@ -248,9 +248,9 @@ class Ui_MainWindow(object):
|
|
|
248
248
|
self.main_graphicsView_ax.setMinimumSize(QtCore.QSize(256, 256))
|
|
249
249
|
self.main_graphicsView_ax.setMaximumSize(QtCore.QSize(256, 256))
|
|
250
250
|
self.main_graphicsView_ax.setSizeIncrement(QtCore.QSize(1, 1))
|
|
251
|
-
self.main_graphicsView_ax.setFrameShape(QtCore.Qt.QFrame
|
|
252
|
-
self.main_graphicsView_ax.setAlignment(QtCore.Qt.Qt
|
|
253
|
-
self.main_graphicsView_ax.setViewportUpdateMode(QtCore.Qt.QGraphicsView
|
|
251
|
+
self.main_graphicsView_ax.setFrameShape(QtCore.Qt.QFrame.Shape.NoFrame)
|
|
252
|
+
self.main_graphicsView_ax.setAlignment(QtCore.Qt.Qt.AlignmentFlag.AlignCenter)
|
|
253
|
+
self.main_graphicsView_ax.setViewportUpdateMode(QtCore.Qt.QGraphicsView.ViewportUpdateMode.SmartViewportUpdate)
|
|
254
254
|
self.main_graphicsView_ax.setObjectName("main_graphicsView_ax")
|
|
255
255
|
self.gridLayout.addWidget(self.main_graphicsView_ax, 1, 1, 1, 1)
|
|
256
256
|
self.overlays_groupBox = QtWidgets.QGroupBox(self.centralwidget)
|
|
@@ -283,8 +283,8 @@ class Ui_MainWindow(object):
|
|
|
283
283
|
self.overlay_graphicsView_01.setSizePolicy(sizePolicy)
|
|
284
284
|
self.overlay_graphicsView_01.setMinimumSize(QtCore.QSize(192, 64))
|
|
285
285
|
self.overlay_graphicsView_01.setMaximumSize(QtCore.QSize(192, 64))
|
|
286
|
-
self.overlay_graphicsView_01.setFrameShape(QtCore.Qt.QFrame
|
|
287
|
-
self.overlay_graphicsView_01.setAlignment(QtCore.Qt.Qt
|
|
286
|
+
self.overlay_graphicsView_01.setFrameShape(QtCore.Qt.QFrame.Shape.NoFrame)
|
|
287
|
+
self.overlay_graphicsView_01.setAlignment(QtCore.Qt.Qt.AlignmentFlag.AlignCenter)
|
|
288
288
|
self.overlay_graphicsView_01.setObjectName("overlay_graphicsView_01")
|
|
289
289
|
self.overlay_radioButton_01 = QtWidgets.QRadioButton(self.overlays_groupBox)
|
|
290
290
|
self.overlay_radioButton_01.setGeometry(QtCore.QRect(10, 71, 151, 20))
|
|
@@ -360,8 +360,8 @@ class Ui_MainWindow(object):
|
|
|
360
360
|
self.overlay_graphicsView_04.setSizePolicy(sizePolicy)
|
|
361
361
|
self.overlay_graphicsView_04.setMinimumSize(QtCore.QSize(192, 64))
|
|
362
362
|
self.overlay_graphicsView_04.setMaximumSize(QtCore.QSize(192, 64))
|
|
363
|
-
self.overlay_graphicsView_04.setFrameShape(QtCore.Qt.QFrame
|
|
364
|
-
self.overlay_graphicsView_04.setAlignment(QtCore.Qt.Qt
|
|
363
|
+
self.overlay_graphicsView_04.setFrameShape(QtCore.Qt.QFrame.Shape.NoFrame)
|
|
364
|
+
self.overlay_graphicsView_04.setAlignment(QtCore.Qt.Qt.AlignmentFlag.AlignCenter)
|
|
365
365
|
self.overlay_graphicsView_04.setObjectName("overlay_graphicsView_04")
|
|
366
366
|
self.overlay_graphicsView_06 = GraphicsLayoutWidget(self.overlays_groupBox)
|
|
367
367
|
self.overlay_graphicsView_06.setGeometry(QtCore.QRect(10, 375, 192, 64))
|
|
@@ -372,8 +372,8 @@ class Ui_MainWindow(object):
|
|
|
372
372
|
self.overlay_graphicsView_06.setSizePolicy(sizePolicy)
|
|
373
373
|
self.overlay_graphicsView_06.setMinimumSize(QtCore.QSize(192, 64))
|
|
374
374
|
self.overlay_graphicsView_06.setMaximumSize(QtCore.QSize(192, 64))
|
|
375
|
-
self.overlay_graphicsView_06.setFrameShape(QtCore.Qt.QFrame
|
|
376
|
-
self.overlay_graphicsView_06.setAlignment(QtCore.Qt.Qt
|
|
375
|
+
self.overlay_graphicsView_06.setFrameShape(QtCore.Qt.QFrame.Shape.NoFrame)
|
|
376
|
+
self.overlay_graphicsView_06.setAlignment(QtCore.Qt.Qt.AlignmentFlag.AlignCenter)
|
|
377
377
|
self.overlay_graphicsView_06.setObjectName("overlay_graphicsView_06")
|
|
378
378
|
self.overlay_graphicsView_03 = GraphicsLayoutWidget(self.overlays_groupBox)
|
|
379
379
|
self.overlay_graphicsView_03.setGeometry(QtCore.QRect(10, 165, 192, 64))
|
|
@@ -384,8 +384,8 @@ class Ui_MainWindow(object):
|
|
|
384
384
|
self.overlay_graphicsView_03.setSizePolicy(sizePolicy)
|
|
385
385
|
self.overlay_graphicsView_03.setMinimumSize(QtCore.QSize(192, 64))
|
|
386
386
|
self.overlay_graphicsView_03.setMaximumSize(QtCore.QSize(192, 64))
|
|
387
|
-
self.overlay_graphicsView_03.setFrameShape(QtCore.Qt.QFrame
|
|
388
|
-
self.overlay_graphicsView_03.setAlignment(QtCore.Qt.Qt
|
|
387
|
+
self.overlay_graphicsView_03.setFrameShape(QtCore.Qt.QFrame.Shape.NoFrame)
|
|
388
|
+
self.overlay_graphicsView_03.setAlignment(QtCore.Qt.Qt.AlignmentFlag.AlignCenter)
|
|
389
389
|
self.overlay_graphicsView_03.setObjectName("overlay_graphicsView_03")
|
|
390
390
|
self.overlay_graphicsView_08 = GraphicsLayoutWidget(self.overlays_groupBox)
|
|
391
391
|
self.overlay_graphicsView_08.setGeometry(QtCore.QRect(10, 515, 192, 64))
|
|
@@ -396,8 +396,8 @@ class Ui_MainWindow(object):
|
|
|
396
396
|
self.overlay_graphicsView_08.setSizePolicy(sizePolicy)
|
|
397
397
|
self.overlay_graphicsView_08.setMinimumSize(QtCore.QSize(192, 64))
|
|
398
398
|
self.overlay_graphicsView_08.setMaximumSize(QtCore.QSize(192, 64))
|
|
399
|
-
self.overlay_graphicsView_08.setFrameShape(QtCore.Qt.QFrame
|
|
400
|
-
self.overlay_graphicsView_08.setAlignment(QtCore.Qt.Qt
|
|
399
|
+
self.overlay_graphicsView_08.setFrameShape(QtCore.Qt.QFrame.Shape.NoFrame)
|
|
400
|
+
self.overlay_graphicsView_08.setAlignment(QtCore.Qt.Qt.AlignmentFlag.AlignCenter)
|
|
401
401
|
self.overlay_graphicsView_08.setObjectName("overlay_graphicsView_08")
|
|
402
402
|
self.overlay_graphicsView_05 = GraphicsLayoutWidget(self.overlays_groupBox)
|
|
403
403
|
self.overlay_graphicsView_05.setGeometry(QtCore.QRect(10, 305, 192, 64))
|
|
@@ -408,8 +408,8 @@ class Ui_MainWindow(object):
|
|
|
408
408
|
self.overlay_graphicsView_05.setSizePolicy(sizePolicy)
|
|
409
409
|
self.overlay_graphicsView_05.setMinimumSize(QtCore.QSize(192, 64))
|
|
410
410
|
self.overlay_graphicsView_05.setMaximumSize(QtCore.QSize(192, 64))
|
|
411
|
-
self.overlay_graphicsView_05.setFrameShape(QtCore.Qt.QFrame
|
|
412
|
-
self.overlay_graphicsView_05.setAlignment(QtCore.Qt.Qt
|
|
411
|
+
self.overlay_graphicsView_05.setFrameShape(QtCore.Qt.QFrame.Shape.NoFrame)
|
|
412
|
+
self.overlay_graphicsView_05.setAlignment(QtCore.Qt.Qt.AlignmentFlag.AlignCenter)
|
|
413
413
|
self.overlay_graphicsView_05.setObjectName("overlay_graphicsView_05")
|
|
414
414
|
self.overlay_graphicsView_02 = GraphicsLayoutWidget(self.overlays_groupBox)
|
|
415
415
|
self.overlay_graphicsView_02.setGeometry(QtCore.QRect(10, 95, 192, 64))
|
|
@@ -420,8 +420,8 @@ class Ui_MainWindow(object):
|
|
|
420
420
|
self.overlay_graphicsView_02.setSizePolicy(sizePolicy)
|
|
421
421
|
self.overlay_graphicsView_02.setMinimumSize(QtCore.QSize(192, 64))
|
|
422
422
|
self.overlay_graphicsView_02.setMaximumSize(QtCore.QSize(192, 64))
|
|
423
|
-
self.overlay_graphicsView_02.setFrameShape(QtCore.Qt.QFrame
|
|
424
|
-
self.overlay_graphicsView_02.setAlignment(QtCore.Qt.Qt
|
|
423
|
+
self.overlay_graphicsView_02.setFrameShape(QtCore.Qt.QFrame.Shape.NoFrame)
|
|
424
|
+
self.overlay_graphicsView_02.setAlignment(QtCore.Qt.Qt.AlignmentFlag.AlignCenter)
|
|
425
425
|
self.overlay_graphicsView_02.setObjectName("overlay_graphicsView_02")
|
|
426
426
|
self.overlay_graphicsView_07 = GraphicsLayoutWidget(self.overlays_groupBox)
|
|
427
427
|
self.overlay_graphicsView_07.setGeometry(QtCore.QRect(10, 445, 192, 64))
|
|
@@ -432,8 +432,8 @@ class Ui_MainWindow(object):
|
|
|
432
432
|
self.overlay_graphicsView_07.setSizePolicy(sizePolicy)
|
|
433
433
|
self.overlay_graphicsView_07.setMinimumSize(QtCore.QSize(192, 64))
|
|
434
434
|
self.overlay_graphicsView_07.setMaximumSize(QtCore.QSize(192, 64))
|
|
435
|
-
self.overlay_graphicsView_07.setFrameShape(QtCore.Qt.QFrame
|
|
436
|
-
self.overlay_graphicsView_07.setAlignment(QtCore.Qt.Qt
|
|
435
|
+
self.overlay_graphicsView_07.setFrameShape(QtCore.Qt.QFrame.Shape.NoFrame)
|
|
436
|
+
self.overlay_graphicsView_07.setAlignment(QtCore.Qt.Qt.AlignmentFlag.AlignCenter)
|
|
437
437
|
self.overlay_graphicsView_07.setObjectName("overlay_graphicsView_07")
|
|
438
438
|
self.overlay_graphicsView_09 = GraphicsLayoutWidget(self.overlays_groupBox)
|
|
439
439
|
self.overlay_graphicsView_09.setGeometry(QtCore.QRect(210, 25, 192, 64))
|
|
@@ -444,8 +444,8 @@ class Ui_MainWindow(object):
|
|
|
444
444
|
self.overlay_graphicsView_09.setSizePolicy(sizePolicy)
|
|
445
445
|
self.overlay_graphicsView_09.setMinimumSize(QtCore.QSize(192, 64))
|
|
446
446
|
self.overlay_graphicsView_09.setMaximumSize(QtCore.QSize(192, 64))
|
|
447
|
-
self.overlay_graphicsView_09.setFrameShape(QtCore.Qt.QFrame
|
|
448
|
-
self.overlay_graphicsView_09.setAlignment(QtCore.Qt.Qt
|
|
447
|
+
self.overlay_graphicsView_09.setFrameShape(QtCore.Qt.QFrame.Shape.NoFrame)
|
|
448
|
+
self.overlay_graphicsView_09.setAlignment(QtCore.Qt.Qt.AlignmentFlag.AlignCenter)
|
|
449
449
|
self.overlay_graphicsView_09.setObjectName("overlay_graphicsView_09")
|
|
450
450
|
self.overlay_graphicsView_11 = GraphicsLayoutWidget(self.overlays_groupBox)
|
|
451
451
|
self.overlay_graphicsView_11.setGeometry(QtCore.QRect(210, 165, 192, 64))
|
|
@@ -456,8 +456,8 @@ class Ui_MainWindow(object):
|
|
|
456
456
|
self.overlay_graphicsView_11.setSizePolicy(sizePolicy)
|
|
457
457
|
self.overlay_graphicsView_11.setMinimumSize(QtCore.QSize(192, 64))
|
|
458
458
|
self.overlay_graphicsView_11.setMaximumSize(QtCore.QSize(192, 64))
|
|
459
|
-
self.overlay_graphicsView_11.setFrameShape(QtCore.Qt.QFrame
|
|
460
|
-
self.overlay_graphicsView_11.setAlignment(QtCore.Qt.Qt
|
|
459
|
+
self.overlay_graphicsView_11.setFrameShape(QtCore.Qt.QFrame.Shape.NoFrame)
|
|
460
|
+
self.overlay_graphicsView_11.setAlignment(QtCore.Qt.Qt.AlignmentFlag.AlignCenter)
|
|
461
461
|
self.overlay_graphicsView_11.setObjectName("overlay_graphicsView_11")
|
|
462
462
|
self.overlay_graphicsView_10 = GraphicsLayoutWidget(self.overlays_groupBox)
|
|
463
463
|
self.overlay_graphicsView_10.setGeometry(QtCore.QRect(210, 95, 192, 64))
|
|
@@ -468,8 +468,8 @@ class Ui_MainWindow(object):
|
|
|
468
468
|
self.overlay_graphicsView_10.setSizePolicy(sizePolicy)
|
|
469
469
|
self.overlay_graphicsView_10.setMinimumSize(QtCore.QSize(192, 64))
|
|
470
470
|
self.overlay_graphicsView_10.setMaximumSize(QtCore.QSize(192, 64))
|
|
471
|
-
self.overlay_graphicsView_10.setFrameShape(QtCore.Qt.QFrame
|
|
472
|
-
self.overlay_graphicsView_10.setAlignment(QtCore.Qt.Qt
|
|
471
|
+
self.overlay_graphicsView_10.setFrameShape(QtCore.Qt.QFrame.Shape.NoFrame)
|
|
472
|
+
self.overlay_graphicsView_10.setAlignment(QtCore.Qt.Qt.AlignmentFlag.AlignCenter)
|
|
473
473
|
self.overlay_graphicsView_10.setObjectName("overlay_graphicsView_10")
|
|
474
474
|
self.overlay_graphicsView_12 = GraphicsLayoutWidget(self.overlays_groupBox)
|
|
475
475
|
self.overlay_graphicsView_12.setGeometry(QtCore.QRect(210, 235, 192, 64))
|
|
@@ -480,8 +480,8 @@ class Ui_MainWindow(object):
|
|
|
480
480
|
self.overlay_graphicsView_12.setSizePolicy(sizePolicy)
|
|
481
481
|
self.overlay_graphicsView_12.setMinimumSize(QtCore.QSize(192, 64))
|
|
482
482
|
self.overlay_graphicsView_12.setMaximumSize(QtCore.QSize(192, 64))
|
|
483
|
-
self.overlay_graphicsView_12.setFrameShape(QtCore.Qt.QFrame
|
|
484
|
-
self.overlay_graphicsView_12.setAlignment(QtCore.Qt.Qt
|
|
483
|
+
self.overlay_graphicsView_12.setFrameShape(QtCore.Qt.QFrame.Shape.NoFrame)
|
|
484
|
+
self.overlay_graphicsView_12.setAlignment(QtCore.Qt.Qt.AlignmentFlag.AlignCenter)
|
|
485
485
|
self.overlay_graphicsView_12.setObjectName("overlay_graphicsView_12")
|
|
486
486
|
self.overlay_graphicsView_13 = GraphicsLayoutWidget(self.overlays_groupBox)
|
|
487
487
|
self.overlay_graphicsView_13.setGeometry(QtCore.QRect(210, 305, 192, 64))
|
|
@@ -492,8 +492,8 @@ class Ui_MainWindow(object):
|
|
|
492
492
|
self.overlay_graphicsView_13.setSizePolicy(sizePolicy)
|
|
493
493
|
self.overlay_graphicsView_13.setMinimumSize(QtCore.QSize(192, 64))
|
|
494
494
|
self.overlay_graphicsView_13.setMaximumSize(QtCore.QSize(192, 64))
|
|
495
|
-
self.overlay_graphicsView_13.setFrameShape(QtCore.Qt.QFrame
|
|
496
|
-
self.overlay_graphicsView_13.setAlignment(QtCore.Qt.Qt
|
|
495
|
+
self.overlay_graphicsView_13.setFrameShape(QtCore.Qt.QFrame.Shape.NoFrame)
|
|
496
|
+
self.overlay_graphicsView_13.setAlignment(QtCore.Qt.Qt.AlignmentFlag.AlignCenter)
|
|
497
497
|
self.overlay_graphicsView_13.setObjectName("overlay_graphicsView_13")
|
|
498
498
|
self.overlay_graphicsView_14 = GraphicsLayoutWidget(self.overlays_groupBox)
|
|
499
499
|
self.overlay_graphicsView_14.setGeometry(QtCore.QRect(210, 375, 192, 64))
|
|
@@ -504,8 +504,8 @@ class Ui_MainWindow(object):
|
|
|
504
504
|
self.overlay_graphicsView_14.setSizePolicy(sizePolicy)
|
|
505
505
|
self.overlay_graphicsView_14.setMinimumSize(QtCore.QSize(192, 64))
|
|
506
506
|
self.overlay_graphicsView_14.setMaximumSize(QtCore.QSize(192, 64))
|
|
507
|
-
self.overlay_graphicsView_14.setFrameShape(QtCore.Qt.QFrame
|
|
508
|
-
self.overlay_graphicsView_14.setAlignment(QtCore.Qt.Qt
|
|
507
|
+
self.overlay_graphicsView_14.setFrameShape(QtCore.Qt.QFrame.Shape.NoFrame)
|
|
508
|
+
self.overlay_graphicsView_14.setAlignment(QtCore.Qt.Qt.AlignmentFlag.AlignCenter)
|
|
509
509
|
self.overlay_graphicsView_14.setObjectName("overlay_graphicsView_14")
|
|
510
510
|
self.overlay_graphicsView_15 = GraphicsLayoutWidget(self.overlays_groupBox)
|
|
511
511
|
self.overlay_graphicsView_15.setGeometry(QtCore.QRect(210, 445, 192, 64))
|
|
@@ -516,8 +516,8 @@ class Ui_MainWindow(object):
|
|
|
516
516
|
self.overlay_graphicsView_15.setSizePolicy(sizePolicy)
|
|
517
517
|
self.overlay_graphicsView_15.setMinimumSize(QtCore.QSize(192, 64))
|
|
518
518
|
self.overlay_graphicsView_15.setMaximumSize(QtCore.QSize(192, 64))
|
|
519
|
-
self.overlay_graphicsView_15.setFrameShape(QtCore.Qt.QFrame
|
|
520
|
-
self.overlay_graphicsView_15.setAlignment(QtCore.Qt.Qt
|
|
519
|
+
self.overlay_graphicsView_15.setFrameShape(QtCore.Qt.QFrame.Shape.NoFrame)
|
|
520
|
+
self.overlay_graphicsView_15.setAlignment(QtCore.Qt.Qt.AlignmentFlag.AlignCenter)
|
|
521
521
|
self.overlay_graphicsView_15.setObjectName("overlay_graphicsView_15")
|
|
522
522
|
self.overlay_graphicsView_16 = GraphicsLayoutWidget(self.overlays_groupBox)
|
|
523
523
|
self.overlay_graphicsView_16.setGeometry(QtCore.QRect(210, 515, 192, 64))
|
|
@@ -528,8 +528,8 @@ class Ui_MainWindow(object):
|
|
|
528
528
|
self.overlay_graphicsView_16.setSizePolicy(sizePolicy)
|
|
529
529
|
self.overlay_graphicsView_16.setMinimumSize(QtCore.QSize(192, 64))
|
|
530
530
|
self.overlay_graphicsView_16.setMaximumSize(QtCore.QSize(192, 64))
|
|
531
|
-
self.overlay_graphicsView_16.setFrameShape(QtCore.Qt.QFrame
|
|
532
|
-
self.overlay_graphicsView_16.setAlignment(QtCore.Qt.Qt
|
|
531
|
+
self.overlay_graphicsView_16.setFrameShape(QtCore.Qt.QFrame.Shape.NoFrame)
|
|
532
|
+
self.overlay_graphicsView_16.setAlignment(QtCore.Qt.Qt.AlignmentFlag.AlignCenter)
|
|
533
533
|
self.overlay_graphicsView_16.setObjectName("overlay_graphicsView_16")
|
|
534
534
|
self.overlay_radioButton_09 = QtWidgets.QRadioButton(self.overlays_groupBox)
|
|
535
535
|
self.overlay_radioButton_09.setGeometry(QtCore.QRect(210, 70, 151, 20))
|
|
@@ -670,7 +670,7 @@ class Ui_MainWindow(object):
|
|
|
670
670
|
self.label_4.setObjectName("label_4")
|
|
671
671
|
self.pixnumX_doubleSpinBox = QtWidgets.QDoubleSpinBox(self.mainimagedata_groupBox)
|
|
672
672
|
self.pixnumX_doubleSpinBox.setGeometry(QtCore.QRect(30, 30, 67, 24))
|
|
673
|
-
self.pixnumX_doubleSpinBox.setAlignment(QtCore.Qt.Qt
|
|
673
|
+
self.pixnumX_doubleSpinBox.setAlignment(QtCore.Qt.Qt.AlignmentFlag.AlignRight|QtCore.Qt.Qt.AlignmentFlag.AlignTrailing|QtCore.Qt.Qt.AlignmentFlag.AlignVCenter)
|
|
674
674
|
self.pixnumX_doubleSpinBox.setDecimals(0)
|
|
675
675
|
self.pixnumX_doubleSpinBox.setObjectName("pixnumX_doubleSpinBox")
|
|
676
676
|
self.label_7 = QtWidgets.QLabel(self.mainimagedata_groupBox)
|
|
@@ -681,7 +681,7 @@ class Ui_MainWindow(object):
|
|
|
681
681
|
self.label_7.setObjectName("label_7")
|
|
682
682
|
self.coordX_doubleSpinBox = QtWidgets.QDoubleSpinBox(self.mainimagedata_groupBox)
|
|
683
683
|
self.coordX_doubleSpinBox.setGeometry(QtCore.QRect(100, 30, 67, 24))
|
|
684
|
-
self.coordX_doubleSpinBox.setAlignment(QtCore.Qt.Qt
|
|
684
|
+
self.coordX_doubleSpinBox.setAlignment(QtCore.Qt.Qt.AlignmentFlag.AlignRight|QtCore.Qt.Qt.AlignmentFlag.AlignTrailing|QtCore.Qt.Qt.AlignmentFlag.AlignVCenter)
|
|
685
685
|
self.coordX_doubleSpinBox.setDecimals(3)
|
|
686
686
|
self.coordX_doubleSpinBox.setObjectName("coordX_doubleSpinBox")
|
|
687
687
|
self.label_9 = QtWidgets.QLabel(self.mainimagedata_groupBox)
|
|
@@ -692,22 +692,22 @@ class Ui_MainWindow(object):
|
|
|
692
692
|
self.label_9.setObjectName("label_9")
|
|
693
693
|
self.pixnumY_doubleSpinBox = QtWidgets.QDoubleSpinBox(self.mainimagedata_groupBox)
|
|
694
694
|
self.pixnumY_doubleSpinBox.setGeometry(QtCore.QRect(30, 55, 67, 24))
|
|
695
|
-
self.pixnumY_doubleSpinBox.setAlignment(QtCore.Qt.Qt
|
|
695
|
+
self.pixnumY_doubleSpinBox.setAlignment(QtCore.Qt.Qt.AlignmentFlag.AlignRight|QtCore.Qt.Qt.AlignmentFlag.AlignTrailing|QtCore.Qt.Qt.AlignmentFlag.AlignVCenter)
|
|
696
696
|
self.pixnumY_doubleSpinBox.setDecimals(0)
|
|
697
697
|
self.pixnumY_doubleSpinBox.setObjectName("pixnumY_doubleSpinBox")
|
|
698
698
|
self.coordY_doubleSpinBox = QtWidgets.QDoubleSpinBox(self.mainimagedata_groupBox)
|
|
699
699
|
self.coordY_doubleSpinBox.setGeometry(QtCore.QRect(100, 55, 67, 24))
|
|
700
|
-
self.coordY_doubleSpinBox.setAlignment(QtCore.Qt.Qt
|
|
700
|
+
self.coordY_doubleSpinBox.setAlignment(QtCore.Qt.Qt.AlignmentFlag.AlignRight|QtCore.Qt.Qt.AlignmentFlag.AlignTrailing|QtCore.Qt.Qt.AlignmentFlag.AlignVCenter)
|
|
701
701
|
self.coordY_doubleSpinBox.setDecimals(3)
|
|
702
702
|
self.coordY_doubleSpinBox.setObjectName("coordY_doubleSpinBox")
|
|
703
703
|
self.pixnumZ_doubleSpinBox = QtWidgets.QDoubleSpinBox(self.mainimagedata_groupBox)
|
|
704
704
|
self.pixnumZ_doubleSpinBox.setGeometry(QtCore.QRect(30, 80, 67, 24))
|
|
705
|
-
self.pixnumZ_doubleSpinBox.setAlignment(QtCore.Qt.Qt
|
|
705
|
+
self.pixnumZ_doubleSpinBox.setAlignment(QtCore.Qt.Qt.AlignmentFlag.AlignRight|QtCore.Qt.Qt.AlignmentFlag.AlignTrailing|QtCore.Qt.Qt.AlignmentFlag.AlignVCenter)
|
|
706
706
|
self.pixnumZ_doubleSpinBox.setDecimals(0)
|
|
707
707
|
self.pixnumZ_doubleSpinBox.setObjectName("pixnumZ_doubleSpinBox")
|
|
708
708
|
self.coordZ_doubleSpinBox = QtWidgets.QDoubleSpinBox(self.mainimagedata_groupBox)
|
|
709
709
|
self.coordZ_doubleSpinBox.setGeometry(QtCore.QRect(100, 80, 67, 24))
|
|
710
|
-
self.coordZ_doubleSpinBox.setAlignment(QtCore.Qt.Qt
|
|
710
|
+
self.coordZ_doubleSpinBox.setAlignment(QtCore.Qt.Qt.AlignmentFlag.AlignRight|QtCore.Qt.Qt.AlignmentFlag.AlignTrailing|QtCore.Qt.Qt.AlignmentFlag.AlignVCenter)
|
|
711
711
|
self.coordZ_doubleSpinBox.setDecimals(3)
|
|
712
712
|
self.coordZ_doubleSpinBox.setObjectName("coordZ_doubleSpinBox")
|
|
713
713
|
self.label_6 = QtWidgets.QLabel(self.mainimagedata_groupBox)
|
|
@@ -718,12 +718,12 @@ class Ui_MainWindow(object):
|
|
|
718
718
|
self.label_8.setObjectName("label_8")
|
|
719
719
|
self.coordT_doubleSpinBox = QtWidgets.QDoubleSpinBox(self.mainimagedata_groupBox)
|
|
720
720
|
self.coordT_doubleSpinBox.setGeometry(QtCore.QRect(100, 130, 67, 24))
|
|
721
|
-
self.coordT_doubleSpinBox.setAlignment(QtCore.Qt.Qt
|
|
721
|
+
self.coordT_doubleSpinBox.setAlignment(QtCore.Qt.Qt.AlignmentFlag.AlignRight|QtCore.Qt.Qt.AlignmentFlag.AlignTrailing|QtCore.Qt.Qt.AlignmentFlag.AlignVCenter)
|
|
722
722
|
self.coordT_doubleSpinBox.setDecimals(3)
|
|
723
723
|
self.coordT_doubleSpinBox.setObjectName("coordT_doubleSpinBox")
|
|
724
724
|
self.pixnumT_doubleSpinBox = QtWidgets.QDoubleSpinBox(self.mainimagedata_groupBox)
|
|
725
725
|
self.pixnumT_doubleSpinBox.setGeometry(QtCore.QRect(30, 130, 67, 24))
|
|
726
|
-
self.pixnumT_doubleSpinBox.setAlignment(QtCore.Qt.Qt
|
|
726
|
+
self.pixnumT_doubleSpinBox.setAlignment(QtCore.Qt.Qt.AlignmentFlag.AlignRight|QtCore.Qt.Qt.AlignmentFlag.AlignTrailing|QtCore.Qt.Qt.AlignmentFlag.AlignVCenter)
|
|
727
727
|
self.pixnumT_doubleSpinBox.setDecimals(0)
|
|
728
728
|
self.pixnumT_doubleSpinBox.setObjectName("pixnumT_doubleSpinBox")
|
|
729
729
|
self.label_3 = QtWidgets.QLabel(self.mainimagedata_groupBox)
|
|
@@ -731,7 +731,7 @@ class Ui_MainWindow(object):
|
|
|
731
731
|
self.label_3.setObjectName("label_3")
|
|
732
732
|
self.TimeSlider = QtWidgets.QSlider(self.mainimagedata_groupBox)
|
|
733
733
|
self.TimeSlider.setGeometry(QtCore.QRect(10, 195, 151, 22))
|
|
734
|
-
self.TimeSlider.setOrientation(QtCore.Qt.Qt
|
|
734
|
+
self.TimeSlider.setOrientation(QtCore.Qt.Qt.Orientation.Horizontal)
|
|
735
735
|
self.TimeSlider.setObjectName("TimeSlider")
|
|
736
736
|
self.label_10 = QtWidgets.QLabel(self.mainimagedata_groupBox)
|
|
737
737
|
self.label_10.setGeometry(QtCore.QRect(30, 120, 56, 13))
|
|
@@ -841,14 +841,14 @@ class Ui_MainWindow(object):
|
|
|
841
841
|
font = QtGui.QFont()
|
|
842
842
|
font.setFamily("Arial Narrow")
|
|
843
843
|
self.label_5.setFont(font)
|
|
844
|
-
self.label_5.setAlignment(QtCore.Qt.Qt
|
|
844
|
+
self.label_5.setAlignment(QtCore.Qt.Qt.AlignmentFlag.AlignCenter)
|
|
845
845
|
self.label_5.setObjectName("label_5")
|
|
846
846
|
self.label_12 = QtWidgets.QLabel(self.regressor_groupBox)
|
|
847
847
|
self.label_12.setGeometry(QtCore.QRect(1040, 155, 131, 16))
|
|
848
848
|
font = QtGui.QFont()
|
|
849
849
|
font.setFamily("Arial Narrow")
|
|
850
850
|
self.label_12.setFont(font)
|
|
851
|
-
self.label_12.setAlignment(QtCore.Qt.Qt
|
|
851
|
+
self.label_12.setAlignment(QtCore.Qt.Qt.AlignmentFlag.AlignCenter)
|
|
852
852
|
self.label_12.setObjectName("label_12")
|
|
853
853
|
self.logOutput_groupBox = QtWidgets.QGroupBox(self.centralwidget)
|
|
854
854
|
self.logOutput_groupBox.setGeometry(QtCore.QRect(1200, 7, 381, 221))
|
|
@@ -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
|
rapidtide/workflows/delayvar.py
CHANGED
|
@@ -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
|