view heatmap2.xml @ 3:4955e9bb96d1 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ggplot2 commit 381fece97cb737e110e75e85fd0b6ebfc90f9c36
author iuc
date Sat, 28 Jul 2018 03:44:29 -0400
parents c6bfec911a41
children ca7cb0eaad62
line wrap: on
line source

<tool id="ggplot2_heatmap2" name="heatmap2" version="@VERSION@+galaxy1">
    <macros>
        <import>macros.xml</import>
    </macros>
    <requirements>
        <requirement type="package" version="3.0.1">r-gplots</requirement>
        <requirement type="package" version="1.1_2">r-rcolorbrewer</requirement>
    </requirements>
    <command detect_errors="exit_code"><![CDATA[
cat '$script' &&
Rscript '$script' &&
mv output_plot.pdf $output1
    ]]></command>
    <configfiles>
        <configfile name="script"><![CDATA[

@R_INIT@

## Import library
library("RColorBrewer")
library("gplots")

input <- read.delim('$input1', sep='\t', header=TRUE)

mat_input <- data.matrix(input[,2:ncol(input)])
rownames(mat_input) <- input[,1]

hclust_fun = function(x) hclust(x, method="complete")
dist_fun = function(x) dist(x, method="maximum")
distfun=dist_fun
hclustfun=hclust_fun

#if $transform == "none"
    linput <- mat_input
#elif $transform == "log2"
    linput <- log2(mat_input)
#elif $transform == "log2plus1"
    linput <- log2(mat_input+1)
#elif $transform == "log10"
    linput <- log10(mat_input)
#elif $transform == "log10plus1"
    linput <- log10(mat_input+1)
#end if

#if $colorscheme == "whrd"
  colorscale = colfunc <- colorRampPalette(c("white", "red"))
#elif $colorscheme == "whblu"
  colorscale = colfunc <- colorRampPalette(c("white", "blue"))
#elif $colorscheme == "blwhre"
  colorscale = colfunc <- colorRampPalette(c("blue","white", "red"))
#end if

#if $labels== "both"
  rlabs = NULL
  clabs = NULL
#elif $labels== "rows"
  rlabs = NULL
  clabs = FALSE
#elif $labels== "columns"
  rlabs = FALSE
  clabs = NULL
#elif $labels== "none"
  rlabs = FALSE
  clabs = FALSE
#end if

pdf(file='output_plot.pdf')
colorscale

#if $cluster:
    heatmap.2(linput,
        distfun=dist_fun, hclustfun=hclust_fun, scale = '$scale', labRow = rlabs, labCol = clabs,
        col=colfunc(50), trace="none", density.info = "none", margins=c(8,8),
        main = '$title', key.xlab='$key', keysize=1, cexCol=0.8, cexRow = 0.8, srtCol=45)
#else
    heatmap.2(linput,
        dendrogram="none", Colv=FALSE, Rowv=FALSE, scale = '$scale', labRow = rlabs, labCol = clabs,
        col=colfunc(50), trace="none", density.info = "none", margins=c(8,8), 
        main='$title', key.xlab='$key', keysize=1, cexCol=0.8, cexRow = 0.8, srtCol=45)
#end if

dev.off()

        ]]></configfile>
    </configfiles>

    <inputs>
        <param name="input1" type="data" format="tabular" label="Input should have column headers - these will be the columns that are plotted"/>
        <param name="title" type="text" format="txt" label="Plot title"/> 
        <param name="key" type="text" format="txt" label="key title"/> 
        <expand macro="transform" />
        <param name="cluster" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Enable data clustering" />
        <param name="labels" type="select" label="Labeling columns and rows" >
            <option value="both" selected="True">Label my columns and rows</option>
            <option value="rows">Label rows and not columns</option>
            <option value="columns">Label columns and not rows</option>
            <option value="none">Do not label rows or columns</option>
        </param>
        <param name="colorscheme" type="select" label="Coloring groups" >
            <option value="whrd" selected="True">White to red</option>
            <option value="whblu">White to blue</option>
            <option value="blwhre">Blue to white to red</option>
        </param>
        <param name="scale" type="select" label="Data scaling" >
            <option value="none" selected="True">Do not scale my data</option>
            <option value="row">Scale my data by row</option>
            <option value="column">Scale my data by column</option>
        </param>
    </inputs>
    <outputs>
        <data name="output1" format="pdf" from_work_dir="Rplot.pdf"/>
    </outputs>
    <tests>
        <test>
            <param name="input1" value="mtcars.txt"/>
            <output name="output1" file="ggplot_heatmap2_result1.pdf" compare="sim_size"/>
        </test>
    </tests>
    <help><![CDATA[
This tool will generate a clustered heatmap of your data. More customization options will be added, for now the heatmap uses a red coloring scheme and clustering is performed using the "maximum" similarity measure and the "complete" hierarchical clustering measure. 

Input data should have row labels in the first column and column labels. For example, the row labels (the first column) should represent gene IDs and the column labels should represent sample IDs. 

This wrapper employs the heatmap.2 function of R.
    ]]></help>
    <citations>
    </citations>
</tool>