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')))
def show_sims(sims): ax = plt.gca() ax.imshow(sims, cmap = mycolors.blackbody(),interpolation = 'nearest')