<tool id="ampvis2_alpha_diversity" name="ampvis2 alpha diversity" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="@PROFILE@" license="MIT">
    <description></description>
    <macros>
        <import>macros.xml</import>
    </macros>
    <expand macro="header"/>
    <command detect_errors="exit_code"><![CDATA[
        Rscript '$rscript'
    ]]></command>
    <configfiles>
        <configfile name="rscript"><![CDATA[
            #set m='"' + '", "'.join(str($measure).split(",")) + '"'
            library(ampvis2, quietly = TRUE)
            d <- readRDS("$data")
            a <- amp_alphadiv(d,
                measure = c($m),
                richness = $richness
                @RAREFY_TOKEN@
            )
            write.table(a, file='$alphadiv', quote=FALSE, sep='\t', row.names=FALSE)
        ]]></configfile>
    </configfiles>
    <inputs>
        <expand macro="rds_input_macro"/>
        <param argument="measure" type="select" multiple="true" optional="false" label="Alpha-diversity measure(s) to be included">
            <option value="observed" selected="true">observed</option>
            <option value="shannon" selected="true">shannon</option>
            <option value="simpson" selected="true">simpson</option>
            <option value="invsimpson" selected="true">invsimpson</option>
        </param>
        <param argument="richness" type="boolean" truevalue="TRUE" falsevalue="FALSE" label="Calculate sample richness estimates" help="Chao1 and ACE"/>
        <expand macro="rarefy_macro" help="before calculating alpha diversity and/or richnes"/>
    </inputs>
    <outputs>
        <data name="alphadiv" format="tabular"/>
    </outputs>
    <tests>
        <test>
            <param name="data" value="AalborgWWTPs.rds" ftype="ampvis2"/> 
            <output name="alphadiv">
                <assert_contents>
                    <has_line line="SampleID&#9;Plant&#9;Date&#9;Year&#9;Period&#9;Reads&#9;ObservedOTUs&#9;Shannon&#9;Simpson&#9;invSimpson"/>
                    <has_text text="16SAMP-536&#9;"/>
                    <has_text text="&#9;Aalborg West&#9;"/>
                    <has_n_lines n="68"/>
                    <has_n_columns n="10"/>
                </assert_contents>
            </output>
        </test>
        <test>
            <param name="data" value="AalborgWWTPs.rds" ftype="ampvis2"/> 
            <param name="measure" value="observed,shannon"/> 
            <param name="richness" value="true"/>
            <param name="rarefy" value="500"/>
            <output name="alphadiv">
                <assert_contents>
                    <has_line line="SampleID&#9;Plant&#9;Date&#9;Year&#9;Period&#9;RawReads&#9;Reads&#9;ObservedOTUs&#9;Shannon&#9;Chao1&#9;ACE"/>
                    <has_text text="16SAMP-536&#9;"/>
                    <has_text text="&#9;Aalborg West&#9;"/>
                    <has_n_lines n="68"/>
                    <has_n_columns n="11"/>
                    <has_text text="&#9;500&#9;"/>
                </assert_contents>
            </output>
        </test>
    </tests>
    <help><![CDATA[

What it does
============

Calculate alpha-diversity indices for each sample and combines with the metadata.

The Galaxy tool calls the `amp_alpha_diversity
<https://madsalbertsen.github.io/ampvis2/reference/amp_alphadiv.html>`_ function
of the ampvis2 package. 

Usage
=====

The alpha-diversity indices are calculated per sample using the vegan function `diversity <https://rdrr.io/pkg/vegan/man/diversity.html>`_,
where the read abundances are first rarefied using `rrarefy <https://rdrr.io/pkg/vegan/man/rarefy.html>`_ by the size of the rarefy argument.
Refer to the vegan documentation for details about the different indices and how they are
calculated.


Input
=====

@HELP_RDS_INPUT@

Output
======

A tabular dataset containing the chosen alpha-diversity measures per sample.

    ]]></help>
    <expand macro="citations">
        <citation type="doi">10.1371/journal.pcbi.1003531</citation>
    </expand>
</tool>