def create_results_tab(self, ample_dict): if self.ccp4i2 or not self.summary_tab_id or not self._got_mrbump_results( ample_dict): return mrb_results = ample_dict.get('mrbump_results') if mrb_results == self.old_mrbump_results: return self.old_mrbump_results = mrb_results if not self.results_tab_id: self.results_tab_id = "results_tab" pyrvapi.rvapi_insert_tab(self.results_tab_id, "Results", self.summary_tab_id, False) # Delete old sections: pyrvapi.rvapi_flush() for section_id in self.results_tab_sections: pyrvapi.rvapi_remove_widget(section_id) pyrvapi.rvapi_flush() self.results_tab_sections = [] ensemble_results = ample_dict[ 'ensembles_data'] if 'ensembles_data' in ample_dict[ 'ensembles_data'] else None mrbsum = mrbump_util.ResultsSummary( results=mrb_results[0:min(len(mrb_results), mrbump_util.TOP_KEEP)]) mrbsum.sortResults(prioritise="SHELXE_CC") self.results_section( self.results_tab_id, mrbsum.results, ensemble_results, "Top {0} SHELXE Results".format(mrbump_util.TOP_KEEP)) mrbsum.sortResults(prioritise="PHASER_TFZ") # Add seperator between results - doesn't work as not deleted on refresh # pyrvapi.rvapi_add_text("<br/><hr/><br/>", self.results_tab_id, 0, 0, 1, 1) self.results_section( self.results_tab_id, mrbsum.results, ensemble_results, "Top {0} PHASER Results".format(mrbump_util.TOP_KEEP)) return self.results_tab_id
def create_results_tab(self, ample_dict): if self.ccp4i2 or not self.summary_tab_id or not self._got_mrbump_results(ample_dict): return mrb_results = ample_dict.get('mrbump_results') if mrb_results == self.old_mrbump_results: return self.old_mrbump_results = mrb_results if not self.results_tab_id: self.results_tab_id = "results_tab" pyrvapi.rvapi_insert_tab(self.results_tab_id, "Results", self.summary_tab_id, False) # Delete old sections: pyrvapi.rvapi_flush() for section_id in self.results_tab_sections: pyrvapi.rvapi_remove_widget(section_id) pyrvapi.rvapi_flush() self.results_tab_sections = [] ensemble_results = ample_dict['ensembles_data'] if 'ensembles_data' in ample_dict['ensembles_data'] else None mrbsum = mrbump_util.ResultsSummary(results=mrb_results[0:min(len(mrb_results),mrbump_util.TOP_KEEP)]) mrbsum.sortResults(prioritise="SHELXE_CC") self.results_section(self.results_tab_id, mrbsum.results, ensemble_results, "Top {0} SHELXE Results".format(mrbump_util.TOP_KEEP)) mrbsum.sortResults(prioritise="PHASER_TFZ") self.results_section(self.results_tab_id, mrbsum.results, ensemble_results, "Top {0} PHASER Results".format(mrbump_util.TOP_KEEP)) return self.results_tab_id
def create_citation_tab(self, ample_dict): if self.citation_tab_id: return self.citation_tab_id = "citation_tab" pyrvapi.rvapi_insert_tab(self.citation_tab_id, "Citation", self.log_tab_id, False) refMgr = reference_manager.ReferenceManager(ample_dict) bibtex_file = refMgr.save_citations_to_file(ample_dict) if self.ccp4i2: # The horror of ccp4i2 means that this all gets dumped into xml so we can't use any markup tags tdata = refMgr.citations_as_text else: tdata = refMgr.methods_as_html tdata += refMgr.citations_as_html tdata += '<hr><p>A bibtex file with the relevant citations has been saved to: {}</p>'.format( bibtex_file) pyrvapi.rvapi_add_text(tdata, self.citation_tab_id, 0, 0, 1, 1) if not self.ccp4i2: pyrvapi.rvapi_add_data( "bibtex_file", "Citations as BIBTEX", self.fix_path(bibtex_file), "text", self.citation_tab_id, 2, 0, 1, 1, True, ) return self.citation_tab_id
def _create_summary_tab(self): if not self.summary_tab_id: self.summary_tab_id = "summary_tab" title = "Summary" pyrvapi.rvapi_insert_tab(self.summary_tab_id, title, self.citation_tab_id, False) # Create pending section until we have data to show self.summary_tab_pending_sec_id = 'summary_tab_pending' pyrvapi.rvapi_add_section(self.summary_tab_pending_sec_id, "Processing...", self.summary_tab_id, 0, 0, 1, 1, True) rstr = "<p>No results are currently available. Please check back later.</p>" pyrvapi.rvapi_add_text(rstr, self.summary_tab_pending_sec_id, 0, 0, 1, 1) return
def create_citation_tab(self, ample_dict): if self.citation_tab_id: return self.citation_tab_id = "citation_tab" pyrvapi.rvapi_insert_tab(self.citation_tab_id, "Citation", self.log_tab_id, False) refMgr = reference_manager.ReferenceManager(ample_dict) bibtex_file = refMgr.save_citations_to_file(ample_dict) if self.ccp4i2: # The horror of ccp4i2 means that this all gets dumped into xml so we can't use any markup tags tdata = refMgr.citations_as_text else: tdata = refMgr.methods_as_html tdata += refMgr.citations_as_html tdata += '<hr><p>A bibtex file with the relevant citations has been saved to: {}</p>'.format(bibtex_file) pyrvapi.rvapi_add_text(tdata, self.citation_tab_id, 0, 0, 1, 1) if not self.ccp4i2: pyrvapi.rvapi_add_data("bibtex_file", "Citations as BIBTEX", self.fix_path(bibtex_file), "text", self.citation_tab_id, 2, 0, 1, 1, True) return self.citation_tab_id
def create_results_tab(self, ample_dict): if self.ccp4i2 or not self.summary_tab_id: return if not self._got_mrbump_results(ample_dict): return mrb_results = ample_dict['mrbump_results'] if mrb_results == self.old_mrbump_results: return self.old_mrbump_results = mrb_results if not self.results_tab_id: self.results_tab_id = "results_tab" # Insert results tab before summary tab pyrvapi.rvapi_insert_tab( self.results_tab_id, "Results", self.summary_tab_id, False) # Last arg is "open" - i.e. show or hide # Delete old sections: pyrvapi.rvapi_flush() for section_id in self.results_tab_sections: pyrvapi.rvapi_remove_widget(section_id) pyrvapi.rvapi_flush() self.results_tab_sections = [] ensemble_results = ample_dict[ 'ensembles_data'] if 'ensembles_data' in ample_dict[ 'ensembles_data'] else None mrbsum = mrbump_util.ResultsSummary( results=mrb_results[0:min(len(mrb_results), mrbump_util.TOP_KEEP)]) mrbsum.sortResults(prioritise="SHELXE_CC") self.results_section( self.results_tab_id, mrbsum.results, ensemble_results, "Top {0} SHELXE Results".format(mrbump_util.TOP_KEEP)) mrbsum.sortResults(prioritise="PHASER_TFZ") self.results_section( self.results_tab_id, mrbsum.results, ensemble_results, "Top {0} PHASER Results".format(mrbump_util.TOP_KEEP)) return self.results_tab_id
def _create_summary_tab(self): if not self.summary_tab_id: self.summary_tab_id = "summary_tab" title = "Summary" if self.ccp4i2: # Create summary tab pyrvapi.rvapi_add_tab( self.summary_tab_id, title, True) # Last arg is "open" - i.e. show or hide else: # Insert summary tab before log tab pyrvapi.rvapi_insert_tab( self.summary_tab_id, title, self.log_tab_id, False) # Last arg is "open" - i.e. show or hide # Create pending section until we have data to show self.summary_tab_pending_sec_id = 'summary_tab_pending' pyrvapi.rvapi_add_section(self.summary_tab_pending_sec_id, "Processing...", self.summary_tab_id, 0, 0, 1, 1, True) rstr = "<p>No results are currently available. Please check back later. when your structure will have been solved. Honest.</p>" pyrvapi.rvapi_add_text(rstr, self.summary_tab_pending_sec_id, 0, 0, 1, 1) return
def insertTab(self, tabId, tabName, beforeTabId, opened): pyrvapi.rvapi_insert_tab(tabId, tabName, beforeTabId, opened) return self.setOutputPage([tabId, 0])
def _insert_tab_to_pyrvapi(self, id, title, other_tab_id, opened): pyrvapi.rvapi_insert_tab(id, title, other_tab_id, opened)