view ggplot_histogram.xml @ 12:6fc8bab811da draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ggplot2 commit 6737c924917eea8c009c30d7f9917d5a341b9948
author iuc
date Mon, 30 Sep 2024 15:40:22 +0000
parents b0d96516e6a5
children
line wrap: on
line source

<tool id="ggplot2_histogram" name="Histogram with ggplot2" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="20.01">
    <macros>
        <import>macros.xml</import>
    </macros>
    <expand macro="bio_tools"/>
    <expand macro="requirements">
        <requirement type="package" version="1.4.4">r-reshape2</requirement>
        <requirement type="package" version="2.1.0">r-svglite</requirement>
    </expand>
    <command detect_errors="exit_code"><![CDATA[
cat '$script' &&
Rscript '$script'
    ]]></command>
    <configfiles>
        <configfile name="script"><![CDATA[
@R_INIT@

## Import library
library(reshape2)
library(ggplot2)

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

@LEGEND@

## density
#if $adv.density == "counts"
    gg_density = ggplot(input,aes(value, color=variable))
    gg_freq = NULL
#elif $adv.density == "nfreq"
    gg_density = ggplot(input,aes(value, ..ncount.., color=variable))
    gg_freq = NULL
#elif $adv.density == "freq"
    gg_density = ggplot(input,aes(value, color=variable))
    gg_freq = aes(y=..count../sum(..count..))
#end if

@TRANSFORM@

@XY_SCALING@

@THEME@

#if $adv.facet == "facet"
    gg_facet = facet_wrap(~ variable)
#else
    gg_facet = NULL
#end if

#if $adv.coloring.colorscheme == "Default"
    gg_colorscale = NULL
#else
    gg_colorscale = scale_color_brewer(palette=$adv.coloring.colors, direction=$adv.coloring.colororder)
#end if

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))

@SAVE_OUTPUT@
        ]]></configfile>
    </configfiles>
    <inputs>
        <param name="input1" type="data" format="tabular" label="Input should have column headers - these will be the columns that are plotted"/>
        <expand macro="title" />
        <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"/>
        <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>
            <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>
        <expand macro="additional_output" />
    </outputs>
    <tests>
        <test expect_num_outputs="1">
            <param name="input1" value="mtcars.txt"/>
            <output name="output1">
                <assert_contents>
                    <has_size size="10k" delta="1k"/>
                </assert_contents>
            </output>
        </test>
        <test expect_num_outputs="2">
            <param name="input1" value="mtcars.txt"/>
            <param name="additional_output_format" value="pdf" />
            <output name="output2" file="ggplot_histogram_result1.pdf" ftype="pdf" compare="sim_size"/>
        </test>
    </tests>
    <help><![CDATA[
This tool will generate a histogram representing the distributions 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:
ID  Cond_A Cond_B
gene_A  10  15
gene_B  8   12
gene_C 10   15
gene_D  6   9
gene_E  9   13.5
gene_F  8   12
    ]]></help>
    <expand macro="citations"/>
</tool>