def prt_gos_grouped(self, prt, **kws_grp): """Print grouped GO list.""" prtfmt = self.datobj.kws['fmtgo'] wrobj = WrXlsxSortedGos(self.name, self.sortobj) # Keyword arguments: control content: hdrgo_prt section_prt top_n use_sections desc2nts = self.sortobj.get_desc2nts(**kws_grp) wrobj.prt_txt_desc2nts(prt, desc2nts, prtfmt)
def write(self, fout_xlsx=None, fout_txt=None, verbose=False): """Command-line interface for go_draw script.""" sortby = self._get_fncsortnt(self.objgrpd.grprobj.gosubdag.prt_attr['flds']) kws_sort = {'sortby' if verbose else 'section_sortby': sortby} sortobj = Sorter(self.objgrpd.grprobj, **kws_sort) # KWS: hdrgo_prt=True section_prt=None top_n=None use_sections=True # RET: {sortobj, sections, hdrgo_prt} or {sortobj flat hdrgo_prt} desc2nts = sortobj.get_desc2nts_fnc( hdrgo_prt=verbose, section_prt=True, top_n=None, use_sections=True) # print('FFFF', desc2nts['flds']) # Write user GO IDs in sections objgowr = WrXlsxSortedGos("init", sortobj, self.objgrpd.ver_list) if fout_xlsx is not None: kws_xlsx = {'shade_hdrgos':verbose} if not verbose: kws_xlsx['prt_flds'] = [f for f in desc2nts['flds'] if f not in self.excl_flds] objgowr.wr_xlsx_nts(fout_xlsx, desc2nts, **kws_xlsx) fout_desc = '{BASE}_desc.txt'.format(BASE=os.path.splitext(fout_xlsx)[0]) self._wr_ver_n_key(fout_desc, verbose) if fout_txt is not None: self._wr_txt_nts(fout_txt, desc2nts, objgowr, verbose) if fout_xlsx is None and fout_txt is None: self._prt_ver_n_key(sys.stdout, verbose) prtfmt = self._get_prtfmt(objgowr, verbose) summary_dct = objgowr.prt_txt_desc2nts(sys.stdout, desc2nts, prtfmt) self._prt_ver_n_key(sys.stdout, verbose) if summary_dct: print("\n{N} GO IDs in {S} sections".format( N=desc2nts['num_items'], S=desc2nts['num_sections']))