예제 #1
0
 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
예제 #2
0
 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
예제 #3
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()
예제 #4
0
 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
예제 #5
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)