Example #1
0
 def prt_txt(self, prt, goea_results, prtfmt=None, **kws):
     """Print GOEA results in text format."""
     if prtfmt is None:
         prtfmt = "{GO} {NS} {p_uncorrected:5.2e} {study_count:>5} {name}\n"
     prtfmt = self.adjust_prtfmt(prtfmt)
     prt_flds = RPT.get_fmtflds(prtfmt)
     data_nts = get_goea_nts_prt(goea_results, prt_flds, **kws)
     RPT.prt_txt(prt, data_nts, prtfmt, prt_flds, **kws)
     return data_nts
Example #2
0
 def prt_sections(prt, sections, prtfmt, secspc=False):
     """Print GO namedtuples in their sections."""
     num_goids = 0
     for section, nts_flat in sections:
         # Add an empty line between sections, if desired
         if secspc:
             prt.write("\n")
         prt.write("{SECTION}\n".format(SECTION=section))
         num_nts = len(nts_flat)
         num_goids += num_nts
         prt_txt(prt, nts_flat, prtfmt=prtfmt)
Example #3
0
 def prt_txt(prt, goea_results, prtfmt=None, **kws):
     """Print GOEA results in text format."""
     objprt = PrtFmt()
     if prtfmt is None:
         flds = ['GO', 'NS', 'p_uncorrected',
                 'ratio_in_study', 'ratio_in_pop', 'depth', 'name', 'study_items']
         prtfmt = objprt.get_prtfmt_str(flds)
     prtfmt = objprt.adjust_prtfmt(prtfmt)
     prt_flds = RPT.get_fmtflds(prtfmt)
     data_nts = MgrNtGOEAs(goea_results).get_goea_nts_prt(prt_flds, **kws)
     RPT.prt_txt(prt, data_nts, prtfmt, prt_flds, **kws)
     return data_nts
Example #4
0
 def prt_nts(self, desc2nts, prt=sys.stdout, prtfmt=None):
     """Print grouped and sorted GO IDs."""
     # deprecated
     # Set print format string
     if prtfmt is None:
         prtfmt = "{{hdr1usr01:2}} {FMT}\n".format(FMT=self.grprobj.gosubdag.prt_attr['fmt'])
     # 1-D: data to print is a flat list of namedtuples
     if 'flat' in desc2nts:
         prt_txt(prt, desc2nts['flat'], prtfmt=prtfmt)
     # 2-D: data to print is a list of [(section, nts), ...
     else:
         WrSectionsTxt.prt_sections(prt, desc2nts['sections'], prtfmt)
Example #5
0
 def prt_txt(prt, goea_results, prtfmt=None, **kws):
     """Print GOEA results in text format."""
     objprt = PrtFmt()
     if prtfmt is None:
         flds = ['GO', 'NS', 'p_uncorrected',
                 'ratio_in_study', 'ratio_in_pop', 'depth', 'name', 'study_items']
         prtfmt = objprt.get_prtfmt_str(flds)
     prtfmt = objprt.adjust_prtfmt(prtfmt)
     prt_flds = RPT.get_fmtflds(prtfmt)
     data_nts = MgrNtGOEAs(goea_results).get_goea_nts_prt(prt_flds, **kws)
     RPT.prt_txt(prt, data_nts, prtfmt, prt_flds, **kws)
     return data_nts
Example #6
0
 def prt_nts(self, desc2nts, prt=sys.stdout, prtfmt=None):
     """Print grouped and sorted GO IDs."""
     # deprecated
     # Set print format string
     if prtfmt is None:
         prtfmt = "{{hdr1usr01:2}} {FMT}\n".format(
             FMT=self.grprobj.gosubdag.prt_attr['fmt'])
     # 1-D: data to print is a flat list of namedtuples
     if 'flat' in desc2nts:
         prt_txt(prt, desc2nts['flat'], prtfmt=prtfmt)
     # 2-D: data to print is a list of [(section, nts), ...
     else:
         WrSectionsTxt.prt_sections(prt, desc2nts['sections'], prtfmt)
Example #7
0
 def prt_txt(self, prt, goea_results, prtfmt=None, **kws):
     """Print GOEA results in text format."""
     objprt = PrtFmt()
     if prtfmt is None:
         flds = ['GO', 'NS', 'p_uncorrected', 'ratio_in_study', 'ratio_in_pop', 'depth', 'name', 'study_items']
         prtfmt = objprt.get_prtfmt_str(flds)
         #### prtfmt = " ".join([objprt.default_fld2fmt[f] for f in flds])
         #### prtfmt = ("{GO} {NS} {p_uncorrected:5.2e} {ratio_in_study:>6} {ratio_in_pop:>9} "
         ####           "{depth:02} {name:40} {study_items}\n")
     prtfmt = objprt.adjust_prtfmt(prtfmt)
     prt_flds = RPT.get_fmtflds(prtfmt)
     data_nts = MgrNtGOEAs(goea_results).get_goea_nts_prt(prt_flds, **kws)
     RPT.prt_txt(prt, data_nts, prtfmt, prt_flds, **kws)
     return data_nts
Example #8
0
 def wr_txt(self, fout_txt):
     """Write counts of GO terms at all levels and depths."""
     from goatools.wr_tbl import prt_txt
     data = self.get_data()
     with open(fout_txt, 'w') as prt:
         prtfmt = "{Depth_Level:>7} " \
                  "{BP_D:6,} {MF_D:6,} {CC_D:>6,} " \
                  "{BP_L:>6,} {MF_L:>6,} {CC_L:>6,}\n"
         prt.write("{TITLE}\n\n".format(TITLE=self.title))
         prt.write("         |<---- Depth ---->|  |<---- Level ---->|\n")
         prt.write("Dep/Lev     BP     MF     CC     BP     MF     CC\n")
         prt.write("-------  -----  -----  -----  -----  -----  -----\n")
         prt_txt(prt, data, prtfmt=prtfmt, title=self.title)
         sys.stdout.write("  {N:>5,} items WROTE: {TXT}\n".format(
             N=len(data), TXT=fout_txt))
Example #9
0
 def wr_txt(self, fout_txt):
     """Write counts of GO terms at all levels and depths."""
     from goatools.wr_tbl import prt_txt
     data = self.get_data()
     with open(fout_txt, 'w') as prt:
         prtfmt = "{Depth_Level:>7} " \
                  "{BP_D:6,} {MF_D:6,} {CC_D:>6,} " \
                  "{BP_L:>6,} {MF_L:>6,} {CC_L:>6,}\n"
         prt.write("{TITLE}\n\n".format(TITLE=self.title))
         prt.write("         |<---- Depth ---->|  |<---- Level ---->|\n")
         prt.write("Dep/Lev     BP     MF     CC     BP     MF     CC\n")
         prt.write("-------  -----  -----  -----  -----  -----  -----\n")
         prt_txt(prt, data, prtfmt=prtfmt, title=self.title)
         sys.stdout.write("  {N:>5,} items WROTE: {TXT}\n".format(
             N=len(data), TXT=fout_txt))
Example #10
0
 def prt_txt_desc2nts(self, prt, desc2nts, prtfmt):
     """Print grouped and sorted GO IDs."""
     # 1-D: data to print is a flat list of namedtuples
     if 'flat' in desc2nts:
         nts = desc2nts.get('flat')
         # sys.stdout.write("FLAT NTS: {FLDS}\n".format(FLDS=" ".join(next(iter(nts))._fields)))
         prt_txt(prt, nts, prtfmt)
     # 2-D: data to print is a list of [(section, nts), ...
     else:
         for section, nts in desc2nts['sections']:
             prt.write("\nSECTION: {SEC}\n".format(SEC=section))
             prt_txt(prt, nts, prtfmt)
         grprobj = self.sortobj.grprobj
         dat = SummarySec2dHdrGos().summarize_sec2hdrnts(desc2nts['sections'])
         ugos_y = dat['G'].intersection(grprobj.usrgos)
         ugos_n = dat['U'].intersection(grprobj.usrgos)
         return {'GO_DESC':'usr', 'SECs':len(dat['S']), 'GOs':len(ugos_y),
                 'UNGRP':len(ugos_n), 'undesc':'ungrpd'}
Example #11
0
 def wr_txt(self, fout_txt="gos_depth01.txt", title=None):
     """write text table of depth-01 GO terms and their letter representation."""
     data_nts = self.get_d1nts()
     with open(fout_txt, 'w') as prt:
         if title is not None:
             prt.write("{TITLE}\n\n".format(TITLE=title))
             prt.write(
                 "    D1 : Letter representing the depth-01 GO term\n")
             prt.write("    dcnt: Total number of all descendants\n")
             prt.write("    dep: Depth; The maximum length path to ")
             prt.write("leaf-level (childless) GO descendant(s)\n\n")
             prt.write("D1 NS  dcnt dep GO ID      Description\n")
             prt.write(
                 "- -- ------ --- ---------- ------------------------------\n"
             )
         prt_txt(prt, data_nts)
         sys.stdout.write("  {N:>5} items WROTE: {TXT}\n".format(
             N=len(data_nts), TXT=fout_txt))
def prt_genes(fout_genes, geneids, taxid, log):
    """Print 'cell cycle' geneids, with or without Symbol and description information."""
    fin_symbols = "genes_NCBI_{TAXID}_All.py".format(TAXID=taxid)
    # If gene Symbol information is available, print geneid and Symbol
    if os.path.isfile(fin_symbols):
        import importlib
        module_name = "".join(["goatools.test_data.", fin_symbols[:-3]])
        module = importlib.import_module(module_name)
        GeneID2nt = module.GeneID2nt
        fmtstr = "{GeneID:>9} {Symbol:<16} {description}\n"
        nts = [GeneID2nt[geneid] for geneid in sorted(geneids) if geneid in GeneID2nt]
        with open(fout_genes, 'w') as prt:
            prt_txt(prt, nts, fmtstr)
            if log is not None:
                log.write("    WROTE {N:>5} genes: {FOUT}\n".format(FOUT=fout_genes, N=len(nts)))
    # Just print geneids
    else:
        with open(fout_genes, 'w') as prt:
            for geneid in geneids:
                prt.write("{geneid}\n".format(geneid=geneid))
            if log is not None:
                log.write("    WROTE {N:>5} genes: {FOUT}\n".format(FOUT=fout_genes, N=len(geneids)))
Example #13
0
def prt_genes(fout_genes, geneids, taxid, log):
    """Print 'cell cycle' geneids, with or without Symbol and description information."""
    fin_symbols = "genes_NCBI_{TAXID}_All.py".format(TAXID=taxid)
    # If gene Symbol information is available, print geneid and Symbol
    if os.path.isfile(fin_symbols):
        import importlib
        module_name = "".join(["goatools.test_data.", fin_symbols[:-3]])
        module = importlib.import_module(module_name)
        geneid2nt = module.GENEID2NT
        fmtstr = "{GeneID:>9} {Symbol:<16} {description}\n"
        nts = [geneid2nt[geneid] for geneid in sorted(geneids) if geneid in geneid2nt]
        with open(fout_genes, 'w') as prt:
            prt_txt(prt, nts, fmtstr)
            if log is not None:
                log.write("    WROTE {N:>5} genes: {FOUT}\n".format(FOUT=fout_genes, N=len(nts)))
    # Just print geneids
    else:
        with open(fout_genes, 'w') as prt:
            for geneid in geneids:
                prt.write("{geneid}\n".format(geneid=geneid))
            if log is not None:
                log.write("    WROTE {N:>5} genes: {FOUT}\n".format(
                    FOUT=fout_genes, N=len(geneids)))
Example #14
0
 def prt_txt_desc2nts(self, prt, desc2nts, prtfmt):
     """Print grouped and sorted GO IDs."""
     # 1-D: data to print is a flat list of namedtuples
     if 'flat' in desc2nts:
         nts = desc2nts.get('flat')
         # sys.stdout.write("FLAT NTS: {FLDS}\n".format(FLDS=" ".join(next(iter(nts))._fields)))
         prt_txt(prt, nts, prtfmt)
     # 2-D: data to print is a list of [(section, nts), ...
     else:
         for section, nts in desc2nts['sections']:
             prt.write("\nSECTION: {SEC}\n".format(SEC=section))
             prt_txt(prt, nts, prtfmt)
         grprobj = self.sortobj.grprobj
         dat = SummarySec2dHdrGos().summarize_sec2hdrnts(
             desc2nts['sections'])
         ugos_y = dat['G'].intersection(grprobj.usrgos)
         ugos_n = dat['U'].intersection(grprobj.usrgos)
         return {
             'GO_DESC': 'usr',
             'SECs': len(dat['S']),
             'GOs': len(ugos_y),
             'UNGRP': len(ugos_n),
             'undesc': 'ungrpd'
         }
Example #15
0
 def prt_txt(self, prt, results_nt, prtfmt, **kws):
     """Print GOEA results in text format."""
     prtfmt = self.adjust_prtfmt(prtfmt)
     prt_flds = RPT.get_fmtflds(prtfmt)
     data_nts = self._get_nts(results_nt, prt_flds, True, **kws)
     RPT.prt_txt(prt, data_nts, prtfmt, prt_flds, **kws)
Example #16
0
 def prt_txt(self, prt, results_nt, prtfmt, **kws):
     """Print GOEA results in text format."""
     prtfmt = self.adjust_prtfmt(prtfmt)
     prt_flds = RPT.get_fmtflds(prtfmt)
     data_nts = self._get_nts(results_nt, prt_flds, True, **kws)
     RPT.prt_txt(prt, data_nts, prtfmt, prt_flds, **kws)
Example #17
0
 def prt_mdtbl(self, nts, prt_flds=None, prt=sys.stdout):
     """Write specified namedtuples into an Excel spreadsheet."""
     if prt_flds is None:
         prt_flds = self.prt_flds
     prtfmt = "|{DATA}|\n".format(DATA="|".join(self.fld2prtfmt[f] for f in prt_flds))
     prt_txt(prt, nts, prtfmt=prtfmt)