def simpleheatmap(tabdata, figname='defaultheatplot.pdf', main='title', colormode='jet', gformat='pdf', scale='none', dendrogram='both'): """ scale: none, row, both, col """ rconsole = rpy2.robjects.r rsimpleheatmap = rconsole("rsimpleheatmap") dopdfgraph = rconsole("dopdfgraph") rdataframe = pyobj2dataframe(tabdata, rownames=True, columnames=True) from rpy2.robjects.packages import importr grdevices = importr('grDevices') grdevices.pdf(file=fhutils.renamefilename(figname, suffix=gformat)) roworder = {'both': True, 'row': True, 'column': False}[dendrogram] colorder = {'both': True, 'row': False, 'column': True}[dendrogram] rsimpleheatmap(tabdata=rdataframe, scale=scale, dendros=dendrogram, roworder=roworder, colorder=colorder) grdevices.dev_off()
def setupdata(tabdata, doscale, group, error, dofit=None): if doscale: doscale = rpy2.robjects.vectors.FloatVector(tuple(doscale)) if group in ('', 'NA', '1'): group = rinterface.NACharacterType() elif isinstance(group, tuple) or isinstance(group, list): group = rpy2.robjects.vectors.StrVector(list(group)) tabdata, group = fusegroupcolumns(tabdata, group) if isinstance(dofit, tuple): dofit = rpy2.robjects.vectors.StrVector(tuple(dofit)) else: dofit = rpy2.robjects.vectors.StrVector(tuple((0, 0))) if error in ('', 'NA'): error = rinterface.NACharacterType() dataframe = pyobj2dataframe(tabdata) return dataframe, doscale, group, error, dofit