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