From b8c67a13ed7b5b1a0c7b694542bb0f2e34d29a50 Mon Sep 17 00:00:00 2001
From: Alexander Minges
Add data files to the experiment. If multiple files are loaded, they are treated as replicates.
")) + self.groupBox_data.setTitle(_translate("MainWindow", "Data File")) + self.groupBox_replicates.setTitle(_translate("MainWindow", "Replicates")) + self.radioButton_rep_files.setText(_translate("MainWindow", "Files")) + self.groupBox_processing.setTitle(_translate("MainWindow", "Processing Options")) + self.groupBox_temp.setToolTip(_translate("MainWindow", "Temperature range of the data points. Only applies, if the data file does not contain any temperature information.
")) + self.groupBox_temp.setTitle(_translate("MainWindow", "Temperature settings")) + self.label_tmin.setText(_translate("MainWindow", "Tmin
")) + self.doubleSpinBox_tmin.setSuffix(_translate("MainWindow", " °C")) + self.label_tmax.setText(_translate("MainWindow", "Tmax
")) + self.doubleSpinBox_tmax.setSuffix(_translate("MainWindow", " °C")) + self.label_dt.setText(_translate("MainWindow", "ΔT
")) + self.doubleSpinBox_dt.setSuffix(_translate("MainWindow", " °C")) + self.groupBox_signal_threshold.setToolTip(_translate("MainWindow", "If the signal exceeds this threshold, the coresponding well is assumed to be denatured.
")) + self.groupBox_signal_threshold.setTitle(_translate("MainWindow", "Signal &Threshold")) + self.groupBox_cbar.setToolTip(_translate("MainWindow", "Defines the range of the colorbar used for the Tm heatmap.
")) + self.groupBox_cbar.setTitle(_translate("MainWindow", "&Colorbar")) + self.label_cbar_start.setText(_translate("MainWindow", "S&tart")) + self.doubleSpinBox_cbar_start.setSuffix(_translate("MainWindow", " °C")) + self.label_cbar_end.setText(_translate("MainWindow", "En&d")) + self.doubleSpinBox_cbar_end.setSuffix(_translate("MainWindow", " °C")) + self.groupBox_cutoff.setToolTip(_translate("MainWindow", "Only Tm values within this limit are considered valid.
")) + self.groupBox_cutoff.setTitle(_translate("MainWindow", "&Cutoff")) + self.label_cutoff_high.setText(_translate("MainWindow", "&Upper")) + self.doubleSpinBox_upper.setSuffix(_translate("MainWindow", " °C")) + self.label_cutoff_low.setText(_translate("MainWindow", "Lower")) + self.doubleSpinBox_lower.setSuffix(_translate("MainWindow", " °C")) + self.groupBox_output.setTitle(_translate("MainWindow", "Sa&ve processing results")) + self.checkBox_saveplots.setText(_translate("MainWindow", "Save plots")) + self.lineEdit_output.setToolTip(_translate("MainWindow", "Output results to this path")) + self.checkBox_savetables.setText(_translate("MainWindow", "Save tabular results")) + self.groupBox_conc.setTitle(_translate("MainWindow", "Concentration Dependency")) + self.lineEdit_conc.setToolTip(_translate("MainWindow", "Comma-seperated list of concentrations. This has to match the number of wells in either horizontal or vertical dimension. If a well is unused, either leave blank or use "NaN" as input.
")) + self.label_conc.setText(_translate("MainWindow", "Concentrations")) + self.label_conc_num.setText(_translate("MainWindow", "Valid concentrations")) + self.groupBox_results.setTitle(_translate("MainWindow", "Plots")) + self.menuFile.setTitle(_translate("MainWindow", "Fi&le")) + self.menuHelp.setTitle(_translate("MainWindow", "Hel&p")) + self.actionQuit.setText(_translate("MainWindow", "&Quit")) + self.actionAbout.setText(_translate("MainWindow", "&About")) + self.actionAbout_Qt.setText(_translate("MainWindow", "About &Qt")) + +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'ui/mainwindow.ui' +# +# Created by: PyQt5 UI code generator 5.5 +# +# WARNING! All changes made in this file will be lost! + +from PyQt5 import QtCore, QtGui, QtWidgets + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(4095, 4095) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth()) + MainWindow.setSizePolicy(sizePolicy) + MainWindow.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.centralWidget = QtWidgets.QWidget(MainWindow) + self.centralWidget.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.centralWidget.setObjectName("centralWidget") + self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralWidget) + self.horizontalLayout.setObjectName("horizontalLayout") + self.splitter = QtWidgets.QSplitter(self.centralWidget) + self.splitter.setOrientation(QtCore.Qt.Horizontal) + self.splitter.setOpaqueResize(False) + self.splitter.setHandleWidth(2) + self.splitter.setChildrenCollapsible(False) + self.splitter.setObjectName("splitter") + self.groupBox_experiment = QtWidgets.QGroupBox(self.splitter) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.groupBox_experiment.sizePolicy().hasHeightForWidth()) + self.groupBox_experiment.setSizePolicy(sizePolicy) + self.groupBox_experiment.setMinimumSize(QtCore.QSize(100, 300)) + self.groupBox_experiment.setSizeIncrement(QtCore.QSize(0, 0)) + self.groupBox_experiment.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.groupBox_experiment.setFlat(False) + self.groupBox_experiment.setCheckable(False) + self.groupBox_experiment.setObjectName("groupBox_experiment") + self.formLayout_3 = QtWidgets.QFormLayout(self.groupBox_experiment) + self.formLayout_3.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout_3.setObjectName("formLayout_3") + self.label_instrument = QtWidgets.QLabel(self.groupBox_experiment) + self.label_instrument.setObjectName("label_instrument") + self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_instrument) + self.comboBox_instrument = QtWidgets.QComboBox(self.groupBox_experiment) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.comboBox_instrument.sizePolicy().hasHeightForWidth()) + self.comboBox_instrument.setSizePolicy(sizePolicy) + self.comboBox_instrument.setObjectName("comboBox_instrument") + self.comboBox_instrument.addItem("") + self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.comboBox_instrument) + self.groupBox_data = QtWidgets.QGroupBox(self.groupBox_experiment) + self.groupBox_data.setEnabled(True) + self.groupBox_data.setObjectName("groupBox_data") + self.gridLayout_4 = QtWidgets.QGridLayout(self.groupBox_data) + self.gridLayout_4.setObjectName("gridLayout_4") + self.buttonBox_open_reset = QtWidgets.QDialogButtonBox(self.groupBox_data) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.buttonBox_open_reset.sizePolicy().hasHeightForWidth()) + self.buttonBox_open_reset.setSizePolicy(sizePolicy) + self.buttonBox_open_reset.setLayoutDirection(QtCore.Qt.LeftToRight) + self.buttonBox_open_reset.setOrientation(QtCore.Qt.Vertical) + self.buttonBox_open_reset.setStandardButtons(QtWidgets.QDialogButtonBox.Open|QtWidgets.QDialogButtonBox.Reset) + self.buttonBox_open_reset.setCenterButtons(False) + self.buttonBox_open_reset.setObjectName("buttonBox_open_reset") + self.gridLayout_4.addWidget(self.buttonBox_open_reset, 0, 1, 1, 1) + self.groupBox_replicates = QtWidgets.QGroupBox(self.groupBox_data) + self.groupBox_replicates.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.groupBox_replicates.setCheckable(True) + self.groupBox_replicates.setChecked(False) + self.groupBox_replicates.setObjectName("groupBox_replicates") + self.gridLayout_3 = QtWidgets.QGridLayout(self.groupBox_replicates) + self.gridLayout_3.setObjectName("gridLayout_3") + self.radioButton_rep_files = QtWidgets.QRadioButton(self.groupBox_replicates) + self.radioButton_rep_files.setEnabled(False) + self.radioButton_rep_files.setChecked(True) + self.radioButton_rep_files.setObjectName("radioButton_rep_files") + self.gridLayout_3.addWidget(self.radioButton_rep_files, 0, 0, 1, 1) + self.gridLayout_4.addWidget(self.groupBox_replicates, 2, 0, 1, 2) + self.listWidget_data = QtWidgets.QListWidget(self.groupBox_data) + self.listWidget_data.setAlternatingRowColors(True) + self.listWidget_data.setObjectName("listWidget_data") + self.gridLayout_4.addWidget(self.listWidget_data, 0, 0, 2, 1) + spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.gridLayout_4.addItem(spacerItem, 1, 1, 1, 1) + self.formLayout_3.setWidget(1, QtWidgets.QFormLayout.SpanningRole, self.groupBox_data) + self.groupBox_processing = QtWidgets.QGroupBox(self.groupBox_experiment) + self.groupBox_processing.setObjectName("groupBox_processing") + self.gridLayout = QtWidgets.QGridLayout(self.groupBox_processing) + self.gridLayout.setObjectName("gridLayout") + self.groupBox_temp = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_temp.setEnabled(True) + self.groupBox_temp.setAutoFillBackground(False) + self.groupBox_temp.setCheckable(False) + self.groupBox_temp.setObjectName("groupBox_temp") + self.formLayout = QtWidgets.QFormLayout(self.groupBox_temp) + self.formLayout.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.formLayout.setFormAlignment(QtCore.Qt.AlignHCenter|QtCore.Qt.AlignTop) + self.formLayout.setObjectName("formLayout") + self.label_tmin = QtWidgets.QLabel(self.groupBox_temp) + self.label_tmin.setObjectName("label_tmin") + self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_tmin) + self.doubleSpinBox_tmin = QtWidgets.QDoubleSpinBox(self.groupBox_temp) + self.doubleSpinBox_tmin.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.doubleSpinBox_tmin.setDecimals(1) + self.doubleSpinBox_tmin.setProperty("value", 20.0) + self.doubleSpinBox_tmin.setObjectName("doubleSpinBox_tmin") + self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_tmin) + self.label_tmax = QtWidgets.QLabel(self.groupBox_temp) + self.label_tmax.setObjectName("label_tmax") + self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_tmax) + self.doubleSpinBox_tmax = QtWidgets.QDoubleSpinBox(self.groupBox_temp) + self.doubleSpinBox_tmax.setDecimals(1) + self.doubleSpinBox_tmax.setProperty("value", 95.0) + self.doubleSpinBox_tmax.setObjectName("doubleSpinBox_tmax") + self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_tmax) + self.label_dt = QtWidgets.QLabel(self.groupBox_temp) + self.label_dt.setObjectName("label_dt") + self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_dt) + self.doubleSpinBox_dt = QtWidgets.QDoubleSpinBox(self.groupBox_temp) + self.doubleSpinBox_dt.setDecimals(1) + self.doubleSpinBox_dt.setProperty("value", 1.0) + self.doubleSpinBox_dt.setObjectName("doubleSpinBox_dt") + self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_dt) + self.gridLayout.addWidget(self.groupBox_temp, 0, 0, 1, 1) + self.groupBox_signal_threshold = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_signal_threshold.setEnabled(True) + self.groupBox_signal_threshold.setCheckable(True) + self.groupBox_signal_threshold.setChecked(False) + self.groupBox_signal_threshold.setObjectName("groupBox_signal_threshold") + self.verticalLayout = QtWidgets.QVBoxLayout(self.groupBox_signal_threshold) + self.verticalLayout.setObjectName("verticalLayout") + self.spinBox_signal_threshold = QtWidgets.QSpinBox(self.groupBox_signal_threshold) + self.spinBox_signal_threshold.setMaximum(1000000) + self.spinBox_signal_threshold.setObjectName("spinBox_signal_threshold") + self.verticalLayout.addWidget(self.spinBox_signal_threshold) + self.gridLayout.addWidget(self.groupBox_signal_threshold, 1, 0, 1, 1) + self.groupBox_cbar = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_cbar.setEnabled(True) + self.groupBox_cbar.setCheckable(True) + self.groupBox_cbar.setChecked(False) + self.groupBox_cbar.setObjectName("groupBox_cbar") + self.formLayout_4 = QtWidgets.QFormLayout(self.groupBox_cbar) + self.formLayout_4.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout_4.setObjectName("formLayout_4") + self.label_cbar_start = QtWidgets.QLabel(self.groupBox_cbar) + self.label_cbar_start.setObjectName("label_cbar_start") + self.formLayout_4.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_cbar_start) + self.doubleSpinBox_cbar_start = QtWidgets.QDoubleSpinBox(self.groupBox_cbar) + self.doubleSpinBox_cbar_start.setDecimals(1) + self.doubleSpinBox_cbar_start.setObjectName("doubleSpinBox_cbar_start") + self.formLayout_4.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_cbar_start) + self.label_cbar_end = QtWidgets.QLabel(self.groupBox_cbar) + self.label_cbar_end.setObjectName("label_cbar_end") + self.formLayout_4.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_cbar_end) + self.doubleSpinBox_cbar_end = QtWidgets.QDoubleSpinBox(self.groupBox_cbar) + self.doubleSpinBox_cbar_end.setDecimals(1) + self.doubleSpinBox_cbar_end.setObjectName("doubleSpinBox_cbar_end") + self.formLayout_4.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_cbar_end) + self.gridLayout.addWidget(self.groupBox_cbar, 1, 1, 1, 1) + self.groupBox_cutoff = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_cutoff.setEnabled(True) + self.groupBox_cutoff.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.groupBox_cutoff.setCheckable(True) + self.groupBox_cutoff.setChecked(False) + self.groupBox_cutoff.setObjectName("groupBox_cutoff") + self.formLayout_2 = QtWidgets.QFormLayout(self.groupBox_cutoff) + self.formLayout_2.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout_2.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.formLayout_2.setFormAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) + self.formLayout_2.setObjectName("formLayout_2") + self.label_cutoff_high = QtWidgets.QLabel(self.groupBox_cutoff) + self.label_cutoff_high.setObjectName("label_cutoff_high") + self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_cutoff_high) + self.doubleSpinBox_upper = QtWidgets.QDoubleSpinBox(self.groupBox_cutoff) + self.doubleSpinBox_upper.setPrefix("") + self.doubleSpinBox_upper.setDecimals(1) + self.doubleSpinBox_upper.setObjectName("doubleSpinBox_upper") + self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_upper) + self.label_cutoff_low = QtWidgets.QLabel(self.groupBox_cutoff) + self.label_cutoff_low.setObjectName("label_cutoff_low") + self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_cutoff_low) + self.doubleSpinBox_lower = QtWidgets.QDoubleSpinBox(self.groupBox_cutoff) + self.doubleSpinBox_lower.setDecimals(1) + self.doubleSpinBox_lower.setObjectName("doubleSpinBox_lower") + self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_lower) + self.gridLayout.addWidget(self.groupBox_cutoff, 0, 1, 1, 1) + self.groupBox_output = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_output.setCheckable(True) + self.groupBox_output.setChecked(False) + self.groupBox_output.setObjectName("groupBox_output") + self.gridLayout_2 = QtWidgets.QGridLayout(self.groupBox_output) + self.gridLayout_2.setObjectName("gridLayout_2") + self.checkBox_saveplots = QtWidgets.QCheckBox(self.groupBox_output) + self.checkBox_saveplots.setObjectName("checkBox_saveplots") + self.gridLayout_2.addWidget(self.checkBox_saveplots, 1, 0, 1, 1) + self.buttonBox_output = QtWidgets.QDialogButtonBox(self.groupBox_output) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.buttonBox_output.sizePolicy().hasHeightForWidth()) + self.buttonBox_output.setSizePolicy(sizePolicy) + self.buttonBox_output.setOrientation(QtCore.Qt.Vertical) + self.buttonBox_output.setStandardButtons(QtWidgets.QDialogButtonBox.Open) + self.buttonBox_output.setObjectName("buttonBox_output") + self.gridLayout_2.addWidget(self.buttonBox_output, 3, 1, 1, 1) + self.lineEdit_output = QtWidgets.QLineEdit(self.groupBox_output) + self.lineEdit_output.setObjectName("lineEdit_output") + self.gridLayout_2.addWidget(self.lineEdit_output, 3, 0, 1, 1) + self.checkBox_savetables = QtWidgets.QCheckBox(self.groupBox_output) + self.checkBox_savetables.setObjectName("checkBox_savetables") + self.gridLayout_2.addWidget(self.checkBox_savetables, 2, 0, 1, 1) + self.gridLayout.addWidget(self.groupBox_output, 3, 0, 1, 2) + self.groupBox_conc = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_conc.setMinimumSize(QtCore.QSize(0, 0)) + self.groupBox_conc.setCheckable(True) + self.groupBox_conc.setChecked(False) + self.groupBox_conc.setObjectName("groupBox_conc") + self.formLayout_5 = QtWidgets.QFormLayout(self.groupBox_conc) + self.formLayout_5.setObjectName("formLayout_5") + self.lineEdit_conc = QtWidgets.QLineEdit(self.groupBox_conc) + self.lineEdit_conc.setObjectName("lineEdit_conc") + self.formLayout_5.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.lineEdit_conc) + self.label_conc = QtWidgets.QLabel(self.groupBox_conc) + self.label_conc.setObjectName("label_conc") + self.formLayout_5.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_conc) + self.spinBox_num_conc = QtWidgets.QSpinBox(self.groupBox_conc) + self.spinBox_num_conc.setReadOnly(True) + self.spinBox_num_conc.setButtonSymbols(QtWidgets.QAbstractSpinBox.NoButtons) + self.spinBox_num_conc.setObjectName("spinBox_num_conc") + self.formLayout_5.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.spinBox_num_conc) + self.label_conc_num = QtWidgets.QLabel(self.groupBox_conc) + self.label_conc_num.setObjectName("label_conc_num") + self.formLayout_5.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_conc_num) + self.comboBox = QtWidgets.QComboBox(self.groupBox_conc) + self.comboBox.setObjectName("comboBox") + self.comboBox.addItem("") + self.comboBox.addItem("") + self.formLayout_5.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.comboBox) + self.label = QtWidgets.QLabel(self.groupBox_conc) + self.label.setObjectName("label") + self.formLayout_5.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label) + self.gridLayout.addWidget(self.groupBox_conc, 2, 0, 1, 2) + self.formLayout_3.setWidget(2, QtWidgets.QFormLayout.SpanningRole, self.groupBox_processing) + self.buttonBox_process = QtWidgets.QDialogButtonBox(self.groupBox_experiment) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.buttonBox_process.sizePolicy().hasHeightForWidth()) + self.buttonBox_process.setSizePolicy(sizePolicy) + self.buttonBox_process.setMinimumSize(QtCore.QSize(0, 0)) + self.buttonBox_process.setStandardButtons(QtWidgets.QDialogButtonBox.NoButton) + self.buttonBox_process.setObjectName("buttonBox_process") + self.formLayout_3.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.buttonBox_process) + self.groupBox_results = QtWidgets.QGroupBox(self.splitter) + self.groupBox_results.setEnabled(True) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(6) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.groupBox_results.sizePolicy().hasHeightForWidth()) + self.groupBox_results.setSizePolicy(sizePolicy) + self.groupBox_results.setSizeIncrement(QtCore.QSize(0, 0)) + self.groupBox_results.setObjectName("groupBox_results") + self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.groupBox_results) + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.tabWidget = QtWidgets.QTabWidget(self.groupBox_results) + self.tabWidget.setEnabled(True) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tabWidget.sizePolicy().hasHeightForWidth()) + self.tabWidget.setSizePolicy(sizePolicy) + self.tabWidget.setMinimumSize(QtCore.QSize(300, 300)) + self.tabWidget.setSizeIncrement(QtCore.QSize(0, 0)) + self.tabWidget.setObjectName("tabWidget") + self.horizontalLayout_2.addWidget(self.tabWidget) + self.horizontalLayout.addWidget(self.splitter) + MainWindow.setCentralWidget(self.centralWidget) + self.menuBar = QtWidgets.QMenuBar(MainWindow) + self.menuBar.setGeometry(QtCore.QRect(0, 0, 4095, 30)) + self.menuBar.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.menuBar.setObjectName("menuBar") + self.menuFile = QtWidgets.QMenu(self.menuBar) + self.menuFile.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.menuFile.setObjectName("menuFile") + self.menuHelp = QtWidgets.QMenu(self.menuBar) + self.menuHelp.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.menuHelp.setObjectName("menuHelp") + MainWindow.setMenuBar(self.menuBar) + self.statusBar = QtWidgets.QStatusBar(MainWindow) + self.statusBar.setObjectName("statusBar") + MainWindow.setStatusBar(self.statusBar) + self.actionQuit = QtWidgets.QAction(MainWindow) + self.actionQuit.setObjectName("actionQuit") + self.actionAbout = QtWidgets.QAction(MainWindow) + self.actionAbout.setObjectName("actionAbout") + self.actionAbout_Qt = QtWidgets.QAction(MainWindow) + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap(":/qtlogo.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.actionAbout_Qt.setIcon(icon) + self.actionAbout_Qt.setObjectName("actionAbout_Qt") + self.menuFile.addAction(self.actionQuit) + self.menuHelp.addAction(self.actionAbout) + self.menuHelp.addAction(self.actionAbout_Qt) + self.menuBar.addAction(self.menuFile.menuAction()) + self.menuBar.addAction(self.menuHelp.menuAction()) + self.label_instrument.setBuddy(self.comboBox_instrument) + self.label_tmin.setBuddy(self.doubleSpinBox_tmin) + self.label_tmax.setBuddy(self.doubleSpinBox_tmax) + self.label_dt.setBuddy(self.doubleSpinBox_dt) + self.label_cbar_start.setBuddy(self.doubleSpinBox_cbar_start) + self.label_cbar_end.setBuddy(self.doubleSpinBox_cbar_end) + self.label_cutoff_high.setBuddy(self.doubleSpinBox_upper) + self.label_cutoff_low.setBuddy(self.doubleSpinBox_lower) + + self.retranslateUi(MainWindow) + self.tabWidget.setCurrentIndex(-1) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "PyDSF")) + self.groupBox_experiment.setTitle(_translate("MainWindow", "Experimental Setup")) + self.label_instrument.setText(_translate("MainWindow", "I&nstrument")) + self.comboBox_instrument.setItemText(0, _translate("MainWindow", "Analytik Jena qTOWER 2.0/2.2")) + self.groupBox_data.setToolTip(_translate("MainWindow", "Add data files to the experiment. If multiple files are loaded, they are treated as replicates.
")) + self.groupBox_data.setTitle(_translate("MainWindow", "Data File")) + self.groupBox_replicates.setTitle(_translate("MainWindow", "Replicates")) + self.radioButton_rep_files.setText(_translate("MainWindow", "Files")) + self.groupBox_processing.setTitle(_translate("MainWindow", "Processing Options")) + self.groupBox_temp.setToolTip(_translate("MainWindow", "Temperature range of the data points. Only applies, if the data file does not contain any temperature information.
")) + self.groupBox_temp.setTitle(_translate("MainWindow", "Temperature settings")) + self.label_tmin.setText(_translate("MainWindow", "Tmin
")) + self.doubleSpinBox_tmin.setSuffix(_translate("MainWindow", " °C")) + self.label_tmax.setText(_translate("MainWindow", "Tmax
")) + self.doubleSpinBox_tmax.setSuffix(_translate("MainWindow", " °C")) + self.label_dt.setText(_translate("MainWindow", "ΔT
")) + self.doubleSpinBox_dt.setSuffix(_translate("MainWindow", " °C")) + self.groupBox_signal_threshold.setToolTip(_translate("MainWindow", "If the signal exceeds this threshold, the coresponding well is assumed to be denatured.
")) + self.groupBox_signal_threshold.setTitle(_translate("MainWindow", "Signal &Threshold")) + self.groupBox_cbar.setToolTip(_translate("MainWindow", "Defines the range of the colorbar used for the Tm heatmap.
")) + self.groupBox_cbar.setTitle(_translate("MainWindow", "&Colorbar")) + self.label_cbar_start.setText(_translate("MainWindow", "S&tart")) + self.doubleSpinBox_cbar_start.setSuffix(_translate("MainWindow", " °C")) + self.label_cbar_end.setText(_translate("MainWindow", "En&d")) + self.doubleSpinBox_cbar_end.setSuffix(_translate("MainWindow", " °C")) + self.groupBox_cutoff.setToolTip(_translate("MainWindow", "Only Tm values within this limit are considered valid.
")) + self.groupBox_cutoff.setTitle(_translate("MainWindow", "&Cutoff")) + self.label_cutoff_high.setText(_translate("MainWindow", "&Upper")) + self.doubleSpinBox_upper.setSuffix(_translate("MainWindow", " °C")) + self.label_cutoff_low.setText(_translate("MainWindow", "Lower")) + self.doubleSpinBox_lower.setSuffix(_translate("MainWindow", " °C")) + self.groupBox_output.setTitle(_translate("MainWindow", "Sa&ve processing results")) + self.checkBox_saveplots.setText(_translate("MainWindow", "Save plots")) + self.lineEdit_output.setToolTip(_translate("MainWindow", "Output results to this path")) + self.checkBox_savetables.setText(_translate("MainWindow", "Save tabular results")) + self.groupBox_conc.setTitle(_translate("MainWindow", "Concentration Dependency")) + self.lineEdit_conc.setToolTip(_translate("MainWindow", "Comma-seperated list of concentrations. This has to match the number of wells in either horizontal or vertical dimension. If a well is unused, either leave blank or use "NaN" as input.
")) + self.label_conc.setText(_translate("MainWindow", "Concentrations")) + self.spinBox_num_conc.setToolTip(_translate("MainWindow", "Displays the number of wells specified above.
")) + self.label_conc_num.setText(_translate("MainWindow", "Valid concentrations")) + self.comboBox.setItemText(0, _translate("MainWindow", "Horizontal")) + self.comboBox.setItemText(1, _translate("MainWindow", "Vertical")) + self.label.setText(_translate("MainWindow", "Direction")) + self.groupBox_results.setTitle(_translate("MainWindow", "Plots")) + self.menuFile.setTitle(_translate("MainWindow", "Fi&le")) + self.menuHelp.setTitle(_translate("MainWindow", "Hel&p")) + self.actionQuit.setText(_translate("MainWindow", "&Quit")) + self.actionAbout.setText(_translate("MainWindow", "&About")) + self.actionAbout_Qt.setText(_translate("MainWindow", "About &Qt")) + +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'ui/mainwindow.ui' +# +# Created by: PyQt5 UI code generator 5.5 +# +# WARNING! All changes made in this file will be lost! + +from PyQt5 import QtCore, QtGui, QtWidgets + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(4095, 4095) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth()) + MainWindow.setSizePolicy(sizePolicy) + MainWindow.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.centralWidget = QtWidgets.QWidget(MainWindow) + self.centralWidget.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.centralWidget.setObjectName("centralWidget") + self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralWidget) + self.horizontalLayout.setObjectName("horizontalLayout") + self.splitter = QtWidgets.QSplitter(self.centralWidget) + self.splitter.setOrientation(QtCore.Qt.Horizontal) + self.splitter.setOpaqueResize(False) + self.splitter.setHandleWidth(2) + self.splitter.setChildrenCollapsible(False) + self.splitter.setObjectName("splitter") + self.groupBox_experiment = QtWidgets.QGroupBox(self.splitter) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.groupBox_experiment.sizePolicy().hasHeightForWidth()) + self.groupBox_experiment.setSizePolicy(sizePolicy) + self.groupBox_experiment.setMinimumSize(QtCore.QSize(100, 300)) + self.groupBox_experiment.setSizeIncrement(QtCore.QSize(0, 0)) + self.groupBox_experiment.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.groupBox_experiment.setFlat(False) + self.groupBox_experiment.setCheckable(False) + self.groupBox_experiment.setObjectName("groupBox_experiment") + self.formLayout_3 = QtWidgets.QFormLayout(self.groupBox_experiment) + self.formLayout_3.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout_3.setObjectName("formLayout_3") + self.label_instrument = QtWidgets.QLabel(self.groupBox_experiment) + self.label_instrument.setObjectName("label_instrument") + self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_instrument) + self.comboBox_instrument = QtWidgets.QComboBox(self.groupBox_experiment) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.comboBox_instrument.sizePolicy().hasHeightForWidth()) + self.comboBox_instrument.setSizePolicy(sizePolicy) + self.comboBox_instrument.setObjectName("comboBox_instrument") + self.comboBox_instrument.addItem("") + self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.comboBox_instrument) + self.groupBox_data = QtWidgets.QGroupBox(self.groupBox_experiment) + self.groupBox_data.setEnabled(True) + self.groupBox_data.setObjectName("groupBox_data") + self.gridLayout_4 = QtWidgets.QGridLayout(self.groupBox_data) + self.gridLayout_4.setObjectName("gridLayout_4") + self.buttonBox_open_reset = QtWidgets.QDialogButtonBox(self.groupBox_data) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.buttonBox_open_reset.sizePolicy().hasHeightForWidth()) + self.buttonBox_open_reset.setSizePolicy(sizePolicy) + self.buttonBox_open_reset.setLayoutDirection(QtCore.Qt.LeftToRight) + self.buttonBox_open_reset.setOrientation(QtCore.Qt.Vertical) + self.buttonBox_open_reset.setStandardButtons(QtWidgets.QDialogButtonBox.Open|QtWidgets.QDialogButtonBox.Reset) + self.buttonBox_open_reset.setCenterButtons(False) + self.buttonBox_open_reset.setObjectName("buttonBox_open_reset") + self.gridLayout_4.addWidget(self.buttonBox_open_reset, 0, 1, 1, 1) + self.groupBox_replicates = QtWidgets.QGroupBox(self.groupBox_data) + self.groupBox_replicates.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.groupBox_replicates.setCheckable(True) + self.groupBox_replicates.setChecked(False) + self.groupBox_replicates.setObjectName("groupBox_replicates") + self.gridLayout_3 = QtWidgets.QGridLayout(self.groupBox_replicates) + self.gridLayout_3.setObjectName("gridLayout_3") + self.radioButton_rep_files = QtWidgets.QRadioButton(self.groupBox_replicates) + self.radioButton_rep_files.setEnabled(False) + self.radioButton_rep_files.setChecked(True) + self.radioButton_rep_files.setObjectName("radioButton_rep_files") + self.gridLayout_3.addWidget(self.radioButton_rep_files, 0, 0, 1, 1) + self.gridLayout_4.addWidget(self.groupBox_replicates, 2, 0, 1, 2) + self.listWidget_data = QtWidgets.QListWidget(self.groupBox_data) + self.listWidget_data.setAlternatingRowColors(True) + self.listWidget_data.setObjectName("listWidget_data") + self.gridLayout_4.addWidget(self.listWidget_data, 0, 0, 2, 1) + spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.gridLayout_4.addItem(spacerItem, 1, 1, 1, 1) + self.formLayout_3.setWidget(1, QtWidgets.QFormLayout.SpanningRole, self.groupBox_data) + self.groupBox_processing = QtWidgets.QGroupBox(self.groupBox_experiment) + self.groupBox_processing.setObjectName("groupBox_processing") + self.gridLayout = QtWidgets.QGridLayout(self.groupBox_processing) + self.gridLayout.setObjectName("gridLayout") + self.groupBox_temp = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_temp.setEnabled(True) + self.groupBox_temp.setAutoFillBackground(False) + self.groupBox_temp.setCheckable(False) + self.groupBox_temp.setObjectName("groupBox_temp") + self.formLayout = QtWidgets.QFormLayout(self.groupBox_temp) + self.formLayout.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.formLayout.setFormAlignment(QtCore.Qt.AlignHCenter|QtCore.Qt.AlignTop) + self.formLayout.setObjectName("formLayout") + self.label_tmin = QtWidgets.QLabel(self.groupBox_temp) + self.label_tmin.setObjectName("label_tmin") + self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_tmin) + self.doubleSpinBox_tmin = QtWidgets.QDoubleSpinBox(self.groupBox_temp) + self.doubleSpinBox_tmin.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.doubleSpinBox_tmin.setDecimals(1) + self.doubleSpinBox_tmin.setProperty("value", 20.0) + self.doubleSpinBox_tmin.setObjectName("doubleSpinBox_tmin") + self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_tmin) + self.label_tmax = QtWidgets.QLabel(self.groupBox_temp) + self.label_tmax.setObjectName("label_tmax") + self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_tmax) + self.doubleSpinBox_tmax = QtWidgets.QDoubleSpinBox(self.groupBox_temp) + self.doubleSpinBox_tmax.setDecimals(1) + self.doubleSpinBox_tmax.setProperty("value", 95.0) + self.doubleSpinBox_tmax.setObjectName("doubleSpinBox_tmax") + self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_tmax) + self.label_dt = QtWidgets.QLabel(self.groupBox_temp) + self.label_dt.setObjectName("label_dt") + self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_dt) + self.doubleSpinBox_dt = QtWidgets.QDoubleSpinBox(self.groupBox_temp) + self.doubleSpinBox_dt.setDecimals(1) + self.doubleSpinBox_dt.setProperty("value", 1.0) + self.doubleSpinBox_dt.setObjectName("doubleSpinBox_dt") + self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_dt) + self.gridLayout.addWidget(self.groupBox_temp, 0, 0, 1, 1) + self.groupBox_signal_threshold = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_signal_threshold.setEnabled(True) + self.groupBox_signal_threshold.setCheckable(True) + self.groupBox_signal_threshold.setChecked(False) + self.groupBox_signal_threshold.setObjectName("groupBox_signal_threshold") + self.verticalLayout = QtWidgets.QVBoxLayout(self.groupBox_signal_threshold) + self.verticalLayout.setObjectName("verticalLayout") + self.spinBox_signal_threshold = QtWidgets.QSpinBox(self.groupBox_signal_threshold) + self.spinBox_signal_threshold.setMaximum(1000000) + self.spinBox_signal_threshold.setObjectName("spinBox_signal_threshold") + self.verticalLayout.addWidget(self.spinBox_signal_threshold) + self.gridLayout.addWidget(self.groupBox_signal_threshold, 1, 0, 1, 1) + self.groupBox_cbar = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_cbar.setEnabled(True) + self.groupBox_cbar.setCheckable(True) + self.groupBox_cbar.setChecked(False) + self.groupBox_cbar.setObjectName("groupBox_cbar") + self.formLayout_4 = QtWidgets.QFormLayout(self.groupBox_cbar) + self.formLayout_4.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout_4.setObjectName("formLayout_4") + self.label_cbar_start = QtWidgets.QLabel(self.groupBox_cbar) + self.label_cbar_start.setObjectName("label_cbar_start") + self.formLayout_4.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_cbar_start) + self.doubleSpinBox_cbar_start = QtWidgets.QDoubleSpinBox(self.groupBox_cbar) + self.doubleSpinBox_cbar_start.setDecimals(1) + self.doubleSpinBox_cbar_start.setObjectName("doubleSpinBox_cbar_start") + self.formLayout_4.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_cbar_start) + self.label_cbar_end = QtWidgets.QLabel(self.groupBox_cbar) + self.label_cbar_end.setObjectName("label_cbar_end") + self.formLayout_4.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_cbar_end) + self.doubleSpinBox_cbar_end = QtWidgets.QDoubleSpinBox(self.groupBox_cbar) + self.doubleSpinBox_cbar_end.setDecimals(1) + self.doubleSpinBox_cbar_end.setObjectName("doubleSpinBox_cbar_end") + self.formLayout_4.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_cbar_end) + self.gridLayout.addWidget(self.groupBox_cbar, 1, 1, 1, 1) + self.groupBox_cutoff = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_cutoff.setEnabled(True) + self.groupBox_cutoff.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.groupBox_cutoff.setCheckable(True) + self.groupBox_cutoff.setChecked(False) + self.groupBox_cutoff.setObjectName("groupBox_cutoff") + self.formLayout_2 = QtWidgets.QFormLayout(self.groupBox_cutoff) + self.formLayout_2.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout_2.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.formLayout_2.setFormAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) + self.formLayout_2.setObjectName("formLayout_2") + self.label_cutoff_high = QtWidgets.QLabel(self.groupBox_cutoff) + self.label_cutoff_high.setObjectName("label_cutoff_high") + self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_cutoff_high) + self.doubleSpinBox_upper = QtWidgets.QDoubleSpinBox(self.groupBox_cutoff) + self.doubleSpinBox_upper.setPrefix("") + self.doubleSpinBox_upper.setDecimals(1) + self.doubleSpinBox_upper.setObjectName("doubleSpinBox_upper") + self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_upper) + self.label_cutoff_low = QtWidgets.QLabel(self.groupBox_cutoff) + self.label_cutoff_low.setObjectName("label_cutoff_low") + self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_cutoff_low) + self.doubleSpinBox_lower = QtWidgets.QDoubleSpinBox(self.groupBox_cutoff) + self.doubleSpinBox_lower.setDecimals(1) + self.doubleSpinBox_lower.setObjectName("doubleSpinBox_lower") + self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_lower) + self.gridLayout.addWidget(self.groupBox_cutoff, 0, 1, 1, 1) + self.groupBox_output = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_output.setCheckable(True) + self.groupBox_output.setChecked(False) + self.groupBox_output.setObjectName("groupBox_output") + self.gridLayout_2 = QtWidgets.QGridLayout(self.groupBox_output) + self.gridLayout_2.setObjectName("gridLayout_2") + self.checkBox_saveplots = QtWidgets.QCheckBox(self.groupBox_output) + self.checkBox_saveplots.setObjectName("checkBox_saveplots") + self.gridLayout_2.addWidget(self.checkBox_saveplots, 1, 0, 1, 1) + self.buttonBox_output = QtWidgets.QDialogButtonBox(self.groupBox_output) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.buttonBox_output.sizePolicy().hasHeightForWidth()) + self.buttonBox_output.setSizePolicy(sizePolicy) + self.buttonBox_output.setOrientation(QtCore.Qt.Vertical) + self.buttonBox_output.setStandardButtons(QtWidgets.QDialogButtonBox.Open) + self.buttonBox_output.setObjectName("buttonBox_output") + self.gridLayout_2.addWidget(self.buttonBox_output, 3, 1, 1, 1) + self.lineEdit_output = QtWidgets.QLineEdit(self.groupBox_output) + self.lineEdit_output.setObjectName("lineEdit_output") + self.gridLayout_2.addWidget(self.lineEdit_output, 3, 0, 1, 1) + self.checkBox_savetables = QtWidgets.QCheckBox(self.groupBox_output) + self.checkBox_savetables.setObjectName("checkBox_savetables") + self.gridLayout_2.addWidget(self.checkBox_savetables, 2, 0, 1, 1) + self.gridLayout.addWidget(self.groupBox_output, 3, 0, 1, 2) + self.groupBox_conc = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_conc.setMinimumSize(QtCore.QSize(0, 0)) + self.groupBox_conc.setCheckable(True) + self.groupBox_conc.setChecked(False) + self.groupBox_conc.setObjectName("groupBox_conc") + self.formLayout_5 = QtWidgets.QFormLayout(self.groupBox_conc) + self.formLayout_5.setObjectName("formLayout_5") + self.lineEdit_conc = QtWidgets.QLineEdit(self.groupBox_conc) + self.lineEdit_conc.setObjectName("lineEdit_conc") + self.formLayout_5.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.lineEdit_conc) + self.label_conc = QtWidgets.QLabel(self.groupBox_conc) + self.label_conc.setObjectName("label_conc") + self.formLayout_5.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_conc) + self.spinBox_num_conc = QtWidgets.QSpinBox(self.groupBox_conc) + self.spinBox_num_conc.setReadOnly(True) + self.spinBox_num_conc.setButtonSymbols(QtWidgets.QAbstractSpinBox.NoButtons) + self.spinBox_num_conc.setObjectName("spinBox_num_conc") + self.formLayout_5.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.spinBox_num_conc) + self.label_conc_num = QtWidgets.QLabel(self.groupBox_conc) + self.label_conc_num.setObjectName("label_conc_num") + self.formLayout_5.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.label_conc_num) + self.comboBox_direction = QtWidgets.QComboBox(self.groupBox_conc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.comboBox_direction.sizePolicy().hasHeightForWidth()) + self.comboBox_direction.setSizePolicy(sizePolicy) + self.comboBox_direction.setObjectName("comboBox_direction") + self.comboBox_direction.addItem("") + self.comboBox_direction.addItem("") + self.formLayout_5.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.comboBox_direction) + self.label_direction = QtWidgets.QLabel(self.groupBox_conc) + self.label_direction.setObjectName("label_direction") + self.formLayout_5.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_direction) + self.label_rows_columns = QtWidgets.QLabel(self.groupBox_conc) + self.label_rows_columns.setObjectName("label_rows_columns") + self.formLayout_5.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_rows_columns) + self.spinBox_rows_columns = QtWidgets.QSpinBox(self.groupBox_conc) + self.spinBox_rows_columns.setMinimum(1) + self.spinBox_rows_columns.setObjectName("spinBox_rows_columns") + self.formLayout_5.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.spinBox_rows_columns) + self.gridLayout.addWidget(self.groupBox_conc, 2, 0, 1, 2) + self.formLayout_3.setWidget(2, QtWidgets.QFormLayout.SpanningRole, self.groupBox_processing) + self.buttonBox_process = QtWidgets.QDialogButtonBox(self.groupBox_experiment) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.buttonBox_process.sizePolicy().hasHeightForWidth()) + self.buttonBox_process.setSizePolicy(sizePolicy) + self.buttonBox_process.setMinimumSize(QtCore.QSize(0, 0)) + self.buttonBox_process.setStandardButtons(QtWidgets.QDialogButtonBox.NoButton) + self.buttonBox_process.setObjectName("buttonBox_process") + self.formLayout_3.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.buttonBox_process) + self.groupBox_results = QtWidgets.QGroupBox(self.splitter) + self.groupBox_results.setEnabled(True) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(6) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.groupBox_results.sizePolicy().hasHeightForWidth()) + self.groupBox_results.setSizePolicy(sizePolicy) + self.groupBox_results.setSizeIncrement(QtCore.QSize(0, 0)) + self.groupBox_results.setObjectName("groupBox_results") + self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.groupBox_results) + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.tabWidget = QtWidgets.QTabWidget(self.groupBox_results) + self.tabWidget.setEnabled(True) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tabWidget.sizePolicy().hasHeightForWidth()) + self.tabWidget.setSizePolicy(sizePolicy) + self.tabWidget.setMinimumSize(QtCore.QSize(300, 300)) + self.tabWidget.setSizeIncrement(QtCore.QSize(0, 0)) + self.tabWidget.setObjectName("tabWidget") + self.horizontalLayout_2.addWidget(self.tabWidget) + self.horizontalLayout.addWidget(self.splitter) + MainWindow.setCentralWidget(self.centralWidget) + self.menuBar = QtWidgets.QMenuBar(MainWindow) + self.menuBar.setGeometry(QtCore.QRect(0, 0, 4095, 30)) + self.menuBar.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.menuBar.setObjectName("menuBar") + self.menuFile = QtWidgets.QMenu(self.menuBar) + self.menuFile.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.menuFile.setObjectName("menuFile") + self.menuHelp = QtWidgets.QMenu(self.menuBar) + self.menuHelp.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.menuHelp.setObjectName("menuHelp") + MainWindow.setMenuBar(self.menuBar) + self.statusBar = QtWidgets.QStatusBar(MainWindow) + self.statusBar.setObjectName("statusBar") + MainWindow.setStatusBar(self.statusBar) + self.actionQuit = QtWidgets.QAction(MainWindow) + self.actionQuit.setObjectName("actionQuit") + self.actionAbout = QtWidgets.QAction(MainWindow) + self.actionAbout.setObjectName("actionAbout") + self.actionAbout_Qt = QtWidgets.QAction(MainWindow) + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap(":/qtlogo.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.actionAbout_Qt.setIcon(icon) + self.actionAbout_Qt.setObjectName("actionAbout_Qt") + self.menuFile.addAction(self.actionQuit) + self.menuHelp.addAction(self.actionAbout) + self.menuHelp.addAction(self.actionAbout_Qt) + self.menuBar.addAction(self.menuFile.menuAction()) + self.menuBar.addAction(self.menuHelp.menuAction()) + self.label_instrument.setBuddy(self.comboBox_instrument) + self.label_tmin.setBuddy(self.doubleSpinBox_tmin) + self.label_tmax.setBuddy(self.doubleSpinBox_tmax) + self.label_dt.setBuddy(self.doubleSpinBox_dt) + self.label_cbar_start.setBuddy(self.doubleSpinBox_cbar_start) + self.label_cbar_end.setBuddy(self.doubleSpinBox_cbar_end) + self.label_cutoff_high.setBuddy(self.doubleSpinBox_upper) + self.label_cutoff_low.setBuddy(self.doubleSpinBox_lower) + + self.retranslateUi(MainWindow) + self.tabWidget.setCurrentIndex(-1) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "PyDSF")) + self.groupBox_experiment.setTitle(_translate("MainWindow", "Experimental Setup")) + self.label_instrument.setText(_translate("MainWindow", "I&nstrument")) + self.comboBox_instrument.setItemText(0, _translate("MainWindow", "Analytik Jena qTOWER 2.0/2.2")) + self.groupBox_data.setToolTip(_translate("MainWindow", "Add data files to the experiment. If multiple files are loaded, they are treated as replicates.
")) + self.groupBox_data.setTitle(_translate("MainWindow", "Data File")) + self.groupBox_replicates.setTitle(_translate("MainWindow", "Replicates")) + self.radioButton_rep_files.setText(_translate("MainWindow", "Files")) + self.groupBox_processing.setTitle(_translate("MainWindow", "Processing Options")) + self.groupBox_temp.setToolTip(_translate("MainWindow", "Temperature range of the data points. Only applies, if the data file does not contain any temperature information.
")) + self.groupBox_temp.setTitle(_translate("MainWindow", "Temperature settings")) + self.label_tmin.setText(_translate("MainWindow", "Tmin
")) + self.doubleSpinBox_tmin.setSuffix(_translate("MainWindow", " °C")) + self.label_tmax.setText(_translate("MainWindow", "Tmax
")) + self.doubleSpinBox_tmax.setSuffix(_translate("MainWindow", " °C")) + self.label_dt.setText(_translate("MainWindow", "ΔT
")) + self.doubleSpinBox_dt.setSuffix(_translate("MainWindow", " °C")) + self.groupBox_signal_threshold.setToolTip(_translate("MainWindow", "If the signal exceeds this threshold, the coresponding well is assumed to be denatured.
")) + self.groupBox_signal_threshold.setTitle(_translate("MainWindow", "Signal &Threshold")) + self.groupBox_cbar.setToolTip(_translate("MainWindow", "Defines the range of the colorbar used for the Tm heatmap.
")) + self.groupBox_cbar.setTitle(_translate("MainWindow", "&Colorbar")) + self.label_cbar_start.setText(_translate("MainWindow", "S&tart")) + self.doubleSpinBox_cbar_start.setSuffix(_translate("MainWindow", " °C")) + self.label_cbar_end.setText(_translate("MainWindow", "En&d")) + self.doubleSpinBox_cbar_end.setSuffix(_translate("MainWindow", " °C")) + self.groupBox_cutoff.setToolTip(_translate("MainWindow", "Only Tm values within this limit are considered valid.
")) + self.groupBox_cutoff.setTitle(_translate("MainWindow", "&Cutoff")) + self.label_cutoff_high.setText(_translate("MainWindow", "&Upper")) + self.doubleSpinBox_upper.setSuffix(_translate("MainWindow", " °C")) + self.label_cutoff_low.setText(_translate("MainWindow", "Lower")) + self.doubleSpinBox_lower.setSuffix(_translate("MainWindow", " °C")) + self.groupBox_output.setTitle(_translate("MainWindow", "Sa&ve processing results")) + self.checkBox_saveplots.setText(_translate("MainWindow", "Save plots")) + self.lineEdit_output.setToolTip(_translate("MainWindow", "Output results to this path")) + self.checkBox_savetables.setText(_translate("MainWindow", "Save tabular results")) + self.groupBox_conc.setTitle(_translate("MainWindow", "Concentration Dependency")) + self.lineEdit_conc.setToolTip(_translate("MainWindow", "Comma-seperated list of concentrations. This has to match the number of wells in either horizontal or vertical dimension. If a well is unused, either leave blank or use "NaN" as input.
")) + self.label_conc.setText(_translate("MainWindow", "Concentrations")) + self.spinBox_num_conc.setToolTip(_translate("MainWindow", "Displays the number of wells specified above.
")) + self.label_conc_num.setText(_translate("MainWindow", "Valid concentrations")) + self.comboBox_direction.setItemText(0, _translate("MainWindow", "Horizontal")) + self.comboBox_direction.setItemText(1, _translate("MainWindow", "Vertical")) + self.label_direction.setText(_translate("MainWindow", "Direction")) + self.label_rows_columns.setText(_translate("MainWindow", "Rows")) + self.groupBox_results.setTitle(_translate("MainWindow", "Plots")) + self.menuFile.setTitle(_translate("MainWindow", "Fi&le")) + self.menuHelp.setTitle(_translate("MainWindow", "Hel&p")) + self.actionQuit.setText(_translate("MainWindow", "&Quit")) + self.actionAbout.setText(_translate("MainWindow", "&About")) + self.actionAbout_Qt.setText(_translate("MainWindow", "About &Qt")) + +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'ui/mainwindow.ui' +# +# Created by: PyQt5 UI code generator 5.5 +# +# WARNING! All changes made in this file will be lost! + +from PyQt5 import QtCore, QtGui, QtWidgets + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(4095, 4095) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth()) + MainWindow.setSizePolicy(sizePolicy) + MainWindow.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.centralWidget = QtWidgets.QWidget(MainWindow) + self.centralWidget.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.centralWidget.setObjectName("centralWidget") + self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralWidget) + self.horizontalLayout.setObjectName("horizontalLayout") + self.splitter = QtWidgets.QSplitter(self.centralWidget) + self.splitter.setOrientation(QtCore.Qt.Horizontal) + self.splitter.setOpaqueResize(False) + self.splitter.setHandleWidth(2) + self.splitter.setChildrenCollapsible(False) + self.splitter.setObjectName("splitter") + self.groupBox_experiment = QtWidgets.QGroupBox(self.splitter) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.groupBox_experiment.sizePolicy().hasHeightForWidth()) + self.groupBox_experiment.setSizePolicy(sizePolicy) + self.groupBox_experiment.setMinimumSize(QtCore.QSize(100, 300)) + self.groupBox_experiment.setSizeIncrement(QtCore.QSize(0, 0)) + self.groupBox_experiment.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.groupBox_experiment.setFlat(False) + self.groupBox_experiment.setCheckable(False) + self.groupBox_experiment.setObjectName("groupBox_experiment") + self.formLayout_3 = QtWidgets.QFormLayout(self.groupBox_experiment) + self.formLayout_3.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout_3.setObjectName("formLayout_3") + self.label_instrument = QtWidgets.QLabel(self.groupBox_experiment) + self.label_instrument.setObjectName("label_instrument") + self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_instrument) + self.comboBox_instrument = QtWidgets.QComboBox(self.groupBox_experiment) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.comboBox_instrument.sizePolicy().hasHeightForWidth()) + self.comboBox_instrument.setSizePolicy(sizePolicy) + self.comboBox_instrument.setObjectName("comboBox_instrument") + self.comboBox_instrument.addItem("") + self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.comboBox_instrument) + self.groupBox_data = QtWidgets.QGroupBox(self.groupBox_experiment) + self.groupBox_data.setEnabled(True) + self.groupBox_data.setObjectName("groupBox_data") + self.gridLayout_4 = QtWidgets.QGridLayout(self.groupBox_data) + self.gridLayout_4.setObjectName("gridLayout_4") + self.buttonBox_open_reset = QtWidgets.QDialogButtonBox(self.groupBox_data) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.buttonBox_open_reset.sizePolicy().hasHeightForWidth()) + self.buttonBox_open_reset.setSizePolicy(sizePolicy) + self.buttonBox_open_reset.setLayoutDirection(QtCore.Qt.LeftToRight) + self.buttonBox_open_reset.setOrientation(QtCore.Qt.Vertical) + self.buttonBox_open_reset.setStandardButtons(QtWidgets.QDialogButtonBox.Open|QtWidgets.QDialogButtonBox.Reset) + self.buttonBox_open_reset.setCenterButtons(False) + self.buttonBox_open_reset.setObjectName("buttonBox_open_reset") + self.gridLayout_4.addWidget(self.buttonBox_open_reset, 0, 1, 1, 1) + self.groupBox_replicates = QtWidgets.QGroupBox(self.groupBox_data) + self.groupBox_replicates.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.groupBox_replicates.setCheckable(True) + self.groupBox_replicates.setChecked(False) + self.groupBox_replicates.setObjectName("groupBox_replicates") + self.gridLayout_3 = QtWidgets.QGridLayout(self.groupBox_replicates) + self.gridLayout_3.setObjectName("gridLayout_3") + self.radioButton_rep_files = QtWidgets.QRadioButton(self.groupBox_replicates) + self.radioButton_rep_files.setEnabled(False) + self.radioButton_rep_files.setChecked(True) + self.radioButton_rep_files.setObjectName("radioButton_rep_files") + self.gridLayout_3.addWidget(self.radioButton_rep_files, 0, 0, 1, 1) + self.gridLayout_4.addWidget(self.groupBox_replicates, 2, 0, 1, 2) + self.listWidget_data = QtWidgets.QListWidget(self.groupBox_data) + self.listWidget_data.setAlternatingRowColors(True) + self.listWidget_data.setObjectName("listWidget_data") + self.gridLayout_4.addWidget(self.listWidget_data, 0, 0, 2, 1) + spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.gridLayout_4.addItem(spacerItem, 1, 1, 1, 1) + self.formLayout_3.setWidget(1, QtWidgets.QFormLayout.SpanningRole, self.groupBox_data) + self.groupBox_processing = QtWidgets.QGroupBox(self.groupBox_experiment) + self.groupBox_processing.setObjectName("groupBox_processing") + self.gridLayout = QtWidgets.QGridLayout(self.groupBox_processing) + self.gridLayout.setObjectName("gridLayout") + self.groupBox_temp = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_temp.setEnabled(True) + self.groupBox_temp.setAutoFillBackground(False) + self.groupBox_temp.setCheckable(False) + self.groupBox_temp.setObjectName("groupBox_temp") + self.formLayout = QtWidgets.QFormLayout(self.groupBox_temp) + self.formLayout.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.formLayout.setFormAlignment(QtCore.Qt.AlignHCenter|QtCore.Qt.AlignTop) + self.formLayout.setObjectName("formLayout") + self.label_tmin = QtWidgets.QLabel(self.groupBox_temp) + self.label_tmin.setObjectName("label_tmin") + self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_tmin) + self.doubleSpinBox_tmin = QtWidgets.QDoubleSpinBox(self.groupBox_temp) + self.doubleSpinBox_tmin.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.doubleSpinBox_tmin.setDecimals(1) + self.doubleSpinBox_tmin.setProperty("value", 20.0) + self.doubleSpinBox_tmin.setObjectName("doubleSpinBox_tmin") + self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_tmin) + self.label_tmax = QtWidgets.QLabel(self.groupBox_temp) + self.label_tmax.setObjectName("label_tmax") + self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_tmax) + self.doubleSpinBox_tmax = QtWidgets.QDoubleSpinBox(self.groupBox_temp) + self.doubleSpinBox_tmax.setDecimals(1) + self.doubleSpinBox_tmax.setProperty("value", 95.0) + self.doubleSpinBox_tmax.setObjectName("doubleSpinBox_tmax") + self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_tmax) + self.label_dt = QtWidgets.QLabel(self.groupBox_temp) + self.label_dt.setObjectName("label_dt") + self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_dt) + self.doubleSpinBox_dt = QtWidgets.QDoubleSpinBox(self.groupBox_temp) + self.doubleSpinBox_dt.setDecimals(1) + self.doubleSpinBox_dt.setProperty("value", 1.0) + self.doubleSpinBox_dt.setObjectName("doubleSpinBox_dt") + self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_dt) + self.gridLayout.addWidget(self.groupBox_temp, 0, 0, 1, 1) + self.groupBox_signal_threshold = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_signal_threshold.setEnabled(True) + self.groupBox_signal_threshold.setCheckable(True) + self.groupBox_signal_threshold.setChecked(False) + self.groupBox_signal_threshold.setObjectName("groupBox_signal_threshold") + self.verticalLayout = QtWidgets.QVBoxLayout(self.groupBox_signal_threshold) + self.verticalLayout.setObjectName("verticalLayout") + self.spinBox_signal_threshold = QtWidgets.QSpinBox(self.groupBox_signal_threshold) + self.spinBox_signal_threshold.setMaximum(1000000) + self.spinBox_signal_threshold.setObjectName("spinBox_signal_threshold") + self.verticalLayout.addWidget(self.spinBox_signal_threshold) + self.gridLayout.addWidget(self.groupBox_signal_threshold, 1, 0, 1, 1) + self.groupBox_cbar = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_cbar.setEnabled(True) + self.groupBox_cbar.setCheckable(True) + self.groupBox_cbar.setChecked(False) + self.groupBox_cbar.setObjectName("groupBox_cbar") + self.formLayout_4 = QtWidgets.QFormLayout(self.groupBox_cbar) + self.formLayout_4.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout_4.setObjectName("formLayout_4") + self.label_cbar_start = QtWidgets.QLabel(self.groupBox_cbar) + self.label_cbar_start.setObjectName("label_cbar_start") + self.formLayout_4.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_cbar_start) + self.doubleSpinBox_cbar_start = QtWidgets.QDoubleSpinBox(self.groupBox_cbar) + self.doubleSpinBox_cbar_start.setDecimals(1) + self.doubleSpinBox_cbar_start.setObjectName("doubleSpinBox_cbar_start") + self.formLayout_4.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_cbar_start) + self.label_cbar_end = QtWidgets.QLabel(self.groupBox_cbar) + self.label_cbar_end.setObjectName("label_cbar_end") + self.formLayout_4.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_cbar_end) + self.doubleSpinBox_cbar_end = QtWidgets.QDoubleSpinBox(self.groupBox_cbar) + self.doubleSpinBox_cbar_end.setDecimals(1) + self.doubleSpinBox_cbar_end.setObjectName("doubleSpinBox_cbar_end") + self.formLayout_4.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_cbar_end) + self.gridLayout.addWidget(self.groupBox_cbar, 1, 1, 1, 1) + self.groupBox_cutoff = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_cutoff.setEnabled(True) + self.groupBox_cutoff.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.groupBox_cutoff.setCheckable(True) + self.groupBox_cutoff.setChecked(False) + self.groupBox_cutoff.setObjectName("groupBox_cutoff") + self.formLayout_2 = QtWidgets.QFormLayout(self.groupBox_cutoff) + self.formLayout_2.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout_2.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.formLayout_2.setFormAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) + self.formLayout_2.setObjectName("formLayout_2") + self.label_cutoff_high = QtWidgets.QLabel(self.groupBox_cutoff) + self.label_cutoff_high.setObjectName("label_cutoff_high") + self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_cutoff_high) + self.doubleSpinBox_upper = QtWidgets.QDoubleSpinBox(self.groupBox_cutoff) + self.doubleSpinBox_upper.setPrefix("") + self.doubleSpinBox_upper.setDecimals(1) + self.doubleSpinBox_upper.setObjectName("doubleSpinBox_upper") + self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_upper) + self.label_cutoff_low = QtWidgets.QLabel(self.groupBox_cutoff) + self.label_cutoff_low.setObjectName("label_cutoff_low") + self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_cutoff_low) + self.doubleSpinBox_lower = QtWidgets.QDoubleSpinBox(self.groupBox_cutoff) + self.doubleSpinBox_lower.setDecimals(1) + self.doubleSpinBox_lower.setObjectName("doubleSpinBox_lower") + self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_lower) + self.gridLayout.addWidget(self.groupBox_cutoff, 0, 1, 1, 1) + self.groupBox_output = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_output.setCheckable(True) + self.groupBox_output.setChecked(False) + self.groupBox_output.setObjectName("groupBox_output") + self.gridLayout_2 = QtWidgets.QGridLayout(self.groupBox_output) + self.gridLayout_2.setObjectName("gridLayout_2") + self.checkBox_saveplots = QtWidgets.QCheckBox(self.groupBox_output) + self.checkBox_saveplots.setObjectName("checkBox_saveplots") + self.gridLayout_2.addWidget(self.checkBox_saveplots, 1, 0, 1, 1) + self.buttonBox_output = QtWidgets.QDialogButtonBox(self.groupBox_output) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.buttonBox_output.sizePolicy().hasHeightForWidth()) + self.buttonBox_output.setSizePolicy(sizePolicy) + self.buttonBox_output.setOrientation(QtCore.Qt.Vertical) + self.buttonBox_output.setStandardButtons(QtWidgets.QDialogButtonBox.Open) + self.buttonBox_output.setObjectName("buttonBox_output") + self.gridLayout_2.addWidget(self.buttonBox_output, 3, 1, 1, 1) + self.lineEdit_output = QtWidgets.QLineEdit(self.groupBox_output) + self.lineEdit_output.setObjectName("lineEdit_output") + self.gridLayout_2.addWidget(self.lineEdit_output, 3, 0, 1, 1) + self.checkBox_savetables = QtWidgets.QCheckBox(self.groupBox_output) + self.checkBox_savetables.setObjectName("checkBox_savetables") + self.gridLayout_2.addWidget(self.checkBox_savetables, 2, 0, 1, 1) + self.gridLayout.addWidget(self.groupBox_output, 3, 0, 1, 2) + self.groupBox_conc = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_conc.setMinimumSize(QtCore.QSize(0, 0)) + self.groupBox_conc.setCheckable(True) + self.groupBox_conc.setChecked(False) + self.groupBox_conc.setObjectName("groupBox_conc") + self.formLayout_5 = QtWidgets.QFormLayout(self.groupBox_conc) + self.formLayout_5.setObjectName("formLayout_5") + self.lineEdit_conc = QtWidgets.QLineEdit(self.groupBox_conc) + self.lineEdit_conc.setObjectName("lineEdit_conc") + self.formLayout_5.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.lineEdit_conc) + self.label_conc = QtWidgets.QLabel(self.groupBox_conc) + self.label_conc.setObjectName("label_conc") + self.formLayout_5.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_conc) + self.spinBox_num_conc = QtWidgets.QSpinBox(self.groupBox_conc) + self.spinBox_num_conc.setReadOnly(True) + self.spinBox_num_conc.setButtonSymbols(QtWidgets.QAbstractSpinBox.NoButtons) + self.spinBox_num_conc.setObjectName("spinBox_num_conc") + self.formLayout_5.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.spinBox_num_conc) + self.label_conc_num = QtWidgets.QLabel(self.groupBox_conc) + self.label_conc_num.setObjectName("label_conc_num") + self.formLayout_5.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.label_conc_num) + self.comboBox_direction = QtWidgets.QComboBox(self.groupBox_conc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.comboBox_direction.sizePolicy().hasHeightForWidth()) + self.comboBox_direction.setSizePolicy(sizePolicy) + self.comboBox_direction.setObjectName("comboBox_direction") + self.comboBox_direction.addItem("") + self.comboBox_direction.addItem("") + self.formLayout_5.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.comboBox_direction) + self.label_direction = QtWidgets.QLabel(self.groupBox_conc) + self.label_direction.setObjectName("label_direction") + self.formLayout_5.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_direction) + self.label_rows_columns = QtWidgets.QLabel(self.groupBox_conc) + self.label_rows_columns.setObjectName("label_rows_columns") + self.formLayout_5.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_rows_columns) + self.spinBox_rows_columns = QtWidgets.QSpinBox(self.groupBox_conc) + self.spinBox_rows_columns.setMinimum(1) + self.spinBox_rows_columns.setObjectName("spinBox_rows_columns") + self.formLayout_5.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.spinBox_rows_columns) + self.gridLayout.addWidget(self.groupBox_conc, 2, 0, 1, 2) + self.formLayout_3.setWidget(2, QtWidgets.QFormLayout.SpanningRole, self.groupBox_processing) + self.buttonBox_process = QtWidgets.QDialogButtonBox(self.groupBox_experiment) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.buttonBox_process.sizePolicy().hasHeightForWidth()) + self.buttonBox_process.setSizePolicy(sizePolicy) + self.buttonBox_process.setMinimumSize(QtCore.QSize(0, 0)) + self.buttonBox_process.setStandardButtons(QtWidgets.QDialogButtonBox.NoButton) + self.buttonBox_process.setObjectName("buttonBox_process") + self.formLayout_3.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.buttonBox_process) + self.groupBox_results = QtWidgets.QGroupBox(self.splitter) + self.groupBox_results.setEnabled(True) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(6) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.groupBox_results.sizePolicy().hasHeightForWidth()) + self.groupBox_results.setSizePolicy(sizePolicy) + self.groupBox_results.setSizeIncrement(QtCore.QSize(0, 0)) + self.groupBox_results.setObjectName("groupBox_results") + self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.groupBox_results) + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.tabWidget = QtWidgets.QTabWidget(self.groupBox_results) + self.tabWidget.setEnabled(True) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tabWidget.sizePolicy().hasHeightForWidth()) + self.tabWidget.setSizePolicy(sizePolicy) + self.tabWidget.setMinimumSize(QtCore.QSize(300, 300)) + self.tabWidget.setSizeIncrement(QtCore.QSize(0, 0)) + self.tabWidget.setObjectName("tabWidget") + self.horizontalLayout_2.addWidget(self.tabWidget) + self.horizontalLayout.addWidget(self.splitter) + MainWindow.setCentralWidget(self.centralWidget) + self.menuBar = QtWidgets.QMenuBar(MainWindow) + self.menuBar.setGeometry(QtCore.QRect(0, 0, 4095, 30)) + self.menuBar.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.menuBar.setObjectName("menuBar") + self.menuFile = QtWidgets.QMenu(self.menuBar) + self.menuFile.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.menuFile.setObjectName("menuFile") + self.menuHelp = QtWidgets.QMenu(self.menuBar) + self.menuHelp.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.menuHelp.setObjectName("menuHelp") + MainWindow.setMenuBar(self.menuBar) + self.statusBar = QtWidgets.QStatusBar(MainWindow) + self.statusBar.setObjectName("statusBar") + MainWindow.setStatusBar(self.statusBar) + self.actionQuit = QtWidgets.QAction(MainWindow) + self.actionQuit.setObjectName("actionQuit") + self.actionAbout = QtWidgets.QAction(MainWindow) + self.actionAbout.setObjectName("actionAbout") + self.actionAbout_Qt = QtWidgets.QAction(MainWindow) + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap(":/qtlogo.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.actionAbout_Qt.setIcon(icon) + self.actionAbout_Qt.setObjectName("actionAbout_Qt") + self.menuFile.addAction(self.actionQuit) + self.menuHelp.addAction(self.actionAbout) + self.menuHelp.addAction(self.actionAbout_Qt) + self.menuBar.addAction(self.menuFile.menuAction()) + self.menuBar.addAction(self.menuHelp.menuAction()) + self.label_instrument.setBuddy(self.comboBox_instrument) + self.label_tmin.setBuddy(self.doubleSpinBox_tmin) + self.label_tmax.setBuddy(self.doubleSpinBox_tmax) + self.label_dt.setBuddy(self.doubleSpinBox_dt) + self.label_cbar_start.setBuddy(self.doubleSpinBox_cbar_start) + self.label_cbar_end.setBuddy(self.doubleSpinBox_cbar_end) + self.label_cutoff_high.setBuddy(self.doubleSpinBox_upper) + self.label_cutoff_low.setBuddy(self.doubleSpinBox_lower) + + self.retranslateUi(MainWindow) + self.tabWidget.setCurrentIndex(-1) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "PyDSF")) + self.groupBox_experiment.setTitle(_translate("MainWindow", "Experimental Setup")) + self.label_instrument.setText(_translate("MainWindow", "I&nstrument")) + self.comboBox_instrument.setItemText(0, _translate("MainWindow", "Analytik Jena qTOWER 2.0/2.2")) + self.groupBox_data.setToolTip(_translate("MainWindow", "Add data files to the experiment. If multiple files are loaded, they are treated as replicates.
")) + self.groupBox_data.setTitle(_translate("MainWindow", "Data File")) + self.groupBox_replicates.setTitle(_translate("MainWindow", "Replicates")) + self.radioButton_rep_files.setText(_translate("MainWindow", "Files")) + self.groupBox_processing.setTitle(_translate("MainWindow", "Processing Options")) + self.groupBox_temp.setToolTip(_translate("MainWindow", "Temperature range of the data points. Only applies, if the data file does not contain any temperature information.
")) + self.groupBox_temp.setTitle(_translate("MainWindow", "Temperature settings")) + self.label_tmin.setText(_translate("MainWindow", "Tmin
")) + self.doubleSpinBox_tmin.setSuffix(_translate("MainWindow", " °C")) + self.label_tmax.setText(_translate("MainWindow", "Tmax
")) + self.doubleSpinBox_tmax.setSuffix(_translate("MainWindow", " °C")) + self.label_dt.setText(_translate("MainWindow", "ΔT
")) + self.doubleSpinBox_dt.setSuffix(_translate("MainWindow", " °C")) + self.groupBox_signal_threshold.setToolTip(_translate("MainWindow", "If the signal exceeds this threshold, the coresponding well is assumed to be denatured.
")) + self.groupBox_signal_threshold.setTitle(_translate("MainWindow", "Signal &Threshold")) + self.groupBox_cbar.setToolTip(_translate("MainWindow", "Defines the range of the colorbar used for the Tm heatmap.
")) + self.groupBox_cbar.setTitle(_translate("MainWindow", "&Colorbar")) + self.label_cbar_start.setText(_translate("MainWindow", "S&tart")) + self.doubleSpinBox_cbar_start.setSuffix(_translate("MainWindow", " °C")) + self.label_cbar_end.setText(_translate("MainWindow", "En&d")) + self.doubleSpinBox_cbar_end.setSuffix(_translate("MainWindow", " °C")) + self.groupBox_cutoff.setToolTip(_translate("MainWindow", "Only Tm values within this limit are considered valid.
")) + self.groupBox_cutoff.setTitle(_translate("MainWindow", "&Cutoff")) + self.label_cutoff_high.setText(_translate("MainWindow", "&Upper")) + self.doubleSpinBox_upper.setSuffix(_translate("MainWindow", " °C")) + self.label_cutoff_low.setText(_translate("MainWindow", "Lower")) + self.doubleSpinBox_lower.setSuffix(_translate("MainWindow", " °C")) + self.groupBox_output.setTitle(_translate("MainWindow", "Sa&ve processing results")) + self.checkBox_saveplots.setText(_translate("MainWindow", "Save plots")) + self.lineEdit_output.setToolTip(_translate("MainWindow", "Output results to this path")) + self.checkBox_savetables.setText(_translate("MainWindow", "Save tabular results")) + self.groupBox_conc.setTitle(_translate("MainWindow", "Concentration Dependency")) + self.lineEdit_conc.setToolTip(_translate("MainWindow", "Comma-seperated list of concentrations. This has to match the number of wells in either horizontal or vertical dimension. If a well is unused, either leave blank or use "NaN" as input.
")) + self.label_conc.setText(_translate("MainWindow", "Concentrations")) + self.spinBox_num_conc.setToolTip(_translate("MainWindow", "Displays the number of wells specified above.
")) + self.label_conc_num.setText(_translate("MainWindow", "Valid concentrations")) + self.comboBox_direction.setItemText(0, _translate("MainWindow", "Horizontal")) + self.comboBox_direction.setItemText(1, _translate("MainWindow", "Vertical")) + self.label_direction.setText(_translate("MainWindow", "Direction")) + self.label_rows_columns.setText(_translate("MainWindow", "Rows")) + self.groupBox_results.setTitle(_translate("MainWindow", "Plots")) + self.menuFile.setTitle(_translate("MainWindow", "Fi&le")) + self.menuHelp.setTitle(_translate("MainWindow", "Hel&p")) + self.actionQuit.setText(_translate("MainWindow", "&Quit")) + self.actionAbout.setText(_translate("MainWindow", "&About")) + self.actionAbout_Qt.setText(_translate("MainWindow", "About &Qt")) + +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'ui/mainwindow.ui' +# +# Created by: PyQt5 UI code generator 5.5 +# +# WARNING! All changes made in this file will be lost! + +from PyQt5 import QtCore, QtGui, QtWidgets + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(4095, 4095) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth()) + MainWindow.setSizePolicy(sizePolicy) + MainWindow.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.centralWidget = QtWidgets.QWidget(MainWindow) + self.centralWidget.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.centralWidget.setObjectName("centralWidget") + self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralWidget) + self.horizontalLayout.setObjectName("horizontalLayout") + self.splitter = QtWidgets.QSplitter(self.centralWidget) + self.splitter.setOrientation(QtCore.Qt.Horizontal) + self.splitter.setOpaqueResize(False) + self.splitter.setHandleWidth(2) + self.splitter.setChildrenCollapsible(False) + self.splitter.setObjectName("splitter") + self.groupBox_experiment = QtWidgets.QGroupBox(self.splitter) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.groupBox_experiment.sizePolicy().hasHeightForWidth()) + self.groupBox_experiment.setSizePolicy(sizePolicy) + self.groupBox_experiment.setMinimumSize(QtCore.QSize(100, 300)) + self.groupBox_experiment.setSizeIncrement(QtCore.QSize(0, 0)) + self.groupBox_experiment.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.groupBox_experiment.setFlat(False) + self.groupBox_experiment.setCheckable(False) + self.groupBox_experiment.setObjectName("groupBox_experiment") + self.formLayout_3 = QtWidgets.QFormLayout(self.groupBox_experiment) + self.formLayout_3.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout_3.setObjectName("formLayout_3") + self.label_instrument = QtWidgets.QLabel(self.groupBox_experiment) + self.label_instrument.setObjectName("label_instrument") + self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_instrument) + self.comboBox_instrument = QtWidgets.QComboBox(self.groupBox_experiment) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.comboBox_instrument.sizePolicy().hasHeightForWidth()) + self.comboBox_instrument.setSizePolicy(sizePolicy) + self.comboBox_instrument.setObjectName("comboBox_instrument") + self.comboBox_instrument.addItem("") + self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.comboBox_instrument) + self.groupBox_data = QtWidgets.QGroupBox(self.groupBox_experiment) + self.groupBox_data.setEnabled(True) + self.groupBox_data.setObjectName("groupBox_data") + self.gridLayout_4 = QtWidgets.QGridLayout(self.groupBox_data) + self.gridLayout_4.setObjectName("gridLayout_4") + self.buttonBox_open_reset = QtWidgets.QDialogButtonBox(self.groupBox_data) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.buttonBox_open_reset.sizePolicy().hasHeightForWidth()) + self.buttonBox_open_reset.setSizePolicy(sizePolicy) + self.buttonBox_open_reset.setLayoutDirection(QtCore.Qt.LeftToRight) + self.buttonBox_open_reset.setOrientation(QtCore.Qt.Vertical) + self.buttonBox_open_reset.setStandardButtons(QtWidgets.QDialogButtonBox.Open|QtWidgets.QDialogButtonBox.Reset) + self.buttonBox_open_reset.setCenterButtons(False) + self.buttonBox_open_reset.setObjectName("buttonBox_open_reset") + self.gridLayout_4.addWidget(self.buttonBox_open_reset, 0, 1, 1, 1) + self.groupBox_replicates = QtWidgets.QGroupBox(self.groupBox_data) + self.groupBox_replicates.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.groupBox_replicates.setCheckable(True) + self.groupBox_replicates.setChecked(False) + self.groupBox_replicates.setObjectName("groupBox_replicates") + self.gridLayout_3 = QtWidgets.QGridLayout(self.groupBox_replicates) + self.gridLayout_3.setObjectName("gridLayout_3") + self.radioButton_rep_files = QtWidgets.QRadioButton(self.groupBox_replicates) + self.radioButton_rep_files.setEnabled(False) + self.radioButton_rep_files.setChecked(True) + self.radioButton_rep_files.setObjectName("radioButton_rep_files") + self.gridLayout_3.addWidget(self.radioButton_rep_files, 0, 0, 1, 1) + self.gridLayout_4.addWidget(self.groupBox_replicates, 2, 0, 1, 2) + self.listWidget_data = QtWidgets.QListWidget(self.groupBox_data) + self.listWidget_data.setAlternatingRowColors(True) + self.listWidget_data.setObjectName("listWidget_data") + self.gridLayout_4.addWidget(self.listWidget_data, 0, 0, 2, 1) + spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.gridLayout_4.addItem(spacerItem, 1, 1, 1, 1) + self.formLayout_3.setWidget(1, QtWidgets.QFormLayout.SpanningRole, self.groupBox_data) + self.groupBox_processing = QtWidgets.QGroupBox(self.groupBox_experiment) + self.groupBox_processing.setObjectName("groupBox_processing") + self.gridLayout = QtWidgets.QGridLayout(self.groupBox_processing) + self.gridLayout.setObjectName("gridLayout") + self.groupBox_temp = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_temp.setEnabled(True) + self.groupBox_temp.setAutoFillBackground(False) + self.groupBox_temp.setCheckable(False) + self.groupBox_temp.setObjectName("groupBox_temp") + self.formLayout = QtWidgets.QFormLayout(self.groupBox_temp) + self.formLayout.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.formLayout.setFormAlignment(QtCore.Qt.AlignHCenter|QtCore.Qt.AlignTop) + self.formLayout.setObjectName("formLayout") + self.label_tmin = QtWidgets.QLabel(self.groupBox_temp) + self.label_tmin.setObjectName("label_tmin") + self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_tmin) + self.doubleSpinBox_tmin = QtWidgets.QDoubleSpinBox(self.groupBox_temp) + self.doubleSpinBox_tmin.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.doubleSpinBox_tmin.setDecimals(1) + self.doubleSpinBox_tmin.setProperty("value", 20.0) + self.doubleSpinBox_tmin.setObjectName("doubleSpinBox_tmin") + self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_tmin) + self.label_tmax = QtWidgets.QLabel(self.groupBox_temp) + self.label_tmax.setObjectName("label_tmax") + self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_tmax) + self.doubleSpinBox_tmax = QtWidgets.QDoubleSpinBox(self.groupBox_temp) + self.doubleSpinBox_tmax.setDecimals(1) + self.doubleSpinBox_tmax.setProperty("value", 95.0) + self.doubleSpinBox_tmax.setObjectName("doubleSpinBox_tmax") + self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_tmax) + self.label_dt = QtWidgets.QLabel(self.groupBox_temp) + self.label_dt.setObjectName("label_dt") + self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_dt) + self.doubleSpinBox_dt = QtWidgets.QDoubleSpinBox(self.groupBox_temp) + self.doubleSpinBox_dt.setDecimals(1) + self.doubleSpinBox_dt.setProperty("value", 1.0) + self.doubleSpinBox_dt.setObjectName("doubleSpinBox_dt") + self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_dt) + self.gridLayout.addWidget(self.groupBox_temp, 0, 0, 1, 1) + self.groupBox_signal_threshold = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_signal_threshold.setEnabled(True) + self.groupBox_signal_threshold.setCheckable(True) + self.groupBox_signal_threshold.setChecked(False) + self.groupBox_signal_threshold.setObjectName("groupBox_signal_threshold") + self.verticalLayout = QtWidgets.QVBoxLayout(self.groupBox_signal_threshold) + self.verticalLayout.setObjectName("verticalLayout") + self.spinBox_signal_threshold = QtWidgets.QSpinBox(self.groupBox_signal_threshold) + self.spinBox_signal_threshold.setMaximum(1000000) + self.spinBox_signal_threshold.setObjectName("spinBox_signal_threshold") + self.verticalLayout.addWidget(self.spinBox_signal_threshold) + self.gridLayout.addWidget(self.groupBox_signal_threshold, 1, 0, 1, 1) + self.groupBox_cbar = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_cbar.setEnabled(True) + self.groupBox_cbar.setCheckable(True) + self.groupBox_cbar.setChecked(False) + self.groupBox_cbar.setObjectName("groupBox_cbar") + self.formLayout_4 = QtWidgets.QFormLayout(self.groupBox_cbar) + self.formLayout_4.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout_4.setObjectName("formLayout_4") + self.label_cbar_start = QtWidgets.QLabel(self.groupBox_cbar) + self.label_cbar_start.setObjectName("label_cbar_start") + self.formLayout_4.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_cbar_start) + self.doubleSpinBox_cbar_start = QtWidgets.QDoubleSpinBox(self.groupBox_cbar) + self.doubleSpinBox_cbar_start.setDecimals(1) + self.doubleSpinBox_cbar_start.setObjectName("doubleSpinBox_cbar_start") + self.formLayout_4.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_cbar_start) + self.label_cbar_end = QtWidgets.QLabel(self.groupBox_cbar) + self.label_cbar_end.setObjectName("label_cbar_end") + self.formLayout_4.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_cbar_end) + self.doubleSpinBox_cbar_end = QtWidgets.QDoubleSpinBox(self.groupBox_cbar) + self.doubleSpinBox_cbar_end.setDecimals(1) + self.doubleSpinBox_cbar_end.setObjectName("doubleSpinBox_cbar_end") + self.formLayout_4.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_cbar_end) + self.gridLayout.addWidget(self.groupBox_cbar, 1, 1, 1, 1) + self.groupBox_cutoff = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_cutoff.setEnabled(True) + self.groupBox_cutoff.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.groupBox_cutoff.setCheckable(True) + self.groupBox_cutoff.setChecked(False) + self.groupBox_cutoff.setObjectName("groupBox_cutoff") + self.formLayout_2 = QtWidgets.QFormLayout(self.groupBox_cutoff) + self.formLayout_2.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout_2.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.formLayout_2.setFormAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) + self.formLayout_2.setObjectName("formLayout_2") + self.label_cutoff_high = QtWidgets.QLabel(self.groupBox_cutoff) + self.label_cutoff_high.setObjectName("label_cutoff_high") + self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_cutoff_high) + self.doubleSpinBox_upper = QtWidgets.QDoubleSpinBox(self.groupBox_cutoff) + self.doubleSpinBox_upper.setPrefix("") + self.doubleSpinBox_upper.setDecimals(1) + self.doubleSpinBox_upper.setObjectName("doubleSpinBox_upper") + self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_upper) + self.label_cutoff_low = QtWidgets.QLabel(self.groupBox_cutoff) + self.label_cutoff_low.setObjectName("label_cutoff_low") + self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_cutoff_low) + self.doubleSpinBox_lower = QtWidgets.QDoubleSpinBox(self.groupBox_cutoff) + self.doubleSpinBox_lower.setDecimals(1) + self.doubleSpinBox_lower.setObjectName("doubleSpinBox_lower") + self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_lower) + self.gridLayout.addWidget(self.groupBox_cutoff, 0, 1, 1, 1) + self.groupBox_output = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_output.setCheckable(True) + self.groupBox_output.setChecked(False) + self.groupBox_output.setObjectName("groupBox_output") + self.gridLayout_2 = QtWidgets.QGridLayout(self.groupBox_output) + self.gridLayout_2.setObjectName("gridLayout_2") + self.checkBox_saveplots = QtWidgets.QCheckBox(self.groupBox_output) + self.checkBox_saveplots.setObjectName("checkBox_saveplots") + self.gridLayout_2.addWidget(self.checkBox_saveplots, 1, 0, 1, 1) + self.buttonBox_output = QtWidgets.QDialogButtonBox(self.groupBox_output) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.buttonBox_output.sizePolicy().hasHeightForWidth()) + self.buttonBox_output.setSizePolicy(sizePolicy) + self.buttonBox_output.setOrientation(QtCore.Qt.Vertical) + self.buttonBox_output.setStandardButtons(QtWidgets.QDialogButtonBox.Open) + self.buttonBox_output.setObjectName("buttonBox_output") + self.gridLayout_2.addWidget(self.buttonBox_output, 3, 1, 1, 1) + self.lineEdit_output = QtWidgets.QLineEdit(self.groupBox_output) + self.lineEdit_output.setObjectName("lineEdit_output") + self.gridLayout_2.addWidget(self.lineEdit_output, 3, 0, 1, 1) + self.checkBox_savetables = QtWidgets.QCheckBox(self.groupBox_output) + self.checkBox_savetables.setObjectName("checkBox_savetables") + self.gridLayout_2.addWidget(self.checkBox_savetables, 2, 0, 1, 1) + self.gridLayout.addWidget(self.groupBox_output, 3, 0, 1, 2) + self.groupBox_conc = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_conc.setMinimumSize(QtCore.QSize(0, 0)) + self.groupBox_conc.setCheckable(True) + self.groupBox_conc.setChecked(False) + self.groupBox_conc.setObjectName("groupBox_conc") + self.formLayout_5 = QtWidgets.QFormLayout(self.groupBox_conc) + self.formLayout_5.setObjectName("formLayout_5") + self.lineEdit_conc = QtWidgets.QLineEdit(self.groupBox_conc) + self.lineEdit_conc.setObjectName("lineEdit_conc") + self.formLayout_5.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.lineEdit_conc) + self.label_conc = QtWidgets.QLabel(self.groupBox_conc) + self.label_conc.setObjectName("label_conc") + self.formLayout_5.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_conc) + self.spinBox_num_conc = QtWidgets.QSpinBox(self.groupBox_conc) + self.spinBox_num_conc.setReadOnly(True) + self.spinBox_num_conc.setButtonSymbols(QtWidgets.QAbstractSpinBox.NoButtons) + self.spinBox_num_conc.setObjectName("spinBox_num_conc") + self.formLayout_5.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.spinBox_num_conc) + self.label_conc_num = QtWidgets.QLabel(self.groupBox_conc) + self.label_conc_num.setObjectName("label_conc_num") + self.formLayout_5.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.label_conc_num) + self.comboBox_direction = QtWidgets.QComboBox(self.groupBox_conc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.comboBox_direction.sizePolicy().hasHeightForWidth()) + self.comboBox_direction.setSizePolicy(sizePolicy) + self.comboBox_direction.setObjectName("comboBox_direction") + self.comboBox_direction.addItem("") + self.comboBox_direction.addItem("") + self.formLayout_5.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.comboBox_direction) + self.label_direction = QtWidgets.QLabel(self.groupBox_conc) + self.label_direction.setObjectName("label_direction") + self.formLayout_5.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_direction) + self.label_rows_columns = QtWidgets.QLabel(self.groupBox_conc) + self.label_rows_columns.setObjectName("label_rows_columns") + self.formLayout_5.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_rows_columns) + self.spinBox_rows_columns = QtWidgets.QSpinBox(self.groupBox_conc) + self.spinBox_rows_columns.setMinimum(1) + self.spinBox_rows_columns.setObjectName("spinBox_rows_columns") + self.formLayout_5.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.spinBox_rows_columns) + self.gridLayout.addWidget(self.groupBox_conc, 2, 0, 1, 2) + self.formLayout_3.setWidget(2, QtWidgets.QFormLayout.SpanningRole, self.groupBox_processing) + self.buttonBox_process = QtWidgets.QDialogButtonBox(self.groupBox_experiment) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.buttonBox_process.sizePolicy().hasHeightForWidth()) + self.buttonBox_process.setSizePolicy(sizePolicy) + self.buttonBox_process.setMinimumSize(QtCore.QSize(0, 0)) + self.buttonBox_process.setStandardButtons(QtWidgets.QDialogButtonBox.NoButton) + self.buttonBox_process.setObjectName("buttonBox_process") + self.formLayout_3.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.buttonBox_process) + self.groupBox_results = QtWidgets.QGroupBox(self.splitter) + self.groupBox_results.setEnabled(True) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(6) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.groupBox_results.sizePolicy().hasHeightForWidth()) + self.groupBox_results.setSizePolicy(sizePolicy) + self.groupBox_results.setSizeIncrement(QtCore.QSize(0, 0)) + self.groupBox_results.setObjectName("groupBox_results") + self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.groupBox_results) + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.tabWidget = QtWidgets.QTabWidget(self.groupBox_results) + self.tabWidget.setEnabled(True) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tabWidget.sizePolicy().hasHeightForWidth()) + self.tabWidget.setSizePolicy(sizePolicy) + self.tabWidget.setMinimumSize(QtCore.QSize(300, 300)) + self.tabWidget.setSizeIncrement(QtCore.QSize(0, 0)) + self.tabWidget.setObjectName("tabWidget") + self.horizontalLayout_2.addWidget(self.tabWidget) + self.horizontalLayout.addWidget(self.splitter) + MainWindow.setCentralWidget(self.centralWidget) + self.menuBar = QtWidgets.QMenuBar(MainWindow) + self.menuBar.setGeometry(QtCore.QRect(0, 0, 4095, 30)) + self.menuBar.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.menuBar.setObjectName("menuBar") + self.menuFile = QtWidgets.QMenu(self.menuBar) + self.menuFile.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.menuFile.setObjectName("menuFile") + self.menuHelp = QtWidgets.QMenu(self.menuBar) + self.menuHelp.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.menuHelp.setObjectName("menuHelp") + MainWindow.setMenuBar(self.menuBar) + self.statusBar = QtWidgets.QStatusBar(MainWindow) + self.statusBar.setObjectName("statusBar") + MainWindow.setStatusBar(self.statusBar) + self.actionQuit = QtWidgets.QAction(MainWindow) + self.actionQuit.setObjectName("actionQuit") + self.actionAbout = QtWidgets.QAction(MainWindow) + self.actionAbout.setObjectName("actionAbout") + self.actionAbout_Qt = QtWidgets.QAction(MainWindow) + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap(":/qtlogo.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.actionAbout_Qt.setIcon(icon) + self.actionAbout_Qt.setObjectName("actionAbout_Qt") + self.menuFile.addAction(self.actionQuit) + self.menuHelp.addAction(self.actionAbout) + self.menuHelp.addAction(self.actionAbout_Qt) + self.menuBar.addAction(self.menuFile.menuAction()) + self.menuBar.addAction(self.menuHelp.menuAction()) + self.label_instrument.setBuddy(self.comboBox_instrument) + self.label_tmin.setBuddy(self.doubleSpinBox_tmin) + self.label_tmax.setBuddy(self.doubleSpinBox_tmax) + self.label_dt.setBuddy(self.doubleSpinBox_dt) + self.label_cbar_start.setBuddy(self.doubleSpinBox_cbar_start) + self.label_cbar_end.setBuddy(self.doubleSpinBox_cbar_end) + self.label_cutoff_high.setBuddy(self.doubleSpinBox_upper) + self.label_cutoff_low.setBuddy(self.doubleSpinBox_lower) + + self.retranslateUi(MainWindow) + self.tabWidget.setCurrentIndex(-1) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "PyDSF")) + self.groupBox_experiment.setTitle(_translate("MainWindow", "Experimental Setup")) + self.label_instrument.setText(_translate("MainWindow", "I&nstrument")) + self.comboBox_instrument.setItemText(0, _translate("MainWindow", "Analytik Jena qTOWER 2.0/2.2")) + self.groupBox_data.setToolTip(_translate("MainWindow", "Add data files to the experiment. If multiple files are loaded, they are treated as replicates.
")) + self.groupBox_data.setTitle(_translate("MainWindow", "Data File")) + self.groupBox_replicates.setTitle(_translate("MainWindow", "Replicates")) + self.radioButton_rep_files.setText(_translate("MainWindow", "Files")) + self.groupBox_processing.setTitle(_translate("MainWindow", "Processing Options")) + self.groupBox_temp.setToolTip(_translate("MainWindow", "Temperature range of the data points. Only applies, if the data file does not contain any temperature information.
")) + self.groupBox_temp.setTitle(_translate("MainWindow", "Temperature settings")) + self.label_tmin.setText(_translate("MainWindow", "Tmin
")) + self.doubleSpinBox_tmin.setSuffix(_translate("MainWindow", " °C")) + self.label_tmax.setText(_translate("MainWindow", "Tmax
")) + self.doubleSpinBox_tmax.setSuffix(_translate("MainWindow", " °C")) + self.label_dt.setText(_translate("MainWindow", "ΔT
")) + self.doubleSpinBox_dt.setSuffix(_translate("MainWindow", " °C")) + self.groupBox_signal_threshold.setToolTip(_translate("MainWindow", "If the signal exceeds this threshold, the coresponding well is assumed to be denatured.
")) + self.groupBox_signal_threshold.setTitle(_translate("MainWindow", "Signal &Threshold")) + self.groupBox_cbar.setToolTip(_translate("MainWindow", "Defines the range of the colorbar used for the Tm heatmap.
")) + self.groupBox_cbar.setTitle(_translate("MainWindow", "&Colorbar")) + self.label_cbar_start.setText(_translate("MainWindow", "S&tart")) + self.doubleSpinBox_cbar_start.setSuffix(_translate("MainWindow", " °C")) + self.label_cbar_end.setText(_translate("MainWindow", "En&d")) + self.doubleSpinBox_cbar_end.setSuffix(_translate("MainWindow", " °C")) + self.groupBox_cutoff.setToolTip(_translate("MainWindow", "Only Tm values within this limit are considered valid.
")) + self.groupBox_cutoff.setTitle(_translate("MainWindow", "&Cutoff")) + self.label_cutoff_high.setText(_translate("MainWindow", "&Upper")) + self.doubleSpinBox_upper.setSuffix(_translate("MainWindow", " °C")) + self.label_cutoff_low.setText(_translate("MainWindow", "Lower")) + self.doubleSpinBox_lower.setSuffix(_translate("MainWindow", " °C")) + self.groupBox_output.setTitle(_translate("MainWindow", "Sa&ve processing results")) + self.checkBox_saveplots.setText(_translate("MainWindow", "Save plots")) + self.lineEdit_output.setToolTip(_translate("MainWindow", "Output results to this path")) + self.checkBox_savetables.setText(_translate("MainWindow", "Save tabular results")) + self.groupBox_conc.setTitle(_translate("MainWindow", "Concentration Dependency")) + self.lineEdit_conc.setToolTip(_translate("MainWindow", "Comma-seperated list of concentrations. This has to match the number of wells in either horizontal or vertical dimension. If a well is unused, either leave blank or use "NaN" as input.
")) + self.label_conc.setText(_translate("MainWindow", "Concentrations")) + self.spinBox_num_conc.setToolTip(_translate("MainWindow", "Displays the number of wells specified above.
")) + self.label_conc_num.setText(_translate("MainWindow", "Valid concentrations")) + self.comboBox_direction.setItemText(0, _translate("MainWindow", "Horizontal")) + self.comboBox_direction.setItemText(1, _translate("MainWindow", "Vertical")) + self.label_direction.setText(_translate("MainWindow", "Direction")) + self.label_rows_columns.setText(_translate("MainWindow", "Rows")) + self.groupBox_results.setTitle(_translate("MainWindow", "Plots")) + self.menuFile.setTitle(_translate("MainWindow", "Fi&le")) + self.menuHelp.setTitle(_translate("MainWindow", "Hel&p")) + self.actionQuit.setText(_translate("MainWindow", "&Quit")) + self.actionAbout.setText(_translate("MainWindow", "&About")) + self.actionAbout_Qt.setText(_translate("MainWindow", "About &Qt")) + +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'ui/mainwindow.ui' +# +# Created by: PyQt5 UI code generator 5.5 +# +# WARNING! All changes made in this file will be lost! + +from PyQt5 import QtCore, QtGui, QtWidgets + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(4095, 4095) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth()) + MainWindow.setSizePolicy(sizePolicy) + MainWindow.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.centralWidget = QtWidgets.QWidget(MainWindow) + self.centralWidget.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.centralWidget.setObjectName("centralWidget") + self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralWidget) + self.horizontalLayout.setObjectName("horizontalLayout") + self.splitter = QtWidgets.QSplitter(self.centralWidget) + self.splitter.setOrientation(QtCore.Qt.Horizontal) + self.splitter.setOpaqueResize(False) + self.splitter.setHandleWidth(2) + self.splitter.setChildrenCollapsible(False) + self.splitter.setObjectName("splitter") + self.groupBox_experiment = QtWidgets.QGroupBox(self.splitter) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.groupBox_experiment.sizePolicy().hasHeightForWidth()) + self.groupBox_experiment.setSizePolicy(sizePolicy) + self.groupBox_experiment.setMinimumSize(QtCore.QSize(100, 300)) + self.groupBox_experiment.setSizeIncrement(QtCore.QSize(0, 0)) + self.groupBox_experiment.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.groupBox_experiment.setFlat(False) + self.groupBox_experiment.setCheckable(False) + self.groupBox_experiment.setObjectName("groupBox_experiment") + self.formLayout_3 = QtWidgets.QFormLayout(self.groupBox_experiment) + self.formLayout_3.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout_3.setObjectName("formLayout_3") + self.label_instrument = QtWidgets.QLabel(self.groupBox_experiment) + self.label_instrument.setObjectName("label_instrument") + self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_instrument) + self.comboBox_instrument = QtWidgets.QComboBox(self.groupBox_experiment) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.comboBox_instrument.sizePolicy().hasHeightForWidth()) + self.comboBox_instrument.setSizePolicy(sizePolicy) + self.comboBox_instrument.setObjectName("comboBox_instrument") + self.comboBox_instrument.addItem("") + self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.comboBox_instrument) + self.groupBox_data = QtWidgets.QGroupBox(self.groupBox_experiment) + self.groupBox_data.setEnabled(True) + self.groupBox_data.setObjectName("groupBox_data") + self.gridLayout_4 = QtWidgets.QGridLayout(self.groupBox_data) + self.gridLayout_4.setObjectName("gridLayout_4") + self.buttonBox_open_reset = QtWidgets.QDialogButtonBox(self.groupBox_data) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.buttonBox_open_reset.sizePolicy().hasHeightForWidth()) + self.buttonBox_open_reset.setSizePolicy(sizePolicy) + self.buttonBox_open_reset.setLayoutDirection(QtCore.Qt.LeftToRight) + self.buttonBox_open_reset.setOrientation(QtCore.Qt.Vertical) + self.buttonBox_open_reset.setStandardButtons(QtWidgets.QDialogButtonBox.Open|QtWidgets.QDialogButtonBox.Reset) + self.buttonBox_open_reset.setCenterButtons(False) + self.buttonBox_open_reset.setObjectName("buttonBox_open_reset") + self.gridLayout_4.addWidget(self.buttonBox_open_reset, 0, 1, 1, 1) + self.groupBox_replicates = QtWidgets.QGroupBox(self.groupBox_data) + self.groupBox_replicates.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.groupBox_replicates.setCheckable(True) + self.groupBox_replicates.setChecked(False) + self.groupBox_replicates.setObjectName("groupBox_replicates") + self.gridLayout_3 = QtWidgets.QGridLayout(self.groupBox_replicates) + self.gridLayout_3.setObjectName("gridLayout_3") + self.radioButton_rep_files = QtWidgets.QRadioButton(self.groupBox_replicates) + self.radioButton_rep_files.setEnabled(False) + self.radioButton_rep_files.setChecked(True) + self.radioButton_rep_files.setObjectName("radioButton_rep_files") + self.gridLayout_3.addWidget(self.radioButton_rep_files, 0, 0, 1, 1) + self.gridLayout_4.addWidget(self.groupBox_replicates, 2, 0, 1, 2) + self.listWidget_data = QtWidgets.QListWidget(self.groupBox_data) + self.listWidget_data.setAlternatingRowColors(True) + self.listWidget_data.setObjectName("listWidget_data") + self.gridLayout_4.addWidget(self.listWidget_data, 0, 0, 2, 1) + spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.gridLayout_4.addItem(spacerItem, 1, 1, 1, 1) + self.formLayout_3.setWidget(1, QtWidgets.QFormLayout.SpanningRole, self.groupBox_data) + self.groupBox_processing = QtWidgets.QGroupBox(self.groupBox_experiment) + self.groupBox_processing.setObjectName("groupBox_processing") + self.gridLayout = QtWidgets.QGridLayout(self.groupBox_processing) + self.gridLayout.setObjectName("gridLayout") + self.groupBox_temp = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_temp.setEnabled(True) + self.groupBox_temp.setAutoFillBackground(False) + self.groupBox_temp.setCheckable(False) + self.groupBox_temp.setObjectName("groupBox_temp") + self.formLayout = QtWidgets.QFormLayout(self.groupBox_temp) + self.formLayout.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.formLayout.setFormAlignment(QtCore.Qt.AlignHCenter|QtCore.Qt.AlignTop) + self.formLayout.setObjectName("formLayout") + self.label_tmin = QtWidgets.QLabel(self.groupBox_temp) + self.label_tmin.setObjectName("label_tmin") + self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_tmin) + self.doubleSpinBox_tmin = QtWidgets.QDoubleSpinBox(self.groupBox_temp) + self.doubleSpinBox_tmin.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.doubleSpinBox_tmin.setDecimals(1) + self.doubleSpinBox_tmin.setProperty("value", 20.0) + self.doubleSpinBox_tmin.setObjectName("doubleSpinBox_tmin") + self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_tmin) + self.label_tmax = QtWidgets.QLabel(self.groupBox_temp) + self.label_tmax.setObjectName("label_tmax") + self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_tmax) + self.doubleSpinBox_tmax = QtWidgets.QDoubleSpinBox(self.groupBox_temp) + self.doubleSpinBox_tmax.setDecimals(1) + self.doubleSpinBox_tmax.setProperty("value", 95.0) + self.doubleSpinBox_tmax.setObjectName("doubleSpinBox_tmax") + self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_tmax) + self.label_dt = QtWidgets.QLabel(self.groupBox_temp) + self.label_dt.setObjectName("label_dt") + self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_dt) + self.doubleSpinBox_dt = QtWidgets.QDoubleSpinBox(self.groupBox_temp) + self.doubleSpinBox_dt.setDecimals(1) + self.doubleSpinBox_dt.setProperty("value", 1.0) + self.doubleSpinBox_dt.setObjectName("doubleSpinBox_dt") + self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_dt) + self.gridLayout.addWidget(self.groupBox_temp, 0, 0, 1, 1) + self.groupBox_signal_threshold = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_signal_threshold.setEnabled(True) + self.groupBox_signal_threshold.setCheckable(True) + self.groupBox_signal_threshold.setChecked(False) + self.groupBox_signal_threshold.setObjectName("groupBox_signal_threshold") + self.verticalLayout = QtWidgets.QVBoxLayout(self.groupBox_signal_threshold) + self.verticalLayout.setObjectName("verticalLayout") + self.spinBox_signal_threshold = QtWidgets.QSpinBox(self.groupBox_signal_threshold) + self.spinBox_signal_threshold.setMaximum(1000000) + self.spinBox_signal_threshold.setObjectName("spinBox_signal_threshold") + self.verticalLayout.addWidget(self.spinBox_signal_threshold) + self.gridLayout.addWidget(self.groupBox_signal_threshold, 1, 0, 1, 1) + self.groupBox_cbar = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_cbar.setEnabled(True) + self.groupBox_cbar.setCheckable(True) + self.groupBox_cbar.setChecked(False) + self.groupBox_cbar.setObjectName("groupBox_cbar") + self.formLayout_4 = QtWidgets.QFormLayout(self.groupBox_cbar) + self.formLayout_4.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout_4.setObjectName("formLayout_4") + self.label_cbar_start = QtWidgets.QLabel(self.groupBox_cbar) + self.label_cbar_start.setObjectName("label_cbar_start") + self.formLayout_4.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_cbar_start) + self.doubleSpinBox_cbar_start = QtWidgets.QDoubleSpinBox(self.groupBox_cbar) + self.doubleSpinBox_cbar_start.setDecimals(1) + self.doubleSpinBox_cbar_start.setObjectName("doubleSpinBox_cbar_start") + self.formLayout_4.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_cbar_start) + self.label_cbar_end = QtWidgets.QLabel(self.groupBox_cbar) + self.label_cbar_end.setObjectName("label_cbar_end") + self.formLayout_4.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_cbar_end) + self.doubleSpinBox_cbar_end = QtWidgets.QDoubleSpinBox(self.groupBox_cbar) + self.doubleSpinBox_cbar_end.setDecimals(1) + self.doubleSpinBox_cbar_end.setObjectName("doubleSpinBox_cbar_end") + self.formLayout_4.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_cbar_end) + self.gridLayout.addWidget(self.groupBox_cbar, 1, 1, 1, 1) + self.groupBox_cutoff = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_cutoff.setEnabled(True) + self.groupBox_cutoff.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.groupBox_cutoff.setCheckable(True) + self.groupBox_cutoff.setChecked(False) + self.groupBox_cutoff.setObjectName("groupBox_cutoff") + self.formLayout_2 = QtWidgets.QFormLayout(self.groupBox_cutoff) + self.formLayout_2.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout_2.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.formLayout_2.setFormAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) + self.formLayout_2.setObjectName("formLayout_2") + self.label_cutoff_high = QtWidgets.QLabel(self.groupBox_cutoff) + self.label_cutoff_high.setObjectName("label_cutoff_high") + self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_cutoff_high) + self.doubleSpinBox_upper = QtWidgets.QDoubleSpinBox(self.groupBox_cutoff) + self.doubleSpinBox_upper.setPrefix("") + self.doubleSpinBox_upper.setDecimals(1) + self.doubleSpinBox_upper.setObjectName("doubleSpinBox_upper") + self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_upper) + self.label_cutoff_low = QtWidgets.QLabel(self.groupBox_cutoff) + self.label_cutoff_low.setObjectName("label_cutoff_low") + self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_cutoff_low) + self.doubleSpinBox_lower = QtWidgets.QDoubleSpinBox(self.groupBox_cutoff) + self.doubleSpinBox_lower.setDecimals(1) + self.doubleSpinBox_lower.setObjectName("doubleSpinBox_lower") + self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_lower) + self.gridLayout.addWidget(self.groupBox_cutoff, 0, 1, 1, 1) + self.groupBox_output = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_output.setCheckable(True) + self.groupBox_output.setChecked(False) + self.groupBox_output.setObjectName("groupBox_output") + self.gridLayout_2 = QtWidgets.QGridLayout(self.groupBox_output) + self.gridLayout_2.setObjectName("gridLayout_2") + self.checkBox_saveplots = QtWidgets.QCheckBox(self.groupBox_output) + self.checkBox_saveplots.setObjectName("checkBox_saveplots") + self.gridLayout_2.addWidget(self.checkBox_saveplots, 1, 0, 1, 1) + self.buttonBox_output = QtWidgets.QDialogButtonBox(self.groupBox_output) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.buttonBox_output.sizePolicy().hasHeightForWidth()) + self.buttonBox_output.setSizePolicy(sizePolicy) + self.buttonBox_output.setOrientation(QtCore.Qt.Vertical) + self.buttonBox_output.setStandardButtons(QtWidgets.QDialogButtonBox.Open) + self.buttonBox_output.setObjectName("buttonBox_output") + self.gridLayout_2.addWidget(self.buttonBox_output, 3, 1, 1, 1) + self.lineEdit_output = QtWidgets.QLineEdit(self.groupBox_output) + self.lineEdit_output.setObjectName("lineEdit_output") + self.gridLayout_2.addWidget(self.lineEdit_output, 3, 0, 1, 1) + self.checkBox_savetables = QtWidgets.QCheckBox(self.groupBox_output) + self.checkBox_savetables.setObjectName("checkBox_savetables") + self.gridLayout_2.addWidget(self.checkBox_savetables, 2, 0, 1, 1) + self.gridLayout.addWidget(self.groupBox_output, 3, 0, 1, 2) + self.groupBox_conc = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_conc.setMinimumSize(QtCore.QSize(0, 0)) + self.groupBox_conc.setCheckable(True) + self.groupBox_conc.setChecked(False) + self.groupBox_conc.setObjectName("groupBox_conc") + self.formLayout_5 = QtWidgets.QFormLayout(self.groupBox_conc) + self.formLayout_5.setObjectName("formLayout_5") + self.label_direction = QtWidgets.QLabel(self.groupBox_conc) + self.label_direction.setObjectName("label_direction") + self.formLayout_5.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_direction) + self.comboBox_direction = QtWidgets.QComboBox(self.groupBox_conc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.comboBox_direction.sizePolicy().hasHeightForWidth()) + self.comboBox_direction.setSizePolicy(sizePolicy) + self.comboBox_direction.setObjectName("comboBox_direction") + self.comboBox_direction.addItem("") + self.comboBox_direction.addItem("") + self.formLayout_5.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.comboBox_direction) + self.label_conc = QtWidgets.QLabel(self.groupBox_conc) + self.label_conc.setObjectName("label_conc") + self.formLayout_5.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_conc) + self.lineEdit_conc = QtWidgets.QLineEdit(self.groupBox_conc) + self.lineEdit_conc.setObjectName("lineEdit_conc") + self.formLayout_5.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.lineEdit_conc) + self.label_conc_num = QtWidgets.QLabel(self.groupBox_conc) + self.label_conc_num.setObjectName("label_conc_num") + self.formLayout_5.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_conc_num) + self.spinBox_num_conc = QtWidgets.QSpinBox(self.groupBox_conc) + self.spinBox_num_conc.setReadOnly(True) + self.spinBox_num_conc.setButtonSymbols(QtWidgets.QAbstractSpinBox.NoButtons) + self.spinBox_num_conc.setObjectName("spinBox_num_conc") + self.formLayout_5.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.spinBox_num_conc) + self.gridLayout.addWidget(self.groupBox_conc, 2, 0, 1, 2) + self.formLayout_3.setWidget(2, QtWidgets.QFormLayout.SpanningRole, self.groupBox_processing) + self.buttonBox_process = QtWidgets.QDialogButtonBox(self.groupBox_experiment) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.buttonBox_process.sizePolicy().hasHeightForWidth()) + self.buttonBox_process.setSizePolicy(sizePolicy) + self.buttonBox_process.setMinimumSize(QtCore.QSize(0, 0)) + self.buttonBox_process.setStandardButtons(QtWidgets.QDialogButtonBox.NoButton) + self.buttonBox_process.setObjectName("buttonBox_process") + self.formLayout_3.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.buttonBox_process) + self.groupBox_results = QtWidgets.QGroupBox(self.splitter) + self.groupBox_results.setEnabled(True) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(6) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.groupBox_results.sizePolicy().hasHeightForWidth()) + self.groupBox_results.setSizePolicy(sizePolicy) + self.groupBox_results.setSizeIncrement(QtCore.QSize(0, 0)) + self.groupBox_results.setObjectName("groupBox_results") + self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.groupBox_results) + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.tabWidget = QtWidgets.QTabWidget(self.groupBox_results) + self.tabWidget.setEnabled(True) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tabWidget.sizePolicy().hasHeightForWidth()) + self.tabWidget.setSizePolicy(sizePolicy) + self.tabWidget.setMinimumSize(QtCore.QSize(300, 300)) + self.tabWidget.setSizeIncrement(QtCore.QSize(0, 0)) + self.tabWidget.setObjectName("tabWidget") + self.horizontalLayout_2.addWidget(self.tabWidget) + self.horizontalLayout.addWidget(self.splitter) + MainWindow.setCentralWidget(self.centralWidget) + self.menuBar = QtWidgets.QMenuBar(MainWindow) + self.menuBar.setGeometry(QtCore.QRect(0, 0, 4095, 30)) + self.menuBar.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.menuBar.setObjectName("menuBar") + self.menuFile = QtWidgets.QMenu(self.menuBar) + self.menuFile.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.menuFile.setObjectName("menuFile") + self.menuHelp = QtWidgets.QMenu(self.menuBar) + self.menuHelp.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.menuHelp.setObjectName("menuHelp") + MainWindow.setMenuBar(self.menuBar) + self.statusBar = QtWidgets.QStatusBar(MainWindow) + self.statusBar.setObjectName("statusBar") + MainWindow.setStatusBar(self.statusBar) + self.actionQuit = QtWidgets.QAction(MainWindow) + self.actionQuit.setObjectName("actionQuit") + self.actionAbout = QtWidgets.QAction(MainWindow) + self.actionAbout.setObjectName("actionAbout") + self.actionAbout_Qt = QtWidgets.QAction(MainWindow) + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap(":/qtlogo.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.actionAbout_Qt.setIcon(icon) + self.actionAbout_Qt.setObjectName("actionAbout_Qt") + self.menuFile.addAction(self.actionQuit) + self.menuHelp.addAction(self.actionAbout) + self.menuHelp.addAction(self.actionAbout_Qt) + self.menuBar.addAction(self.menuFile.menuAction()) + self.menuBar.addAction(self.menuHelp.menuAction()) + self.label_instrument.setBuddy(self.comboBox_instrument) + self.label_tmin.setBuddy(self.doubleSpinBox_tmin) + self.label_tmax.setBuddy(self.doubleSpinBox_tmax) + self.label_dt.setBuddy(self.doubleSpinBox_dt) + self.label_cbar_start.setBuddy(self.doubleSpinBox_cbar_start) + self.label_cbar_end.setBuddy(self.doubleSpinBox_cbar_end) + self.label_cutoff_high.setBuddy(self.doubleSpinBox_upper) + self.label_cutoff_low.setBuddy(self.doubleSpinBox_lower) + + self.retranslateUi(MainWindow) + self.tabWidget.setCurrentIndex(-1) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "PyDSF")) + self.groupBox_experiment.setTitle(_translate("MainWindow", "Experimental Setup")) + self.label_instrument.setText(_translate("MainWindow", "I&nstrument")) + self.comboBox_instrument.setItemText(0, _translate("MainWindow", "Analytik Jena qTOWER 2.0/2.2")) + self.groupBox_data.setToolTip(_translate("MainWindow", "Add data files to the experiment. If multiple files are loaded, they are treated as replicates.
")) + self.groupBox_data.setTitle(_translate("MainWindow", "Data File")) + self.groupBox_replicates.setTitle(_translate("MainWindow", "Replicates")) + self.radioButton_rep_files.setText(_translate("MainWindow", "Files")) + self.groupBox_processing.setTitle(_translate("MainWindow", "Processing Options")) + self.groupBox_temp.setToolTip(_translate("MainWindow", "Temperature range of the data points. Only applies, if the data file does not contain any temperature information.
")) + self.groupBox_temp.setTitle(_translate("MainWindow", "Temperature settings")) + self.label_tmin.setText(_translate("MainWindow", "Tmin
")) + self.doubleSpinBox_tmin.setSuffix(_translate("MainWindow", " °C")) + self.label_tmax.setText(_translate("MainWindow", "Tmax
")) + self.doubleSpinBox_tmax.setSuffix(_translate("MainWindow", " °C")) + self.label_dt.setText(_translate("MainWindow", "ΔT
")) + self.doubleSpinBox_dt.setSuffix(_translate("MainWindow", " °C")) + self.groupBox_signal_threshold.setToolTip(_translate("MainWindow", "If the signal exceeds this threshold, the coresponding well is assumed to be denatured.
")) + self.groupBox_signal_threshold.setTitle(_translate("MainWindow", "Signal &Threshold")) + self.groupBox_cbar.setToolTip(_translate("MainWindow", "Defines the range of the colorbar used for the Tm heatmap.
")) + self.groupBox_cbar.setTitle(_translate("MainWindow", "&Colorbar")) + self.label_cbar_start.setText(_translate("MainWindow", "S&tart")) + self.doubleSpinBox_cbar_start.setSuffix(_translate("MainWindow", " °C")) + self.label_cbar_end.setText(_translate("MainWindow", "En&d")) + self.doubleSpinBox_cbar_end.setSuffix(_translate("MainWindow", " °C")) + self.groupBox_cutoff.setToolTip(_translate("MainWindow", "Only Tm values within this limit are considered valid.
")) + self.groupBox_cutoff.setTitle(_translate("MainWindow", "&Cutoff")) + self.label_cutoff_high.setText(_translate("MainWindow", "&Upper")) + self.doubleSpinBox_upper.setSuffix(_translate("MainWindow", " °C")) + self.label_cutoff_low.setText(_translate("MainWindow", "Lower")) + self.doubleSpinBox_lower.setSuffix(_translate("MainWindow", " °C")) + self.groupBox_output.setTitle(_translate("MainWindow", "Sa&ve processing results")) + self.checkBox_saveplots.setText(_translate("MainWindow", "Save plots")) + self.lineEdit_output.setToolTip(_translate("MainWindow", "Output results to this path")) + self.checkBox_savetables.setText(_translate("MainWindow", "Save tabular results")) + self.groupBox_conc.setTitle(_translate("MainWindow", "Concentration Dependency")) + self.label_direction.setText(_translate("MainWindow", "Direction")) + self.comboBox_direction.setItemText(0, _translate("MainWindow", "Horizontal")) + self.comboBox_direction.setItemText(1, _translate("MainWindow", "Vertical")) + self.label_conc.setText(_translate("MainWindow", "Concentrations")) + self.lineEdit_conc.setToolTip(_translate("MainWindow", "Comma-seperated list of concentrations. This has to match the number of wells in either horizontal or vertical dimension. If a well is unused, either leave blank or use "NaN" as input.
")) + self.label_conc_num.setText(_translate("MainWindow", "Valid concentrations")) + self.spinBox_num_conc.setToolTip(_translate("MainWindow", "Displays the number of wells specified above.
")) + self.groupBox_results.setTitle(_translate("MainWindow", "Plots")) + self.menuFile.setTitle(_translate("MainWindow", "Fi&le")) + self.menuHelp.setTitle(_translate("MainWindow", "Hel&p")) + self.actionQuit.setText(_translate("MainWindow", "&Quit")) + self.actionAbout.setText(_translate("MainWindow", "&About")) + self.actionAbout_Qt.setText(_translate("MainWindow", "About &Qt")) + +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'ui/mainwindow.ui' +# +# Created by: PyQt5 UI code generator 5.5 +# +# WARNING! All changes made in this file will be lost! + +from PyQt5 import QtCore, QtGui, QtWidgets + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(4095, 4095) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth()) + MainWindow.setSizePolicy(sizePolicy) + MainWindow.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.centralWidget = QtWidgets.QWidget(MainWindow) + self.centralWidget.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.centralWidget.setObjectName("centralWidget") + self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralWidget) + self.horizontalLayout.setObjectName("horizontalLayout") + self.splitter = QtWidgets.QSplitter(self.centralWidget) + self.splitter.setOrientation(QtCore.Qt.Horizontal) + self.splitter.setOpaqueResize(False) + self.splitter.setHandleWidth(2) + self.splitter.setChildrenCollapsible(False) + self.splitter.setObjectName("splitter") + self.groupBox_experiment = QtWidgets.QGroupBox(self.splitter) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.groupBox_experiment.sizePolicy().hasHeightForWidth()) + self.groupBox_experiment.setSizePolicy(sizePolicy) + self.groupBox_experiment.setMinimumSize(QtCore.QSize(100, 300)) + self.groupBox_experiment.setSizeIncrement(QtCore.QSize(0, 0)) + self.groupBox_experiment.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.groupBox_experiment.setFlat(False) + self.groupBox_experiment.setCheckable(False) + self.groupBox_experiment.setObjectName("groupBox_experiment") + self.formLayout_3 = QtWidgets.QFormLayout(self.groupBox_experiment) + self.formLayout_3.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout_3.setObjectName("formLayout_3") + self.label_instrument = QtWidgets.QLabel(self.groupBox_experiment) + self.label_instrument.setObjectName("label_instrument") + self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_instrument) + self.comboBox_instrument = QtWidgets.QComboBox(self.groupBox_experiment) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.comboBox_instrument.sizePolicy().hasHeightForWidth()) + self.comboBox_instrument.setSizePolicy(sizePolicy) + self.comboBox_instrument.setObjectName("comboBox_instrument") + self.comboBox_instrument.addItem("") + self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.comboBox_instrument) + self.groupBox_data = QtWidgets.QGroupBox(self.groupBox_experiment) + self.groupBox_data.setEnabled(True) + self.groupBox_data.setObjectName("groupBox_data") + self.gridLayout_4 = QtWidgets.QGridLayout(self.groupBox_data) + self.gridLayout_4.setObjectName("gridLayout_4") + self.buttonBox_open_reset = QtWidgets.QDialogButtonBox(self.groupBox_data) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.buttonBox_open_reset.sizePolicy().hasHeightForWidth()) + self.buttonBox_open_reset.setSizePolicy(sizePolicy) + self.buttonBox_open_reset.setLayoutDirection(QtCore.Qt.LeftToRight) + self.buttonBox_open_reset.setOrientation(QtCore.Qt.Vertical) + self.buttonBox_open_reset.setStandardButtons(QtWidgets.QDialogButtonBox.Open|QtWidgets.QDialogButtonBox.Reset) + self.buttonBox_open_reset.setCenterButtons(False) + self.buttonBox_open_reset.setObjectName("buttonBox_open_reset") + self.gridLayout_4.addWidget(self.buttonBox_open_reset, 0, 1, 1, 1) + self.groupBox_replicates = QtWidgets.QGroupBox(self.groupBox_data) + self.groupBox_replicates.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.groupBox_replicates.setCheckable(True) + self.groupBox_replicates.setChecked(False) + self.groupBox_replicates.setObjectName("groupBox_replicates") + self.gridLayout_3 = QtWidgets.QGridLayout(self.groupBox_replicates) + self.gridLayout_3.setObjectName("gridLayout_3") + self.radioButton_rep_files = QtWidgets.QRadioButton(self.groupBox_replicates) + self.radioButton_rep_files.setEnabled(False) + self.radioButton_rep_files.setChecked(True) + self.radioButton_rep_files.setObjectName("radioButton_rep_files") + self.gridLayout_3.addWidget(self.radioButton_rep_files, 0, 0, 1, 1) + self.gridLayout_4.addWidget(self.groupBox_replicates, 2, 0, 1, 2) + self.listWidget_data = QtWidgets.QListWidget(self.groupBox_data) + self.listWidget_data.setAlternatingRowColors(True) + self.listWidget_data.setObjectName("listWidget_data") + self.gridLayout_4.addWidget(self.listWidget_data, 0, 0, 2, 1) + spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.gridLayout_4.addItem(spacerItem, 1, 1, 1, 1) + self.formLayout_3.setWidget(1, QtWidgets.QFormLayout.SpanningRole, self.groupBox_data) + self.groupBox_processing = QtWidgets.QGroupBox(self.groupBox_experiment) + self.groupBox_processing.setObjectName("groupBox_processing") + self.gridLayout = QtWidgets.QGridLayout(self.groupBox_processing) + self.gridLayout.setObjectName("gridLayout") + self.groupBox_temp = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_temp.setEnabled(True) + self.groupBox_temp.setAutoFillBackground(False) + self.groupBox_temp.setCheckable(False) + self.groupBox_temp.setObjectName("groupBox_temp") + self.formLayout = QtWidgets.QFormLayout(self.groupBox_temp) + self.formLayout.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.formLayout.setFormAlignment(QtCore.Qt.AlignHCenter|QtCore.Qt.AlignTop) + self.formLayout.setObjectName("formLayout") + self.label_tmin = QtWidgets.QLabel(self.groupBox_temp) + self.label_tmin.setObjectName("label_tmin") + self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_tmin) + self.doubleSpinBox_tmin = QtWidgets.QDoubleSpinBox(self.groupBox_temp) + self.doubleSpinBox_tmin.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.doubleSpinBox_tmin.setDecimals(1) + self.doubleSpinBox_tmin.setProperty("value", 20.0) + self.doubleSpinBox_tmin.setObjectName("doubleSpinBox_tmin") + self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_tmin) + self.label_tmax = QtWidgets.QLabel(self.groupBox_temp) + self.label_tmax.setObjectName("label_tmax") + self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_tmax) + self.doubleSpinBox_tmax = QtWidgets.QDoubleSpinBox(self.groupBox_temp) + self.doubleSpinBox_tmax.setDecimals(1) + self.doubleSpinBox_tmax.setProperty("value", 95.0) + self.doubleSpinBox_tmax.setObjectName("doubleSpinBox_tmax") + self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_tmax) + self.label_dt = QtWidgets.QLabel(self.groupBox_temp) + self.label_dt.setObjectName("label_dt") + self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_dt) + self.doubleSpinBox_dt = QtWidgets.QDoubleSpinBox(self.groupBox_temp) + self.doubleSpinBox_dt.setDecimals(1) + self.doubleSpinBox_dt.setProperty("value", 1.0) + self.doubleSpinBox_dt.setObjectName("doubleSpinBox_dt") + self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_dt) + self.gridLayout.addWidget(self.groupBox_temp, 0, 0, 1, 1) + self.groupBox_signal_threshold = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_signal_threshold.setEnabled(True) + self.groupBox_signal_threshold.setCheckable(True) + self.groupBox_signal_threshold.setChecked(False) + self.groupBox_signal_threshold.setObjectName("groupBox_signal_threshold") + self.verticalLayout = QtWidgets.QVBoxLayout(self.groupBox_signal_threshold) + self.verticalLayout.setObjectName("verticalLayout") + self.spinBox_signal_threshold = QtWidgets.QSpinBox(self.groupBox_signal_threshold) + self.spinBox_signal_threshold.setMaximum(1000000) + self.spinBox_signal_threshold.setObjectName("spinBox_signal_threshold") + self.verticalLayout.addWidget(self.spinBox_signal_threshold) + self.gridLayout.addWidget(self.groupBox_signal_threshold, 1, 0, 1, 1) + self.groupBox_cbar = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_cbar.setEnabled(True) + self.groupBox_cbar.setCheckable(True) + self.groupBox_cbar.setChecked(False) + self.groupBox_cbar.setObjectName("groupBox_cbar") + self.formLayout_4 = QtWidgets.QFormLayout(self.groupBox_cbar) + self.formLayout_4.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout_4.setObjectName("formLayout_4") + self.label_cbar_start = QtWidgets.QLabel(self.groupBox_cbar) + self.label_cbar_start.setObjectName("label_cbar_start") + self.formLayout_4.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_cbar_start) + self.doubleSpinBox_cbar_start = QtWidgets.QDoubleSpinBox(self.groupBox_cbar) + self.doubleSpinBox_cbar_start.setDecimals(1) + self.doubleSpinBox_cbar_start.setObjectName("doubleSpinBox_cbar_start") + self.formLayout_4.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_cbar_start) + self.label_cbar_end = QtWidgets.QLabel(self.groupBox_cbar) + self.label_cbar_end.setObjectName("label_cbar_end") + self.formLayout_4.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_cbar_end) + self.doubleSpinBox_cbar_end = QtWidgets.QDoubleSpinBox(self.groupBox_cbar) + self.doubleSpinBox_cbar_end.setDecimals(1) + self.doubleSpinBox_cbar_end.setObjectName("doubleSpinBox_cbar_end") + self.formLayout_4.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_cbar_end) + self.gridLayout.addWidget(self.groupBox_cbar, 1, 1, 1, 1) + self.groupBox_cutoff = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_cutoff.setEnabled(True) + self.groupBox_cutoff.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.groupBox_cutoff.setCheckable(True) + self.groupBox_cutoff.setChecked(False) + self.groupBox_cutoff.setObjectName("groupBox_cutoff") + self.formLayout_2 = QtWidgets.QFormLayout(self.groupBox_cutoff) + self.formLayout_2.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout_2.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.formLayout_2.setFormAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) + self.formLayout_2.setObjectName("formLayout_2") + self.label_cutoff_high = QtWidgets.QLabel(self.groupBox_cutoff) + self.label_cutoff_high.setObjectName("label_cutoff_high") + self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_cutoff_high) + self.doubleSpinBox_upper = QtWidgets.QDoubleSpinBox(self.groupBox_cutoff) + self.doubleSpinBox_upper.setPrefix("") + self.doubleSpinBox_upper.setDecimals(1) + self.doubleSpinBox_upper.setObjectName("doubleSpinBox_upper") + self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_upper) + self.label_cutoff_low = QtWidgets.QLabel(self.groupBox_cutoff) + self.label_cutoff_low.setObjectName("label_cutoff_low") + self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_cutoff_low) + self.doubleSpinBox_lower = QtWidgets.QDoubleSpinBox(self.groupBox_cutoff) + self.doubleSpinBox_lower.setDecimals(1) + self.doubleSpinBox_lower.setObjectName("doubleSpinBox_lower") + self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_lower) + self.gridLayout.addWidget(self.groupBox_cutoff, 0, 1, 1, 1) + self.groupBox_output = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_output.setCheckable(True) + self.groupBox_output.setChecked(False) + self.groupBox_output.setObjectName("groupBox_output") + self.gridLayout_2 = QtWidgets.QGridLayout(self.groupBox_output) + self.gridLayout_2.setObjectName("gridLayout_2") + self.checkBox_saveplots = QtWidgets.QCheckBox(self.groupBox_output) + self.checkBox_saveplots.setObjectName("checkBox_saveplots") + self.gridLayout_2.addWidget(self.checkBox_saveplots, 1, 0, 1, 1) + self.buttonBox_output = QtWidgets.QDialogButtonBox(self.groupBox_output) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.buttonBox_output.sizePolicy().hasHeightForWidth()) + self.buttonBox_output.setSizePolicy(sizePolicy) + self.buttonBox_output.setOrientation(QtCore.Qt.Vertical) + self.buttonBox_output.setStandardButtons(QtWidgets.QDialogButtonBox.Open) + self.buttonBox_output.setObjectName("buttonBox_output") + self.gridLayout_2.addWidget(self.buttonBox_output, 3, 1, 1, 1) + self.lineEdit_output = QtWidgets.QLineEdit(self.groupBox_output) + self.lineEdit_output.setObjectName("lineEdit_output") + self.gridLayout_2.addWidget(self.lineEdit_output, 3, 0, 1, 1) + self.checkBox_savetables = QtWidgets.QCheckBox(self.groupBox_output) + self.checkBox_savetables.setObjectName("checkBox_savetables") + self.gridLayout_2.addWidget(self.checkBox_savetables, 2, 0, 1, 1) + self.gridLayout.addWidget(self.groupBox_output, 3, 0, 1, 2) + self.groupBox_conc = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_conc.setMinimumSize(QtCore.QSize(0, 0)) + self.groupBox_conc.setCheckable(True) + self.groupBox_conc.setChecked(False) + self.groupBox_conc.setObjectName("groupBox_conc") + self.formLayout_5 = QtWidgets.QFormLayout(self.groupBox_conc) + self.formLayout_5.setObjectName("formLayout_5") + self.label_direction = QtWidgets.QLabel(self.groupBox_conc) + self.label_direction.setObjectName("label_direction") + self.formLayout_5.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_direction) + self.comboBox_direction = QtWidgets.QComboBox(self.groupBox_conc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.comboBox_direction.sizePolicy().hasHeightForWidth()) + self.comboBox_direction.setSizePolicy(sizePolicy) + self.comboBox_direction.setObjectName("comboBox_direction") + self.comboBox_direction.addItem("") + self.comboBox_direction.addItem("") + self.formLayout_5.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.comboBox_direction) + self.label_conc = QtWidgets.QLabel(self.groupBox_conc) + self.label_conc.setObjectName("label_conc") + self.formLayout_5.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_conc) + self.lineEdit_conc = QtWidgets.QLineEdit(self.groupBox_conc) + self.lineEdit_conc.setObjectName("lineEdit_conc") + self.formLayout_5.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.lineEdit_conc) + self.label_conc_num = QtWidgets.QLabel(self.groupBox_conc) + self.label_conc_num.setObjectName("label_conc_num") + self.formLayout_5.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_conc_num) + self.spinBox_num_conc = QtWidgets.QSpinBox(self.groupBox_conc) + self.spinBox_num_conc.setReadOnly(True) + self.spinBox_num_conc.setButtonSymbols(QtWidgets.QAbstractSpinBox.NoButtons) + self.spinBox_num_conc.setObjectName("spinBox_num_conc") + self.formLayout_5.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.spinBox_num_conc) + self.gridLayout.addWidget(self.groupBox_conc, 2, 0, 1, 2) + self.formLayout_3.setWidget(2, QtWidgets.QFormLayout.SpanningRole, self.groupBox_processing) + self.buttonBox_process = QtWidgets.QDialogButtonBox(self.groupBox_experiment) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.buttonBox_process.sizePolicy().hasHeightForWidth()) + self.buttonBox_process.setSizePolicy(sizePolicy) + self.buttonBox_process.setMinimumSize(QtCore.QSize(0, 0)) + self.buttonBox_process.setStandardButtons(QtWidgets.QDialogButtonBox.NoButton) + self.buttonBox_process.setObjectName("buttonBox_process") + self.formLayout_3.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.buttonBox_process) + self.groupBox_results = QtWidgets.QGroupBox(self.splitter) + self.groupBox_results.setEnabled(True) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(6) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.groupBox_results.sizePolicy().hasHeightForWidth()) + self.groupBox_results.setSizePolicy(sizePolicy) + self.groupBox_results.setSizeIncrement(QtCore.QSize(0, 0)) + self.groupBox_results.setObjectName("groupBox_results") + self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.groupBox_results) + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.tabWidget = QtWidgets.QTabWidget(self.groupBox_results) + self.tabWidget.setEnabled(True) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tabWidget.sizePolicy().hasHeightForWidth()) + self.tabWidget.setSizePolicy(sizePolicy) + self.tabWidget.setMinimumSize(QtCore.QSize(300, 300)) + self.tabWidget.setSizeIncrement(QtCore.QSize(0, 0)) + self.tabWidget.setObjectName("tabWidget") + self.horizontalLayout_2.addWidget(self.tabWidget) + self.horizontalLayout.addWidget(self.splitter) + MainWindow.setCentralWidget(self.centralWidget) + self.menuBar = QtWidgets.QMenuBar(MainWindow) + self.menuBar.setGeometry(QtCore.QRect(0, 0, 4095, 30)) + self.menuBar.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.menuBar.setObjectName("menuBar") + self.menuFile = QtWidgets.QMenu(self.menuBar) + self.menuFile.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.menuFile.setObjectName("menuFile") + self.menuHelp = QtWidgets.QMenu(self.menuBar) + self.menuHelp.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.menuHelp.setObjectName("menuHelp") + MainWindow.setMenuBar(self.menuBar) + self.statusBar = QtWidgets.QStatusBar(MainWindow) + self.statusBar.setObjectName("statusBar") + MainWindow.setStatusBar(self.statusBar) + self.actionQuit = QtWidgets.QAction(MainWindow) + self.actionQuit.setObjectName("actionQuit") + self.actionAbout = QtWidgets.QAction(MainWindow) + self.actionAbout.setObjectName("actionAbout") + self.actionAbout_Qt = QtWidgets.QAction(MainWindow) + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap(":/qtlogo.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.actionAbout_Qt.setIcon(icon) + self.actionAbout_Qt.setObjectName("actionAbout_Qt") + self.menuFile.addAction(self.actionQuit) + self.menuHelp.addAction(self.actionAbout) + self.menuHelp.addAction(self.actionAbout_Qt) + self.menuBar.addAction(self.menuFile.menuAction()) + self.menuBar.addAction(self.menuHelp.menuAction()) + self.label_instrument.setBuddy(self.comboBox_instrument) + self.label_tmin.setBuddy(self.doubleSpinBox_tmin) + self.label_tmax.setBuddy(self.doubleSpinBox_tmax) + self.label_dt.setBuddy(self.doubleSpinBox_dt) + self.label_cbar_start.setBuddy(self.doubleSpinBox_cbar_start) + self.label_cbar_end.setBuddy(self.doubleSpinBox_cbar_end) + self.label_cutoff_high.setBuddy(self.doubleSpinBox_upper) + self.label_cutoff_low.setBuddy(self.doubleSpinBox_lower) + + self.retranslateUi(MainWindow) + self.tabWidget.setCurrentIndex(-1) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "PyDSF")) + self.groupBox_experiment.setTitle(_translate("MainWindow", "Experimental Setup")) + self.label_instrument.setText(_translate("MainWindow", "I&nstrument")) + self.comboBox_instrument.setItemText(0, _translate("MainWindow", "Analytik Jena qTOWER 2.0/2.2")) + self.groupBox_data.setToolTip(_translate("MainWindow", "Add data files to the experiment. If multiple files are loaded, they are treated as replicates.
")) + self.groupBox_data.setTitle(_translate("MainWindow", "Data File")) + self.groupBox_replicates.setTitle(_translate("MainWindow", "Replicates")) + self.radioButton_rep_files.setText(_translate("MainWindow", "Files")) + self.groupBox_processing.setTitle(_translate("MainWindow", "Processing Options")) + self.groupBox_temp.setToolTip(_translate("MainWindow", "Temperature range of the data points. Only applies, if the data file does not contain any temperature information.
")) + self.groupBox_temp.setTitle(_translate("MainWindow", "Temperature settings")) + self.label_tmin.setText(_translate("MainWindow", "Tmin
")) + self.doubleSpinBox_tmin.setSuffix(_translate("MainWindow", " °C")) + self.label_tmax.setText(_translate("MainWindow", "Tmax
")) + self.doubleSpinBox_tmax.setSuffix(_translate("MainWindow", " °C")) + self.label_dt.setText(_translate("MainWindow", "ΔT
")) + self.doubleSpinBox_dt.setSuffix(_translate("MainWindow", " °C")) + self.groupBox_signal_threshold.setToolTip(_translate("MainWindow", "If the signal exceeds this threshold, the coresponding well is assumed to be denatured.
")) + self.groupBox_signal_threshold.setTitle(_translate("MainWindow", "Signal &Threshold")) + self.groupBox_cbar.setToolTip(_translate("MainWindow", "Defines the range of the colorbar used for the Tm heatmap.
")) + self.groupBox_cbar.setTitle(_translate("MainWindow", "&Colorbar")) + self.label_cbar_start.setText(_translate("MainWindow", "S&tart")) + self.doubleSpinBox_cbar_start.setSuffix(_translate("MainWindow", " °C")) + self.label_cbar_end.setText(_translate("MainWindow", "En&d")) + self.doubleSpinBox_cbar_end.setSuffix(_translate("MainWindow", " °C")) + self.groupBox_cutoff.setToolTip(_translate("MainWindow", "Only Tm values within this limit are considered valid.
")) + self.groupBox_cutoff.setTitle(_translate("MainWindow", "&Cutoff")) + self.label_cutoff_high.setText(_translate("MainWindow", "&Upper")) + self.doubleSpinBox_upper.setSuffix(_translate("MainWindow", " °C")) + self.label_cutoff_low.setText(_translate("MainWindow", "Lower")) + self.doubleSpinBox_lower.setSuffix(_translate("MainWindow", " °C")) + self.groupBox_output.setTitle(_translate("MainWindow", "Sa&ve processing results")) + self.checkBox_saveplots.setText(_translate("MainWindow", "Save plots")) + self.lineEdit_output.setToolTip(_translate("MainWindow", "Output results to this path")) + self.checkBox_savetables.setText(_translate("MainWindow", "Save tabular results")) + self.groupBox_conc.setTitle(_translate("MainWindow", "Concentration Dependency")) + self.label_direction.setText(_translate("MainWindow", "Direction")) + self.comboBox_direction.setItemText(0, _translate("MainWindow", "Horizontal")) + self.comboBox_direction.setItemText(1, _translate("MainWindow", "Vertical")) + self.label_conc.setText(_translate("MainWindow", "Concentrations")) + self.lineEdit_conc.setToolTip(_translate("MainWindow", "Comma-seperated list of concentrations. This has to match the number of wells in either horizontal or vertical dimension. If a well is unused, either leave blank or use "NaN" as input.
")) + self.label_conc_num.setText(_translate("MainWindow", "Number of wells")) + self.spinBox_num_conc.setToolTip(_translate("MainWindow", "Displays the number of wells specified above.
")) + self.groupBox_results.setTitle(_translate("MainWindow", "Plots")) + self.menuFile.setTitle(_translate("MainWindow", "Fi&le")) + self.menuHelp.setTitle(_translate("MainWindow", "Hel&p")) + self.actionQuit.setText(_translate("MainWindow", "&Quit")) + self.actionAbout.setText(_translate("MainWindow", "&About")) + self.actionAbout_Qt.setText(_translate("MainWindow", "About &Qt")) + +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'ui/mainwindow.ui' +# +# Created by: PyQt5 UI code generator 5.5 +# +# WARNING! All changes made in this file will be lost! + +from PyQt5 import QtCore, QtGui, QtWidgets + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(4095, 4095) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth()) + MainWindow.setSizePolicy(sizePolicy) + MainWindow.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.centralWidget = QtWidgets.QWidget(MainWindow) + self.centralWidget.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.centralWidget.setObjectName("centralWidget") + self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralWidget) + self.horizontalLayout.setObjectName("horizontalLayout") + self.splitter = QtWidgets.QSplitter(self.centralWidget) + self.splitter.setOrientation(QtCore.Qt.Horizontal) + self.splitter.setOpaqueResize(False) + self.splitter.setHandleWidth(2) + self.splitter.setChildrenCollapsible(False) + self.splitter.setObjectName("splitter") + self.groupBox_experiment = QtWidgets.QGroupBox(self.splitter) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.groupBox_experiment.sizePolicy().hasHeightForWidth()) + self.groupBox_experiment.setSizePolicy(sizePolicy) + self.groupBox_experiment.setMinimumSize(QtCore.QSize(100, 300)) + self.groupBox_experiment.setSizeIncrement(QtCore.QSize(0, 0)) + self.groupBox_experiment.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.groupBox_experiment.setFlat(False) + self.groupBox_experiment.setCheckable(False) + self.groupBox_experiment.setObjectName("groupBox_experiment") + self.formLayout_3 = QtWidgets.QFormLayout(self.groupBox_experiment) + self.formLayout_3.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout_3.setObjectName("formLayout_3") + self.label_instrument = QtWidgets.QLabel(self.groupBox_experiment) + self.label_instrument.setObjectName("label_instrument") + self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_instrument) + self.comboBox_instrument = QtWidgets.QComboBox(self.groupBox_experiment) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.comboBox_instrument.sizePolicy().hasHeightForWidth()) + self.comboBox_instrument.setSizePolicy(sizePolicy) + self.comboBox_instrument.setObjectName("comboBox_instrument") + self.comboBox_instrument.addItem("") + self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.comboBox_instrument) + self.groupBox_data = QtWidgets.QGroupBox(self.groupBox_experiment) + self.groupBox_data.setEnabled(True) + self.groupBox_data.setObjectName("groupBox_data") + self.gridLayout_4 = QtWidgets.QGridLayout(self.groupBox_data) + self.gridLayout_4.setObjectName("gridLayout_4") + self.buttonBox_open_reset = QtWidgets.QDialogButtonBox(self.groupBox_data) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.buttonBox_open_reset.sizePolicy().hasHeightForWidth()) + self.buttonBox_open_reset.setSizePolicy(sizePolicy) + self.buttonBox_open_reset.setLayoutDirection(QtCore.Qt.LeftToRight) + self.buttonBox_open_reset.setOrientation(QtCore.Qt.Vertical) + self.buttonBox_open_reset.setStandardButtons(QtWidgets.QDialogButtonBox.Open|QtWidgets.QDialogButtonBox.Reset) + self.buttonBox_open_reset.setCenterButtons(False) + self.buttonBox_open_reset.setObjectName("buttonBox_open_reset") + self.gridLayout_4.addWidget(self.buttonBox_open_reset, 0, 1, 1, 1) + self.groupBox_replicates = QtWidgets.QGroupBox(self.groupBox_data) + self.groupBox_replicates.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.groupBox_replicates.setCheckable(True) + self.groupBox_replicates.setChecked(False) + self.groupBox_replicates.setObjectName("groupBox_replicates") + self.gridLayout_3 = QtWidgets.QGridLayout(self.groupBox_replicates) + self.gridLayout_3.setObjectName("gridLayout_3") + self.radioButton = QtWidgets.QRadioButton(self.groupBox_replicates) + self.radioButton.setObjectName("radioButton") + self.gridLayout_3.addWidget(self.radioButton, 1, 0, 1, 1) + self.radioButton_rep_files = QtWidgets.QRadioButton(self.groupBox_replicates) + self.radioButton_rep_files.setEnabled(False) + self.radioButton_rep_files.setChecked(True) + self.radioButton_rep_files.setObjectName("radioButton_rep_files") + self.gridLayout_3.addWidget(self.radioButton_rep_files, 0, 0, 1, 1) + self.spinBox_avg_rows = QtWidgets.QSpinBox(self.groupBox_replicates) + self.spinBox_avg_rows.setObjectName("spinBox_avg_rows") + self.gridLayout_3.addWidget(self.spinBox_avg_rows, 1, 2, 1, 1) + self.label = QtWidgets.QLabel(self.groupBox_replicates) + self.label.setObjectName("label") + self.gridLayout_3.addWidget(self.label, 1, 1, 1, 1) + self.gridLayout_4.addWidget(self.groupBox_replicates, 2, 0, 1, 2) + self.listWidget_data = QtWidgets.QListWidget(self.groupBox_data) + self.listWidget_data.setAlternatingRowColors(True) + self.listWidget_data.setObjectName("listWidget_data") + self.gridLayout_4.addWidget(self.listWidget_data, 0, 0, 2, 1) + spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.gridLayout_4.addItem(spacerItem, 1, 1, 1, 1) + self.formLayout_3.setWidget(1, QtWidgets.QFormLayout.SpanningRole, self.groupBox_data) + self.groupBox_processing = QtWidgets.QGroupBox(self.groupBox_experiment) + self.groupBox_processing.setObjectName("groupBox_processing") + self.gridLayout = QtWidgets.QGridLayout(self.groupBox_processing) + self.gridLayout.setObjectName("gridLayout") + self.groupBox_temp = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_temp.setEnabled(True) + self.groupBox_temp.setAutoFillBackground(False) + self.groupBox_temp.setCheckable(False) + self.groupBox_temp.setObjectName("groupBox_temp") + self.formLayout = QtWidgets.QFormLayout(self.groupBox_temp) + self.formLayout.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.formLayout.setFormAlignment(QtCore.Qt.AlignHCenter|QtCore.Qt.AlignTop) + self.formLayout.setObjectName("formLayout") + self.label_tmin = QtWidgets.QLabel(self.groupBox_temp) + self.label_tmin.setObjectName("label_tmin") + self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_tmin) + self.doubleSpinBox_tmin = QtWidgets.QDoubleSpinBox(self.groupBox_temp) + self.doubleSpinBox_tmin.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.doubleSpinBox_tmin.setDecimals(1) + self.doubleSpinBox_tmin.setProperty("value", 20.0) + self.doubleSpinBox_tmin.setObjectName("doubleSpinBox_tmin") + self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_tmin) + self.label_tmax = QtWidgets.QLabel(self.groupBox_temp) + self.label_tmax.setObjectName("label_tmax") + self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_tmax) + self.doubleSpinBox_tmax = QtWidgets.QDoubleSpinBox(self.groupBox_temp) + self.doubleSpinBox_tmax.setDecimals(1) + self.doubleSpinBox_tmax.setProperty("value", 95.0) + self.doubleSpinBox_tmax.setObjectName("doubleSpinBox_tmax") + self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_tmax) + self.label_dt = QtWidgets.QLabel(self.groupBox_temp) + self.label_dt.setObjectName("label_dt") + self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_dt) + self.doubleSpinBox_dt = QtWidgets.QDoubleSpinBox(self.groupBox_temp) + self.doubleSpinBox_dt.setDecimals(1) + self.doubleSpinBox_dt.setProperty("value", 1.0) + self.doubleSpinBox_dt.setObjectName("doubleSpinBox_dt") + self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_dt) + self.gridLayout.addWidget(self.groupBox_temp, 0, 0, 1, 1) + self.groupBox_signal_threshold = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_signal_threshold.setEnabled(True) + self.groupBox_signal_threshold.setCheckable(True) + self.groupBox_signal_threshold.setChecked(False) + self.groupBox_signal_threshold.setObjectName("groupBox_signal_threshold") + self.verticalLayout = QtWidgets.QVBoxLayout(self.groupBox_signal_threshold) + self.verticalLayout.setObjectName("verticalLayout") + self.spinBox_signal_threshold = QtWidgets.QSpinBox(self.groupBox_signal_threshold) + self.spinBox_signal_threshold.setMaximum(1000000) + self.spinBox_signal_threshold.setObjectName("spinBox_signal_threshold") + self.verticalLayout.addWidget(self.spinBox_signal_threshold) + self.gridLayout.addWidget(self.groupBox_signal_threshold, 1, 0, 1, 1) + self.groupBox_cbar = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_cbar.setEnabled(True) + self.groupBox_cbar.setCheckable(True) + self.groupBox_cbar.setChecked(False) + self.groupBox_cbar.setObjectName("groupBox_cbar") + self.formLayout_4 = QtWidgets.QFormLayout(self.groupBox_cbar) + self.formLayout_4.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout_4.setObjectName("formLayout_4") + self.label_cbar_start = QtWidgets.QLabel(self.groupBox_cbar) + self.label_cbar_start.setObjectName("label_cbar_start") + self.formLayout_4.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_cbar_start) + self.doubleSpinBox_cbar_start = QtWidgets.QDoubleSpinBox(self.groupBox_cbar) + self.doubleSpinBox_cbar_start.setDecimals(1) + self.doubleSpinBox_cbar_start.setObjectName("doubleSpinBox_cbar_start") + self.formLayout_4.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_cbar_start) + self.label_cbar_end = QtWidgets.QLabel(self.groupBox_cbar) + self.label_cbar_end.setObjectName("label_cbar_end") + self.formLayout_4.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_cbar_end) + self.doubleSpinBox_cbar_end = QtWidgets.QDoubleSpinBox(self.groupBox_cbar) + self.doubleSpinBox_cbar_end.setDecimals(1) + self.doubleSpinBox_cbar_end.setObjectName("doubleSpinBox_cbar_end") + self.formLayout_4.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_cbar_end) + self.gridLayout.addWidget(self.groupBox_cbar, 1, 1, 1, 1) + self.groupBox_cutoff = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_cutoff.setEnabled(True) + self.groupBox_cutoff.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.groupBox_cutoff.setCheckable(True) + self.groupBox_cutoff.setChecked(False) + self.groupBox_cutoff.setObjectName("groupBox_cutoff") + self.formLayout_2 = QtWidgets.QFormLayout(self.groupBox_cutoff) + self.formLayout_2.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout_2.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.formLayout_2.setFormAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) + self.formLayout_2.setObjectName("formLayout_2") + self.label_cutoff_high = QtWidgets.QLabel(self.groupBox_cutoff) + self.label_cutoff_high.setObjectName("label_cutoff_high") + self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_cutoff_high) + self.doubleSpinBox_upper = QtWidgets.QDoubleSpinBox(self.groupBox_cutoff) + self.doubleSpinBox_upper.setPrefix("") + self.doubleSpinBox_upper.setDecimals(1) + self.doubleSpinBox_upper.setObjectName("doubleSpinBox_upper") + self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_upper) + self.label_cutoff_low = QtWidgets.QLabel(self.groupBox_cutoff) + self.label_cutoff_low.setObjectName("label_cutoff_low") + self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_cutoff_low) + self.doubleSpinBox_lower = QtWidgets.QDoubleSpinBox(self.groupBox_cutoff) + self.doubleSpinBox_lower.setDecimals(1) + self.doubleSpinBox_lower.setObjectName("doubleSpinBox_lower") + self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_lower) + self.gridLayout.addWidget(self.groupBox_cutoff, 0, 1, 1, 1) + self.groupBox_output = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_output.setCheckable(True) + self.groupBox_output.setChecked(False) + self.groupBox_output.setObjectName("groupBox_output") + self.gridLayout_2 = QtWidgets.QGridLayout(self.groupBox_output) + self.gridLayout_2.setObjectName("gridLayout_2") + self.checkBox_saveplots = QtWidgets.QCheckBox(self.groupBox_output) + self.checkBox_saveplots.setObjectName("checkBox_saveplots") + self.gridLayout_2.addWidget(self.checkBox_saveplots, 1, 0, 1, 1) + self.buttonBox_output = QtWidgets.QDialogButtonBox(self.groupBox_output) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.buttonBox_output.sizePolicy().hasHeightForWidth()) + self.buttonBox_output.setSizePolicy(sizePolicy) + self.buttonBox_output.setOrientation(QtCore.Qt.Vertical) + self.buttonBox_output.setStandardButtons(QtWidgets.QDialogButtonBox.Open) + self.buttonBox_output.setObjectName("buttonBox_output") + self.gridLayout_2.addWidget(self.buttonBox_output, 3, 1, 1, 1) + self.lineEdit_output = QtWidgets.QLineEdit(self.groupBox_output) + self.lineEdit_output.setObjectName("lineEdit_output") + self.gridLayout_2.addWidget(self.lineEdit_output, 3, 0, 1, 1) + self.checkBox_savetables = QtWidgets.QCheckBox(self.groupBox_output) + self.checkBox_savetables.setObjectName("checkBox_savetables") + self.gridLayout_2.addWidget(self.checkBox_savetables, 2, 0, 1, 1) + self.gridLayout.addWidget(self.groupBox_output, 3, 0, 1, 2) + self.groupBox_conc = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_conc.setMinimumSize(QtCore.QSize(0, 0)) + self.groupBox_conc.setCheckable(True) + self.groupBox_conc.setChecked(False) + self.groupBox_conc.setObjectName("groupBox_conc") + self.formLayout_5 = QtWidgets.QFormLayout(self.groupBox_conc) + self.formLayout_5.setObjectName("formLayout_5") + self.label_direction = QtWidgets.QLabel(self.groupBox_conc) + self.label_direction.setObjectName("label_direction") + self.formLayout_5.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_direction) + self.comboBox_direction = QtWidgets.QComboBox(self.groupBox_conc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.comboBox_direction.sizePolicy().hasHeightForWidth()) + self.comboBox_direction.setSizePolicy(sizePolicy) + self.comboBox_direction.setObjectName("comboBox_direction") + self.comboBox_direction.addItem("") + self.comboBox_direction.addItem("") + self.formLayout_5.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.comboBox_direction) + self.label_conc = QtWidgets.QLabel(self.groupBox_conc) + self.label_conc.setObjectName("label_conc") + self.formLayout_5.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_conc) + self.lineEdit_conc = QtWidgets.QLineEdit(self.groupBox_conc) + self.lineEdit_conc.setObjectName("lineEdit_conc") + self.formLayout_5.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.lineEdit_conc) + self.label_conc_num = QtWidgets.QLabel(self.groupBox_conc) + self.label_conc_num.setObjectName("label_conc_num") + self.formLayout_5.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_conc_num) + self.spinBox_num_conc = QtWidgets.QSpinBox(self.groupBox_conc) + self.spinBox_num_conc.setReadOnly(True) + self.spinBox_num_conc.setButtonSymbols(QtWidgets.QAbstractSpinBox.NoButtons) + self.spinBox_num_conc.setObjectName("spinBox_num_conc") + self.formLayout_5.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.spinBox_num_conc) + self.gridLayout.addWidget(self.groupBox_conc, 2, 0, 1, 2) + self.formLayout_3.setWidget(2, QtWidgets.QFormLayout.SpanningRole, self.groupBox_processing) + self.buttonBox_process = QtWidgets.QDialogButtonBox(self.groupBox_experiment) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.buttonBox_process.sizePolicy().hasHeightForWidth()) + self.buttonBox_process.setSizePolicy(sizePolicy) + self.buttonBox_process.setMinimumSize(QtCore.QSize(0, 0)) + self.buttonBox_process.setStandardButtons(QtWidgets.QDialogButtonBox.NoButton) + self.buttonBox_process.setObjectName("buttonBox_process") + self.formLayout_3.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.buttonBox_process) + self.groupBox_results = QtWidgets.QGroupBox(self.splitter) + self.groupBox_results.setEnabled(True) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(6) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.groupBox_results.sizePolicy().hasHeightForWidth()) + self.groupBox_results.setSizePolicy(sizePolicy) + self.groupBox_results.setSizeIncrement(QtCore.QSize(0, 0)) + self.groupBox_results.setObjectName("groupBox_results") + self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.groupBox_results) + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.tabWidget = QtWidgets.QTabWidget(self.groupBox_results) + self.tabWidget.setEnabled(True) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tabWidget.sizePolicy().hasHeightForWidth()) + self.tabWidget.setSizePolicy(sizePolicy) + self.tabWidget.setMinimumSize(QtCore.QSize(300, 300)) + self.tabWidget.setSizeIncrement(QtCore.QSize(0, 0)) + self.tabWidget.setObjectName("tabWidget") + self.horizontalLayout_2.addWidget(self.tabWidget) + self.horizontalLayout.addWidget(self.splitter) + MainWindow.setCentralWidget(self.centralWidget) + self.menuBar = QtWidgets.QMenuBar(MainWindow) + self.menuBar.setGeometry(QtCore.QRect(0, 0, 4095, 30)) + self.menuBar.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.menuBar.setObjectName("menuBar") + self.menuFile = QtWidgets.QMenu(self.menuBar) + self.menuFile.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.menuFile.setObjectName("menuFile") + self.menuHelp = QtWidgets.QMenu(self.menuBar) + self.menuHelp.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.menuHelp.setObjectName("menuHelp") + MainWindow.setMenuBar(self.menuBar) + self.statusBar = QtWidgets.QStatusBar(MainWindow) + self.statusBar.setObjectName("statusBar") + MainWindow.setStatusBar(self.statusBar) + self.actionQuit = QtWidgets.QAction(MainWindow) + self.actionQuit.setObjectName("actionQuit") + self.actionAbout = QtWidgets.QAction(MainWindow) + self.actionAbout.setObjectName("actionAbout") + self.actionAbout_Qt = QtWidgets.QAction(MainWindow) + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap(":/qtlogo.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.actionAbout_Qt.setIcon(icon) + self.actionAbout_Qt.setObjectName("actionAbout_Qt") + self.menuFile.addAction(self.actionQuit) + self.menuHelp.addAction(self.actionAbout) + self.menuHelp.addAction(self.actionAbout_Qt) + self.menuBar.addAction(self.menuFile.menuAction()) + self.menuBar.addAction(self.menuHelp.menuAction()) + self.label_instrument.setBuddy(self.comboBox_instrument) + self.label_tmin.setBuddy(self.doubleSpinBox_tmin) + self.label_tmax.setBuddy(self.doubleSpinBox_tmax) + self.label_dt.setBuddy(self.doubleSpinBox_dt) + self.label_cbar_start.setBuddy(self.doubleSpinBox_cbar_start) + self.label_cbar_end.setBuddy(self.doubleSpinBox_cbar_end) + self.label_cutoff_high.setBuddy(self.doubleSpinBox_upper) + self.label_cutoff_low.setBuddy(self.doubleSpinBox_lower) + + self.retranslateUi(MainWindow) + self.tabWidget.setCurrentIndex(-1) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "PyDSF")) + self.groupBox_experiment.setTitle(_translate("MainWindow", "Experimental Setup")) + self.label_instrument.setText(_translate("MainWindow", "I&nstrument")) + self.comboBox_instrument.setItemText(0, _translate("MainWindow", "Analytik Jena qTOWER 2.0/2.2")) + self.groupBox_data.setToolTip(_translate("MainWindow", "Add data files to the experiment. If multiple files are loaded, they are treated as replicates.
")) + self.groupBox_data.setTitle(_translate("MainWindow", "Data File")) + self.groupBox_replicates.setTitle(_translate("MainWindow", "Replicates")) + self.radioButton.setText(_translate("MainWindow", "Rows")) + self.radioButton_rep_files.setText(_translate("MainWindow", "Files")) + self.label.setText(_translate("MainWindow", "Rows to average")) + self.groupBox_processing.setTitle(_translate("MainWindow", "Processing Options")) + self.groupBox_temp.setToolTip(_translate("MainWindow", "Temperature range of the data points. Only applies, if the data file does not contain any temperature information.
")) + self.groupBox_temp.setTitle(_translate("MainWindow", "Temperature settings")) + self.label_tmin.setText(_translate("MainWindow", "Tmin
")) + self.doubleSpinBox_tmin.setSuffix(_translate("MainWindow", " °C")) + self.label_tmax.setText(_translate("MainWindow", "Tmax
")) + self.doubleSpinBox_tmax.setSuffix(_translate("MainWindow", " °C")) + self.label_dt.setText(_translate("MainWindow", "ΔT
")) + self.doubleSpinBox_dt.setSuffix(_translate("MainWindow", " °C")) + self.groupBox_signal_threshold.setToolTip(_translate("MainWindow", "If the signal exceeds this threshold, the coresponding well is assumed to be denatured.
")) + self.groupBox_signal_threshold.setTitle(_translate("MainWindow", "Signal &Threshold")) + self.groupBox_cbar.setToolTip(_translate("MainWindow", "Defines the range of the colorbar used for the Tm heatmap.
")) + self.groupBox_cbar.setTitle(_translate("MainWindow", "&Colorbar")) + self.label_cbar_start.setText(_translate("MainWindow", "S&tart")) + self.doubleSpinBox_cbar_start.setSuffix(_translate("MainWindow", " °C")) + self.label_cbar_end.setText(_translate("MainWindow", "En&d")) + self.doubleSpinBox_cbar_end.setSuffix(_translate("MainWindow", " °C")) + self.groupBox_cutoff.setToolTip(_translate("MainWindow", "Only Tm values within this limit are considered valid.
")) + self.groupBox_cutoff.setTitle(_translate("MainWindow", "&Cutoff")) + self.label_cutoff_high.setText(_translate("MainWindow", "&Upper")) + self.doubleSpinBox_upper.setSuffix(_translate("MainWindow", " °C")) + self.label_cutoff_low.setText(_translate("MainWindow", "Lower")) + self.doubleSpinBox_lower.setSuffix(_translate("MainWindow", " °C")) + self.groupBox_output.setTitle(_translate("MainWindow", "Sa&ve processing results")) + self.checkBox_saveplots.setText(_translate("MainWindow", "Save plots")) + self.lineEdit_output.setToolTip(_translate("MainWindow", "Output results to this path")) + self.checkBox_savetables.setText(_translate("MainWindow", "Save tabular results")) + self.groupBox_conc.setTitle(_translate("MainWindow", "Parameter Dependency")) + self.label_direction.setText(_translate("MainWindow", "Direction")) + self.comboBox_direction.setItemText(0, _translate("MainWindow", "Horizontal")) + self.comboBox_direction.setItemText(1, _translate("MainWindow", "Vertical")) + self.label_conc.setText(_translate("MainWindow", "Parameter Values")) + self.lineEdit_conc.setToolTip(_translate("MainWindow", "Comma-seperated list of concentrations. This has to match the number of wells in either horizontal or vertical dimension. If a well is unused, either leave blank or use "NaN" as input.
")) + self.label_conc_num.setText(_translate("MainWindow", "Number of wells")) + self.spinBox_num_conc.setToolTip(_translate("MainWindow", "Displays the number of wells specified above.
")) + self.groupBox_results.setTitle(_translate("MainWindow", "Plots")) + self.menuFile.setTitle(_translate("MainWindow", "Fi&le")) + self.menuHelp.setTitle(_translate("MainWindow", "Hel&p")) + self.actionQuit.setText(_translate("MainWindow", "&Quit")) + self.actionAbout.setText(_translate("MainWindow", "&About")) + self.actionAbout_Qt.setText(_translate("MainWindow", "About &Qt")) + +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'ui/mainwindow.ui' +# +# Created by: PyQt5 UI code generator 5.5 +# +# WARNING! All changes made in this file will be lost! + +from PyQt5 import QtCore, QtGui, QtWidgets + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(4095, 4095) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth()) + MainWindow.setSizePolicy(sizePolicy) + MainWindow.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.centralWidget = QtWidgets.QWidget(MainWindow) + self.centralWidget.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.centralWidget.setObjectName("centralWidget") + self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralWidget) + self.horizontalLayout.setObjectName("horizontalLayout") + self.splitter = QtWidgets.QSplitter(self.centralWidget) + self.splitter.setOrientation(QtCore.Qt.Horizontal) + self.splitter.setOpaqueResize(False) + self.splitter.setHandleWidth(2) + self.splitter.setChildrenCollapsible(False) + self.splitter.setObjectName("splitter") + self.groupBox_experiment = QtWidgets.QGroupBox(self.splitter) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.groupBox_experiment.sizePolicy().hasHeightForWidth()) + self.groupBox_experiment.setSizePolicy(sizePolicy) + self.groupBox_experiment.setMinimumSize(QtCore.QSize(100, 300)) + self.groupBox_experiment.setSizeIncrement(QtCore.QSize(0, 0)) + self.groupBox_experiment.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.groupBox_experiment.setFlat(False) + self.groupBox_experiment.setCheckable(False) + self.groupBox_experiment.setObjectName("groupBox_experiment") + self.formLayout_3 = QtWidgets.QFormLayout(self.groupBox_experiment) + self.formLayout_3.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout_3.setObjectName("formLayout_3") + self.label_instrument = QtWidgets.QLabel(self.groupBox_experiment) + self.label_instrument.setObjectName("label_instrument") + self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_instrument) + self.comboBox_instrument = QtWidgets.QComboBox(self.groupBox_experiment) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.comboBox_instrument.sizePolicy().hasHeightForWidth()) + self.comboBox_instrument.setSizePolicy(sizePolicy) + self.comboBox_instrument.setObjectName("comboBox_instrument") + self.comboBox_instrument.addItem("") + self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.comboBox_instrument) + self.groupBox_data = QtWidgets.QGroupBox(self.groupBox_experiment) + self.groupBox_data.setEnabled(True) + self.groupBox_data.setObjectName("groupBox_data") + self.gridLayout_4 = QtWidgets.QGridLayout(self.groupBox_data) + self.gridLayout_4.setObjectName("gridLayout_4") + self.buttonBox_open_reset = QtWidgets.QDialogButtonBox(self.groupBox_data) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.buttonBox_open_reset.sizePolicy().hasHeightForWidth()) + self.buttonBox_open_reset.setSizePolicy(sizePolicy) + self.buttonBox_open_reset.setLayoutDirection(QtCore.Qt.LeftToRight) + self.buttonBox_open_reset.setOrientation(QtCore.Qt.Vertical) + self.buttonBox_open_reset.setStandardButtons(QtWidgets.QDialogButtonBox.Open|QtWidgets.QDialogButtonBox.Reset) + self.buttonBox_open_reset.setCenterButtons(False) + self.buttonBox_open_reset.setObjectName("buttonBox_open_reset") + self.gridLayout_4.addWidget(self.buttonBox_open_reset, 0, 1, 1, 1) + self.groupBox_replicates = QtWidgets.QGroupBox(self.groupBox_data) + self.groupBox_replicates.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.groupBox_replicates.setCheckable(True) + self.groupBox_replicates.setChecked(False) + self.groupBox_replicates.setObjectName("groupBox_replicates") + self.gridLayout_3 = QtWidgets.QGridLayout(self.groupBox_replicates) + self.gridLayout_3.setObjectName("gridLayout_3") + self.radioButton_rep_rows = QtWidgets.QRadioButton(self.groupBox_replicates) + self.radioButton_rep_rows.setObjectName("radioButton_rep_rows") + self.gridLayout_3.addWidget(self.radioButton_rep_rows, 1, 0, 1, 1) + self.radioButton_rep_files = QtWidgets.QRadioButton(self.groupBox_replicates) + self.radioButton_rep_files.setEnabled(False) + self.radioButton_rep_files.setChecked(True) + self.radioButton_rep_files.setObjectName("radioButton_rep_files") + self.gridLayout_3.addWidget(self.radioButton_rep_files, 0, 0, 1, 1) + self.spinBox_avg_rows = QtWidgets.QSpinBox(self.groupBox_replicates) + self.spinBox_avg_rows.setMinimum(2) + self.spinBox_avg_rows.setProperty("value", 3) + self.spinBox_avg_rows.setObjectName("spinBox_avg_rows") + self.gridLayout_3.addWidget(self.spinBox_avg_rows, 1, 2, 1, 1) + self.label_rows = QtWidgets.QLabel(self.groupBox_replicates) + self.label_rows.setObjectName("label_rows") + self.gridLayout_3.addWidget(self.label_rows, 1, 1, 1, 1) + self.gridLayout_4.addWidget(self.groupBox_replicates, 2, 0, 1, 2) + self.listWidget_data = QtWidgets.QListWidget(self.groupBox_data) + self.listWidget_data.setAlternatingRowColors(True) + self.listWidget_data.setObjectName("listWidget_data") + self.gridLayout_4.addWidget(self.listWidget_data, 0, 0, 2, 1) + spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.gridLayout_4.addItem(spacerItem, 1, 1, 1, 1) + self.formLayout_3.setWidget(1, QtWidgets.QFormLayout.SpanningRole, self.groupBox_data) + self.groupBox_processing = QtWidgets.QGroupBox(self.groupBox_experiment) + self.groupBox_processing.setObjectName("groupBox_processing") + self.gridLayout = QtWidgets.QGridLayout(self.groupBox_processing) + self.gridLayout.setObjectName("gridLayout") + self.groupBox_temp = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_temp.setEnabled(True) + self.groupBox_temp.setAutoFillBackground(False) + self.groupBox_temp.setCheckable(False) + self.groupBox_temp.setObjectName("groupBox_temp") + self.formLayout = QtWidgets.QFormLayout(self.groupBox_temp) + self.formLayout.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.formLayout.setFormAlignment(QtCore.Qt.AlignHCenter|QtCore.Qt.AlignTop) + self.formLayout.setObjectName("formLayout") + self.label_tmin = QtWidgets.QLabel(self.groupBox_temp) + self.label_tmin.setObjectName("label_tmin") + self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_tmin) + self.doubleSpinBox_tmin = QtWidgets.QDoubleSpinBox(self.groupBox_temp) + self.doubleSpinBox_tmin.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.doubleSpinBox_tmin.setDecimals(1) + self.doubleSpinBox_tmin.setProperty("value", 20.0) + self.doubleSpinBox_tmin.setObjectName("doubleSpinBox_tmin") + self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_tmin) + self.label_tmax = QtWidgets.QLabel(self.groupBox_temp) + self.label_tmax.setObjectName("label_tmax") + self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_tmax) + self.doubleSpinBox_tmax = QtWidgets.QDoubleSpinBox(self.groupBox_temp) + self.doubleSpinBox_tmax.setDecimals(1) + self.doubleSpinBox_tmax.setProperty("value", 95.0) + self.doubleSpinBox_tmax.setObjectName("doubleSpinBox_tmax") + self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_tmax) + self.label_dt = QtWidgets.QLabel(self.groupBox_temp) + self.label_dt.setObjectName("label_dt") + self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_dt) + self.doubleSpinBox_dt = QtWidgets.QDoubleSpinBox(self.groupBox_temp) + self.doubleSpinBox_dt.setDecimals(1) + self.doubleSpinBox_dt.setProperty("value", 1.0) + self.doubleSpinBox_dt.setObjectName("doubleSpinBox_dt") + self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_dt) + self.gridLayout.addWidget(self.groupBox_temp, 0, 0, 1, 1) + self.groupBox_signal_threshold = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_signal_threshold.setEnabled(True) + self.groupBox_signal_threshold.setCheckable(True) + self.groupBox_signal_threshold.setChecked(False) + self.groupBox_signal_threshold.setObjectName("groupBox_signal_threshold") + self.verticalLayout = QtWidgets.QVBoxLayout(self.groupBox_signal_threshold) + self.verticalLayout.setObjectName("verticalLayout") + self.spinBox_signal_threshold = QtWidgets.QSpinBox(self.groupBox_signal_threshold) + self.spinBox_signal_threshold.setMaximum(1000000) + self.spinBox_signal_threshold.setObjectName("spinBox_signal_threshold") + self.verticalLayout.addWidget(self.spinBox_signal_threshold) + self.gridLayout.addWidget(self.groupBox_signal_threshold, 1, 0, 1, 1) + self.groupBox_cbar = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_cbar.setEnabled(True) + self.groupBox_cbar.setCheckable(True) + self.groupBox_cbar.setChecked(False) + self.groupBox_cbar.setObjectName("groupBox_cbar") + self.formLayout_4 = QtWidgets.QFormLayout(self.groupBox_cbar) + self.formLayout_4.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout_4.setObjectName("formLayout_4") + self.label_cbar_start = QtWidgets.QLabel(self.groupBox_cbar) + self.label_cbar_start.setObjectName("label_cbar_start") + self.formLayout_4.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_cbar_start) + self.doubleSpinBox_cbar_start = QtWidgets.QDoubleSpinBox(self.groupBox_cbar) + self.doubleSpinBox_cbar_start.setDecimals(1) + self.doubleSpinBox_cbar_start.setObjectName("doubleSpinBox_cbar_start") + self.formLayout_4.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_cbar_start) + self.label_cbar_end = QtWidgets.QLabel(self.groupBox_cbar) + self.label_cbar_end.setObjectName("label_cbar_end") + self.formLayout_4.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_cbar_end) + self.doubleSpinBox_cbar_end = QtWidgets.QDoubleSpinBox(self.groupBox_cbar) + self.doubleSpinBox_cbar_end.setDecimals(1) + self.doubleSpinBox_cbar_end.setObjectName("doubleSpinBox_cbar_end") + self.formLayout_4.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_cbar_end) + self.gridLayout.addWidget(self.groupBox_cbar, 1, 1, 1, 1) + self.groupBox_cutoff = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_cutoff.setEnabled(True) + self.groupBox_cutoff.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.groupBox_cutoff.setCheckable(True) + self.groupBox_cutoff.setChecked(False) + self.groupBox_cutoff.setObjectName("groupBox_cutoff") + self.formLayout_2 = QtWidgets.QFormLayout(self.groupBox_cutoff) + self.formLayout_2.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout_2.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.formLayout_2.setFormAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) + self.formLayout_2.setObjectName("formLayout_2") + self.label_cutoff_high = QtWidgets.QLabel(self.groupBox_cutoff) + self.label_cutoff_high.setObjectName("label_cutoff_high") + self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_cutoff_high) + self.doubleSpinBox_upper = QtWidgets.QDoubleSpinBox(self.groupBox_cutoff) + self.doubleSpinBox_upper.setPrefix("") + self.doubleSpinBox_upper.setDecimals(1) + self.doubleSpinBox_upper.setObjectName("doubleSpinBox_upper") + self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_upper) + self.label_cutoff_low = QtWidgets.QLabel(self.groupBox_cutoff) + self.label_cutoff_low.setObjectName("label_cutoff_low") + self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_cutoff_low) + self.doubleSpinBox_lower = QtWidgets.QDoubleSpinBox(self.groupBox_cutoff) + self.doubleSpinBox_lower.setDecimals(1) + self.doubleSpinBox_lower.setObjectName("doubleSpinBox_lower") + self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_lower) + self.gridLayout.addWidget(self.groupBox_cutoff, 0, 1, 1, 1) + self.groupBox_output = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_output.setCheckable(True) + self.groupBox_output.setChecked(False) + self.groupBox_output.setObjectName("groupBox_output") + self.gridLayout_2 = QtWidgets.QGridLayout(self.groupBox_output) + self.gridLayout_2.setObjectName("gridLayout_2") + self.checkBox_saveplots = QtWidgets.QCheckBox(self.groupBox_output) + self.checkBox_saveplots.setObjectName("checkBox_saveplots") + self.gridLayout_2.addWidget(self.checkBox_saveplots, 1, 0, 1, 1) + self.buttonBox_output = QtWidgets.QDialogButtonBox(self.groupBox_output) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.buttonBox_output.sizePolicy().hasHeightForWidth()) + self.buttonBox_output.setSizePolicy(sizePolicy) + self.buttonBox_output.setOrientation(QtCore.Qt.Vertical) + self.buttonBox_output.setStandardButtons(QtWidgets.QDialogButtonBox.Open) + self.buttonBox_output.setObjectName("buttonBox_output") + self.gridLayout_2.addWidget(self.buttonBox_output, 3, 1, 1, 1) + self.lineEdit_output = QtWidgets.QLineEdit(self.groupBox_output) + self.lineEdit_output.setObjectName("lineEdit_output") + self.gridLayout_2.addWidget(self.lineEdit_output, 3, 0, 1, 1) + self.checkBox_savetables = QtWidgets.QCheckBox(self.groupBox_output) + self.checkBox_savetables.setObjectName("checkBox_savetables") + self.gridLayout_2.addWidget(self.checkBox_savetables, 2, 0, 1, 1) + self.gridLayout.addWidget(self.groupBox_output, 3, 0, 1, 2) + self.groupBox_conc = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_conc.setMinimumSize(QtCore.QSize(0, 0)) + self.groupBox_conc.setCheckable(True) + self.groupBox_conc.setChecked(False) + self.groupBox_conc.setObjectName("groupBox_conc") + self.formLayout_5 = QtWidgets.QFormLayout(self.groupBox_conc) + self.formLayout_5.setObjectName("formLayout_5") + self.label_direction = QtWidgets.QLabel(self.groupBox_conc) + self.label_direction.setObjectName("label_direction") + self.formLayout_5.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_direction) + self.comboBox_direction = QtWidgets.QComboBox(self.groupBox_conc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.comboBox_direction.sizePolicy().hasHeightForWidth()) + self.comboBox_direction.setSizePolicy(sizePolicy) + self.comboBox_direction.setObjectName("comboBox_direction") + self.comboBox_direction.addItem("") + self.comboBox_direction.addItem("") + self.formLayout_5.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.comboBox_direction) + self.label_conc = QtWidgets.QLabel(self.groupBox_conc) + self.label_conc.setObjectName("label_conc") + self.formLayout_5.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_conc) + self.lineEdit_conc = QtWidgets.QLineEdit(self.groupBox_conc) + self.lineEdit_conc.setObjectName("lineEdit_conc") + self.formLayout_5.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.lineEdit_conc) + self.label_conc_num = QtWidgets.QLabel(self.groupBox_conc) + self.label_conc_num.setObjectName("label_conc_num") + self.formLayout_5.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_conc_num) + self.spinBox_num_conc = QtWidgets.QSpinBox(self.groupBox_conc) + self.spinBox_num_conc.setReadOnly(True) + self.spinBox_num_conc.setButtonSymbols(QtWidgets.QAbstractSpinBox.NoButtons) + self.spinBox_num_conc.setObjectName("spinBox_num_conc") + self.formLayout_5.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.spinBox_num_conc) + self.gridLayout.addWidget(self.groupBox_conc, 2, 0, 1, 2) + self.formLayout_3.setWidget(2, QtWidgets.QFormLayout.SpanningRole, self.groupBox_processing) + self.buttonBox_process = QtWidgets.QDialogButtonBox(self.groupBox_experiment) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.buttonBox_process.sizePolicy().hasHeightForWidth()) + self.buttonBox_process.setSizePolicy(sizePolicy) + self.buttonBox_process.setMinimumSize(QtCore.QSize(0, 0)) + self.buttonBox_process.setStandardButtons(QtWidgets.QDialogButtonBox.NoButton) + self.buttonBox_process.setObjectName("buttonBox_process") + self.formLayout_3.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.buttonBox_process) + self.groupBox_results = QtWidgets.QGroupBox(self.splitter) + self.groupBox_results.setEnabled(True) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(6) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.groupBox_results.sizePolicy().hasHeightForWidth()) + self.groupBox_results.setSizePolicy(sizePolicy) + self.groupBox_results.setSizeIncrement(QtCore.QSize(0, 0)) + self.groupBox_results.setObjectName("groupBox_results") + self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.groupBox_results) + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.tabWidget = QtWidgets.QTabWidget(self.groupBox_results) + self.tabWidget.setEnabled(True) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tabWidget.sizePolicy().hasHeightForWidth()) + self.tabWidget.setSizePolicy(sizePolicy) + self.tabWidget.setMinimumSize(QtCore.QSize(300, 300)) + self.tabWidget.setSizeIncrement(QtCore.QSize(0, 0)) + self.tabWidget.setObjectName("tabWidget") + self.horizontalLayout_2.addWidget(self.tabWidget) + self.horizontalLayout.addWidget(self.splitter) + MainWindow.setCentralWidget(self.centralWidget) + self.menuBar = QtWidgets.QMenuBar(MainWindow) + self.menuBar.setGeometry(QtCore.QRect(0, 0, 4095, 30)) + self.menuBar.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.menuBar.setObjectName("menuBar") + self.menuFile = QtWidgets.QMenu(self.menuBar) + self.menuFile.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.menuFile.setObjectName("menuFile") + self.menuHelp = QtWidgets.QMenu(self.menuBar) + self.menuHelp.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.menuHelp.setObjectName("menuHelp") + MainWindow.setMenuBar(self.menuBar) + self.statusBar = QtWidgets.QStatusBar(MainWindow) + self.statusBar.setObjectName("statusBar") + MainWindow.setStatusBar(self.statusBar) + self.actionQuit = QtWidgets.QAction(MainWindow) + self.actionQuit.setObjectName("actionQuit") + self.actionAbout = QtWidgets.QAction(MainWindow) + self.actionAbout.setObjectName("actionAbout") + self.actionAbout_Qt = QtWidgets.QAction(MainWindow) + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap(":/qtlogo.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.actionAbout_Qt.setIcon(icon) + self.actionAbout_Qt.setObjectName("actionAbout_Qt") + self.menuFile.addAction(self.actionQuit) + self.menuHelp.addAction(self.actionAbout) + self.menuHelp.addAction(self.actionAbout_Qt) + self.menuBar.addAction(self.menuFile.menuAction()) + self.menuBar.addAction(self.menuHelp.menuAction()) + self.label_instrument.setBuddy(self.comboBox_instrument) + self.label_tmin.setBuddy(self.doubleSpinBox_tmin) + self.label_tmax.setBuddy(self.doubleSpinBox_tmax) + self.label_dt.setBuddy(self.doubleSpinBox_dt) + self.label_cbar_start.setBuddy(self.doubleSpinBox_cbar_start) + self.label_cbar_end.setBuddy(self.doubleSpinBox_cbar_end) + self.label_cutoff_high.setBuddy(self.doubleSpinBox_upper) + self.label_cutoff_low.setBuddy(self.doubleSpinBox_lower) + + self.retranslateUi(MainWindow) + self.tabWidget.setCurrentIndex(-1) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "PyDSF")) + self.groupBox_experiment.setTitle(_translate("MainWindow", "Experimental Setup")) + self.label_instrument.setText(_translate("MainWindow", "I&nstrument")) + self.comboBox_instrument.setItemText(0, _translate("MainWindow", "Analytik Jena qTOWER 2.0/2.2")) + self.groupBox_data.setToolTip(_translate("MainWindow", "Add data files to the experiment. If multiple files are loaded, they are treated as replicates.
")) + self.groupBox_data.setTitle(_translate("MainWindow", "Data File")) + self.groupBox_replicates.setTitle(_translate("MainWindow", "Replicates")) + self.radioButton_rep_rows.setText(_translate("MainWindow", "Rows")) + self.radioButton_rep_files.setText(_translate("MainWindow", "Files")) + self.label_rows.setText(_translate("MainWindow", "Rows to average")) + self.groupBox_processing.setTitle(_translate("MainWindow", "Processing Options")) + self.groupBox_temp.setToolTip(_translate("MainWindow", "Temperature range of the data points. Only applies, if the data file does not contain any temperature information.
")) + self.groupBox_temp.setTitle(_translate("MainWindow", "Temperature settings")) + self.label_tmin.setText(_translate("MainWindow", "Tmin
")) + self.doubleSpinBox_tmin.setSuffix(_translate("MainWindow", " °C")) + self.label_tmax.setText(_translate("MainWindow", "Tmax
")) + self.doubleSpinBox_tmax.setSuffix(_translate("MainWindow", " °C")) + self.label_dt.setText(_translate("MainWindow", "ΔT
")) + self.doubleSpinBox_dt.setSuffix(_translate("MainWindow", " °C")) + self.groupBox_signal_threshold.setToolTip(_translate("MainWindow", "If the signal exceeds this threshold, the coresponding well is assumed to be denatured.
")) + self.groupBox_signal_threshold.setTitle(_translate("MainWindow", "Signal &Threshold")) + self.groupBox_cbar.setToolTip(_translate("MainWindow", "Defines the range of the colorbar used for the Tm heatmap.
")) + self.groupBox_cbar.setTitle(_translate("MainWindow", "&Colorbar")) + self.label_cbar_start.setText(_translate("MainWindow", "S&tart")) + self.doubleSpinBox_cbar_start.setSuffix(_translate("MainWindow", " °C")) + self.label_cbar_end.setText(_translate("MainWindow", "En&d")) + self.doubleSpinBox_cbar_end.setSuffix(_translate("MainWindow", " °C")) + self.groupBox_cutoff.setToolTip(_translate("MainWindow", "Only Tm values within this limit are considered valid.
")) + self.groupBox_cutoff.setTitle(_translate("MainWindow", "&Cutoff")) + self.label_cutoff_high.setText(_translate("MainWindow", "&Upper")) + self.doubleSpinBox_upper.setSuffix(_translate("MainWindow", " °C")) + self.label_cutoff_low.setText(_translate("MainWindow", "Lower")) + self.doubleSpinBox_lower.setSuffix(_translate("MainWindow", " °C")) + self.groupBox_output.setTitle(_translate("MainWindow", "Sa&ve processing results")) + self.checkBox_saveplots.setText(_translate("MainWindow", "Save plots")) + self.lineEdit_output.setToolTip(_translate("MainWindow", "Output results to this path")) + self.checkBox_savetables.setText(_translate("MainWindow", "Save tabular results")) + self.groupBox_conc.setTitle(_translate("MainWindow", "Parameter Dependency")) + self.label_direction.setText(_translate("MainWindow", "Direction")) + self.comboBox_direction.setItemText(0, _translate("MainWindow", "Horizontal")) + self.comboBox_direction.setItemText(1, _translate("MainWindow", "Vertical")) + self.label_conc.setText(_translate("MainWindow", "Parameter Values")) + self.lineEdit_conc.setToolTip(_translate("MainWindow", "Comma-seperated list of concentrations. This has to match the number of wells in either horizontal or vertical dimension. If a well is unused, either leave blank or use "NaN" as input.
")) + self.label_conc_num.setText(_translate("MainWindow", "Number of wells")) + self.spinBox_num_conc.setToolTip(_translate("MainWindow", "Displays the number of wells specified above.
")) + self.groupBox_results.setTitle(_translate("MainWindow", "Plots")) + self.menuFile.setTitle(_translate("MainWindow", "Fi&le")) + self.menuHelp.setTitle(_translate("MainWindow", "Hel&p")) + self.actionQuit.setText(_translate("MainWindow", "&Quit")) + self.actionAbout.setText(_translate("MainWindow", "&About")) + self.actionAbout_Qt.setText(_translate("MainWindow", "About &Qt")) + +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'ui/mainwindow.ui' +# +# Created by: PyQt5 UI code generator 5.5 +# +# WARNING! All changes made in this file will be lost! + +from PyQt5 import QtCore, QtGui, QtWidgets + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(4095, 4095) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth()) + MainWindow.setSizePolicy(sizePolicy) + MainWindow.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.centralWidget = QtWidgets.QWidget(MainWindow) + self.centralWidget.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.centralWidget.setObjectName("centralWidget") + self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralWidget) + self.horizontalLayout.setObjectName("horizontalLayout") + self.splitter = QtWidgets.QSplitter(self.centralWidget) + self.splitter.setOrientation(QtCore.Qt.Horizontal) + self.splitter.setOpaqueResize(False) + self.splitter.setHandleWidth(2) + self.splitter.setChildrenCollapsible(False) + self.splitter.setObjectName("splitter") + self.groupBox_experiment = QtWidgets.QGroupBox(self.splitter) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.groupBox_experiment.sizePolicy().hasHeightForWidth()) + self.groupBox_experiment.setSizePolicy(sizePolicy) + self.groupBox_experiment.setMinimumSize(QtCore.QSize(100, 300)) + self.groupBox_experiment.setSizeIncrement(QtCore.QSize(0, 0)) + self.groupBox_experiment.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.groupBox_experiment.setFlat(False) + self.groupBox_experiment.setCheckable(False) + self.groupBox_experiment.setObjectName("groupBox_experiment") + self.formLayout_3 = QtWidgets.QFormLayout(self.groupBox_experiment) + self.formLayout_3.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout_3.setObjectName("formLayout_3") + self.label_instrument = QtWidgets.QLabel(self.groupBox_experiment) + self.label_instrument.setObjectName("label_instrument") + self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_instrument) + self.comboBox_instrument = QtWidgets.QComboBox(self.groupBox_experiment) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.comboBox_instrument.sizePolicy().hasHeightForWidth()) + self.comboBox_instrument.setSizePolicy(sizePolicy) + self.comboBox_instrument.setObjectName("comboBox_instrument") + self.comboBox_instrument.addItem("") + self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.comboBox_instrument) + self.groupBox_data = QtWidgets.QGroupBox(self.groupBox_experiment) + self.groupBox_data.setEnabled(True) + self.groupBox_data.setObjectName("groupBox_data") + self.gridLayout_4 = QtWidgets.QGridLayout(self.groupBox_data) + self.gridLayout_4.setObjectName("gridLayout_4") + self.buttonBox_open_reset = QtWidgets.QDialogButtonBox(self.groupBox_data) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.buttonBox_open_reset.sizePolicy().hasHeightForWidth()) + self.buttonBox_open_reset.setSizePolicy(sizePolicy) + self.buttonBox_open_reset.setLayoutDirection(QtCore.Qt.LeftToRight) + self.buttonBox_open_reset.setOrientation(QtCore.Qt.Vertical) + self.buttonBox_open_reset.setStandardButtons(QtWidgets.QDialogButtonBox.Open|QtWidgets.QDialogButtonBox.Reset) + self.buttonBox_open_reset.setCenterButtons(False) + self.buttonBox_open_reset.setObjectName("buttonBox_open_reset") + self.gridLayout_4.addWidget(self.buttonBox_open_reset, 0, 1, 1, 1) + self.groupBox_replicates = QtWidgets.QGroupBox(self.groupBox_data) + self.groupBox_replicates.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.groupBox_replicates.setCheckable(True) + self.groupBox_replicates.setChecked(False) + self.groupBox_replicates.setObjectName("groupBox_replicates") + self.gridLayout_3 = QtWidgets.QGridLayout(self.groupBox_replicates) + self.gridLayout_3.setObjectName("gridLayout_3") + self.radioButton_rep_rows = QtWidgets.QRadioButton(self.groupBox_replicates) + self.radioButton_rep_rows.setObjectName("radioButton_rep_rows") + self.gridLayout_3.addWidget(self.radioButton_rep_rows, 1, 0, 1, 1) + self.radioButton_rep_files = QtWidgets.QRadioButton(self.groupBox_replicates) + self.radioButton_rep_files.setEnabled(False) + self.radioButton_rep_files.setChecked(True) + self.radioButton_rep_files.setObjectName("radioButton_rep_files") + self.gridLayout_3.addWidget(self.radioButton_rep_files, 0, 0, 1, 1) + self.spinBox_avg_rows = QtWidgets.QSpinBox(self.groupBox_replicates) + self.spinBox_avg_rows.setMinimum(2) + self.spinBox_avg_rows.setProperty("value", 3) + self.spinBox_avg_rows.setObjectName("spinBox_avg_rows") + self.gridLayout_3.addWidget(self.spinBox_avg_rows, 1, 2, 1, 1) + self.label_rows = QtWidgets.QLabel(self.groupBox_replicates) + self.label_rows.setObjectName("label_rows") + self.gridLayout_3.addWidget(self.label_rows, 1, 1, 1, 1) + self.gridLayout_4.addWidget(self.groupBox_replicates, 2, 0, 1, 2) + self.listWidget_data = QtWidgets.QListWidget(self.groupBox_data) + self.listWidget_data.setAlternatingRowColors(True) + self.listWidget_data.setObjectName("listWidget_data") + self.gridLayout_4.addWidget(self.listWidget_data, 0, 0, 2, 1) + spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.gridLayout_4.addItem(spacerItem, 1, 1, 1, 1) + self.formLayout_3.setWidget(1, QtWidgets.QFormLayout.SpanningRole, self.groupBox_data) + self.groupBox_processing = QtWidgets.QGroupBox(self.groupBox_experiment) + self.groupBox_processing.setObjectName("groupBox_processing") + self.gridLayout = QtWidgets.QGridLayout(self.groupBox_processing) + self.gridLayout.setObjectName("gridLayout") + self.groupBox_temp = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_temp.setEnabled(True) + self.groupBox_temp.setAutoFillBackground(False) + self.groupBox_temp.setCheckable(False) + self.groupBox_temp.setObjectName("groupBox_temp") + self.formLayout = QtWidgets.QFormLayout(self.groupBox_temp) + self.formLayout.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.formLayout.setFormAlignment(QtCore.Qt.AlignHCenter|QtCore.Qt.AlignTop) + self.formLayout.setObjectName("formLayout") + self.label_tmin = QtWidgets.QLabel(self.groupBox_temp) + self.label_tmin.setObjectName("label_tmin") + self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_tmin) + self.doubleSpinBox_tmin = QtWidgets.QDoubleSpinBox(self.groupBox_temp) + self.doubleSpinBox_tmin.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.doubleSpinBox_tmin.setDecimals(1) + self.doubleSpinBox_tmin.setProperty("value", 20.0) + self.doubleSpinBox_tmin.setObjectName("doubleSpinBox_tmin") + self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_tmin) + self.label_tmax = QtWidgets.QLabel(self.groupBox_temp) + self.label_tmax.setObjectName("label_tmax") + self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_tmax) + self.doubleSpinBox_tmax = QtWidgets.QDoubleSpinBox(self.groupBox_temp) + self.doubleSpinBox_tmax.setDecimals(1) + self.doubleSpinBox_tmax.setProperty("value", 95.0) + self.doubleSpinBox_tmax.setObjectName("doubleSpinBox_tmax") + self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_tmax) + self.label_dt = QtWidgets.QLabel(self.groupBox_temp) + self.label_dt.setObjectName("label_dt") + self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_dt) + self.doubleSpinBox_dt = QtWidgets.QDoubleSpinBox(self.groupBox_temp) + self.doubleSpinBox_dt.setDecimals(1) + self.doubleSpinBox_dt.setProperty("value", 1.0) + self.doubleSpinBox_dt.setObjectName("doubleSpinBox_dt") + self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_dt) + self.gridLayout.addWidget(self.groupBox_temp, 0, 0, 1, 1) + self.groupBox_signal_threshold = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_signal_threshold.setEnabled(True) + self.groupBox_signal_threshold.setCheckable(True) + self.groupBox_signal_threshold.setChecked(False) + self.groupBox_signal_threshold.setObjectName("groupBox_signal_threshold") + self.verticalLayout = QtWidgets.QVBoxLayout(self.groupBox_signal_threshold) + self.verticalLayout.setObjectName("verticalLayout") + self.spinBox_signal_threshold = QtWidgets.QSpinBox(self.groupBox_signal_threshold) + self.spinBox_signal_threshold.setMaximum(1000000) + self.spinBox_signal_threshold.setObjectName("spinBox_signal_threshold") + self.verticalLayout.addWidget(self.spinBox_signal_threshold) + self.gridLayout.addWidget(self.groupBox_signal_threshold, 1, 0, 1, 1) + self.groupBox_cbar = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_cbar.setEnabled(True) + self.groupBox_cbar.setCheckable(True) + self.groupBox_cbar.setChecked(False) + self.groupBox_cbar.setObjectName("groupBox_cbar") + self.formLayout_4 = QtWidgets.QFormLayout(self.groupBox_cbar) + self.formLayout_4.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout_4.setObjectName("formLayout_4") + self.label_cbar_start = QtWidgets.QLabel(self.groupBox_cbar) + self.label_cbar_start.setObjectName("label_cbar_start") + self.formLayout_4.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_cbar_start) + self.doubleSpinBox_cbar_start = QtWidgets.QDoubleSpinBox(self.groupBox_cbar) + self.doubleSpinBox_cbar_start.setDecimals(1) + self.doubleSpinBox_cbar_start.setObjectName("doubleSpinBox_cbar_start") + self.formLayout_4.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_cbar_start) + self.label_cbar_end = QtWidgets.QLabel(self.groupBox_cbar) + self.label_cbar_end.setObjectName("label_cbar_end") + self.formLayout_4.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_cbar_end) + self.doubleSpinBox_cbar_end = QtWidgets.QDoubleSpinBox(self.groupBox_cbar) + self.doubleSpinBox_cbar_end.setDecimals(1) + self.doubleSpinBox_cbar_end.setObjectName("doubleSpinBox_cbar_end") + self.formLayout_4.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_cbar_end) + self.gridLayout.addWidget(self.groupBox_cbar, 1, 1, 1, 1) + self.groupBox_cutoff = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_cutoff.setEnabled(True) + self.groupBox_cutoff.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.groupBox_cutoff.setCheckable(True) + self.groupBox_cutoff.setChecked(False) + self.groupBox_cutoff.setObjectName("groupBox_cutoff") + self.formLayout_2 = QtWidgets.QFormLayout(self.groupBox_cutoff) + self.formLayout_2.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) + self.formLayout_2.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.formLayout_2.setFormAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) + self.formLayout_2.setObjectName("formLayout_2") + self.label_cutoff_high = QtWidgets.QLabel(self.groupBox_cutoff) + self.label_cutoff_high.setObjectName("label_cutoff_high") + self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_cutoff_high) + self.doubleSpinBox_upper = QtWidgets.QDoubleSpinBox(self.groupBox_cutoff) + self.doubleSpinBox_upper.setPrefix("") + self.doubleSpinBox_upper.setDecimals(1) + self.doubleSpinBox_upper.setObjectName("doubleSpinBox_upper") + self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_upper) + self.label_cutoff_low = QtWidgets.QLabel(self.groupBox_cutoff) + self.label_cutoff_low.setObjectName("label_cutoff_low") + self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_cutoff_low) + self.doubleSpinBox_lower = QtWidgets.QDoubleSpinBox(self.groupBox_cutoff) + self.doubleSpinBox_lower.setDecimals(1) + self.doubleSpinBox_lower.setObjectName("doubleSpinBox_lower") + self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.doubleSpinBox_lower) + self.gridLayout.addWidget(self.groupBox_cutoff, 0, 1, 1, 1) + self.groupBox_output = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_output.setCheckable(True) + self.groupBox_output.setChecked(False) + self.groupBox_output.setObjectName("groupBox_output") + self.gridLayout_2 = QtWidgets.QGridLayout(self.groupBox_output) + self.gridLayout_2.setObjectName("gridLayout_2") + self.checkBox_saveplots = QtWidgets.QCheckBox(self.groupBox_output) + self.checkBox_saveplots.setObjectName("checkBox_saveplots") + self.gridLayout_2.addWidget(self.checkBox_saveplots, 1, 0, 1, 1) + self.buttonBox_output = QtWidgets.QDialogButtonBox(self.groupBox_output) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.buttonBox_output.sizePolicy().hasHeightForWidth()) + self.buttonBox_output.setSizePolicy(sizePolicy) + self.buttonBox_output.setOrientation(QtCore.Qt.Vertical) + self.buttonBox_output.setStandardButtons(QtWidgets.QDialogButtonBox.Open) + self.buttonBox_output.setObjectName("buttonBox_output") + self.gridLayout_2.addWidget(self.buttonBox_output, 3, 1, 1, 1) + self.lineEdit_output = QtWidgets.QLineEdit(self.groupBox_output) + self.lineEdit_output.setObjectName("lineEdit_output") + self.gridLayout_2.addWidget(self.lineEdit_output, 3, 0, 1, 1) + self.checkBox_savetables = QtWidgets.QCheckBox(self.groupBox_output) + self.checkBox_savetables.setObjectName("checkBox_savetables") + self.gridLayout_2.addWidget(self.checkBox_savetables, 2, 0, 1, 1) + self.gridLayout.addWidget(self.groupBox_output, 3, 0, 1, 2) + self.groupBox_conc = QtWidgets.QGroupBox(self.groupBox_processing) + self.groupBox_conc.setMinimumSize(QtCore.QSize(0, 0)) + self.groupBox_conc.setCheckable(True) + self.groupBox_conc.setChecked(False) + self.groupBox_conc.setObjectName("groupBox_conc") + self.formLayout_5 = QtWidgets.QFormLayout(self.groupBox_conc) + self.formLayout_5.setObjectName("formLayout_5") + self.label_direction = QtWidgets.QLabel(self.groupBox_conc) + self.label_direction.setObjectName("label_direction") + self.formLayout_5.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_direction) + self.comboBox_direction = QtWidgets.QComboBox(self.groupBox_conc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.comboBox_direction.sizePolicy().hasHeightForWidth()) + self.comboBox_direction.setSizePolicy(sizePolicy) + self.comboBox_direction.setObjectName("comboBox_direction") + self.comboBox_direction.addItem("") + self.comboBox_direction.addItem("") + self.formLayout_5.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.comboBox_direction) + self.label_conc = QtWidgets.QLabel(self.groupBox_conc) + self.label_conc.setObjectName("label_conc") + self.formLayout_5.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_conc) + self.lineEdit_conc = QtWidgets.QLineEdit(self.groupBox_conc) + self.lineEdit_conc.setObjectName("lineEdit_conc") + self.formLayout_5.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.lineEdit_conc) + self.label_conc_num = QtWidgets.QLabel(self.groupBox_conc) + self.label_conc_num.setObjectName("label_conc_num") + self.formLayout_5.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.label_conc_num) + self.spinBox_num_conc = QtWidgets.QSpinBox(self.groupBox_conc) + self.spinBox_num_conc.setReadOnly(True) + self.spinBox_num_conc.setButtonSymbols(QtWidgets.QAbstractSpinBox.NoButtons) + self.spinBox_num_conc.setObjectName("spinBox_num_conc") + self.formLayout_5.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.spinBox_num_conc) + self.label_par = QtWidgets.QLabel(self.groupBox_conc) + self.label_par.setObjectName("label_par") + self.formLayout_5.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_par) + self.lineEdit_par_label = QtWidgets.QLineEdit(self.groupBox_conc) + self.lineEdit_par_label.setObjectName("lineEdit_par_label") + self.formLayout_5.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.lineEdit_par_label) + self.gridLayout.addWidget(self.groupBox_conc, 2, 0, 1, 2) + self.formLayout_3.setWidget(2, QtWidgets.QFormLayout.SpanningRole, self.groupBox_processing) + self.buttonBox_process = QtWidgets.QDialogButtonBox(self.groupBox_experiment) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.buttonBox_process.sizePolicy().hasHeightForWidth()) + self.buttonBox_process.setSizePolicy(sizePolicy) + self.buttonBox_process.setMinimumSize(QtCore.QSize(0, 0)) + self.buttonBox_process.setStandardButtons(QtWidgets.QDialogButtonBox.NoButton) + self.buttonBox_process.setObjectName("buttonBox_process") + self.formLayout_3.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.buttonBox_process) + self.groupBox_results = QtWidgets.QGroupBox(self.splitter) + self.groupBox_results.setEnabled(True) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(6) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.groupBox_results.sizePolicy().hasHeightForWidth()) + self.groupBox_results.setSizePolicy(sizePolicy) + self.groupBox_results.setSizeIncrement(QtCore.QSize(0, 0)) + self.groupBox_results.setObjectName("groupBox_results") + self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.groupBox_results) + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.tabWidget = QtWidgets.QTabWidget(self.groupBox_results) + self.tabWidget.setEnabled(True) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tabWidget.sizePolicy().hasHeightForWidth()) + self.tabWidget.setSizePolicy(sizePolicy) + self.tabWidget.setMinimumSize(QtCore.QSize(300, 300)) + self.tabWidget.setSizeIncrement(QtCore.QSize(0, 0)) + self.tabWidget.setObjectName("tabWidget") + self.horizontalLayout_2.addWidget(self.tabWidget) + self.horizontalLayout.addWidget(self.splitter) + MainWindow.setCentralWidget(self.centralWidget) + self.menuBar = QtWidgets.QMenuBar(MainWindow) + self.menuBar.setGeometry(QtCore.QRect(0, 0, 4095, 30)) + self.menuBar.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.menuBar.setObjectName("menuBar") + self.menuFile = QtWidgets.QMenu(self.menuBar) + self.menuFile.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.menuFile.setObjectName("menuFile") + self.menuHelp = QtWidgets.QMenu(self.menuBar) + self.menuHelp.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) + self.menuHelp.setObjectName("menuHelp") + MainWindow.setMenuBar(self.menuBar) + self.statusBar = QtWidgets.QStatusBar(MainWindow) + self.statusBar.setObjectName("statusBar") + MainWindow.setStatusBar(self.statusBar) + self.actionQuit = QtWidgets.QAction(MainWindow) + self.actionQuit.setObjectName("actionQuit") + self.actionAbout = QtWidgets.QAction(MainWindow) + self.actionAbout.setObjectName("actionAbout") + self.actionAbout_Qt = QtWidgets.QAction(MainWindow) + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap(":/qtlogo.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.actionAbout_Qt.setIcon(icon) + self.actionAbout_Qt.setObjectName("actionAbout_Qt") + self.menuFile.addAction(self.actionQuit) + self.menuHelp.addAction(self.actionAbout) + self.menuHelp.addAction(self.actionAbout_Qt) + self.menuBar.addAction(self.menuFile.menuAction()) + self.menuBar.addAction(self.menuHelp.menuAction()) + self.label_instrument.setBuddy(self.comboBox_instrument) + self.label_tmin.setBuddy(self.doubleSpinBox_tmin) + self.label_tmax.setBuddy(self.doubleSpinBox_tmax) + self.label_dt.setBuddy(self.doubleSpinBox_dt) + self.label_cbar_start.setBuddy(self.doubleSpinBox_cbar_start) + self.label_cbar_end.setBuddy(self.doubleSpinBox_cbar_end) + self.label_cutoff_high.setBuddy(self.doubleSpinBox_upper) + self.label_cutoff_low.setBuddy(self.doubleSpinBox_lower) + + self.retranslateUi(MainWindow) + self.tabWidget.setCurrentIndex(-1) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "PyDSF")) + self.groupBox_experiment.setTitle(_translate("MainWindow", "Experimental Setup")) + self.label_instrument.setText(_translate("MainWindow", "I&nstrument")) + self.comboBox_instrument.setItemText(0, _translate("MainWindow", "Analytik Jena qTOWER 2.0/2.2")) + self.groupBox_data.setToolTip(_translate("MainWindow", "Add data files to the experiment. If multiple files are loaded, they are treated as replicates.
")) + self.groupBox_data.setTitle(_translate("MainWindow", "Data File")) + self.groupBox_replicates.setTitle(_translate("MainWindow", "Replicates")) + self.radioButton_rep_rows.setText(_translate("MainWindow", "Rows")) + self.radioButton_rep_files.setText(_translate("MainWindow", "Files")) + self.label_rows.setText(_translate("MainWindow", "Rows to average")) + self.groupBox_processing.setTitle(_translate("MainWindow", "Processing Options")) + self.groupBox_temp.setToolTip(_translate("MainWindow", "Temperature range of the data points. Only applies, if the data file does not contain any temperature information.
")) + self.groupBox_temp.setTitle(_translate("MainWindow", "Temperature settings")) + self.label_tmin.setText(_translate("MainWindow", "Tmin
")) + self.doubleSpinBox_tmin.setSuffix(_translate("MainWindow", " °C")) + self.label_tmax.setText(_translate("MainWindow", "Tmax
")) + self.doubleSpinBox_tmax.setSuffix(_translate("MainWindow", " °C")) + self.label_dt.setText(_translate("MainWindow", "ΔT
")) + self.doubleSpinBox_dt.setSuffix(_translate("MainWindow", " °C")) + self.groupBox_signal_threshold.setToolTip(_translate("MainWindow", "If the signal exceeds this threshold, the coresponding well is assumed to be denatured.
")) + self.groupBox_signal_threshold.setTitle(_translate("MainWindow", "Signal &Threshold")) + self.groupBox_cbar.setToolTip(_translate("MainWindow", "Defines the range of the colorbar used for the Tm heatmap.
")) + self.groupBox_cbar.setTitle(_translate("MainWindow", "&Colorbar")) + self.label_cbar_start.setText(_translate("MainWindow", "S&tart")) + self.doubleSpinBox_cbar_start.setSuffix(_translate("MainWindow", " °C")) + self.label_cbar_end.setText(_translate("MainWindow", "En&d")) + self.doubleSpinBox_cbar_end.setSuffix(_translate("MainWindow", " °C")) + self.groupBox_cutoff.setToolTip(_translate("MainWindow", "Only Tm values within this limit are considered valid.
")) + self.groupBox_cutoff.setTitle(_translate("MainWindow", "&Cutoff")) + self.label_cutoff_high.setText(_translate("MainWindow", "&Upper")) + self.doubleSpinBox_upper.setSuffix(_translate("MainWindow", " °C")) + self.label_cutoff_low.setText(_translate("MainWindow", "Lower")) + self.doubleSpinBox_lower.setSuffix(_translate("MainWindow", " °C")) + self.groupBox_output.setTitle(_translate("MainWindow", "Sa&ve processing results")) + self.checkBox_saveplots.setText(_translate("MainWindow", "Save plots")) + self.lineEdit_output.setToolTip(_translate("MainWindow", "Output results to this path")) + self.checkBox_savetables.setText(_translate("MainWindow", "Save tabular results")) + self.groupBox_conc.setTitle(_translate("MainWindow", "Parameter Dependency")) + self.label_direction.setText(_translate("MainWindow", "Direction")) + self.comboBox_direction.setItemText(0, _translate("MainWindow", "Horizontal")) + self.comboBox_direction.setItemText(1, _translate("MainWindow", "Vertical")) + self.label_conc.setText(_translate("MainWindow", "Parameter Values")) + self.lineEdit_conc.setToolTip(_translate("MainWindow", "Comma-seperated list of concentrations. This has to match the number of wells in either horizontal or vertical dimension. If a well is unused, either leave blank or use "NaN" as input.
")) + self.label_conc_num.setText(_translate("MainWindow", "Number of wells")) + self.spinBox_num_conc.setToolTip(_translate("MainWindow", "Displays the number of wells specified above.
")) + self.label_par.setText(_translate("MainWindow", "Parameter Label")) + self.lineEdit_par_label.setPlaceholderText(_translate("MainWindow", "Parameter [au]")) + self.groupBox_results.setTitle(_translate("MainWindow", "Plots")) + self.menuFile.setTitle(_translate("MainWindow", "Fi&le")) + self.menuHelp.setTitle(_translate("MainWindow", "Hel&p")) + self.actionQuit.setText(_translate("MainWindow", "&Quit")) + self.actionAbout.setText(_translate("MainWindow", "&About")) + self.actionAbout_Qt.setText(_translate("MainWindow", "About &Qt")) + diff --git a/ui/mainwindow.py b/ui/mainwindow.py index 8f70d67..d8646d1 100644 --- a/ui/mainwindow.py +++ b/ui/mainwindow.py @@ -57,6 +57,15 @@ class Worker(QRunnable): files = [] for item in items: files.append(item.text()) + + replicates = self.owner.groupBox_replicates.isChecked() + row_replicates = self.owner.radioButton_rep_rows.isChecked() + + if replicates and row_replicates: + average_rows = self.owner.spinBox_avg_rows.value() + else: + average_rows = None + self.exp = Experiment(instrument=self.owner.instrument, files=files, t1=self.owner.doubleSpinBox_tmin.value(), @@ -67,7 +76,9 @@ class Worker(QRunnable): cutoff_low=c_lower, cutoff_high=c_upper, signal_threshold=signal_threshold, - color_range=cbar_range) + color_range=cbar_range, + concentrations=self.owner.concentrations, + average_rows=average_rows) self.exp.analyze() self.signals.finished.emit() @@ -77,7 +88,6 @@ class TaskSignals(QObject): class Tasks(QObject): - def __init__(self): super(Tasks, self).__init__() @@ -116,7 +126,6 @@ class Tasks(QObject): class MainWindow(QMainWindow, Ui_MainWindow): - """ Class documentation goes here. """ @@ -141,10 +150,13 @@ class MainWindow(QMainWindow, Ui_MainWindow): QDialogButtonBox.AcceptRole) self.tasks = Tasks() self.tasks.signals.finished.connect(self.on_processing_finished) + self.lineEdit_conc.textChanged.connect( + self.on_lineEdit_conc_textChanged) self.worker = None self.outputPath = None - self.instrument = None + self.concentrations = None self.populateInstrumentList() + self.instrument = self.getSelectedInstrument() def populateInstrumentList(self): self.instruments = [AnalytikJenaqTower2()] @@ -152,6 +164,7 @@ class MainWindow(QMainWindow, Ui_MainWindow): instrument = self.instruments[i] self.comboBox_instrument.setItemText(i, instrument.name) + @pyqtSlot() def getInstrumentFromName(self, name): for instrument in self.instruments: if instrument.name == name: @@ -178,7 +191,7 @@ class MainWindow(QMainWindow, Ui_MainWindow): self.groupBox_replicates.setChecked(True) self.radioButton_rep_files.setEnabled(True) elif button == self.buttonBox_open_reset.button( - QDialogButtonBox.Reset): + QDialogButtonBox.Reset): self.listWidget_data.clear() @pyqtSlot("QAbstractButton*") @@ -202,8 +215,11 @@ class MainWindow(QMainWindow, Ui_MainWindow): else: self.groupBox_temp.setEnabled(True) - def generate_plot_tab(self, name): - tab = MplWidget(parent=self.tabWidget) + def generate_plot_tab(self, name, mouse_event=False): + if mouse_event: + tab = MplWidget(parent=self.tabWidget, mouse_event=True) + else: + tab = MplWidget(parent=self.tabWidget) tab.setObjectName(name) return tab @@ -220,7 +236,8 @@ class MainWindow(QMainWindow, Ui_MainWindow): plotter = PlotResults() if plate.id != 'average': - tab = self.generate_plot_tab("tab_heatmap_{}".format(plate.id)) + tab = self.generate_plot_tab("tab_heatmap_{}".format(plate.id), + mouse_event=True) title = _translate("MainWindow", "Heatmap #") self.tabWidget.addTab(tab, title + str(plate.id)) plotter.plot_tm_heatmap_single(plate, tab) @@ -243,8 +260,26 @@ class MainWindow(QMainWindow, Ui_MainWindow): if self.checkBox_saveplots.isChecked(): tab.canvas.save( "{}/derivatives_{}.svg".format(self.outputPath, plate.id)) + + if self.groupBox_conc.isChecked(): + tab = self.generate_plot_tab("tab_derivative_{}".format( + plate.id)) + title = _translate("MainWindow", "Parameter Dependency #") + self.tabWidget.addTab(tab, title + str(plate.id)) + if self.lineEdit_par_label.text(): + par_label = self.lineEdit_par_label.text() + plotter.plot_concentration_dependency( + plate, + tab, + parameter_label=par_label) + else: + plotter.plot_concentration_dependency(plate, tab) + if self.checkBox_saveplots.isChecked(): + tab.canvas.save( + "{}/para_{}.svg".format(self.outputPath, plate.id)) else: - tab = self.generate_plot_tab("tab_heatmap_{}".format(plate.id)) + tab = self.generate_plot_tab("tab_heatmap_{}".format(plate.id), + mouse_event=True) title = _translate("MainWindow", "Heatmap ") self.tabWidget.addTab(tab, title + str(plate.id)) plotter.plot_tm_heatmap_single(plate, tab) @@ -252,6 +287,26 @@ class MainWindow(QMainWindow, Ui_MainWindow): tab.canvas.save( "{}/heatmap_{}.svg".format(self.outputPath, plate.id)) + if self.groupBox_conc.isChecked(): + tab = self.generate_plot_tab("tab_derivative_{}".format( + plate.id)) + title = _translate("MainWindow", "Parameter Dependency #") + self.tabWidget.addTab(tab, title + str(plate.id)) + if self.lineEdit_par_label.text(): + par_label = self.lineEdit_par_label.text() + plotter.plot_concentration_dependency( + plate, + tab, + parameter_label=par_label, + error_bars=True) + else: + plotter.plot_concentration_dependency(plate, + tab, + error_bars=True) + if self.checkBox_saveplots.isChecked(): + tab.canvas.save( + "{}/para_{}.svg".format(self.outputPath, plate.id)) + @pyqtSlot() def on_buttonBox_process_accepted(self): """ @@ -267,8 +322,10 @@ class MainWindow(QMainWindow, Ui_MainWindow): _translate("MainWindow", "No data file loaded!"), QMessageBox.Close, QMessageBox.Close) return + if self.groupBox_conc.isChecked(): + self.concentrations = self.lineEdit_conc.text().split(',') if (self.groupBox_output.isChecked() and - self.lineEdit_output.text().strip() == ''): + self.lineEdit_output.text().strip() == ''): QMessageBox.critical( self, _translate("MainWindow", "Error"), _translate("MainWindow", "No output path set!"), @@ -323,8 +380,8 @@ class MainWindow(QMainWindow, Ui_MainWindow): if self.checkBox_savetables.isChecked(): for plate in exp.plates: plate.write_tm_table( - '{}/plate_{}_tm.csv'.format(self.outputPath, - str(plate.id))) + '{}/plate_{}_tm.csv'.format(self.outputPath, str( + plate.id))) plate.write_data_table( '{}/plate_{}_dI_dT.csv'.format(self.outputPath, str(plate.id)), @@ -380,10 +437,25 @@ class MainWindow(QMainWindow, Ui_MainWindow): dialog.ui.setupUi(dialog) dialog.exec_() - @pyqtSlot() def on_actionAbout_Qt_triggered(self): """ Slot documentation goes here. """ QApplication.aboutQt() + + @pyqtSlot() + def on_lineEdit_conc_textChanged(self): + """ + Slot documentation goes here. + """ + num_conc = len(self.lineEdit_conc.text().split(',')) + self.spinBox_num_conc.setValue(num_conc) + if self.comboBox_direction.currentIndex() == 0: + max_wells = self.instrument.wells_horizontal + else: + max_wells = self.instrument.wells_vertical + if num_conc > max_wells: + self.spinBox_num_conc.setStyleSheet("QSpinBox { color : red; }") + else: + self.spinBox_num_conc.setStyleSheet("QSpinBox { color : black; }") diff --git a/ui/mainwindow.ui b/ui/mainwindow.ui index c2a4596..a74f0e8 100644 --- a/ui/mainwindow.ui +++ b/ui/mainwindow.ui @@ -79,7 +79,7 @@