def parse_configuration(self, config_file=None): #parse configuration if config_file: DegenPrimerConfig.parse_configuration(self, unicode(config_file)) else: DegenPrimerConfig.parse_configuration(self) #update form fields self._update_fields() self._fields_empty = False
def __init__(self): #parent's constructors DegenPrimerConfig.__init__(self) QMainWindow.__init__(self) #working directory self._cwdir = os.getcwd() #session independent configuration self._settings = QSettings() #try to load UI self.load_ui(self._ui_file, self) #fields Field.customize_field = self._customize_field self._fields = dict() #config and cwdir path choosers self._build_group_gui(self._config_group) #job-id label self._job_id_label = QLabel(self) self.configForm.addWidget(self._job_id_label) #sequence db view self._loaded_files = [] self._seq_db_widget = None self._seq_db_box = None self._seq_db_button = None for group in self._option_groups: self._build_group_gui(group) #setup default values self._reset_fields() #setup buttons self._run_widgets = (self.abortButton, self.elapsedTimeLineEdit, self.elapsedTimeLabel,) self._idle_widgets = (self.saveButton, self.runButton, self.resetButton, self.reloadButton,) self.reloadButton.clicked.connect(self.reload_config) self.resetButton.clicked.connect(self._reset_fields) self.saveButton.clicked.connect(self._save_config) self.runButton.clicked.connect(self._analyse) self.abortButton.clicked.connect(self._abort_analysis) self._show_run_specific_widgets(False) #setup terminal output self._append_terminal_output.connect(self.terminalOutput.insertPlainText) self.terminalOutput.textChanged.connect(self.terminalOutput.ensureCursorVisible) #pipeline thread self._pipeline_thread = SubprocessThread(degen_primer_pipeline) self._pipeline_thread.started.connect(self.lock_buttons) self._pipeline_thread.results_received.connect(self.register_reports) self._pipeline_thread.finished.connect(self.show_results) self._pipeline_thread.finished.connect(self.unlock_buttons) self._pipeline_thread.update_timer.connect(self.update_timer) self._pipeline_thread.message_received.connect(self.show_message) self._pipeline_thread_stop.connect(self._pipeline_thread.stop) #restore GUI state self._restore_mainwindow_state()
def _do_work(self, options): #read in configuration config = DegenPrimerConfig.from_options(options) #else, run the pipeline if self._pipeline.run(config) == 0: #pass back collected reports self._con.send(config.reports) return 0
def __init__(self): #parent's constructors DegenPrimerConfig.__init__(self) QMainWindow.__init__(self) #working directory self._cwdir = os.getcwd() #session independent configuration self._settings = QSettings() #try to load UI self.load_ui(self._ui_file, self) #fields Field.customize_field = self._customize_field self._fields = dict() #config and cwdir path choosers self._build_group_gui(self._config_group) #job-id label self._job_id_label = QLabel(self) self.configForm.addWidget(self._job_id_label) #sequence db view self._loaded_files = [] self._seq_db_widget = None self._seq_db_box = None self._seq_db_button = None for group in self._option_groups: self._build_group_gui(group) #setup default values self._reset_fields() #setup buttons self._run_widgets = ( self.abortButton, self.elapsedTimeLineEdit, self.elapsedTimeLabel, ) self._idle_widgets = ( self.saveButton, self.runButton, self.resetButton, self.reloadButton, ) self.reloadButton.clicked.connect(self.reload_config) self.resetButton.clicked.connect(self._reset_fields) self.saveButton.clicked.connect(self._save_config) self.runButton.clicked.connect(self._analyse) self.abortButton.clicked.connect(self._abort_analysis) self._show_run_specific_widgets(False) #setup terminal output self._append_terminal_output.connect( self.terminalOutput.insertPlainText) self.terminalOutput.textChanged.connect( self.terminalOutput.ensureCursorVisible) #pipeline thread self._pipeline_thread = SubprocessThread(degen_primer_pipeline) self._pipeline_thread.started.connect(self.lock_buttons) self._pipeline_thread.results_received.connect(self.register_reports) self._pipeline_thread.finished.connect(self.show_results) self._pipeline_thread.finished.connect(self.unlock_buttons) self._pipeline_thread.update_timer.connect(self.update_timer) self._pipeline_thread.message_received.connect(self.show_message) self._pipeline_thread_stop.connect(self._pipeline_thread.stop) #restore GUI state self._restore_mainwindow_state()
def _override_option(self, option): return DegenPrimerConfig._override_option(self, option)