view maplot.xml @ 0:e9212adafd7a draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc commit d5065f0bdf2d38c2344d96d68537223c1096daab
author iuc
date Thu, 15 May 2025 12:55:13 +0000
parents
children
line wrap: on
line source

<tool id="maplot" name="MA plot" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="20.01" license="MIT">
    <description>Generate MA plots for visualizing data distributions.</description>
    <macros>
        <token name="@TOOL_VERSION@">1.0.0</token>
        <token name="@VERSION_SUFFIX@">0</token>
    </macros>
    <edam_topics>
        <edam_topic>topic_0092</edam_topic>
    </edam_topics>
    <edam_operations>
        <edam_operation>operation_0337</edam_operation>
    </edam_operations>
    <requirements>
        <requirement type="package" version="6.0.0">plotly</requirement>
        <requirement type="package" version="1.13.1">scipy</requirement>
        <requirement type="package" version="2.2.3">pandas</requirement>
        <requirement type="package" version="0.14.4">statsmodels</requirement>
        <requirement type="package" version="3.9.4">matplotlib-base</requirement>
        <requirement type="package" version="0.2.1">python-kaleido</requirement>
    </requirements>
    <creator>
        <person
            givenName="Helge"
            familyName="Hecht"
            url="https://github.com/hechth"
            identifier="0000-0001-6744-996X" />
        <organization
            url="https://www.recetox.muni.cz/"
            email="GalaxyToolsDevelopmentandDeployment@space.muni.cz"
            name="RECETOX MUNI" />
    </creator>
    <command detect_errors="exit_code"><![CDATA[
    python3 '$__tool_directory__/maplot.py'
        --file_path '$file_path'
        --file_extension '$file_path.ext'
        --frac $frac
        --it $it
        --num_bins $num_bins
        --window_width $window_width
        --size $size
        --scale $scale
        --y_scale_factor $y_scale_factor
        --max_num_cols $max_num_cols
        #if $backend_conditional.backend == "plotly"
        --interactive
        #end if
        --output_format '$output_format'
        --output_file '$output_file'
    ]]></command>

    <inputs>
        <param argument="--file_path" type="data" label="Input File" format="csv,tsv,tabular,parquet" help="The input file containing the data to be visualized." />
        <param argument="--frac" type="float" value="0.8" label="LOESS Smoothing Fraction" help="The fraction of data points used for LOESS smoothing. This controls the degree of smoothing applied to the data." />
        <param argument="--it" type="integer" value="5" label="Number of Iterations" help="The number of iterations for LOESS smoothing. Increasing this value may improve accuracy but will also increase computation time." />
        <param argument="--num_bins" type="integer" value="100" label="Number of Bins" help="The number of bins to use for the histogram. This determines the granularity of the histogram visualization." />
        <param argument="--window_width" type="integer" value="5" label="Window Width" help="The width of the moving average window. This affects how the data is smoothed over a range of values." />
        <param argument="--size" type="integer" value="500" label="Plot Size" help="The size of the plot in pixels. Larger values produce higher-resolution plots." />
        <param argument="--scale" type="integer" value="3" label="Scale Factor" help="The scale factor for the plot. This controls the resolution of the output plot." />
        <param argument="--y_scale_factor" type="float" value="1.1" label="Y-Axis Scale Factor" help="A factor to scale the Y-axis. This can be used to adjust the vertical range of the plot." />
        <param argument="--max_num_cols" type="integer" value="100" label="Maximum Number of Columns" help="The maximum number of columns to display in the plot. This limits the number of subplots in the visualization." />

        <conditional name="backend_conditional">
            <param name="backend" type="select" label="Backend for Plotting" help="Choose the backend for generating the plot. Plotly supports interactive plots, while Matplotlib generates static plots.">
                <option value="plotly" selected="true">Plotly</option>
                <option value="matplotlib">Matplotlib</option>
            </param>
            <when value="plotly">
                <param argument="--output_format" type="select" label="Output Format" help="The output format for the plot when using Plotly. Options include PDF, PNG, and HTML.">
                    <option value="pdf" selected="true">PDF</option>
                    <option value="png">PNG</option>
                    <option value="html">HTML</option>
                </param>
            </when>
            <when value="matplotlib">
                <param argument="--output_format" type="select" label="Output Format" help="The output format for the plot when using Matplotlib. Options include PDF and PNG.">
                    <option value="pdf" selected="true">PDF</option>
                    <option value="png">PNG</option>
                </param>
            </when>
        </conditional>
    </inputs>
    <outputs>
        <data name="output_file" format="pdf" label="MA plot with ${backend_conditional.backend} on ${on_string}">
            <change_format>
                <when input="output_format" value="png" format="png" />
                <when input="output_format" value="html" format="html" />
            </change_format>
        </data>
    </outputs>
    <tests>
        <test>
            <param name="file_path" value="ma_plot_testdata_4.csv" />
            <conditional name="backend_conditional">
                <param name="backend" value="plotly" />
                <param name="output_format" value="pdf" />
            </conditional>
            <output name="output_file" file="output_plotly.pdf" />
        </test>
    
        <!-- Test case for Matplotlib backend with default parameters -->
        <test>
            <param name="file_path" value="ma_plot_testdata_4.csv" />
            <conditional name="backend_conditional">
                <param name="backend" value="matplotlib" />
                <param name="output_format" value="pdf" />
            </conditional>
            <output name="output_file" file="output_matplotlib.pdf" />
        </test>
    </tests>
    <help><![CDATA[
.. class:: infomark

**What it does**

This tool generates MA plots for visualizing data distributions. It supports two backends for plotting: Plotly and Matplotlib. Users can customize various parameters such as smoothing, binning, and scaling to tailor the visualization to their needs.

**Input**

- **Input File**: A CSV, TSV, tabular, or Parquet file containing the data to be visualized.

**Parameters**

- **LOESS Smoothing Fraction**: Fraction of data points used for LOESS smoothing.
- **Number of Iterations**: Number of iterations for LOESS smoothing.
- **Number of Bins**: Number of bins for the histogram.
- **Window Width**: Width of the moving average window.
- **Plot Size**: Size of the plot in pixels.
- **Scale Factor**: Scale factor for the plot resolution.
- **Y-Axis Scale Factor**: Factor to scale the Y-axis.
- **Maximum Number of Columns**: Maximum number of columns to display in the plot.
- **Backend for Plotting**: Choose between Plotly and Matplotlib.
- **Output Format**: Format of the output plot (PDF, PNG, or HTML).

**Output**

The tool generates a plot in the specified format (PDF, PNG, or HTML).
    ]]></help>
    <citations>
        <citation type="doi">10.2307/2987937</citation>
        <citation type="doi">10.1016/S0140-6736(86)90837-8</citation>
    </citations>
</tool>