view pear.xml @ 4:037f0acc7830 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/pear commit c142110046b4ed562e8240a65f5603640752dc2e
author iuc
date Mon, 12 Aug 2024 07:15:00 +0000
parents b4c6f054210a
children f69501361cec
line wrap: on
line source

<tool id="iuc_pear" name="Pear" version="@TOOL_VERSION@.@VERSION_SUFFIX@" profile="23.0">
    <description>Paired-End read merger</description>
    <macros>
        <token name="@TOOL_VERSION@">0.9.6</token>
        <token name="@VERSION_SUFFIX@">3</token>
        <xml name="format_action">
            <actions>
                <conditional name="library.type">
                    <when value="paired">
                        <action type="format">
                            <option type="from_param" name="library.forward" param_attribute="ext"/>
                        </action>
                    </when>
                    <when value="paired_collection">
                        <action type="format">
                            <option type="from_param" name="library.input_collection" param_attribute="forward.ext"/>
                        </action>
                    </when>
                </conditional>
            </actions>
        </xml>
    </macros>
    <xrefs>
        <xref type="bio.tools">pear</xref>
    </xrefs>
    <requirements>
        <requirement type="package" version="@TOOL_VERSION@">pear</requirement>
    </requirements>
    <command detect_errors="aggressive">
<![CDATA[
    pear
        #if str( $library.type ) == "paired":
            -f '$library.forward'
            -r '$library.reverse'
            #if $library.forward.is_of_type( 'fastqillumina' ):
                --phred-base 64
            #else:
                --phred-base 33
            #end if
        #else
            ## prepare collection
            -f '$library.input_collection.forward'
            -r '$library.input_collection.reverse'
            #if $library.input_collection.forward.is_of_type( 'fastqillumina' ):
                --phred-base 64
            #else:
                --phred-base 33
            #end if
        #end if

        --output pear
        --p-value $pvalue
        --min-overlap $min_overlap
        #if $max_assembly_length and int($max_assembly_length) > 0:
            --max-asm-length $max_assembly_length
        #end if
        --min-asm-length $min_assembly_length
        --min-trim-length $min_trim_length
        --quality-theshold $quality_threshold
        --max-uncalled-base $max_uncalled_base
        --test-method $test_method
        --empirical-freqs $empirical_freqs
        --threads "\${GALAXY_SLOTS:-8}"
        --score-method $score_method
        --cap $cap
        $nbase
]]>
    </command>
    <inputs>
        <conditional name="library">
            <param name="type" type="select" label="Dataset type">
                <option value="paired">Paired-end</option>
                <option value="paired_collection">Paired-end Dataset Collection</option>
            </param>
            <when value="paired">
                <param name="forward" type="data" format="fastqillumina,fastqsanger" label="Name of file that contains the forward paired-end reads" help="-f"/>
                <param name="reverse" type="data" format="fastqillumina,fastqsanger" label="Name of file that contains the reverse paired-end reads" help="-r"/>
            </when>
            <when value="paired_collection">
                <param name="input_collection" type="data_collection" format="fastqillumina,fastqsanger" label="FASTQ Paired Dataset" help="Nucleotide-space: Must have PHRED-scaled quality values. (-f and -r)" collection_type="paired"/>
            </when>
        </conditional>
        <!-- optional -->
        <param name="pvalue" argument="--p-value" type="float" min="0" max="1" value="0.01" label="Specify a p-value for the statistical test" help="If the computed p-value of a possible assembly exceeds the specified p-value then the paired-end read will not be assembled. Setting 1.0 disables the test. (--p-value)"/>
        <param argument="--min-overlap" type="integer" value="10" min="0" label="Minimum overlap size" help="The minimum overlap may be set to 1 when the statistical test is used. However, further restricting the minimum overlap size to a proper value may reduce false-positive assembles. (--min-overlap)"/>
        <param argument="--max-assembly-length" min="0" type="integer" value="0" label="Maximum possible length of the assembled sequences" help="Setting this value to 0 disables the restriction and assembled sequences may be arbitrary long. (--max-assembly-length)"/>
        <param argument="--min-assembly-length" min="0" type="integer" value="50" label="Minimum possible length of the assembled sequences" help="Setting this value to 0 disables the restriction and assembled sequences may be arbitrary short."/>
        <param argument="--min-trim-length" min="0" type="integer" value="1" label="Minimum length of reads after trimming the low quality part" help="See option --quality-threshold."/>
        <param argument="--quality-threshold" type="integer" value="0" label="Quality score threshold for trimming the low quality part of a read" help="If the quality scores of two consecutive bases are strictly less than the specified threshold, the rest of the read will be trimmed."/>
        <param argument="--max-uncalled-base" type="float" min="0" max="1" value="1.0" label="Maximal proportion of uncalled bases in a read" help="Setting this value to 0 will cause PEAR to discard all reads containing uncalled bases. The other extreme setting is 1 which causes PEAR to process all reads independent on the number of uncalled bases."/>
        <param argument="--cap" type="integer" value="40" min="0" label="Specify  the upper bound for the resulting quality score" help="If set to zero, capping is disabled."/>
        <param name="test_method" type="select" label="Type of statistical test" help="(--test-method)">
            <option value="1" selected="true">Given the minimum allowed overlap, test using the highest OES (1)</option>
            <option value="2">Use the acceptance probability (2)</option>
        </param>
        <param name="empirical_freqs" type="boolean" truevalue="-e" falsevalue="" checked="false" label="Disable empirical base frequencies" help="(--empirical-freqs)"/>
        <param name="nbase" type="boolean" truevalue="--nbase" falsevalue="" checked="false" label="Use N base if uncertain" help="When  merging a base-pair that consists of two non-equal bases out of which none is degenerate, set the merged base to N and use the highest quality score of the two bases. (--nbase)"/>
        <param name="score_method" type="select" label="Scoring method" help="(--score-method)">
            <option value="1">OES with +1 for match and -1 for mismatch</option>
            <option value="2" selected="true">Assembly score (AS) use +1 for match and -1 for mismatch multiplied by base quality scores</option>
            <option value="3">Ignore quality scores and use +1 for a match and -1 for a mismatch</option>
        </param>
        <param name="outputs" type="select" optional="false" label="Output files" multiple="true">
            <option value="assembled" selected="true">Assembled reads</option>
            <option value="unassembled_forward">Forward unassembled reads</option>
            <option value="unassembled_reverse">Reverse unassembled reads</option>
            <option value="discarded">Discarded reads</option>
        </param>
    </inputs>
    <outputs>
        <data name="assembled_reads" from_work_dir="pear.assembled.fastq" label="${tool.name} on ${on_string}: Assembled reads">
            <expand macro="format_action"/>
            <filter>'assembled' in outputs</filter>
        </data>
        <data format="auto" name="unassembled_forward_reads" from_work_dir="pear.unassembled.forward.fastq" label="${tool.name} on ${on_string}: Unassembled forward reads">
            <expand macro="format_action"/>
            <filter>'unassembled_forward' in outputs</filter>
        </data>
        <data format="auto" name="unassembled_reverse_reads" from_work_dir="pear.unassembled.reverse.fastq" label="${tool.name} on ${on_string}: Unassembled reverse reads">
            <expand macro="format_action"/>
            <filter>'unassembled_reverse' in outputs</filter>
        </data>
        <data format="auto" name="discarded_reads" from_work_dir="pear.discarded.fastq" label="${tool.name} on ${on_string}: Discarded reads">
            <expand macro="format_action"/>
            <filter>'discarded' in outputs</filter>
        </data>
    </outputs>
    <tests>
        <test expect_num_outputs="2">
            <conditional name="library">
                <param name="type" value="paired"/>
                <param name="forward" value="forward.fastq" ftype="fastqsanger"/>
                <param name="reverse" value="reverse.fastq" ftype="fastqsanger"/>
            </conditional>
            <param name="min_overlap" value="10"/>
            <param name="min_assembly_length" value="50"/>
            <param name="cap" value="0"/>
            <param name="outputs" value="assembled,unassembled_forward"/>
            <output name="assembled_reads" file="pear_assembled_results1.fastq" ftype="fastqsanger"/>
            <output name="unassembled_forward_reads" file="pear_unassembled_forward_results1.fastq" ftype="fastqsanger"/>
        </test>
        <!-- same test as before using collection input and fastqillumina 
             (even if it isn't) .. therefore only loose check of outputs -->
        <test expect_num_outputs="2">
            <conditional name="library">
                <param name="type" value="paired_collection"/>
                <param name="input_collection">
                    <collection type="paired">
                        <element name="forward" value="forward.fastq" ftype="fastqillumina"/>
                        <element name="reverse" value="reverse.fastq" ftype="fastqillumina"/>
                    </collection>
                </param>
            </conditional>
            <param name="min_overlap" value="10"/>
            <param name="min_assembly_length" value="50"/>
            <param name="cap" value="0"/>
            <param name="outputs" value="assembled,unassembled_forward"/>
            <output name="assembled_reads" ftype="fastqillumina">
                <assert_contents>
                    <has_line_matching expression="@.*"/>
                </assert_contents>
            </output>
            <output name="unassembled_forward_reads" ftype="fastqillumina">
                <assert_contents>
                    <has_line_matching expression="@.*"/>
                </assert_contents>
            </output>
        </test>
    </tests>
    <help>
<![CDATA[

**What it does**

PEAR_ is an ultrafast, memory-efficient and highly accurate pair-end read merger.
PEAR evaluates all possible paired-end read overlaps and without requiring the target fragment
size as input. In addition, it implements a statistical test for minimizing false-positive results.
Together with a highly optimized implementation, it can merge millions of paired end reads within a couple of minutes
on a standard desktop computer.

For more information please look at the documentation_ and `github repository`_.

.. _PEAR: https://sco.h-its.org/exelixis/web/software/pear/
.. _documentation: https://sco.h-its.org/exelixis/web/software/pear/doc.html
.. _github repository: https://github.com/tseemann/PEAR

Please note that PEAR is released under the
[CC Attribution-NonCommercial-ShareAlike](https://creativecommons.org/licenses/by-nc-sa/3.0/) license
and that commercial partners should obtain a license.

]]>
  </help>
    <citations>
        <citation type="doi">10.1093/bioinformatics/btt593</citation>
    </citations>
</tool>