Repository 'ggplot2_histogram'
hg clone https://toolshed.g2.bx.psu.edu/repos/iuc/ggplot2_histogram

Changeset 2:f52035800250 (2018-06-11)
Previous changeset 1:d3d92fb20389 (2017-08-29) Next changeset 3:63a595b451d1 (2019-02-11)
Commit message:
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ggplot2 commit f9fb73a88ab8b52ce11c25a966d4fe99e67c9fbf
modified:
ggplot_histogram.xml
macros.xml
test-data/mtcars.txt
added:
test-data/ggplot_heatmap_result1.pdf
test-data/ggplot_pca_result1.pdf
b
diff -r d3d92fb20389 -r f52035800250 ggplot_histogram.xml
--- a/ggplot_histogram.xml Tue Aug 29 09:02:13 2017 -0400
+++ b/ggplot_histogram.xml Mon Jun 11 16:05:18 2018 -0400
[
@@ -1,9 +1,10 @@
-<tool id="ggplot2_histogram" name="Histogram w ggplot2" version="@VERSION@">
+<tool id="ggplot2_histogram" name="Histogram w ggplot2" version="@VERSION@+galaxy0">
     <macros>
         <import>macros.xml</import>
     </macros>
     <expand macro="requirements">
-        <requirement type="package" version="1.4.2">r-reshape2</requirement>
+        <requirement type="package" version="1.4.3">r-reshape2</requirement>
+        <requirement type="package" version="1.2.1">r-svglite</requirement>
     </expand>
     <command detect_errors="exit_code"><![CDATA[
 cat '$script' &&
@@ -11,61 +12,59 @@
     ]]></command>
     <configfiles>
         <configfile name="script"><![CDATA[
-
 @R_INIT@
 
 ## Import library
-library("reshape2")
-library("ggplot2")
+library(reshape2)
+library(ggplot2)
 
 integrated <- read.csv('$input1', sep='\t', header=TRUE)
 input <- melt(integrated)
 
-## Show/hide legend
-#if $legend == "yes"
-    gg_legend = NULL
-#else
-    gg_legend = theme(legend.position="none")
-#end if
+@LEGEND@
 
 ## density
-#if $density == "counts"
+#if $adv.density == "counts"
     gg_density = ggplot(input,aes(value, color=variable))
     gg_freq = NULL
-#elif $density == "nfreq"
+#elif $adv.density == "nfreq"
     gg_density = ggplot(input,aes(value, ..ncount.., color=variable))
     gg_freq = NULL
-#elif $density == "freq"
+#elif $adv.density == "freq"
     gg_density = ggplot(input,aes(value, color=variable))
     gg_freq = aes(y=..count../sum(..count..))
 #end if
 
+@TRANSFORM@
+
 @XY_SCALING@
 
-gg_width = $with_output_dim
-gg_height = $height_output_dim
-
+@THEME@
 
-@TRANSFORM@
-
-#if $facet == "facet"
+#if $adv.facet == "facet"
     gg_facet = facet_wrap(~ variable)
 #else
     gg_facet = NULL
 #end if
 
-#if $coloring.colorscheme == "Default"
+#if $adv.coloring.colorscheme == "Default"
     gg_colorscale = NULL
 #else
-    gg_colorscale = scale_color_brewer(palette=$coloring.colors, direction=$coloring.colororder)
+    gg_colorscale = scale_color_brewer(palette=$adv.coloring.colors, direction=$adv.coloring.colororder)
 #end if
 
-gg_density+
-geom_freqpoly(gg_freq, binwidth=$binwidth, size=$size)+gg_facet+gg_colorscale+
-gg_scalex+gg_scaley+theme_bw()+xlab('$xlab')+ylab('$ylab')+gg_legend+ggtitle('$title')
+plot_out <- gg_density +
+    geom_freqpoly(gg_freq, binwidth=$binwidth, size=$size) + gg_facet + gg_colorscale +
+    gg_scalex +
+    gg_scaley +
+    gg_theme +
+    xlab('$xlab') +
+    ylab('$ylab') +
+    gg_legend +
+    ggtitle('$title') +
+    theme(plot.title = element_text(hjust = 0.5))
 
-ggsave(file='Rplot.pdf')
-dev.off()
+@SAVE_OUTPUT@
         ]]></configfile>
     </configfiles>
     <inputs>
@@ -74,54 +73,51 @@
         <expand macro="xy_lab" />
         <param name="size" type="float" value="1.0" label="relative line width" />
         <param name="binwidth" type="float" value="0.5" label="Bin width for plotting"/>
-
-        <expand macro="transform" />
-
-        <param name="density" type="select" label="Advanced - plot counts or density">
-            <option value="counts">Plot counts on the y-axis</option>
-            <option value="freq">Plot frequency on the y-axis</option>
-            <option value="nfreq">Plot normalized frequency on the y-axis</option>
-        </param>
-        <param name="facet" type="select" label="Advanced - faceting">
-            <option value="none">Plot my groups on one plot</option>
-            <option value="facet">Plot my groups on individual plots</option>
-        </param>
-        <conditional name="coloring">
-            <param name="colorscheme" type="select" label="Advanced - coloring groups" >
-                <option value="Default" selected="True">No thanks - just use the default scheme to color code my groups (columns)</option>
-                <option value="Defined">I want to use defined color palettes to differentiate my groups (columns) </option>
+        <section name="adv" title="Advanced Options" expanded="false">
+            <param name="density" type="select" label="Plot counts or density">
+                <option value="counts">Plot counts on the y-axis</option>
+                <option value="freq">Plot frequency on the y-axis</option>
+                <option value="nfreq">Plot normalized frequency on the y-axis</option>
+            </param>
+            <param name="facet" type="select" label="Faceting">
+                <option value="none">Plot my groups on one plot</option>
+                <option value="facet">Plot my groups on individual plots</option>
             </param>
-            <when value="Default">
-            </when>
-            <when value="Defined">
-                <expand macro="colors" />
-                <param name="colororder" type="select" label="Reverse color scheme" >
-                    <option value="1">Default order of color scheme</option>
-                    <option value="-1">Reverse the order of my color scheme</option>
-                </param> 
-            </when>
-        </conditional>
-        <expand macro="xy_scaling" />
-        <expand macro="dimensions" />
-        <param name="legend" type="select" label="Legend options">
-            <option value="yes">Include legend on plot</option>
-            <option value="no">Hide legend</option>
-        </param>
+            <conditional name="coloring">
+                <param name="colorscheme" type="select" label="Coloring groups" >
+                    <option value="Default" selected="true">No thanks - just use the default scheme to color code my groups (columns)</option>
+                    <option value="Defined">I want to use defined color palettes to differentiate my groups (columns) </option>
+                </param>
+                <when value="Default">
+                </when>
+                <when value="Defined">
+                    <expand macro="colors" />
+                    <param name="colororder" type="select" label="Reverse color scheme" >
+                        <option value="1">Default order of color scheme</option>
+                        <option value="-1">Reverse the order of my color scheme</option>
+                    </param>
+                </when>
+            </conditional>
+            <expand macro="transform" />
+            <expand macro="xy_scaling" />
+            <expand macro="theme" />
+            <expand macro="legend" />
+        </section>
+        <section name="out" title="Output Options" expanded="true">
+            <expand macro="dimensions" />
+        </section>
     </inputs>
     <outputs>
-        <!-- <data name="output1" format="png" from_work_dir="Rplot.png"/>
-            ToDo: It would be nice to have different output formats for all tools
-        -->
-        <data name="output1" format="pdf" from_work_dir="Rplot.pdf"/>
+        <expand macro="additional_output" />
     </outputs>
     <tests>
         <test>
             <param name="input1" value="mtcars.txt"/>
-            <output name="output1" file="ggplot_histogram_result1.pdf" compare="sim_size"/>
+            <param name="additional_output_format" value="pdf" />
+            <output name="output2" file="ggplot_histogram_result1.pdf" compare="sim_size"/>
         </test>
     </tests>
     <help><![CDATA[
-
 This tool will generate a histogram representing the distrinutions of each numerical column. Each column should have a descriptive header with no spaces, which will be used in the plot legend to represent the corresponding column (group).
 
 Input data example:
@@ -132,7 +128,6 @@
 gene_D  6   9
 gene_E  9   13.5
 gene_F  8   12
-
     ]]></help>
     <expand macro="citations"/>
 </tool>
b
diff -r d3d92fb20389 -r f52035800250 macros.xml
--- a/macros.xml Tue Aug 29 09:02:13 2017 -0400
+++ b/macros.xml Mon Jun 11 16:05:18 2018 -0400
[
b'@@ -9,27 +9,116 @@\n     <token name="@VERSION@">2.2.1</token>\n \n     <token name="@R_INIT@"><![CDATA[\n-## Setup R error handling to go to stderr\n-options(show.error.messages=F, error=function(){cat(geterrmessage(), file=stderr()); q("no",1,F)})\n+        ## Setup R error handling to go to stderr\n+        options(show.error.messages=F, error=function(){cat(geterrmessage(), file=stderr()); q("no",1,F)})\n \n-## Unify locale settings\n-loc <- Sys.setlocale("LC_MESSAGES", "en_US.UTF-8")\n+        ## Unify locale settings\n+        loc <- Sys.setlocale("LC_MESSAGES", "en_US.UTF-8")\n     ]]></token>\n \n     <token name="@TRANSFORM@"><![CDATA[\n-#if $transform == "log2"\n-    input["value"] <- log2(input["value"])\n-#elif $transform == "log2plus1"\n-    input["value"] <- log2(input["value"]+1)\n-#elif $transform == "log10"\n-    input["value"] <- log10(input["value"])\n-#elif $transform == "log10plus1"\n-    input["value"] <- log10(input["value"]+1)\n-#end if\n+        #if $adv.transform == "log2"\n+            input["value"] <- log2(input["value"])\n+        #elif $adv.transform == "log2plus1"\n+            input["value"] <- log2(input["value"]+1)\n+        #elif $adv.transform == "log10"\n+            input["value"] <- log10(input["value"])\n+        #elif $adv.transform == "log10plus1"\n+            input["value"] <- log10(input["value"]+1)\n+        #end if\n+    ]]></token>\n+\n+    <token name="@XY_SCALING@"><![CDATA[\n+        #Choose between automatically scaled x and y axis or user defined\n+        #if $adv.scaling.plot_scaling == "Automatic"\n+            gg_scalex = NULL\n+            gg_scaley = NULL\n+        #else\n+            gg_scalex = xlim($adv.scaling.xaxismin, $adv.scaling.xaxismax)\n+            gg_scaley = ylim($adv.scaling.yaxismin, $adv.scaling.yaxismax)\n+            cat("\\n xaxismin: ", $adv.scaling.xaxismin)\n+            cat("\\n xaxismax: ", $adv.scaling.xaxismax)\n+            cat("\\n yaxismin: ", $adv.scaling.yaxismin)\n+            cat("\\n yaxismax: ", $adv.scaling.yaxismax)\n+        #end if\n+    ]]></token>\n+\n+    <token name="@THEME@"><![CDATA[\n+        ## Choose theme for plot\n+        #if $adv.theme == "bw"\n+            gg_theme = theme_bw()\n+        #else\n+            gg_theme = NULL\n+        #end if\n     ]]></token>\n \n+    <token name="@LEGEND@"><![CDATA[\n+        ## Show/hide legend\n+        #if $adv.legend == "yes"\n+            gg_legend = theme(legend.position="right")\n+        #else\n+            gg_legend = theme(legend.position="none")\n+            cat("\\n no legend")\n+        #end if\n+    ]]></token>\n+    <token name="@SAVE_OUTPUT@"><![CDATA[\n+        ## output options need to be in out section\n+        gg_width <- as.double(\'$out.width_output_dim\')\n+        gg_height <- as.double(\'$out.height_output_dim\')\n+        gg_unit <- \'$out.unit_output_dim\'\n+        gg_dpi <- as.double(\'$out.dpi_output_dim\')\n+        gg_add_device <- \'$out.additional_output_format\'\n+        output1 <- \'$output1\'\n+        output2 <- \'$output2\'\n+\n+        ## ggsave to png\n+        ggsave(filename = output1, plot = plot_out, width = gg_width, height = gg_height, units = gg_unit, dpi = gg_dpi, device = "png")\n+        if(gg_add_device != "none"){\n+          ggsave(filename = output2, plot = plot_out, width = gg_width, height = gg_height, units = gg_unit, dpi = gg_dpi, device = gg_add_device)\n+        }\n+    ]]></token>\n+    <xml name="read_complex_input">\n+        <param name="input1" type="data" format="tabular" label="Select table"/>\n+        <conditional name="inputdata">\n+            <param name="input_type" type="select" label="Select input dataset options" help="specific dataset input for reading">\n+                <option value="with_header" selected="true">Dataset with header</option>\n+                <option value="with_rownames">Dataset with row names</option>\n+                <option value="with_header_rownames">Dataset with header and row names</option>\n+                <option value="no_header_rownames">Dataset without header or row names</opt'..b'="dpi of output" help="Plot resolution. Applies only to raster output types."/>\n+        <param name="additional_output_format" type="select" label="Additional output format" help="PNG is always selected as output format">\n+            <option value="none" selected="true">only PNG</option>\n+            <option value="pdf">PDF</option>\n+            <option value="svg">SVG</option>\n+            <option value="eps">EPS</option>\n+            <option value="ps">PS</option>\n+            <option value="tex">TEX (pictex)</option>\n+            <option value="jpeg">JPEG</option>\n+            <option value="tiff">TIFF</option>\n+            <option value="bmp">BMP</option>\n+        </param>\n     </xml>\n     <xml name="citations">\n         <citations>\n-            <citation type="bibtex">@Book{\n+            <citation type="bibtex">@book{wickham2009ggplot2,\n                 author = {Hadley Wickham},\n                 title = {ggplot2: Elegant Graphics for Data Analysis},\n                 publisher = {Springer-Verlag New York},\n                 year = {2009},\n                 isbn = {978-0-387-98140-6},\n-                url = {http://ggplot2.org}\n+                url = {http://ggplot2.org},\n                 }\n             </citation>\n+            <yield />\n         </citations>\n     </xml>\n-\n-    <xml name="axis_customization" token_label="Advanced - axis title options">\n+    <xml name="axis_customization" token_label="Axis title options">\n         <param name="axis_customization" type="select" label="@LABEL@">\n-            <option value="default" selected="True">Default</option>\n+            <option value="default" selected="true">Default</option>\n             <option value="defined">User defined label options</option>\n         </param>\n         <when value="default">\n@@ -113,7 +225,7 @@\n                 <option value="magenta">Magenta</option>\n                 <option value="cyan">Cyan</option>\n                 <option value="grey">Grey</option>\n-                <option value="gold">Gold</option> \n+                <option value="gold">Gold</option>\n             </param>\n             <param name="face" type="select" label="Font effect of axis label">\n                 <option value="plain">Normal (default)</option>\n@@ -122,7 +234,6 @@\n             </param>\n         </when>\n     </xml>\n-\n     <xml name="colors">\n         <param name="colors" type="select" label="Color schemes to differentiate your groups" >\n             <option value="Default">Default color scheme</option>\n@@ -159,8 +270,22 @@\n             <option value="RdBu">Red to blue (discrete, max=11 colors)</option>\n             <option value="PuOr">Purple to orange (discrete, max=11 colors)</option>\n             <option value="PRGn">Purple to green (discrete, max=11 colors)</option>\n-            <option value="BrBG">Brown to teal (discrete, max=11 colors)</option> \n+            <option value="BrBG">Brown to teal (discrete, max=11 colors)</option>\n         </param>\n     </xml>\n-\n+    <xml name="additional_output">\n+        <data name="output1" format="png" label="${tool.name} on ${on_string}: png"/>\n+        <data format="pdf" name="output2" label="${tool.name} on ${on_string}: ${out.additional_output_format}">\n+            <change_format>\n+                <when input="out.additional_output_format" value="svg" format="svg" />\n+                <when input="out.additional_output_format" value="eps" format="eps" />\n+                <when input="out.additional_output_format" value="ps" format="ps" />\n+                <when input="out.additional_output_format" value="tex" format="txt" />\n+                <when input="out.additional_output_format" value="jpeg" format="jpg" />\n+                <when input="out.additional_output_format" value="tiff" format="tiff" />\n+                <when input="out.additional_output_format" value="bmp" format="bmp" />\n+            </change_format>\n+            <filter>out[\'additional_output_format\'] != "none"</filter>\n+        </data>\n+    </xml>\n </macros>\n'
b
diff -r d3d92fb20389 -r f52035800250 test-data/ggplot_heatmap_result1.pdf
b
Binary file test-data/ggplot_heatmap_result1.pdf has changed
b
diff -r d3d92fb20389 -r f52035800250 test-data/ggplot_pca_result1.pdf
b
Binary file test-data/ggplot_pca_result1.pdf has changed