diff sickle.xml @ 4:c70137414dcd draft

sickle v1.33
author nikhil-joshi
date Wed, 23 Jul 2014 18:35:10 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sickle.xml	Wed Jul 23 18:35:10 2014 -0400
@@ -0,0 +1,253 @@
+<tool id="sickle" name="Sickle" version="1.33">
+	<description>Windowed Adaptive Trimming of FastQ data</description>
+
+	<command>
+	sickle
+
+        #if str($readtype.single_or_paired) == "se":
+        se -f $input_single -o $output_single
+
+            #if $input_single.ext == "fastq":
+            -t sanger
+            #else if $input_single.ext == "fastqsanger":
+            -t sanger
+            #else if $input_single.ext == "fastqillumina":
+            -t illumina
+            #else if $input_single.ext == "fastqsolexa":
+            -t solexa
+            #end if
+
+		#end if
+
+        #if str($readtype.single_or_paired) == "pe_combo":
+            #if $readtype.output_n:
+            pe -c $input_combo -M $output_combo
+            #else
+            pe -c $input_combo -m $output_combo -s $output_combo_single
+            #end if
+
+            #if $input_combo.ext == "fastq":
+            -t sanger
+            #else if $input_combo.ext == "fastqsanger":
+            -t sanger
+            #else if $input_combo.ext == "fastqillumina":
+            -t illumina
+            #else if $input_combo.ext == "fastqsolexa":
+            -t solexa
+            #end if
+
+        #end if
+
+		#if str($readtype.single_or_paired) == "pe_sep":
+		pe -f $input_paired1 -r $input_paired2 -o $output_paired1 -p $output_paired2 -s $output_paired_single
+
+                #if $input_paired1.ext == "fastq":
+                -t sanger
+                #else if $input_paired1.ext == "fastqsanger":
+                -t sanger
+                #else if $input_paired1.ext == "fastqillumina":
+                -t illumina
+                #else if $input_paired1.ext == "fastqsolexa":
+                -t solexa
+                #end if
+
+		#end if
+
+		#if str($qual_threshold) != "":
+		-q $qual_threshold
+		#end if
+
+		#if str($length_threshold) != "":
+		-l $length_threshold
+		#end if
+
+		#if $no_five_prime:
+		-x
+		#end if
+
+		#if $trunc_n:
+		-n
+		#end if
+
+		--quiet
+	</command>
+
+	<inputs>
+		<conditional name="readtype">
+			<param name="single_or_paired" type="select" optional="false" label="Single-End or Paired-End reads?" help="Note: Sickle will infer the quality type of the file from its datatype.  I.e., if the datatype is fastqsanger, then the quality type is sanger.  The default is fastqsanger.">
+				<option value="se" selected="true">Single-End</option>
+				<option value="pe_combo">Paired-End (one interleaved input file)</option>
+                <option value="pe_sep">Paired-End (two separate input files)</option>
+			</param>
+
+			<when value="se">
+				<param format="fastq, fastqsanger, fastqillumina, fastqsolexa" name="input_single" type="data" optional="false" label="Single-End FastQ Reads"/>
+			</when>
+
+            <when value="pe_combo">
+                <param format="fastq, fastqsanger, fastqillumina, fastqsolexa" name="input_combo" type="data" optional="false" label="Paired-End Interleaved FastQ Reads"/>
+                <param name="output_n" type="boolean" label="Output only one file with all reads" help="This will output only one file with all the reads, where the reads that did not pass filter will be replaced with a single 'N', rather than discarded."/>
+            </when>
+
+			<when value="pe_sep">
+				<param format="fastq, fastqsanger, fastqillumina, fastqsolexa" name="input_paired1" type="data" optional="false" label="Paired-End Forward Strand FastQ Reads"/>
+				<param format="fastq, fastqsanger, fastqillumina, fastqsolexa" name="input_paired2" type="data" optional="false" label="Paired-End Reverse Strand FastQ Reads"/>
+			</when>
+		</conditional>
+
+		<param name="qual_threshold" value="20" type="integer" optional="true" label="Quality Threshold">
+			<validator type="in_range" min="0" message="Minimum value is 0"/>
+		</param>
+
+		<param name="length_threshold" value="20" type="integer" optional="true" label="Length Threshold">
+			<validator type="in_range" min="0" message="Minimum value is 0"/>
+		</param>
+
+		<param name="no_five_prime" type="boolean" label="Don't do 5' trimming"/>
+		<param name="trunc_n" type="boolean" label="Truncate sequences with Ns at first N position"/>
+	</inputs>
+
+	<outputs>
+		<data format_source="input_single" name="output_single" label="Single-End output of ${tool.name} on ${on_string}">
+		<filter>(readtype['single_or_paired'] == 'se')</filter>
+		</data>
+
+        <data format_source="input_combo" name="output_combo" label="Paired-End interleaved output of ${tool.name} on ${on_string}">
+        <filter>(readtype['single_or_paired'] == 'pe_combo')</filter>
+        </data>
+
+        <data format_source="input_combo" name="output_combo_single" label="Singletons from Paired-End interleaved output of ${tool.name} on ${on_string}">
+        <filter>(readtype['single_or_paired'] == 'pe_combo')</filter>
+        <filter>(readtype['output_n'] == False)</filter>
+        </data>
+
+		<data format_source="input_paired1" name="output_paired1" label="Paired-End forward strand output of ${tool.name} on ${on_string}">
+		<filter>(readtype['single_or_paired'] == 'pe_sep')</filter>
+		</data>
+
+		<data format_source="input_paired2" name="output_paired2" label="Paired-End reverse strand output of ${tool.name} on ${on_string}">
+		<filter>(readtype['single_or_paired'] == 'pe_sep')</filter>
+		</data>
+
+		<data format_source="input_paired1" name="output_paired_single" label="Singletons from Paired-End output of ${tool.name} on ${on_string}">
+		<filter>(readtype['single_or_paired'] == 'pe_sep')</filter>
+		</data>
+	</outputs>
+
+	<help>
+**Sickle - A windowed adaptive trimming tool for FASTQ files using quality**
+
+.. class:: infomark
+
+**About**
+
+Most modern sequencing technologies produce reads that have
+deteriorating quality towards the 3'-end and some towards the 5'-end
+as well. Incorrectly called bases in both regions negatively impact
+assembles, mapping, and downstream bioinformatics analyses.
+
+Sickle is a tool that uses sliding windows along with quality and
+length thresholds to determine when quality is sufficiently low to
+trim the 3'-end of reads and also determines when the quality is
+sufficiently high enough to trim the 5'-end of reads.  It will also
+discard reads based upon the length threshold.  It takes the quality
+values and slides a window across them whose length is 0.1 times the
+length of the read.  If this length is less than 1, then the window is
+set to be equal to the length of the read.  Otherwise, the window
+slides along the quality values until the average quality in the
+window rises above the threshold, at which point the algorithm
+determines where within the window the rise occurs and cuts the read
+and quality there for the 5'-end cut.  Then when the average quality
+in the window drops below the threshold, the algorithm determines
+where in the window the drop occurs and cuts both the read and quality
+strings there for the 3'-end cut.  However, if the length of the
+remaining sequence is less than the minimum length threshold, then the
+read is discarded entirely (or replaced with an "N" record). 5'-end
+trimming can be disabled. Sickle also has an option to truncate reads 
+with Ns at the first N position.
+
+Sickle supports three types of quality values: Illumina, Solexa, and
+Sanger. Note that the Solexa quality setting is an approximation (the
+actual conversion is a non-linear transformation). The end
+approximation is close. Illumina quality refers to qualities encoded
+with the CASAVA pipeline between versions 1.3 and 1.7.  Illumina
+quality using CASAVA >= 1.8 is Sanger encoded. The quality value will
+be determined from the datatype of the data, i.e. a fastqsanger datatype
+is assumed to be Sanger encoded.
+
+Note that Sickle will remove the 2nd fastq record header (on the "+"
+line) and replace it with simply a "+". This is the default format for
+CASAVA >= 1.8.
+
+-----
+
+.. class:: infomark
+
+**Options**
+
+**Single-end**
+
+This option takes one single-end input file and outputs one single-end 
+output file of reads that passed the filters.
+
+**Paired-End (one interleaved input file)**
+
+This option takes as input one interleaved paired-end file. If you then
+check the "Output only one file with all reads" checkbox, it will output
+one interleaved file where any read that did not pass filter will be replaced 
+with a FastQ record where the sequence is a single "N" and the quality is the 
+lowest quality possible for that quality type. This will preserve the paired 
+nature of the data. If you leave the checkbox unchecked, it will output two files,
+one interleaved file with all the passed pairs and one singletons file where only 
+one of the pair passed filter.
+
+**Paired-End (two separate input files)**
+
+This option takes two separate (forward and reverse) paired-end files as input. 
+The output is three files: Two paired-end files with pairs that passed filter and
+a singletons file where only one of the pair passed filter.
+
+**Quality threshold**
+
+Input your desired quality threshold. This threshold is phred-scaled, which is typically
+values between 0-41 for FastQ data.
+
+**Length threshold**
+
+Input your desired length threshold. This is the threshold to determine if a read is kept
+after all the trimming steps are done.
+
+**Disable 5-prime trimming**
+
+An option to disable trimming the read on the 5-prime end. This trimming trims the read 
+if the average quality values dip below the quality threshold at the 5-prime end.
+
+**Truncate sequences with Ns**
+
+This option will trim a read at the first "N" base in the read after doing quality trimming. 
+It is then still subject to the length threshold.
+
+-----
+
+.. class:: infomark
+
+**Citation**
+
+Sickle doesn't have a paper, but you can cite it like this::
+
+    Joshi NA, Fass JN. (2011). Sickle: A sliding-window, adaptive, quality-based trimming tool for FastQ files
+    (Version 1.33) [Software].  Available at https://github.com/najoshi/sickle.
+
+-----
+
+Copyright: Nikhil Joshi
+
+http://bioinformatics.ucdavis.edu
+
+http://github.com/ucdavis-bioinformatics
+
+http://github.com/najoshi
+
+	</help>
+
+</tool>