misleep 0.3.0__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.
- misleep/__init__.py +111 -0
- misleep/__main__.py +16 -0
- misleep/analysis/__init__.py +23 -0
- misleep/analysis/auto_stage.py +158 -0
- misleep/analysis/detection.py +198 -0
- misleep/analysis/features.py +131 -0
- misleep/analysis/models/P30_EEG_F_lightgbm.pkl +0 -0
- misleep/analysis/models/P30_EEG_P_lightgbm.pkl +0 -0
- misleep/analysis/models/__init__.py +0 -0
- misleep/analysis/models/ado_EEG_F_lightgbm.pkl +0 -0
- misleep/analysis/models/ado_EEG_P_lightgbm.pkl +0 -0
- misleep/analysis/models/adult_EEG_F_lightgbm.pkl +0 -0
- misleep/analysis/models/adult_EEG_P_lightgbm.pkl +0 -0
- misleep/analysis/transformer/__init__.py +46 -0
- misleep/analysis/transformer/checkpoints/CausalTransformer_best.pt +0 -0
- misleep/analysis/transformer/checkpoints/__init__.py +0 -0
- misleep/analysis/transformer/configs.py +52 -0
- misleep/analysis/transformer/data.py +362 -0
- misleep/analysis/transformer/inference.py +328 -0
- misleep/analysis/transformer/models.py +220 -0
- misleep/analysis/transformer/preprocessing.py +105 -0
- misleep/config/__init__.py +105 -0
- misleep/config/default_config.ini +38 -0
- misleep/data/__init__.py +13 -0
- misleep/data/annotation.py +114 -0
- misleep/data/midata.py +387 -0
- misleep/gui/__init__.py +23 -0
- misleep/gui/app.py +183 -0
- misleep/gui/config_dialog.py +429 -0
- misleep/gui/dialogs.py +1107 -0
- misleep/gui/event_filters.py +26 -0
- misleep/gui/main_window.py +2699 -0
- misleep/gui/qt_utils.py +277 -0
- misleep/gui/resources/__init__.py +9 -0
- misleep/gui/resources/entire_logo.png +0 -0
- misleep/gui/resources/logo.png +0 -0
- misleep/gui/resources/misleep.ico +0 -0
- misleep/gui/resources/misleep.qrc +7 -0
- misleep/gui/resources/misleep_rc.py +1324 -0
- misleep/gui/spec_window.py +187 -0
- misleep/gui/style.py +994 -0
- misleep/gui/uis/SWA_detect_dialog.ui +181 -0
- misleep/gui/uis/SWA_detect_dialog_ui.py +176 -0
- misleep/gui/uis/__init__.py +6 -0
- misleep/gui/uis/about.ui +88 -0
- misleep/gui/uis/about_ui.py +80 -0
- misleep/gui/uis/auto_stage_causalTransformer_dialog.ui +77 -0
- misleep/gui/uis/auto_stage_causalTransformer_dialog_ui.py +90 -0
- misleep/gui/uis/auto_stage_lightGBM_dialog.ui +124 -0
- misleep/gui/uis/auto_stage_lightGBM_dialog_ui.py +124 -0
- misleep/gui/uis/horizontal_line_dialog.ui +166 -0
- misleep/gui/uis/horizontal_line_dialog_ui.py +157 -0
- misleep/gui/uis/label_dialog.ui +65 -0
- misleep/gui/uis/label_dialog_ui.py +72 -0
- misleep/gui/uis/main_window.ui +871 -0
- misleep/gui/uis/main_window_ui.py +616 -0
- misleep/gui/uis/save_data_dialog.ui +95 -0
- misleep/gui/uis/save_data_dialog_ui.py +98 -0
- misleep/gui/uis/spec_window.ui +109 -0
- misleep/gui/uis/spec_window_ui.py +103 -0
- misleep/gui/uis/spindle_detect_dialog.ui +202 -0
- misleep/gui/uis/spindle_detect_dialog_ui.py +194 -0
- misleep/gui/uis/state_spectral_dialog.ui +240 -0
- misleep/gui/uis/state_spectral_dialog_ui.py +204 -0
- misleep/gui/uis/transfer_result_dialog.ui +104 -0
- misleep/gui/uis/transfer_result_dialog_ui.py +94 -0
- misleep/gui/workers.py +69 -0
- misleep/io/__init__.py +68 -0
- misleep/io/annotation.py +367 -0
- misleep/io/array.py +209 -0
- misleep/io/base.py +174 -0
- misleep/io/edf.py +109 -0
- misleep/io/mat.py +189 -0
- misleep/logger.py +79 -0
- misleep/preprocessing/__init__.py +23 -0
- misleep/preprocessing/artifacts.py +76 -0
- misleep/preprocessing/filtering.py +94 -0
- misleep/preprocessing/segment.py +59 -0
- misleep/preprocessing/spectral.py +169 -0
- misleep/utils/__init__.py +45 -0
- misleep/utils/annotation.py +130 -0
- misleep/utils/entropy.py +135 -0
- misleep/utils/misc.py +69 -0
- misleep/utils/time_utils.py +61 -0
- misleep/viz/__init__.py +12 -0
- misleep/viz/hypnogram.py +48 -0
- misleep/viz/signals.py +51 -0
- misleep/viz/spectral.py +98 -0
- misleep-0.3.0.dist-info/METADATA +249 -0
- misleep-0.3.0.dist-info/RECORD +94 -0
- misleep-0.3.0.dist-info/WHEEL +5 -0
- misleep-0.3.0.dist-info/entry_points.txt +15 -0
- misleep-0.3.0.dist-info/licenses/LICENSE +29 -0
- misleep-0.3.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
################################################################################
|
|
4
|
+
## Form generated from reading UI file 'spindle_detect_dialog.ui'
|
|
5
|
+
##
|
|
6
|
+
## Created by: Qt User Interface Compiler version 6.11.1
|
|
7
|
+
##
|
|
8
|
+
## WARNING! All changes made in this file will be lost when recompiling UI file!
|
|
9
|
+
################################################################################
|
|
10
|
+
|
|
11
|
+
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
|
|
12
|
+
QMetaObject, QObject, QPoint, QRect,
|
|
13
|
+
QSize, QTime, QUrl, Qt)
|
|
14
|
+
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
|
|
15
|
+
QFont, QFontDatabase, QGradient, QIcon,
|
|
16
|
+
QImage, QKeySequence, QLinearGradient, QPainter,
|
|
17
|
+
QPalette, QPixmap, QRadialGradient, QTransform)
|
|
18
|
+
from PySide6.QtWidgets import (QApplication, QCheckBox, QComboBox, QDialog,
|
|
19
|
+
QDoubleSpinBox, QFrame, QGridLayout, QGroupBox,
|
|
20
|
+
QLabel, QPushButton, QSizePolicy, QWidget)
|
|
21
|
+
from misleep.gui.resources import misleep_rc
|
|
22
|
+
|
|
23
|
+
class Ui_SpindleDetectDialog(object):
|
|
24
|
+
def setupUi(self, SpindleDetectDialog):
|
|
25
|
+
if not SpindleDetectDialog.objectName():
|
|
26
|
+
SpindleDetectDialog.setObjectName(u"SpindleDetectDialog")
|
|
27
|
+
SpindleDetectDialog.resize(278, 429)
|
|
28
|
+
icon = QIcon()
|
|
29
|
+
icon.addFile(u":/logo/logo.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
|
|
30
|
+
SpindleDetectDialog.setWindowIcon(icon)
|
|
31
|
+
self.gridLayout = QGridLayout(SpindleDetectDialog)
|
|
32
|
+
self.gridLayout.setObjectName(u"gridLayout")
|
|
33
|
+
self.groupBox = QGroupBox(SpindleDetectDialog)
|
|
34
|
+
self.groupBox.setObjectName(u"groupBox")
|
|
35
|
+
self.gridLayout_2 = QGridLayout(self.groupBox)
|
|
36
|
+
self.gridLayout_2.setObjectName(u"gridLayout_2")
|
|
37
|
+
self.WakeCheckbox = QCheckBox(self.groupBox)
|
|
38
|
+
self.WakeCheckbox.setObjectName(u"WakeCheckbox")
|
|
39
|
+
|
|
40
|
+
self.gridLayout_2.addWidget(self.WakeCheckbox, 12, 0, 1, 1)
|
|
41
|
+
|
|
42
|
+
self.StdEditor = QDoubleSpinBox(self.groupBox)
|
|
43
|
+
self.StdEditor.setObjectName(u"StdEditor")
|
|
44
|
+
self.StdEditor.setValue(1.500000000000000)
|
|
45
|
+
|
|
46
|
+
self.gridLayout_2.addWidget(self.StdEditor, 6, 0, 1, 1)
|
|
47
|
+
|
|
48
|
+
self.ExportCheckbox = QCheckBox(self.groupBox)
|
|
49
|
+
self.ExportCheckbox.setObjectName(u"ExportCheckbox")
|
|
50
|
+
|
|
51
|
+
self.gridLayout_2.addWidget(self.ExportCheckbox, 14, 0, 1, 3)
|
|
52
|
+
|
|
53
|
+
self.line = QFrame(self.groupBox)
|
|
54
|
+
self.line.setObjectName(u"line")
|
|
55
|
+
self.line.setFrameShape(QFrame.Shape.HLine)
|
|
56
|
+
self.line.setFrameShadow(QFrame.Shadow.Sunken)
|
|
57
|
+
|
|
58
|
+
self.gridLayout_2.addWidget(self.line, 1, 0, 1, 3)
|
|
59
|
+
|
|
60
|
+
self.REMCheckbox = QCheckBox(self.groupBox)
|
|
61
|
+
self.REMCheckbox.setObjectName(u"REMCheckbox")
|
|
62
|
+
|
|
63
|
+
self.gridLayout_2.addWidget(self.REMCheckbox, 11, 1, 1, 1)
|
|
64
|
+
|
|
65
|
+
self.label = QLabel(self.groupBox)
|
|
66
|
+
self.label.setObjectName(u"label")
|
|
67
|
+
|
|
68
|
+
self.gridLayout_2.addWidget(self.label, 0, 0, 1, 1)
|
|
69
|
+
|
|
70
|
+
self.label_5 = QLabel(self.groupBox)
|
|
71
|
+
self.label_5.setObjectName(u"label_5")
|
|
72
|
+
|
|
73
|
+
self.gridLayout_2.addWidget(self.label_5, 6, 1, 1, 1)
|
|
74
|
+
|
|
75
|
+
self.label_4 = QLabel(self.groupBox)
|
|
76
|
+
self.label_4.setObjectName(u"label_4")
|
|
77
|
+
|
|
78
|
+
self.gridLayout_2.addWidget(self.label_4, 10, 0, 1, 3)
|
|
79
|
+
|
|
80
|
+
self.InitCheckbox = QCheckBox(self.groupBox)
|
|
81
|
+
self.InitCheckbox.setObjectName(u"InitCheckbox")
|
|
82
|
+
|
|
83
|
+
self.gridLayout_2.addWidget(self.InitCheckbox, 12, 1, 1, 1)
|
|
84
|
+
|
|
85
|
+
self.ChannelComBox = QComboBox(self.groupBox)
|
|
86
|
+
self.ChannelComBox.setObjectName(u"ChannelComBox")
|
|
87
|
+
|
|
88
|
+
self.gridLayout_2.addWidget(self.ChannelComBox, 0, 1, 1, 2)
|
|
89
|
+
|
|
90
|
+
self.NREMCheckbox = QCheckBox(self.groupBox)
|
|
91
|
+
self.NREMCheckbox.setObjectName(u"NREMCheckbox")
|
|
92
|
+
self.NREMCheckbox.setChecked(True)
|
|
93
|
+
|
|
94
|
+
self.gridLayout_2.addWidget(self.NREMCheckbox, 11, 0, 1, 1)
|
|
95
|
+
|
|
96
|
+
self.line_2 = QFrame(self.groupBox)
|
|
97
|
+
self.line_2.setObjectName(u"line_2")
|
|
98
|
+
self.line_2.setFrameShape(QFrame.Shape.HLine)
|
|
99
|
+
self.line_2.setFrameShadow(QFrame.Shadow.Sunken)
|
|
100
|
+
|
|
101
|
+
self.gridLayout_2.addWidget(self.line_2, 4, 0, 1, 3)
|
|
102
|
+
|
|
103
|
+
self.label_2 = QLabel(self.groupBox)
|
|
104
|
+
self.label_2.setObjectName(u"label_2")
|
|
105
|
+
|
|
106
|
+
self.gridLayout_2.addWidget(self.label_2, 2, 0, 1, 3)
|
|
107
|
+
|
|
108
|
+
self.label_3 = QLabel(self.groupBox)
|
|
109
|
+
self.label_3.setObjectName(u"label_3")
|
|
110
|
+
|
|
111
|
+
self.gridLayout_2.addWidget(self.label_3, 5, 0, 1, 2)
|
|
112
|
+
|
|
113
|
+
self.line_4 = QFrame(self.groupBox)
|
|
114
|
+
self.line_4.setObjectName(u"line_4")
|
|
115
|
+
self.line_4.setFrameShape(QFrame.Shape.HLine)
|
|
116
|
+
self.line_4.setFrameShadow(QFrame.Shadow.Sunken)
|
|
117
|
+
|
|
118
|
+
self.gridLayout_2.addWidget(self.line_4, 13, 0, 1, 3)
|
|
119
|
+
|
|
120
|
+
self.line_3 = QFrame(self.groupBox)
|
|
121
|
+
self.line_3.setObjectName(u"line_3")
|
|
122
|
+
self.line_3.setFrameShape(QFrame.Shape.HLine)
|
|
123
|
+
self.line_3.setFrameShadow(QFrame.Shadow.Sunken)
|
|
124
|
+
|
|
125
|
+
self.gridLayout_2.addWidget(self.line_3, 9, 0, 1, 3)
|
|
126
|
+
|
|
127
|
+
self.label_6 = QLabel(self.groupBox)
|
|
128
|
+
self.label_6.setObjectName(u"label_6")
|
|
129
|
+
|
|
130
|
+
self.gridLayout_2.addWidget(self.label_6, 7, 0, 1, 3)
|
|
131
|
+
|
|
132
|
+
self.FreqLowEditor = QDoubleSpinBox(self.groupBox)
|
|
133
|
+
self.FreqLowEditor.setObjectName(u"FreqLowEditor")
|
|
134
|
+
self.FreqLowEditor.setDecimals(1)
|
|
135
|
+
self.FreqLowEditor.setValue(10.000000000000000)
|
|
136
|
+
|
|
137
|
+
self.gridLayout_2.addWidget(self.FreqLowEditor, 3, 0, 1, 1)
|
|
138
|
+
|
|
139
|
+
self.FreqHighEditor = QDoubleSpinBox(self.groupBox)
|
|
140
|
+
self.FreqHighEditor.setObjectName(u"FreqHighEditor")
|
|
141
|
+
self.FreqHighEditor.setDecimals(1)
|
|
142
|
+
self.FreqHighEditor.setValue(15.000000000000000)
|
|
143
|
+
|
|
144
|
+
self.gridLayout_2.addWidget(self.FreqHighEditor, 3, 1, 1, 1)
|
|
145
|
+
|
|
146
|
+
self.durationThresholdEditor = QDoubleSpinBox(self.groupBox)
|
|
147
|
+
self.durationThresholdEditor.setObjectName(u"durationThresholdEditor")
|
|
148
|
+
self.durationThresholdEditor.setValue(0.200000000000000)
|
|
149
|
+
|
|
150
|
+
self.gridLayout_2.addWidget(self.durationThresholdEditor, 8, 0, 1, 1)
|
|
151
|
+
|
|
152
|
+
self.label_7 = QLabel(self.groupBox)
|
|
153
|
+
self.label_7.setObjectName(u"label_7")
|
|
154
|
+
|
|
155
|
+
self.gridLayout_2.addWidget(self.label_7, 8, 1, 1, 1)
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
self.gridLayout.addWidget(self.groupBox, 0, 0, 1, 2)
|
|
159
|
+
|
|
160
|
+
self.OKBt = QPushButton(SpindleDetectDialog)
|
|
161
|
+
self.OKBt.setObjectName(u"OKBt")
|
|
162
|
+
|
|
163
|
+
self.gridLayout.addWidget(self.OKBt, 1, 0, 1, 1)
|
|
164
|
+
|
|
165
|
+
self.CancelBt = QPushButton(SpindleDetectDialog)
|
|
166
|
+
self.CancelBt.setObjectName(u"CancelBt")
|
|
167
|
+
|
|
168
|
+
self.gridLayout.addWidget(self.CancelBt, 1, 1, 1, 1)
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
self.retranslateUi(SpindleDetectDialog)
|
|
172
|
+
|
|
173
|
+
QMetaObject.connectSlotsByName(SpindleDetectDialog)
|
|
174
|
+
# setupUi
|
|
175
|
+
|
|
176
|
+
def retranslateUi(self, SpindleDetectDialog):
|
|
177
|
+
SpindleDetectDialog.setWindowTitle(QCoreApplication.translate("SpindleDetectDialog", u"Dialog", None))
|
|
178
|
+
self.groupBox.setTitle(QCoreApplication.translate("SpindleDetectDialog", u"Spindle detection options", None))
|
|
179
|
+
self.WakeCheckbox.setText(QCoreApplication.translate("SpindleDetectDialog", u"Wake", None))
|
|
180
|
+
self.ExportCheckbox.setText(QCoreApplication.translate("SpindleDetectDialog", u"Export to csv", None))
|
|
181
|
+
self.REMCheckbox.setText(QCoreApplication.translate("SpindleDetectDialog", u"REM", None))
|
|
182
|
+
self.label.setText(QCoreApplication.translate("SpindleDetectDialog", u"Channel:", None))
|
|
183
|
+
self.label_5.setText(QCoreApplication.translate("SpindleDetectDialog", u"* STD + MEAN", None))
|
|
184
|
+
self.label_4.setText(QCoreApplication.translate("SpindleDetectDialog", u"State", None))
|
|
185
|
+
self.InitCheckbox.setText(QCoreApplication.translate("SpindleDetectDialog", u"Init", None))
|
|
186
|
+
self.NREMCheckbox.setText(QCoreApplication.translate("SpindleDetectDialog", u"NREM", None))
|
|
187
|
+
self.label_2.setText(QCoreApplication.translate("SpindleDetectDialog", u"Frequency band:", None))
|
|
188
|
+
self.label_3.setText(QCoreApplication.translate("SpindleDetectDialog", u"Spindle square power threshold:", None))
|
|
189
|
+
self.label_6.setText(QCoreApplication.translate("SpindleDetectDialog", u"Spindle duration threshold", None))
|
|
190
|
+
self.label_7.setText(QCoreApplication.translate("SpindleDetectDialog", u"*STD + MEAN", None))
|
|
191
|
+
self.OKBt.setText(QCoreApplication.translate("SpindleDetectDialog", u"Ok", None))
|
|
192
|
+
self.CancelBt.setText(QCoreApplication.translate("SpindleDetectDialog", u"Cancel", None))
|
|
193
|
+
# retranslateUi
|
|
194
|
+
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<ui version="4.0">
|
|
3
|
+
<class>StateSpectralDialog</class>
|
|
4
|
+
<widget class="QDialog" name="StateSpectralDialog">
|
|
5
|
+
<property name="geometry">
|
|
6
|
+
<rect>
|
|
7
|
+
<x>0</x>
|
|
8
|
+
<y>0</y>
|
|
9
|
+
<width>400</width>
|
|
10
|
+
<height>600</height>
|
|
11
|
+
</rect>
|
|
12
|
+
</property>
|
|
13
|
+
<property name="windowTitle">
|
|
14
|
+
<string>Dialog</string>
|
|
15
|
+
</property>
|
|
16
|
+
<property name="windowIcon">
|
|
17
|
+
<iconset resource="../resources/misleep.qrc">
|
|
18
|
+
<normaloff>:/logo/logo.png</normaloff>:/logo/logo.png</iconset>
|
|
19
|
+
</property>
|
|
20
|
+
<layout class="QGridLayout" name="gridLayout_2">
|
|
21
|
+
<item row="2" column="0">
|
|
22
|
+
<widget class="QPushButton" name="OKBt">
|
|
23
|
+
<property name="text">
|
|
24
|
+
<string>OK</string>
|
|
25
|
+
</property>
|
|
26
|
+
</widget>
|
|
27
|
+
</item>
|
|
28
|
+
<item row="2" column="1">
|
|
29
|
+
<widget class="QPushButton" name="CancelBt">
|
|
30
|
+
<property name="text">
|
|
31
|
+
<string>Cancel</string>
|
|
32
|
+
</property>
|
|
33
|
+
</widget>
|
|
34
|
+
</item>
|
|
35
|
+
<item row="0" column="0" colspan="2">
|
|
36
|
+
<widget class="QGroupBox" name="groupBox_2">
|
|
37
|
+
<property name="title">
|
|
38
|
+
<string>Time options</string>
|
|
39
|
+
</property>
|
|
40
|
+
<layout class="QGridLayout" name="gridLayout_3">
|
|
41
|
+
<item row="0" column="0">
|
|
42
|
+
<widget class="QCheckBox" name="StartTimeCheckBox">
|
|
43
|
+
<property name="text">
|
|
44
|
+
<string>Start time</string>
|
|
45
|
+
</property>
|
|
46
|
+
</widget>
|
|
47
|
+
</item>
|
|
48
|
+
<item row="1" column="0">
|
|
49
|
+
<widget class="QDateTimeEdit" name="StartTimeEditor">
|
|
50
|
+
<property name="displayFormat">
|
|
51
|
+
<string>yyyy/MM/dd HH:mm:ss</string>
|
|
52
|
+
</property>
|
|
53
|
+
</widget>
|
|
54
|
+
</item>
|
|
55
|
+
<item row="2" column="0">
|
|
56
|
+
<widget class="QCheckBox" name="EndTimeCheckBox">
|
|
57
|
+
<property name="text">
|
|
58
|
+
<string>Stop time</string>
|
|
59
|
+
</property>
|
|
60
|
+
</widget>
|
|
61
|
+
</item>
|
|
62
|
+
<item row="4" column="0">
|
|
63
|
+
<widget class="QCheckBox" name="HourSegmentCheckBox">
|
|
64
|
+
<property name="text">
|
|
65
|
+
<string>Hour segmentation</string>
|
|
66
|
+
</property>
|
|
67
|
+
</widget>
|
|
68
|
+
</item>
|
|
69
|
+
<item row="3" column="0">
|
|
70
|
+
<widget class="QDateTimeEdit" name="EndTimeEditor">
|
|
71
|
+
<property name="displayFormat">
|
|
72
|
+
<string>yyyy/MM/dd HH:mm:ss</string>
|
|
73
|
+
</property>
|
|
74
|
+
</widget>
|
|
75
|
+
</item>
|
|
76
|
+
</layout>
|
|
77
|
+
</widget>
|
|
78
|
+
</item>
|
|
79
|
+
<item row="1" column="0" colspan="2">
|
|
80
|
+
<widget class="QGroupBox" name="groupBox">
|
|
81
|
+
<property name="title">
|
|
82
|
+
<string>State spectral analysis options</string>
|
|
83
|
+
</property>
|
|
84
|
+
<layout class="QGridLayout" name="gridLayout">
|
|
85
|
+
<property name="spacing">
|
|
86
|
+
<number>10</number>
|
|
87
|
+
</property>
|
|
88
|
+
<item row="4" column="1">
|
|
89
|
+
<widget class="QDoubleSpinBox" name="BPLow">
|
|
90
|
+
<property name="decimals">
|
|
91
|
+
<number>1</number>
|
|
92
|
+
</property>
|
|
93
|
+
<property name="maximum">
|
|
94
|
+
<double>100000.000000000000000</double>
|
|
95
|
+
</property>
|
|
96
|
+
<property name="singleStep">
|
|
97
|
+
<double>0.100000000000000</double>
|
|
98
|
+
</property>
|
|
99
|
+
<property name="value">
|
|
100
|
+
<double>0.500000000000000</double>
|
|
101
|
+
</property>
|
|
102
|
+
</widget>
|
|
103
|
+
</item>
|
|
104
|
+
<item row="4" column="2">
|
|
105
|
+
<widget class="QDoubleSpinBox" name="BPHigh">
|
|
106
|
+
<property name="decimals">
|
|
107
|
+
<number>1</number>
|
|
108
|
+
</property>
|
|
109
|
+
<property name="maximum">
|
|
110
|
+
<double>10000.000000000000000</double>
|
|
111
|
+
</property>
|
|
112
|
+
<property name="singleStep">
|
|
113
|
+
<double>0.100000000000000</double>
|
|
114
|
+
</property>
|
|
115
|
+
<property name="value">
|
|
116
|
+
<double>30.000000000000000</double>
|
|
117
|
+
</property>
|
|
118
|
+
</widget>
|
|
119
|
+
</item>
|
|
120
|
+
<item row="13" column="2">
|
|
121
|
+
<widget class="QDoubleSpinBox" name="ArtThresholdSpinBox">
|
|
122
|
+
<property name="decimals">
|
|
123
|
+
<number>1</number>
|
|
124
|
+
</property>
|
|
125
|
+
<property name="value">
|
|
126
|
+
<double>2.000000000000000</double>
|
|
127
|
+
</property>
|
|
128
|
+
</widget>
|
|
129
|
+
</item>
|
|
130
|
+
<item row="8" column="0" colspan="2">
|
|
131
|
+
<widget class="QCheckBox" name="GaussianCheckBox">
|
|
132
|
+
<property name="text">
|
|
133
|
+
<string>Gaussian smmothing(sigma)</string>
|
|
134
|
+
</property>
|
|
135
|
+
</widget>
|
|
136
|
+
</item>
|
|
137
|
+
<item row="14" column="0" colspan="2">
|
|
138
|
+
<widget class="QCheckBox" name="MergeDataCheckBox">
|
|
139
|
+
<property name="text">
|
|
140
|
+
<string>Merge data</string>
|
|
141
|
+
</property>
|
|
142
|
+
</widget>
|
|
143
|
+
</item>
|
|
144
|
+
<item row="5" column="0" colspan="2">
|
|
145
|
+
<widget class="QCheckBox" name="WinLengthCheckBox">
|
|
146
|
+
<property name="text">
|
|
147
|
+
<string>Window length(s)</string>
|
|
148
|
+
</property>
|
|
149
|
+
</widget>
|
|
150
|
+
</item>
|
|
151
|
+
<item row="1" column="0" colspan="3">
|
|
152
|
+
<widget class="QComboBox" name="ChannelSelector"/>
|
|
153
|
+
</item>
|
|
154
|
+
<item row="12" column="0" colspan="2">
|
|
155
|
+
<widget class="QCheckBox" name="RelativeCheckBox">
|
|
156
|
+
<property name="text">
|
|
157
|
+
<string>Relative</string>
|
|
158
|
+
</property>
|
|
159
|
+
</widget>
|
|
160
|
+
</item>
|
|
161
|
+
<item row="5" column="2">
|
|
162
|
+
<widget class="QDoubleSpinBox" name="WinLengthSpinBox">
|
|
163
|
+
<property name="minimum">
|
|
164
|
+
<double>0.100000000000000</double>
|
|
165
|
+
</property>
|
|
166
|
+
<property name="maximum">
|
|
167
|
+
<double>100.000000000000000</double>
|
|
168
|
+
</property>
|
|
169
|
+
<property name="singleStep">
|
|
170
|
+
<double>0.100000000000000</double>
|
|
171
|
+
</property>
|
|
172
|
+
<property name="value">
|
|
173
|
+
<double>10.000000000000000</double>
|
|
174
|
+
</property>
|
|
175
|
+
</widget>
|
|
176
|
+
</item>
|
|
177
|
+
<item row="4" column="0">
|
|
178
|
+
<widget class="QCheckBox" name="BPFilterCheckBox">
|
|
179
|
+
<property name="text">
|
|
180
|
+
<string>Bandpass filter</string>
|
|
181
|
+
</property>
|
|
182
|
+
</widget>
|
|
183
|
+
</item>
|
|
184
|
+
<item row="0" column="0">
|
|
185
|
+
<widget class="QLabel" name="label">
|
|
186
|
+
<property name="text">
|
|
187
|
+
<string>Channel:</string>
|
|
188
|
+
</property>
|
|
189
|
+
</widget>
|
|
190
|
+
</item>
|
|
191
|
+
<item row="13" column="0" colspan="2">
|
|
192
|
+
<widget class="QCheckBox" name="RejectArtifactCheckBox">
|
|
193
|
+
<property name="text">
|
|
194
|
+
<string>Reject artifact</string>
|
|
195
|
+
</property>
|
|
196
|
+
</widget>
|
|
197
|
+
</item>
|
|
198
|
+
<item row="8" column="2">
|
|
199
|
+
<widget class="QDoubleSpinBox" name="GaussianSpinBox">
|
|
200
|
+
<property name="minimum">
|
|
201
|
+
<double>0.100000000000000</double>
|
|
202
|
+
</property>
|
|
203
|
+
<property name="maximum">
|
|
204
|
+
<double>20.000000000000000</double>
|
|
205
|
+
</property>
|
|
206
|
+
<property name="value">
|
|
207
|
+
<double>2.000000000000000</double>
|
|
208
|
+
</property>
|
|
209
|
+
</widget>
|
|
210
|
+
</item>
|
|
211
|
+
<item row="6" column="0" colspan="2">
|
|
212
|
+
<widget class="QCheckBox" name="nfftCheckBox">
|
|
213
|
+
<property name="text">
|
|
214
|
+
<string>nfft(s, > window length)</string>
|
|
215
|
+
</property>
|
|
216
|
+
</widget>
|
|
217
|
+
</item>
|
|
218
|
+
<item row="6" column="2">
|
|
219
|
+
<widget class="QDoubleSpinBox" name="nfftSpinBox">
|
|
220
|
+
<property name="minimum">
|
|
221
|
+
<double>0.200000000000000</double>
|
|
222
|
+
</property>
|
|
223
|
+
<property name="maximum">
|
|
224
|
+
<double>100.000000000000000</double>
|
|
225
|
+
</property>
|
|
226
|
+
<property name="value">
|
|
227
|
+
<double>10.000000000000000</double>
|
|
228
|
+
</property>
|
|
229
|
+
</widget>
|
|
230
|
+
</item>
|
|
231
|
+
</layout>
|
|
232
|
+
</widget>
|
|
233
|
+
</item>
|
|
234
|
+
</layout>
|
|
235
|
+
</widget>
|
|
236
|
+
<resources>
|
|
237
|
+
<include location="../resources/misleep.qrc"/>
|
|
238
|
+
</resources>
|
|
239
|
+
<connections/>
|
|
240
|
+
</ui>
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
################################################################################
|
|
4
|
+
## Form generated from reading UI file 'state_spectral_dialog.ui'
|
|
5
|
+
##
|
|
6
|
+
## Created by: Qt User Interface Compiler version 6.11.1
|
|
7
|
+
##
|
|
8
|
+
## WARNING! All changes made in this file will be lost when recompiling UI file!
|
|
9
|
+
################################################################################
|
|
10
|
+
|
|
11
|
+
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
|
|
12
|
+
QMetaObject, QObject, QPoint, QRect,
|
|
13
|
+
QSize, QTime, QUrl, Qt)
|
|
14
|
+
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
|
|
15
|
+
QFont, QFontDatabase, QGradient, QIcon,
|
|
16
|
+
QImage, QKeySequence, QLinearGradient, QPainter,
|
|
17
|
+
QPalette, QPixmap, QRadialGradient, QTransform)
|
|
18
|
+
from PySide6.QtWidgets import (QApplication, QCheckBox, QComboBox, QDateTimeEdit,
|
|
19
|
+
QDialog, QDoubleSpinBox, QGridLayout, QGroupBox,
|
|
20
|
+
QLabel, QPushButton, QSizePolicy, QWidget)
|
|
21
|
+
from misleep.gui.resources import misleep_rc
|
|
22
|
+
|
|
23
|
+
class Ui_StateSpectralDialog(object):
|
|
24
|
+
def setupUi(self, StateSpectralDialog):
|
|
25
|
+
if not StateSpectralDialog.objectName():
|
|
26
|
+
StateSpectralDialog.setObjectName(u"StateSpectralDialog")
|
|
27
|
+
StateSpectralDialog.resize(400, 600)
|
|
28
|
+
icon = QIcon()
|
|
29
|
+
icon.addFile(u":/logo/logo.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
|
|
30
|
+
StateSpectralDialog.setWindowIcon(icon)
|
|
31
|
+
self.gridLayout_2 = QGridLayout(StateSpectralDialog)
|
|
32
|
+
self.gridLayout_2.setObjectName(u"gridLayout_2")
|
|
33
|
+
self.OKBt = QPushButton(StateSpectralDialog)
|
|
34
|
+
self.OKBt.setObjectName(u"OKBt")
|
|
35
|
+
|
|
36
|
+
self.gridLayout_2.addWidget(self.OKBt, 2, 0, 1, 1)
|
|
37
|
+
|
|
38
|
+
self.CancelBt = QPushButton(StateSpectralDialog)
|
|
39
|
+
self.CancelBt.setObjectName(u"CancelBt")
|
|
40
|
+
|
|
41
|
+
self.gridLayout_2.addWidget(self.CancelBt, 2, 1, 1, 1)
|
|
42
|
+
|
|
43
|
+
self.groupBox_2 = QGroupBox(StateSpectralDialog)
|
|
44
|
+
self.groupBox_2.setObjectName(u"groupBox_2")
|
|
45
|
+
self.gridLayout_3 = QGridLayout(self.groupBox_2)
|
|
46
|
+
self.gridLayout_3.setObjectName(u"gridLayout_3")
|
|
47
|
+
self.StartTimeCheckBox = QCheckBox(self.groupBox_2)
|
|
48
|
+
self.StartTimeCheckBox.setObjectName(u"StartTimeCheckBox")
|
|
49
|
+
|
|
50
|
+
self.gridLayout_3.addWidget(self.StartTimeCheckBox, 0, 0, 1, 1)
|
|
51
|
+
|
|
52
|
+
self.StartTimeEditor = QDateTimeEdit(self.groupBox_2)
|
|
53
|
+
self.StartTimeEditor.setObjectName(u"StartTimeEditor")
|
|
54
|
+
|
|
55
|
+
self.gridLayout_3.addWidget(self.StartTimeEditor, 1, 0, 1, 1)
|
|
56
|
+
|
|
57
|
+
self.EndTimeCheckBox = QCheckBox(self.groupBox_2)
|
|
58
|
+
self.EndTimeCheckBox.setObjectName(u"EndTimeCheckBox")
|
|
59
|
+
|
|
60
|
+
self.gridLayout_3.addWidget(self.EndTimeCheckBox, 2, 0, 1, 1)
|
|
61
|
+
|
|
62
|
+
self.HourSegmentCheckBox = QCheckBox(self.groupBox_2)
|
|
63
|
+
self.HourSegmentCheckBox.setObjectName(u"HourSegmentCheckBox")
|
|
64
|
+
|
|
65
|
+
self.gridLayout_3.addWidget(self.HourSegmentCheckBox, 4, 0, 1, 1)
|
|
66
|
+
|
|
67
|
+
self.EndTimeEditor = QDateTimeEdit(self.groupBox_2)
|
|
68
|
+
self.EndTimeEditor.setObjectName(u"EndTimeEditor")
|
|
69
|
+
|
|
70
|
+
self.gridLayout_3.addWidget(self.EndTimeEditor, 3, 0, 1, 1)
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
self.gridLayout_2.addWidget(self.groupBox_2, 0, 0, 1, 2)
|
|
74
|
+
|
|
75
|
+
self.groupBox = QGroupBox(StateSpectralDialog)
|
|
76
|
+
self.groupBox.setObjectName(u"groupBox")
|
|
77
|
+
self.gridLayout = QGridLayout(self.groupBox)
|
|
78
|
+
self.gridLayout.setSpacing(10)
|
|
79
|
+
self.gridLayout.setObjectName(u"gridLayout")
|
|
80
|
+
self.BPLow = QDoubleSpinBox(self.groupBox)
|
|
81
|
+
self.BPLow.setObjectName(u"BPLow")
|
|
82
|
+
self.BPLow.setDecimals(1)
|
|
83
|
+
self.BPLow.setMaximum(100000.000000000000000)
|
|
84
|
+
self.BPLow.setSingleStep(0.100000000000000)
|
|
85
|
+
self.BPLow.setValue(0.500000000000000)
|
|
86
|
+
|
|
87
|
+
self.gridLayout.addWidget(self.BPLow, 4, 1, 1, 1)
|
|
88
|
+
|
|
89
|
+
self.BPHigh = QDoubleSpinBox(self.groupBox)
|
|
90
|
+
self.BPHigh.setObjectName(u"BPHigh")
|
|
91
|
+
self.BPHigh.setDecimals(1)
|
|
92
|
+
self.BPHigh.setMaximum(10000.000000000000000)
|
|
93
|
+
self.BPHigh.setSingleStep(0.100000000000000)
|
|
94
|
+
self.BPHigh.setValue(30.000000000000000)
|
|
95
|
+
|
|
96
|
+
self.gridLayout.addWidget(self.BPHigh, 4, 2, 1, 1)
|
|
97
|
+
|
|
98
|
+
self.ArtThresholdSpinBox = QDoubleSpinBox(self.groupBox)
|
|
99
|
+
self.ArtThresholdSpinBox.setObjectName(u"ArtThresholdSpinBox")
|
|
100
|
+
self.ArtThresholdSpinBox.setDecimals(1)
|
|
101
|
+
self.ArtThresholdSpinBox.setValue(2.000000000000000)
|
|
102
|
+
|
|
103
|
+
self.gridLayout.addWidget(self.ArtThresholdSpinBox, 13, 2, 1, 1)
|
|
104
|
+
|
|
105
|
+
self.GaussianCheckBox = QCheckBox(self.groupBox)
|
|
106
|
+
self.GaussianCheckBox.setObjectName(u"GaussianCheckBox")
|
|
107
|
+
|
|
108
|
+
self.gridLayout.addWidget(self.GaussianCheckBox, 8, 0, 1, 2)
|
|
109
|
+
|
|
110
|
+
self.MergeDataCheckBox = QCheckBox(self.groupBox)
|
|
111
|
+
self.MergeDataCheckBox.setObjectName(u"MergeDataCheckBox")
|
|
112
|
+
|
|
113
|
+
self.gridLayout.addWidget(self.MergeDataCheckBox, 14, 0, 1, 2)
|
|
114
|
+
|
|
115
|
+
self.WinLengthCheckBox = QCheckBox(self.groupBox)
|
|
116
|
+
self.WinLengthCheckBox.setObjectName(u"WinLengthCheckBox")
|
|
117
|
+
|
|
118
|
+
self.gridLayout.addWidget(self.WinLengthCheckBox, 5, 0, 1, 2)
|
|
119
|
+
|
|
120
|
+
self.ChannelSelector = QComboBox(self.groupBox)
|
|
121
|
+
self.ChannelSelector.setObjectName(u"ChannelSelector")
|
|
122
|
+
|
|
123
|
+
self.gridLayout.addWidget(self.ChannelSelector, 1, 0, 1, 3)
|
|
124
|
+
|
|
125
|
+
self.RelativeCheckBox = QCheckBox(self.groupBox)
|
|
126
|
+
self.RelativeCheckBox.setObjectName(u"RelativeCheckBox")
|
|
127
|
+
|
|
128
|
+
self.gridLayout.addWidget(self.RelativeCheckBox, 12, 0, 1, 2)
|
|
129
|
+
|
|
130
|
+
self.WinLengthSpinBox = QDoubleSpinBox(self.groupBox)
|
|
131
|
+
self.WinLengthSpinBox.setObjectName(u"WinLengthSpinBox")
|
|
132
|
+
self.WinLengthSpinBox.setMinimum(0.100000000000000)
|
|
133
|
+
self.WinLengthSpinBox.setMaximum(100.000000000000000)
|
|
134
|
+
self.WinLengthSpinBox.setSingleStep(0.100000000000000)
|
|
135
|
+
self.WinLengthSpinBox.setValue(10.000000000000000)
|
|
136
|
+
|
|
137
|
+
self.gridLayout.addWidget(self.WinLengthSpinBox, 5, 2, 1, 1)
|
|
138
|
+
|
|
139
|
+
self.BPFilterCheckBox = QCheckBox(self.groupBox)
|
|
140
|
+
self.BPFilterCheckBox.setObjectName(u"BPFilterCheckBox")
|
|
141
|
+
|
|
142
|
+
self.gridLayout.addWidget(self.BPFilterCheckBox, 4, 0, 1, 1)
|
|
143
|
+
|
|
144
|
+
self.label = QLabel(self.groupBox)
|
|
145
|
+
self.label.setObjectName(u"label")
|
|
146
|
+
|
|
147
|
+
self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
|
|
148
|
+
|
|
149
|
+
self.RejectArtifactCheckBox = QCheckBox(self.groupBox)
|
|
150
|
+
self.RejectArtifactCheckBox.setObjectName(u"RejectArtifactCheckBox")
|
|
151
|
+
|
|
152
|
+
self.gridLayout.addWidget(self.RejectArtifactCheckBox, 13, 0, 1, 2)
|
|
153
|
+
|
|
154
|
+
self.GaussianSpinBox = QDoubleSpinBox(self.groupBox)
|
|
155
|
+
self.GaussianSpinBox.setObjectName(u"GaussianSpinBox")
|
|
156
|
+
self.GaussianSpinBox.setMinimum(0.100000000000000)
|
|
157
|
+
self.GaussianSpinBox.setMaximum(20.000000000000000)
|
|
158
|
+
self.GaussianSpinBox.setValue(2.000000000000000)
|
|
159
|
+
|
|
160
|
+
self.gridLayout.addWidget(self.GaussianSpinBox, 8, 2, 1, 1)
|
|
161
|
+
|
|
162
|
+
self.nfftCheckBox = QCheckBox(self.groupBox)
|
|
163
|
+
self.nfftCheckBox.setObjectName(u"nfftCheckBox")
|
|
164
|
+
|
|
165
|
+
self.gridLayout.addWidget(self.nfftCheckBox, 6, 0, 1, 2)
|
|
166
|
+
|
|
167
|
+
self.nfftSpinBox = QDoubleSpinBox(self.groupBox)
|
|
168
|
+
self.nfftSpinBox.setObjectName(u"nfftSpinBox")
|
|
169
|
+
self.nfftSpinBox.setMinimum(0.200000000000000)
|
|
170
|
+
self.nfftSpinBox.setMaximum(100.000000000000000)
|
|
171
|
+
self.nfftSpinBox.setValue(10.000000000000000)
|
|
172
|
+
|
|
173
|
+
self.gridLayout.addWidget(self.nfftSpinBox, 6, 2, 1, 1)
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
self.gridLayout_2.addWidget(self.groupBox, 1, 0, 1, 2)
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
self.retranslateUi(StateSpectralDialog)
|
|
180
|
+
|
|
181
|
+
QMetaObject.connectSlotsByName(StateSpectralDialog)
|
|
182
|
+
# setupUi
|
|
183
|
+
|
|
184
|
+
def retranslateUi(self, StateSpectralDialog):
|
|
185
|
+
StateSpectralDialog.setWindowTitle(QCoreApplication.translate("StateSpectralDialog", u"Dialog", None))
|
|
186
|
+
self.OKBt.setText(QCoreApplication.translate("StateSpectralDialog", u"OK", None))
|
|
187
|
+
self.CancelBt.setText(QCoreApplication.translate("StateSpectralDialog", u"Cancel", None))
|
|
188
|
+
self.groupBox_2.setTitle(QCoreApplication.translate("StateSpectralDialog", u"Time options", None))
|
|
189
|
+
self.StartTimeCheckBox.setText(QCoreApplication.translate("StateSpectralDialog", u"Start time", None))
|
|
190
|
+
self.StartTimeEditor.setDisplayFormat(QCoreApplication.translate("StateSpectralDialog", u"yyyy/MM/dd HH:mm:ss", None))
|
|
191
|
+
self.EndTimeCheckBox.setText(QCoreApplication.translate("StateSpectralDialog", u"Stop time", None))
|
|
192
|
+
self.HourSegmentCheckBox.setText(QCoreApplication.translate("StateSpectralDialog", u"Hour segmentation", None))
|
|
193
|
+
self.EndTimeEditor.setDisplayFormat(QCoreApplication.translate("StateSpectralDialog", u"yyyy/MM/dd HH:mm:ss", None))
|
|
194
|
+
self.groupBox.setTitle(QCoreApplication.translate("StateSpectralDialog", u"State spectral analysis options", None))
|
|
195
|
+
self.GaussianCheckBox.setText(QCoreApplication.translate("StateSpectralDialog", u"Gaussian smmothing(sigma)", None))
|
|
196
|
+
self.MergeDataCheckBox.setText(QCoreApplication.translate("StateSpectralDialog", u"Merge data", None))
|
|
197
|
+
self.WinLengthCheckBox.setText(QCoreApplication.translate("StateSpectralDialog", u"Window length(s)", None))
|
|
198
|
+
self.RelativeCheckBox.setText(QCoreApplication.translate("StateSpectralDialog", u"Relative", None))
|
|
199
|
+
self.BPFilterCheckBox.setText(QCoreApplication.translate("StateSpectralDialog", u"Bandpass filter", None))
|
|
200
|
+
self.label.setText(QCoreApplication.translate("StateSpectralDialog", u"Channel:", None))
|
|
201
|
+
self.RejectArtifactCheckBox.setText(QCoreApplication.translate("StateSpectralDialog", u"Reject artifact", None))
|
|
202
|
+
self.nfftCheckBox.setText(QCoreApplication.translate("StateSpectralDialog", u"nfft(s, > window length)", None))
|
|
203
|
+
# retranslateUi
|
|
204
|
+
|