changeset 11:9f65d5e29e94 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:14:53 +0000
parents 8941e2fa1dac
children 465dcff3b2a7
files pear.xml
diffstat 1 files changed, 101 insertions(+), 78 deletions(-) [+]
line wrap: on
line diff
--- a/pear.xml	Wed Sep 01 07:56:52 2021 +0000
+++ b/pear.xml	Mon Aug 12 07:14:53 2024 +0000
@@ -1,23 +1,37 @@
-<tool id="iuc_pear" name="Pear" version="0.9.6.1">
+<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="0.9.6">pear</requirement>
+        <requirement type="package" version="@TOOL_VERSION@">pear</requirement>
     </requirements>
-    <stdio>
-        <exit_code range="1:" />
-        <exit_code range=":-1" />
-        <regex match="Error:" />
-        <regex match="Exception:" />
-    </stdio>
-    <command>
+    <command detect_errors="aggressive">
 <![CDATA[
     pear
         #if str( $library.type ) == "paired":
-            -f "$library.forward"
-            -r "$library.reverse"
+            -f '$library.forward'
+            -r '$library.reverse'
             #if $library.forward.is_of_type( 'fastqillumina' ):
                 --phred-base 64
             #else:
@@ -25,8 +39,8 @@
             #end if
         #else
             ## prepare collection
-            -f "$library.input_collection.forward"
-            -r "$library.input_collection.reverse"
+            -f '$library.input_collection.forward'
+            -r '$library.input_collection.reverse'
             #if $library.input_collection.forward.is_of_type( 'fastqillumina' ):
                 --phred-base 64
             #else:
@@ -37,7 +51,7 @@
         --output pear
         --p-value $pvalue
         --min-overlap $min_overlap
-        #if int($max_assembly_length) > 0:
+        #if $max_assembly_length and int($max_assembly_length) > 0:
             --max-asm-length $max_assembly_length
         #end if
         --min-asm-length $min_assembly_length
@@ -46,7 +60,7 @@
         --max-uncalled-base $max_uncalled_base
         --test-method $test_method
         --empirical-freqs $empirical_freqs
-        -j "\${GALAXY_SLOTS:-8}"
+        --threads "\${GALAXY_SLOTS:-8}"
         --score-method $score_method
         --cap $cap
         $nbase
@@ -55,95 +69,103 @@
     <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>
+                <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" />
+                <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" format="fastqillumina,fastqsanger"
-                    type="data_collection" collection_type="paired"
-                    label="FASTQ Paired Dataset" help="Nucleotide-space: Must have PHRED-scaled quality values. (-f and -r)" />
+                <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" type="float" value="0.01" min="0" optional="True" max="1" 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 name="min_overlap" type="integer" value="10" optional="True" 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 name="max_assembly_length" type="integer" value="0" optional="True" 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 name="min_assembly_length" type="integer" value="50" optional="True" label="Minimum possible length of the assembled sequences"
-            help="Setting this value to 0 disables the restriction and assembled sequences may be arbitrary short. (--min-assembly-length)" />
-
-        <param name="min_trim_length" type="integer" value="1" optional="True" label="Minimum length of reads after trimming the low quality part"
-            help="See option -q. (--min-trim-length)" />
-
-        <param name="quality_threshold" type="integer" value="0" optional="True" 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. (--quality-threshold)" />
-
-        <param name="max_uncalled_base" type="float" value="1.0" min="0" optional="True" max="1" 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. (--max-uncalled-base)" />
-
-        <param name="cap" type="integer" value="40" optional="True" label="Specify  the upper bound for the resulting quality score"
-            help="If set to zero, capping is disabled. (--cap)" />
-
+        <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="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="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="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" display="checkboxes" optional="False" multiple="True" label="Output files">
-            <option value="assembled" selected="True">Assembled reads</option>
-            <option value="forward">Forward unassembled reads</option>
-            <option value="reverse">Reverse unassembled reads</option>
+        <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 format="input" name="assembled_reads" from_work_dir="pear.assembled.fastq" label="${tool.name} on ${on_string}: Assembled reads">
+        <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="input" name="unassembled_forward_reads" from_work_dir="pear.unassembled.forward.fastq" label="${tool.name} on ${on_string}: Unassembled forward reads">
-            <filter>'forward' in outputs</filter>
+        <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="input" name="unassembled_reverse_reads" from_work_dir="pear.unassembled.reverse.fastq" label="${tool.name} on ${on_string}: Unassembled reverse reads">
-            <filter>'reverse' in outputs</filter>
+        <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="input" name="discarded_reads" from_work_dir="pear.discarded.fastq" label="${tool.name} on ${on_string}: Discarded reads">
+        <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>
-            <param name="forward" value="forward.fastq" ftype="fastqsanger" />
-            <param name="reverse" value="reverse.fastq" ftype="fastqsanger" />
-            <param name="min_overlap" value="10" />
-            <param name="min_assembly_length" value="50" />
-            <param name="cap" value="0" />
-            <param name="outputs" value="assembled,forward" />
+        <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[
@@ -160,6 +182,7 @@
 
 .. _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
@@ -167,7 +190,7 @@
 
 ]]>
   </help>
-  <citations>
-      <citation type="doi">10.1093/bioinformatics/btt593</citation>
-  </citations>
+    <citations>
+        <citation type="doi">10.1093/bioinformatics/btt593</citation>
+    </citations>
 </tool>