def __init__(self, parent=None): super(MassTabViewerGUI, self).__init__(parent) self.ui = Ui_DockWidget_MassTabViewer() self.ui.setupUi(self)
class MassTabViewerGUI(QDockWidget): """ classdocs """ """ constructor """ def __init__(self, parent=None): super(MassTabViewerGUI, self).__init__(parent) self.ui = Ui_DockWidget_MassTabViewer() self.ui.setupUi(self) def setup(self, masstab_selector, analysis): self.ms = masstab_selector self.ana = analysis self.mass_list = [] self.dir_name = "" self.short_name = "" self.clear_text() self.__connect_events() def __connect_events(self): self.ms.masstabViewRaisedSignal.connect(self.update_columns) self.ana.masstabRaisedSignal.connect(self.update_filename) self.ui.pushButton_Clear.clicked.connect(self.clear_text) self.ui.pushButton_Automatic.clicked.connect(self.automatic_fill) self.ui.pushButton_Write.clicked.connect(self.write_file) self.ui.doubleSpinBox_Accuracy.setValue(0.2) self.ui.doubleSpinBox_Accuracy.valueChanged.connect(self.acc_event) def acc_event(self): log.debug("event from %s", self.sender()) self.acc = float(self.ui.doubleSpinBox_Accuracy.value()) def update_columns(self, mass_list): log.debug("event from %s", self.sender()) # self.__clear_text() self.mass_list = sorted(mass_list) text = "\n" + " " * 24 for mass in self.mass_list: text = text + (str(mass) + "_M").ljust(9) + \ (str(mass) + "_I").ljust(9) text = text + "\n" + "=" * 21 self.ui.plainTextEdit_Viewer.appendPlainText(text) def update_filename(self, filename): log.debug("event from %s", self.sender()) self.ui.pushButton_Automatic.setEnabled(True) self.ui.pushButton_Write.setEnabled(True) self.short_name = os.path.basename(filename) self.dir_name = os.path.dirname(filename) def clear_text(self): log.debug("event from %s", self.sender()) self.spectrum_name = "" self.ui.plainTextEdit_Viewer.clear() def automatic_fill(self): log.debug("event from %s", self.sender()) if len(self.mass_list) == 0: return # if self.ana.pip.signal is None: # return x = self.ana.pip.mass y = self.ana.pip.spectrum self.acc_event() p = Peaks() dict_m, dict_i = p.masstab_peaks(x, y, self.mass_list, self.acc) text = str(self.short_name).ljust(24) for mass in self.mass_list: text = text + \ "{:.4f}".format(float(dict_m[mass])).ljust(9) + \ "{:.3f}".format(float(dict_i[mass])).ljust(9) self.ui.plainTextEdit_Viewer.appendPlainText(text) def write_file(self): log.debug("event from %s", self.sender()) try: new_dir = self.dir_name.replace("DATA", "DATA" + os.sep + "MASS") if not os.path.isdir(new_dir): os.makedirs(new_dir) answer = QFileDialog.getSaveFileName(self, 'MassTab File', new_dir, "*.txt") if (str(answer[0]).endswith(".txt")): filename = os.path.abspath(answer[0]) else: filename = os.path.abspath(answer[0]) + ".txt" log.debug("Written file %s...", filename) with open(filename, mode='w', encoding='utf_8') as file: file.write(self.ui.plainTextEdit_Viewer.toPlainText()) except (IOError) as error: log.error("Unable to write into: %s", error)
class MassTabViewerGUI(QDockWidget): """ classdocs """ """ constructor """ def __init__(self, parent=None): super(MassTabViewerGUI, self).__init__(parent) self.ui = Ui_DockWidget_MassTabViewer() self.ui.setupUi(self) def setup(self, masstab_selector, analysis): self.ms = masstab_selector self.ana = analysis self.mass_list = [] self.dir_name = "" self.short_name = "" self.clear_text() self.__connect_events() def __connect_events(self): self.ms.masstabViewRaisedSignal.connect(self.update_columns) self.ana.masstabRaisedSignal.connect(self.update_filename) self.ui.pushButton_Clear.clicked.connect(self.clear_text) self.ui.pushButton_Automatic.clicked.connect(self.automatic_fill) self.ui.pushButton_Write.clicked.connect(self.write_file) self.ui.doubleSpinBox_Accuracy.setValue(0.2) self.ui.doubleSpinBox_Accuracy.valueChanged.connect(self.acc_event) def acc_event(self): log.debug("event from %s", self.sender()) self.acc = float(self.ui.doubleSpinBox_Accuracy.value()) def update_columns(self, mass_list): log.debug("event from %s", self.sender()) # self.__clear_text() self.mass_list = sorted(mass_list) text = "\n" + " " * 21 for mass in self.mass_list: text = text + (str(mass) + "_M").ljust(8) + \ (str(mass) + "_I").ljust(8) text = text + "\n" + "=" * 18 self.ui.plainTextEdit_Viewer.appendPlainText(text) def update_filename(self, pip): log.debug("event from %s", self.sender()) self.ui.pushButton_Automatic.setEnabled(True) self.ui.pushButton_Write.setEnabled(True) self.short_name = os.path.basename(pip.spectrum_name) self.dir_name = os.path.dirname(pip.spectrum_name) def clear_text(self): log.debug("event from %s", self.sender()) self.spectrum_name = "" self.ui.plainTextEdit_Viewer.clear() def automatic_fill(self): log.debug("event from %s", self.sender()) if len(self.mass_list) == 0: return # if self.ana.pip.signal is None: # return x = self.ana.pip.data.mass y = self.ana.pip.data.spectrum self.acc_event() p = Peaks() dict_m, dict_i = p.masstab_peaks(x, y, self.mass_list, self.acc) text = str(self.short_name).ljust(21) for mass in self.mass_list: text = text + \ "{:.3f}".format(float(dict_m[mass])).ljust(8) + \ "{:.0f}".format(float(dict_i[mass])).ljust(8) self.ui.plainTextEdit_Viewer.appendPlainText(text) def write_file(self): log.debug("event from %s", self.sender()) try: answer = QFileDialog.getSaveFileName(self, 'MassTab File', self.dir_name) filename = os.path.abspath(answer[0]) log.debug("Written file %s...", filename) with open(filename, mode='w', encoding='utf_8') as file: file.write(self.ui.plainTextEdit_Viewer.toPlainText()) except (IOError) as error: log.error("Unable to write into: %s", error)