changeset 0:76380bf74511 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ggplot2 commit 6e466ce83e2e5c0dd0ba30356d0488cf74574b8f
author iuc
date Tue, 22 Aug 2017 06:42:38 -0400
parents
children cb04f3235a4e
files heatmap2.xml macros.xml test-data/ggplot_heatmap2_result1.pdf test-data/ggplot_histogram_result1.pdf test-data/ggplot_point_result1.pdf test-data/ggplot_violin_result1.pdf test-data/mtcars.txt
diffstat 7 files changed, 326 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/heatmap2.xml	Tue Aug 22 06:42:38 2017 -0400
@@ -0,0 +1,127 @@
+<tool id="ggplot2_heatmap2" name="heatmap2" version="@VERSION@">
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+    <expand macro="requirements">
+        <requirement type="package" version="3.0.1">r-gplots</requirement>
+        <requirement type="package" version="1.1_2">r-rcolorbrewer</requirement>
+    </expand>
+    <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,2),
+        main = '$title', key.xlab='$key', keysize=1)
+#else
+    heatmap.2(linput,
+        dendrogram="none", scale = '$scale', labRow = rlabs, labCol = clabs,
+        col=colfunc(50), trace="none", density.info = "none", margins=c(8,2),
+        main='$title', key.xlab='$key', keysize=1)
+#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>
+    <expand macro="citations"/>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/macros.xml	Tue Aug 22 06:42:38 2017 -0400
@@ -0,0 +1,166 @@
+<?xml version="1.0"?>
+<macros>
+    <xml name="requirements">
+        <requirements>
+            <requirement type="package" version="@VERSION@">r-ggplot2</requirement>
+            <yield />
+        </requirements>
+    </xml>
+    <token name="@VERSION@">2.2.1</token>
+
+    <token name="@R_INIT@"><![CDATA[
+## Setup R error handling to go to stderr
+options(show.error.messages=F, error=function(){cat(geterrmessage(), file=stderr()); q("no",1,F)})
+
+## Unify locale settings
+loc <- Sys.setlocale("LC_MESSAGES", "en_US.UTF-8")
+    ]]></token>
+
+    <token name="@TRANSFORM@"><![CDATA[
+#if $transform == "log2"
+    input["value"] <- log2(input["value"])
+#elif $transform == "log2plus1"
+    input["value"] <- log2(input["value"]+1)
+#elif $transform == "log10"
+    input["value"] <- log10(input["value"])
+#elif $transform == "log10plus1"
+    input["value"] <- log10(input["value"]+1)
+#end if
+    ]]></token>
+
+    <xml name="transform">
+        <param name="transform" type="select" label="Advanced - log transformation">
+            <option value="none">Plot the data as it is</option>
+            <option value="log2">Log2(value) transform my data</option>
+            <option value="log2plus1">Log2(value+1) transform my data</option>
+            <option value="log10">Log10(value) transform my data</option>
+            <option value="log10plus1">Log10(value+1) transform my data</option>
+        </param>
+    </xml>
+
+    <token name="@XY_SCALING@"><![CDATA[
+#Choose between automatically scaled x and y axis or user defined
+#if $scaling.plot_scaling == "Automatic"
+    gg_scalex = NULL
+    gg_scaley = NULL
+#else
+    gg_scalex = xlim($scaling.xaxismin, $scaling.xaxismax)
+    gg_scaley = ylim($scaling.yaxismin, $scaling.yaxismax)
+#end if
+    ]]></token>
+
+    <xml name="xy_scaling">
+        <conditional name="scaling">
+            <param name="plot_scaling" type="select" label="Advanced - Axis scaling">
+                <option value="Automatic" selected="True">Automatic axis scaling</option>
+                <option value="Defined">User deined axis scales</option>
+            </param>
+            <when value="Automatic">
+                <!--Do nothing here -->
+            </when>
+            <when value="Defined">
+                <param name="xaxismin" type="integer" value="0" label="minimal range of x-axis" />
+                <param name="xaxismax" type="integer" value="3" label="maximal range of x-axis" />
+                <param name="yaxismin" type="integer" value="0" label="minimal range of y-axis" />
+                <param name="yaxismax" type="integer" value="3" label="maximal range of y-axis" />
+            </when>
+        </conditional>
+    </xml>
+    <xml name="title">
+        <param name="title" type="text" value="plot title" label="Title of plot" />
+    </xml>
+    <xml name="xy_lab">
+        <param name="xlab" type="text" value="title of x-axis" label="Label for x-axis"/>
+        <param name="ylab" type="text" value="title of y-axis" label="Label for y-axis"/> 
+    </xml>
+    <xml name="dimensions">
+        <param name="with_output_dim" type="float" value="7" label="width of output" help="in inches" />
+        <param name="height_output_dim" type="float" value="7" label="height of output" help="in inches" />
+    </xml>
+    <xml name="citations">
+        <citations>
+            <citation type="bibtex">@Book{
+                author = {Hadley Wickham},
+                title = {ggplot2: Elegant Graphics for Data Analysis},
+                publisher = {Springer-Verlag New York},
+                year = {2009},
+                isbn = {978-0-387-98140-6},
+                url = {http://ggplot2.org}
+                }
+            </citation>
+        </citations>
+    </xml>
+
+    <xml name="axis_customization" token_label="Advanced - axis title options">
+        <param name="axis_customization" type="select" label="@LABEL@">
+            <option value="default" selected="True">Default</option>
+            <option value="defined">User defined label options</option>
+        </param>
+        <when value="default">
+            <!--Do nothing here -->
+        </when>
+        <when value="defined">
+            <param name="size" type="float" value="12" label="Axis label size (default = 12)"/>
+            <param name="color" type="select" label="Color of axis label">
+                <option value="black">Black (default)</option>
+                <option value="red">Red</option>
+                <option value="white">White</option>
+                <option value="blue">Blue</option>
+                <option value="orange">Orange</option>
+                <option value="yellow">Yellow</option>
+                <option value="green">Green</option>
+                <option value="purple">Purple</option>
+                <option value="magenta">Magenta</option>
+                <option value="cyan">Cyan</option>
+                <option value="grey">Grey</option>
+                <option value="gold">Gold</option> 
+            </param>
+            <param name="face" type="select" label="Font effect of axis label">
+                <option value="plain">Normal (default)</option>
+                <option value="bold">Bold</option>
+                <option value="italic">Italic</option>
+            </param>
+        </when>
+    </xml>
+
+    <xml name="colors">
+        <param name="colors" type="select" label="Color schemes to differentiate your groups" >
+            <option value="Default">Default color scheme</option>
+            <option value="YlOrRd">Yellow to orange to red (discrete, max=9 colors)</option>
+            <option value="YlOrBr">Yellow to orange to brown (discrete, max=9 colors)</option>
+            <option value="YlGnBu">Yellow to green to blue (discrete, max=9 colors)</option>
+            <option value="YlGn">Yellow to green (discrete, max=9 colors)</option>
+            <option value="Reds">Shades of red from light to dark (discrete, max=9 colors)</option>
+            <option value="RdPu">Red to purple (discrete, max=9 colors)</option>
+            <option value="Purples">Shades of purple from light to dark (discrete, max=9 colors)</option>
+            <option value="PuRd">Purple to red (discrete, max=9 colors)</option>
+            <option value="PuBuGn">Purple to blue to green (discrete, max=9 colors)</option>
+            <option value="PuBu">Purple to blue(discrete, max=9 colors)</option>
+            <option value="OrRd">Orange to red (discrete, max=9 colors)</option>
+            <option value="Oranges">Shades of orange from light to dark (discrete, max=9 colors)</option>
+            <option value="Greys">Shades of grey from light to dark (discrete, max=9 colors)</option>
+            <option value="Greens">Shades of greens from light to dark (discrete, max=9 colors)</option>
+            <option value="GnBu">Green to blue (discrete, max=9 colors)</option>
+            <option value="BuPu">Blue to purple (discrete, max=9 colors)</option>
+            <option value="BuGn">Blue to green (discrete, max=9 colors)</option>
+            <option value="Blues">Shades of blue from light to dark (discrete, max=9 colors)</option>
+            <option value="Set1">Set 1 - predefined color pallete (discrete, max=9 colors)</option>
+            <option value="Set2">Set 2 - predefined color pallete (discrete, max=8 colors)</option>
+            <option value="Set3">Set 3 - predefined color pallete (discrete, max=12 colors)</option>
+            <option value="Pastel1">Pastel 1 - predefined pastel color pallete (discrete, max=9 colors)</option>
+            <option value="Pastel2">Pastel 2 - predefined pastel color pallete (discrete, max=8 colors)</option>
+            <option value="Paired">Paired - predefined color pallete (discrete, max=12 colors)</option>
+            <option value="Dark2">Dark 2 - predefined color pallete (discrete, max=12 colors)</option>
+            <option value="Accent">Accent - predefined color pallete (discrete, max=12 colors)</option>
+            <option value="Spectral">Spectral - Red to yellow to purple (discrete, max=11 colors)</option>
+            <option value="RdYlGn">Red to yellow to green (discrete, max=11 colors)</option>
+            <option value="RdYlBu">Red to yellow to blue (discrete, max=11 colors)</option>
+            <option value="RdGy">Red to grey (discrete, max=11 colors)</option>
+            <option value="RdBu">Red to blue (discrete, max=11 colors)</option>
+            <option value="PuOr">Purple to orange (discrete, max=11 colors)</option>
+            <option value="PRGn">Purple to green (discrete, max=11 colors)</option>
+            <option value="BrBG">Brown to teal (discrete, max=11 colors)</option> 
+        </param>
+    </xml>
+
+</macros>
Binary file test-data/ggplot_heatmap2_result1.pdf has changed
Binary file test-data/ggplot_histogram_result1.pdf has changed
Binary file test-data/ggplot_point_result1.pdf has changed
Binary file test-data/ggplot_violin_result1.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/mtcars.txt	Tue Aug 22 06:42:38 2017 -0400
@@ -0,0 +1,33 @@
+brand	mpg	cyl	disp	hp	drat	wt	qsec	vs	am	gear	carb
+Mazda RX4	21	6	160	110	3.9	2.62	16.46	0	1	4	4
+Mazda RX4 Wag	21	6	160	110	3.9	2.875	17.02	0	1	4	4
+Datsun 710	22.8	4	108	93	3.85	2.32	18.61	1	1	4	1
+Hornet 4 Drive	21.4	6	258	110	3.08	3.215	19.44	1	0	3	1
+Hornet Sportabout	18.7	8	360	175	3.15	3.44	17.02	0	0	3	2
+Valiant	18.1	6	225	105	2.76	3.46	20.22	1	0	3	1
+Duster 360	14.3	8	360	245	3.21	3.57	15.84	0	0	3	4
+Merc 240D	24.4	4	146.7	62	3.69	3.19	20	1	0	4	2
+Merc 230	22.8	4	140.8	95	3.92	3.15	22.9	1	0	4	2
+Merc 280	19.2	6	167.6	123	3.92	3.44	18.3	1	0	4	4
+Merc 280C	17.8	6	167.6	123	3.92	3.44	18.9	1	0	4	4
+Merc 450SE	16.4	8	275.8	180	3.07	4.07	17.4	0	0	3	3
+Merc 450SL	17.3	8	275.8	180	3.07	3.73	17.6	0	0	3	3
+Merc 450SLC	15.2	8	275.8	180	3.07	3.78	18	0	0	3	3
+Cadillac Fleetwood	10.4	8	472	205	2.93	5.25	17.98	0	0	3	4
+Lincoln Continental	10.4	8	460	215	3	5.424	17.82	0	0	3	4
+Chrysler Imperial	14.7	8	440	230	3.23	5.345	17.42	0	0	3	4
+Fiat 128	32.4	4	78.7	66	4.08	2.2	19.47	1	1	4	1
+Honda Civic	30.4	4	75.7	52	4.93	1.615	18.52	1	1	4	2
+Toyota Corolla	33.9	4	71.1	65	4.22	1.835	19.9	1	1	4	1
+Toyota Corona	21.5	4	120.1	97	3.7	2.465	20.01	1	0	3	1
+Dodge Challenger	15.5	8	318	150	2.76	3.52	16.87	0	0	3	2
+AMC Javelin	15.2	8	304	150	3.15	3.435	17.3	0	0	3	2
+Camaro Z28	13.3	8	350	245	3.73	3.84	15.41	0	0	3	4
+Pontiac Firebird	19.2	8	400	175	3.08	3.845	17.05	0	0	3	2
+Fiat X1-9	27.3	4	79	66	4.08	1.935	18.9	1	1	4	1
+Porsche 914-2	26	4	120.3	91	4.43	2.14	16.7	0	1	5	2
+Lotus Europa	30.4	4	95.1	113	3.77	1.513	16.9	1	1	5	2
+Ford Pantera L	15.8	8	351	264	4.22	3.17	14.5	0	1	5	4
+Ferrari Dino	19.7	6	145	175	3.62	2.77	15.5	0	1	5	6
+Maserati Bora	15	8	301	335	3.54	3.57	14.6	0	1	5	8
+Volvo 142E	21.4	4	121	109	4.11	2.78	18.6	1	1	4	2