view macros.xml @ 14:5298e06f14f9 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:11 +0000
parents 5fe1dc76176e
children
line wrap: on
line source

<?xml version="1.0"?>
<macros>
    <xml name="requirements">
        <requirements>
            <requirement type="package" version="4.1.1">r-base</requirement>
            <requirement type="package" version="@TOOL_VERSION@">r-ggplot2</requirement>
            <yield />
        </requirements>
    </xml>
    <xml name="bio_tools">
        <xrefs>
            <xref type="bio.tools">ggplot2</xref>
        </xrefs>
    </xml>
    <token name="@TOOL_VERSION@">3.4.0</token>
    <token name="@VERSION_SUFFIX@">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 $adv.transform == "log2"
            input["value"] <- log2(input["value"])
        #elif $adv.transform == "log2plus1"
            input["value"] <- log2(input["value"]+1)
        #elif $adv.transform == "log10"
            input["value"] <- log10(input["value"])
        #elif $adv.transform == "log10plus1"
            input["value"] <- log10(input["value"]+1)
        #end if
    ]]></token>

    <token name="@XY_SCALING@"><![CDATA[
        #Choose between automatically scaled x and y axis or user defined
        #if $adv.scaling.plot_scaling == "Automatic"
            gg_scalex = NULL
            gg_scaley = NULL
        #else
            gg_scalex = xlim($adv.scaling.xaxismin, $adv.scaling.xaxismax)
            gg_scaley = ylim($adv.scaling.yaxismin, $adv.scaling.yaxismax)
            cat("\n xaxismin: ", $adv.scaling.xaxismin)
            cat("\n xaxismax: ", $adv.scaling.xaxismax)
            cat("\n yaxismin: ", $adv.scaling.yaxismin)
            cat("\n yaxismax: ", $adv.scaling.yaxismax)
        #end if
    ]]></token>

    <token name="@THEME@"><![CDATA[
        ## Choose theme for plot
        #if $adv.theme == "bw"
            gg_theme = theme_bw()
        #else
            gg_theme = NULL
        #end if
    ]]></token>

    <token name="@LEGEND@"><![CDATA[
        ## Show/hide legend
        #if $adv.legend == "yes"
            gg_legend = theme(legend.position="right")
        #else
            gg_legend = theme(legend.position="none")
            cat("\n no legend")
        #end if
    ]]></token>
    <token name="@SAVE_OUTPUT@"><![CDATA[
        ## output options need to be in out section
        gg_width <- as.double('$out.width_output_dim')
        gg_height <- as.double('$out.height_output_dim')
        gg_unit <- '$out.unit_output_dim'
        gg_dpi <- as.double('$out.dpi_output_dim')
        gg_add_device <- '$out.additional_output_format'
        output1 <- '$output1'
        output2 <- '$output2'

        ## ggsave to png
        ggsave(filename = output1, plot = plot_out, width = gg_width, height = gg_height, units = gg_unit, dpi = gg_dpi, device = "png")
        if(gg_add_device != "none"){
          ggsave(filename = output2, plot = plot_out, width = gg_width, height = gg_height, units = gg_unit, dpi = gg_dpi, device = gg_add_device)
        }
    ]]></token>
    <xml name="read_complex_input">
        <param name="input1" type="data" format="tabular" label="Select table"/>
        <conditional name="inputdata">
            <param name="input_type" type="select" label="Select input dataset options" help="specific dataset input for reading">
                <option value="with_header" selected="true">Dataset with header</option>
                <option value="with_rownames">Dataset with row names</option>
                <option value="with_header_rownames">Dataset with header and row names</option>
                <option value="no_header_rownames">Dataset without header or row names</option>
            </param>
            <when value="with_header">
                <param name="header" type="hidden" value="TRUE"/>
                <param name="row_names_index" type="hidden" value="0"/>
                <param name="sample_name_orientation" type="select" display="radio" multiple="false" label="Sample names orientation" help="Default horizontal: header names are interpreted as sample names">
                    <option value="TRUE" selected="true">horizontal</option>
                    <option value="FALSE">vertial</option>
                </param>
            </when>
            <when value="with_rownames">
                <param name="header" type="hidden" value="FALSE"/>
                <param name="row_names_index" type="data_column" data_ref="input1" label="Select column, for row names" help="WARNING: please consider that using row names might shift the grouping columns"/>
                <param name="sample_name_orientation" type="select" display="radio" label="Sample names orientation" help="default vertial: row names are interpreted as sample names">
                    <option value="TRUE">horizontal</option>
                    <option value="FALSE" selected="true">vertial</option>
                </param>
            </when>
            <when value="with_header_rownames">
                <param name="header" type="hidden" value="TRUE"/>
                <param name="row_names_index" type="data_column" data_ref="input1" label="Select column, for row names" help="WARNING: please consider that using row names might shift the grouping columns"/>
                <param name="sample_name_orientation" type="select" label="Sample names orientation" display="radio" multiple="false" help="deside whether header names or row names are interpreted as sample names">
                    <option value="TRUE" selected="true">horizontal</option>
                    <option value="FALSE">vertial</option>
                </param>
            </when>
            <when value="no_header_rownames">
                <param name="header" type="hidden" value="FALSE"/>
                <param name="row_names_index" type="hidden" value="0"/>
                <param name="sample_name_orientation" type="hidden" value="TRUE"/>
            </when>
        </conditional>
    </xml>
    <xml name="transform">
        <param name="transform" type="select" label="Data 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>
    <xml name="xy_scaling">
        <conditional name="scaling">
            <param name="plot_scaling" type="select" label="Axis scaling">
                <option value="Automatic" selected="true">Automatic axis scaling</option>
                <option value="Defined">User-defined axis scales</option>
            </param>
            <when value="Automatic"/>
            <when value="Defined">
                <param name="xaxismin" type="float" value="0" label="minimal range of x-axis" />
                <param name="xaxismax" type="float" value="3" label="maximal range of x-axis" />
                <param name="yaxismin" type="float" value="0" label="minimal range of y-axis" />
                <param name="yaxismax" type="float" value="3" label="maximal range of y-axis" />
            </when>
        </conditional>
    </xml>
    <xml name="title">
       <param name="title" type="text" value="" label="Plot title">
            <!--<sanitizer sanitize="false"/> -->
        </param>
    </xml>
    <xml name="xy_lab">
        <param name="xlab" type="text" value="Title of x-axis" label="Label for x axis">
            <sanitizer sanitize="false"/>
        </param>
        <param name="ylab" type="text" value="Title of y-axis" label="Label for y axis">
            <sanitizer sanitize="false"/>
        </param>
    </xml>
    <xml name="legend">
        <param name="legend" type="select" label="Legend options">
            <option value="yes">Include legend on plot</option>
            <option value="no">Hide legend</option>
        </param>
    </xml>
    <xml name="theme">
        <param name="theme" type="select" label="Backgound theme for plot">
            <option value="bw">Black and white</option>
            <option value="Default">Default (grey)</option>
        </param>
    </xml>
    <xml name="dimensions">
        <param name="unit_output_dim" type="select" label="Unit of output dimensions" help="Default: inches.">
            <option value="in" selected="true">Inches (in)</option>
            <option value="cm">Centimeters (cm)</option>
            <option value="mm">Millimeters (mm)</option>
        </param>
        <param name="width_output_dim" type="float" value="7" label="width of output"/>
        <param name="height_output_dim" type="float" value="7" label="height of output"/>
        <param name="dpi_output_dim" type="float" value="300" label="dpi of output" help="Plot resolution. Applies only to raster output types."/>
        <param name="additional_output_format" type="select" label="Additional output format" help="PNG is always selected as output format.">
            <option value="none" selected="true">Only PNG</option>
            <option value="pdf">PDF</option>
            <option value="svg">SVG</option>
            <option value="eps">EPS</option>
            <option value="ps">PS</option>
            <option value="tex">TEX (pictex)</option>
            <option value="jpeg">JPEG</option>
            <option value="tiff">TIFF</option>
            <option value="bmp">BMP</option>
        </param>
    </xml>
    <xml name="citations">
        <citations>
            <citation type="bibtex">@book{wickham2009ggplot2,
                author = {Hadley Wickham},
                title = {ggplot2: Elegant Graphics for Data Analysis},
                publisher = {Springer-Verlag New York},
                year = {2009},
                isbn = {978-0-387-98140-6},
                url = {https://ggplot2.tidyverse.org/},
                }
            </citation>
            <yield />
        </citations>
    </xml>
    <xml name="axis_customization" token_label="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"/>
        <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>
    <xml name="additional_output">
        <data name="output1" format="png" label="${tool.name} on ${on_string}: png"/>
        <data format="pdf" name="output2" label="${tool.name} on ${on_string}: ${out.additional_output_format}">
            <change_format>
                <when input="out.additional_output_format" value="svg" format="svg" />
                <when input="out.additional_output_format" value="eps" format="eps" />
                <when input="out.additional_output_format" value="ps" format="ps" />
                <when input="out.additional_output_format" value="tex" format="txt" />
                <when input="out.additional_output_format" value="jpeg" format="jpg" />
                <when input="out.additional_output_format" value="tiff" format="tiff" />
                <when input="out.additional_output_format" value="bmp" format="bmp" />
            </change_format>
            <filter>out['additional_output_format'] != "none"</filter>
        </data>
    </xml>
    <xml name="points_options">
        <conditional name="points">
            <param name="pointoptions" type="select" label="Data point options">
                <option value="default" selected="true">Default</option>
                <option value="defined">User defined point options</option>
            </param>
            <when value="default">
                <!--Do nothing here -->
            </when>
            <when value="defined">
                <param name="size" type="float" value="1" label="relative size of points" />
                <param name="alpha" type="float" value="1" label="Transparency of points (On a scale of 0-1; 0=transparent, 1=default)" />
                <param name="pointcolor" type="select" label="Color of data points" >
                    <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="shape" type="select" label="Shape of data points" >
                    <option value="0">square</option>
                    <option value="1">circle</option>
                    <option value="2">triangle point up</option>
                    <option value="3">plus</option>
                    <option value="4">cross</option>
                    <option value="5">diamond</option>
                    <option value="6">triangle point down</option>
                    <option value="7">square cross</option>
                    <option value="8">star</option>
                    <option value="9">diamond plus</option>
                    <option value="10">circle plus</option>
                    <option value="11">triangles up and down</option>
                    <option value="12">square plus</option>
                    <option value="13">circle cross</option>
                    <option value="14">square and triangle down</option>
                    <option value="15">filled square</option>
                    <option value="16">filled circle</option>
                    <option value="17">filled triangle point-up</option>
                    <option value="18">filled diamond</option>
                    <option value="19">solid circle</option>
                    <option value="20">bullet (smaller circle)</option>
                </param>
            </when>
        </conditional>
    </xml>
</macros>