diff stacks_procrad.xml @ 3:ead5013ec8e4 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit 9c41b2599125298b1a4d9ffb2511cdc87ff79a73
author matthias
date Tue, 18 Dec 2018 13:02:06 -0500
parents c9fffbd29afc
children 5839e51e5a3d
line wrap: on
line diff
--- a/stacks_procrad.xml	Fri Nov 30 07:40:25 2018 -0500
+++ b/stacks_procrad.xml	Tue Dec 18 13:02:06 2018 -0500
@@ -2,76 +2,25 @@
 <description>the Stacks demultiplexing script</description>
     <macros>
         <import>macros.xml</import>
+        <import>macros_process.xml</import>
     </macros>
     <expand macro="requirements"/>
     <expand macro="stdio"/>
     <expand macro="version_cmd"/>
     <command><![CDATA[
 @CLEAN_EXT@
-
 mkdir stacks_inputs stacks_outputs &&
-
-#for $input in $input_type.fqinputs:
-    #if $input_type.options_type_selector == "single"
-        #set $isfq=$input.is_of_type('fastqsanger')
-        #set $name=$clean_ext($input.element_identifier)
-    #else:
-        #set $isfq=$input.forward.is_of_type('fastqsanger')
-        ## TODO if https://github.com/galaxyproject/galaxy/pull/7031 is backoported use element_identifier consistently and fix release in <tool>
-        #set $name=$clean_ext($input.name)
-    #end if
-
-    #if $isfq:
-        #set $ext = "fastq"
-        #set inputype = "fastq"
-    #else
-        #set $ext = "fastq.gz"
-        #set inputype = "gzfastq"
-    #end if
-
-    #if $input_type.options_type_selector == "single"
-        ln -s '$input' 'stacks_inputs/${name}.${ext}' &&
-    #else:
-        ## procrad needs _R[12]_ in the file name, so we add an add 0
-        ln -s '$input.forward' 'stacks_inputs/${name}_R1_0.${ext}' &&
-        ln -s '$input.reverse' 'stacks_inputs/${name}_R2_0.${ext}' &&
-    #end if
-
-#end for
+@FASTQ_INPUT_PREPROC@
 
 process_radtags
 
--p stacks_inputs/
-#if $input_type.options_type_selector == "paired"
-    --paired
-#end if
--i $inputype
--b '$barcode'
+@PROCESS_IOOPTIONS@
+@PROCESS_FILTER@
+@COMMON_ADVANCED@
+@RESCUE_BARCODE@
+@PROCESS_ADAPTER@
 
-#if $filter_cond.filter_select == 'yes':
-    -w $filter_cond.sliding
-    -s $filter_cond.score
-    $filter_cond.remove
-    $filter_cond.discard
-    $filter_cond.filter_illumina
-#else
-    #if str($filter_cond.len_limit) != "":
-        --len_limit $filter_cond.len_limit
-    #end if
-#end if
-
-#if str($options_advanced.truncate)
-    -t $options_advanced.truncate
-#end if
-$options_advanced.rescue
-$capture
 ## -E not implemented in Galaxy defaults to phred33
-#if str( $outype ) != "auto"
-    -y $outype
-#end if
-
-## Barcode options
-$input_type.barcode_encoding
 
 ## Restriction enzyme options
 #if str($options_enzyme.enzyme) != '':
@@ -81,87 +30,20 @@
     --renz_2 $options_enzyme.enzyme2
 #end if
 
-## Protocol-specific options
+## advanced options not shared between shortreads and radtags
 $options_advanced.bestrad
-
-## Adapter options
-#if str($options_advanced.adapter_1) != "":
-    --adapter_1 $options_advanced.adapter_1
-#end if
-#if str($options_advanced.adapter_2) != "":
-    --adapter_2 $options_advanced.adapter_2
-#end if
-#if str($options_advanced.adapter_mm) != "":
-    --adapter_mm $options_advanced.adapter_mm
-#end if
+$options_advanced.disable_rad_check
 
 ## Output options
-$options_advanced.retain_header
 ## --merge not implemented in Galaxy
 
-## Advanced options
-$options_advanced.disable_rad_check
-#if str($options_advanced.barcode_dist_1) != "":
-    --barcode_dist_1 $options_advanced.barcode_dist_1
-#end if
-#if str($options_advanced.barcode_dist_2) != "":
-    --barcode_dist_2 $options_advanced.barcode_dist_2
-#end if
-
--o stacks_outputs
-
 && mv stacks_outputs/process_radtags.stacks_inputs.log $output_log
 
-#if $capture:
-    && mkdir stacks_outputs/discarded/
-    && mv stacks_outputs/*discards stacks_outputs/discarded/
-
-    ## fix the _R[12]_0 that was added for preparing the input
-    #if $input_type.options_type_selector == 'paired':
-    && find stacks_outputs/discarded/ -type f | while read file; do mv "\$file" "\$(echo \$file | sed 's/_R1_0/.1/; s/_R2_0/.2/;')"; done
-    #end if
-    ## also remove the gz which is added by procrad (but its uncompressed)
-    && find stacks_outputs/discarded/ -type f -iname "*.gz.discards" | while read file; do mv "\$file" "\$(echo \$file | sed 's/.gz.discards$/.discards/;')"; done
-
-    ## the discard files are named fastq even if the output is fasta
-    #if str($outype).endswith("fasta"):
-        && find stacks_outputs/discarded/ -type f | while read file; do mv "\$file" "\$(echo \$file | sed 's/\.fastq.discards/.fa/;')"; done
-    #else
-        && find stacks_outputs/discarded/ -type f | while read file; do mv "\$file" "\$(echo \$file | sed 's/\.fastq.discards/.fq/;')"; done
-    #end if
-#end if
-## prepare paired read output for processing in galaxy
-#if $input_type.options_type_selector == 'paired':
-    && mkdir stacks_outputs/remaining
-    && mv stacks_outputs/*.rem.[12].* stacks_outputs/remaining/
-    && find stacks_outputs/ -iregex ".*.f[aq]\(\.gz\)?" | while read file; do mv "\$file" "\$(echo \$file | sed 's/\.1\./.forward./; s/\.2\./.reverse./')"; done
-#end if
+@PROCESS_FASTQ_POSTPROC@
     ]]></command>
 
     <inputs>
-        <conditional name="input_type">
-            <param name="options_type_selector" type="select" label="Single-end or paired-end reads files">
-                <option value="single" selected="True">Single-end files</option>
-                <option value="paired">Paired-end files</option>
-            </param>
-            <when value="single">
-                <param name="fqinputs" argument="-f" format="fastqsanger,fastqsanger.gz" multiple="true" type="data" label="singles-end reads infile(s)" help="input files" />
-
-                <param name="barcode_encoding" type="select" label="Barcode location">
-                    <expand macro="barcode_encoding_single" />
-                </param>
-            </when>
-            <when value="paired">
-                <param name="fqinputs" type="data_collection" collection_type="list:paired" label="paired-end reads infile(s)" format="fastqsanger,fastqsanger.gz"/>
-<!--                <param name="inputs_paired1" argument="-1" format="fastqsanger,fastqsanger.gz" type="data" label="paired-end reads infile(s) 1" help="Files must have this syntax : name_R1_001.fastq" />-->
-<!--                <param name="inputs_paired2" argument="-2" format="fastqsanger,fastqsanger.gz" type="data" label="paired-end reads infile(s) 2" help="Files must have this syntax : name_R2_001.fastq" />-->
-                <param name="barcode_encoding" type="select" label="Barcode location">
-                    <expand macro="barcode_encoding_pair" />
-                </param>
-            </when>
-        </conditional>
-
-        <param name="barcode" argument="-b" type="data"  format="tabular,txt" label="Barcode file" />
+        <expand macro="process_inputs"/>
 
         <conditional name="options_enzyme">
             <param name="options_enzyme_selector" type="select" label="Number of enzymes">
@@ -184,71 +66,21 @@
         </conditional>
 
         <section name="options_advanced" title="advanced options" expanded="False">
-            <param name="truncate" type="integer" value="" optional="True" argument="-t" label="Truncate final read length to this value" />
-            <param name="rescue" type="boolean" checked="false" truevalue="-r" falsevalue="" argument="-r" label="Rescue barcodes and RAD-Tags?"/>
+	    <expand macro="common_advanced"/>
             <param argument="--bestrad" type="boolean" checked="false" truevalue="--bestrad" falsevalue="" label="library was generated using BestRAD, check for restriction enzyme on either read and potentially tranpose reads" />
-            <param argument="--retain_header" type="boolean" checked="false" truevalue="--retain_header" falsevalue="" label="Retain unmodified FASTQ headers in the output" />
             <param argument="--disable_rad_check" type="boolean" checked="false" truevalue="--disable_rad_check" falsevalue="" label="disable checking if the RAD site is intact" />
-            <param argument="--barcode_dist_1" type="integer" value="" optional="true" label="number of allowed mismatches when rescuing first read barcodes" help="(default 1)"/>
-            <param argument="--barcode_dist_2" type="integer" value="" optional="true" label="number of allowed mismatches when rescuing paired read barcodes" help="(default value for single end barcodes)"/>
-            <param argument="--adapter_1" type="text" value="" optional="true" label="adaptor sequence that may occur on the first read" />
-            <param argument="--adapter_2" type="text" value="" optional="true" label="adaptor sequence that may occur on the paired-read" />
-            <param argument="--adapter_mm" type="integer" value="" optional="true" label="number of mismatches allowed in the adapter sequence"/>
+	    <expand macro="rescue_barcode"/>
+	    <expand macro="process_adapter"/>
         </section>
 
-        <conditional name="filter_cond" >
-            <param name="filter_select" type="select" label="do quality filtering">
-                <option value="yes">Yes</option>
-                <option value="no" selected="true">No</option>
-            </param>
-            <when value="yes">
-                <param name="sliding" type="float" value="0.15" min="0" max="1" argument="-w" label="Set the size of the sliding window as a fraction of the read length, between 0 and 1" />
-                <param name="score" type="integer" value="10" min="0" max="40" argument="-s" label="Set the score limit. If the average score within the sliding window drops below this value, the read is discarded" />
-                <param name="remove" type="boolean" checked="false" truevalue="-c" falsevalue="" argument="-c" label="Clean data, remove any read with an uncalled base" />
-                <param name="discard" type="boolean" checked="false" truevalue="-q" falsevalue="" argument="-q" label="Discard reads with low quality scores"/>
-                <param argument="--filter_illumina" type="boolean" checked="false" truevalue="--filter_illumina" falsevalue="" label="discard reads that have been marked by Illumina's chastity/purity filter as failing" />
-            </when>
-            <when value="no">
-                <param argument="--len_limit" type="integer" value="" optional="true" label="minimum sequence length" help="useful if your data has already been trimmed"/>
-            </when>
-        </conditional>
-        <param name="capture" type="boolean" checked="false" truevalue="-D" falsevalue="" argument="-D" label="Capture discarded reads to a file" />
-
-        <param name="outype" argument="-y" type="select" label="Output format" >
-            <option value="auto" selected="True">Same as input</option>
-            <option value="fastq">fastq</option>
-            <option value="fasta">fasta</option>
-            <option value="gzfastq">gzipped fastq</option>
-            <option value="gzfasta">gzipped fasta</option>
-        </param>
+	<expand macro="process_filter"/>
+	<expand macro="process_output_types"/>
         <expand macro="in_log"/>
     </inputs>
 
     <outputs>
         <expand macro="out_log"/>
-        <collection name="demultiplexed" type="list" label="${tool.name} on ${on_string} Demultiplexed reads">
-            <filter>input_type['options_type_selector'] == "single"</filter>
-            <expand macro="discover_faqgz_output_macro" pattern="(?P&lt;name&gt;.+)" dir="stacks_outputs"/>
-        </collection>
-        <collection name="demultiplexed_paired" type="list:paired" label="${tool.name} on ${on_string} Demultiplexed reads">
-            <filter>input_type['options_type_selector'] == "paired"</filter>
-            <expand macro="discover_faqgz_output_macro" pattern="(?P&lt;identifier_0&gt;.+)\.(?P&lt;identifier_1&gt;[^.]+)" dir="stacks_outputs"/>
-        </collection>
-
-        <collection name="remaining" type="list:paired" label="${tool.name} on ${on_string} Remaining orphan reads">
-            <filter>input_type['options_type_selector'] == "paired"</filter>
-            <expand macro="discover_faqgz_output_macro" pattern="(?P&lt;identifier_0&gt;.+)\.rem\.(?P&lt;identifier_1&gt;[^.]+)" dir="stacks_outputs/remaining"/>
-        </collection>
-
-        <!-- note irrespective of -y output is always named fastq and are never zipped -->
-        <collection name="discarded" type="list" label="${tool.name} on ${on_string} Discarded reads">
-            <filter>capture is True and input_type['options_type_selector'] == "single"</filter>
-            <expand macro="discover_faq_output_macro" pattern="(?P&lt;name&gt;.*)" dir="stacks_outputs/discarded"/>
-        </collection>
-        <collection name="discarded_paired" type="list:paired" label="${tool.name} on ${on_string} Discarded reads">
-            <filter>capture is True and input_type['options_type_selector'] == "paired"</filter>
-            <expand macro="discover_faq_output_macro" pattern="(?P&lt;identifier_0&gt;.+)\.(?P&lt;identifier_1&gt;[^.]+)" dir="stacks_outputs/discarded"/>
-        </collection>
+	<expand macro="process_outputs"/>
     </outputs>
     <tests>
         <!-- single single ended input, no filtering (hence no capturing) + log -->
@@ -359,12 +191,12 @@
             <param name="options_enzyme|enzyme" value="ecoRI"/>
             <param name="options_enzyme|enzyme2" value="ecoRI"/>
             <param name="options_advanced|truncate" value="70" />
-            <param name="options_advanced|rescue" value="-r"/>
+            <param name="options_advanced|rescue_cond|rescue" value="-r"/>
+            <param name="options_advanced|rescue_cond|barcode_dist_1" value="2" />
+            <param name="options_advanced|rescue_cond|barcode_dist_2" value="2" />
             <param name="options_advanced|bestrad" value="--bestrad" />
             <param name="options_advanced|retain_header" value="true"/>
             <param name="options_advanced|disable_rad_check" value="--disable_rad_check" />
-            <param name="options_advanced|barcode_dist_1" value="2" />
-            <param name="options_advanced|barcode_dist_2" value="2" />
             <param name="options_advanced|adapter_1" value="" />
             <param name="options_advanced|adapter_2" value="" />
             <param name="options_advanced|adapter_mm" value="" />