コード例 #1
0
ファイル: heatmaps.py プロジェクト: bh0085/compbio
def srt_heatmap(net = 3,
                all_module = False):
    import compbio.projects.bsort.bsort as bs

    arr, cols, rows = load(net = net,
                              max_go_modules = 15,
                              min_go_size = 5, 
                              min_module_size = 10)

    arr2_510, srts = bs.run0(arr = arr, itr = 2, meth = 'moment')
    arr2_510 = arr2_510[:,::-1]
    csrts = [s for s in srts if len(s) == len(cols)]
    rsrts = [s for s in srts if len(s) == len(rows)]

    c0 = array(cols)
    r0 = array(rows)
    for c in csrts: cols = cols[c]
    for r in rsrts: rows = rows[r]

    fopen =open( cfg.dataPath('daniel/heatmaps_sorted/hm_net{0}.txt'.format(net)), 'w')
    fopen.write('FORMAT: L1 :GO Terms (Columns), L2: Modules (Rows), L3+ Pvals thresholded between .01, .001\n')
    fopen.write('\t'.join([str(elt) for elt in cols]) + '\n')
    fopen.write('\t'.join([str(squeeze(elt)) for elt in rows]) + '\n')

    dmat = arr2_510
    for row in dmat:
        fopen.write('\t'.join(['{0}'.format(elt) for elt in row])+'\n')
    fopen.close()

    f = myplots.fignum(3, (8,40)) if net == 3 else myplots.fignum(3, (8,10))
    ax = f.add_axes([.4,.05,.55,.9], aspect = 'auto')
    
    goterms = [str(elt) for elt in cols]

    if not all_module:
        idx_omit = goterms.index('all')
        arr2_510 = vstack((arr2_510[:idx_omit],arr2_510[idx_omit+1:]))
        goterms = goterms[:idx_omit] + goterms[idx_omit+1:]
        
        

    fopen = open(cfg.dataPath('daniel/go_accession_name_map.txt'))
    gotexts = {}
    for l in fopen.xreadlines():
        k,v = l.split('\t')
        gotexts[k] = v
    row_labels = []
    for g in goterms:
        if g in gotexts.keys(): row_labels.append(gotexts[g].strip())
        else: row_labels.append(g.strip())
    


    ax.set_yticks(arange(len(goterms))+.25)
    ax.set_yticklabels(row_labels, size = '4')
    ax.set_xticks([])
    ax.set_xlabel('Modules')

    ax.set_xticks(arange(len(rows))+.25)
    ax.set_xticklabels([str(int(r[0])) for r in rows],
                       rotation= 90,
                       size = 'small')

    

    cm = mycolors.blackbody(flip = True)
    im =ax.imshow(arr2_510[:,:] * 4 + 2,
              cmap = plt.get_cmap('OrRd'),
              aspect = 'auto', 
              interpolation = 'nearest'
              )
    plt.colorbar(im)
    f.savefig(cfg.dataPath('daniel/heatmaps_sorted/hm_net{0}_{1}.pdf'.\
                               format(net, 'with_all' if all_module else 'no_all')))
コード例 #2
0
ファイル: plots.py プロジェクト: bh0085/compbio
def show_sims(sims):
    ax = plt.gca()
    ax.imshow(sims, cmap = mycolors.blackbody(),interpolation = 'nearest')