changeset 1:6a5c492f34e4 draft

Uploaded
author simon-gladman
date Wed, 09 Jul 2014 16:59:27 -0400
parents 0dc31adb9a02
children 7d626189cc4c
files trimmomatic.xml
diffstat 1 files changed, 208 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/trimmomatic.xml	Wed Jul 09 16:59:27 2014 -0400
@@ -0,0 +1,208 @@
+<tool id="trimmomatic" name="Trimmomatic" version="1.1.0">
+    
+    <description>Trim adapters and otherwise cleanup fastq files in a pair aware manner using trimmomatic 0.32</description>
+    <requirements>
+        <requirement type="set_environment">JAR_PATH</requirement>
+    </requirements>    
+    
+    <command interpreter="perl">
+        trimmomatic_wrapper.pl
+            paired ${paired.is_paired}
+            fwdfile ${paired.forwards_file}
+            #if $paired.is_paired:
+                revfile ${paired.reverse_file}
+            #end if
+            phred $phred
+            cutadapt ${adapt.adapters}
+            #if $adapt.adapters:
+                adaptfile ${adapt.adapt_file}
+                adaptseed ${adapt.adapt_seed}
+                adaptpalindrome ${adapt.adapt_palindrome}
+                adaptsimple ${adapt.adapt_simple}
+            #end if
+            slidingwindow ${sliding.slidingwindow}
+            #if $sliding.slidingwindow:
+                slidingsize ${sliding.slid_window}
+                slidingqual ${sliding.slid_qual}
+            #end if
+            trimleading ${leading.trimleading}
+            #if $leading.trimleading:
+                leadingqual ${leading.lead_qual}
+            #end if
+            trimtrailing ${trailing.trimtrailing}
+            #if $trailing.trimtrailing:
+                trailingqual ${trailing.trail_qual}
+            #end if
+            crop ${crop.cropend}
+            #if $crop.cropend:
+                croplen ${crop.crop_len}
+            #end if
+            headcrop ${headcrop.headcrop_s}
+            #if $headcrop.headcrop_s:
+                headcroplen ${headcrop.headcrop_len}
+            #end if
+            minlen $minlen
+            log $log
+            #if $log == "True":
+                logfile $logfile
+            #end if
+            singles $singles
+            #if $paired.is_paired:
+                fwdpairs $fwdpairs
+                revpairs $revpairs
+            #end if
+            tool-dir \$JAR_PATH
+            threads ${GALAXY_SLOTS}
+            > $dummy_out
+    </command>
+    
+    <inputs>
+        
+        <conditional name="paired">
+            <param name="is_paired" type="boolean" checked="true" truevalue="paired" falsevalue="single" label="Paired end reads?" help="Do you have 2 separate paired end read files?"/>
+            <when value="paired">
+                <param name="forwards_file" type="data" format="fastq,fastqsanger,fastqsolexa,fastqillumina" label="Direction 1 fastq reads to trim"/>
+                <param name="reverse_file" type="data" format="fastq,fastqsanger,fastqsolexa,fastqillumina" label="Direction 2 fastq reads to trim"/>
+            </when>
+            <when value="single">
+                <param name="forwards_file" type="data" format="fastq,fastqsanger,fastqsolexa,fastqillumina" label="Fastq reads to trim"/>
+            </when>
+        </conditional>
+        <param name="phred" type="select" label="Quality encoding." help="Phred33 or Phred 64, probably Phred64">
+            <option value="phred64">phred64</option>
+            <option value="phred33" selected="True">phred33</option>
+        </param>
+        
+        <conditional name="adapt">
+            <param name="adapters" type="boolean" checked="false" falsevalue="False" truevalue="True" label="Clip Illumina adapters?" help="Cut adapter and other illumina-specific sequences from the read."/>
+            <when value="True">
+                <param name="adapt_file" type="data" format="fasta" label="Fasta of adapters to clip" help="Please supply a list of adapters to clip"/>
+                <param name="adapt_seed" type="integer" value="2" label="Seed mismatches" help="Specifies the maximum mismatch count which will still allow a full match to be performed."/>
+                <param name="adapt_palindrome" type="integer" value="40" label="Palindrome clip threshold" help="Specifies how accurate the match between the two 'adapter ligated' reads must be for PE palindrome read alignment."/>
+                <param name="adapt_simple" type="integer" value="15" label="Simple clip threshold" help="Specifies how accurate the match between any adapter etc. sequence must be against a read."/>
+            </when>
+            <when value="False">
+            </when>
+        </conditional>
+        
+        <conditional name="sliding">
+            <param name="slidingwindow" type="boolean" checked="true" falsevalue="False" truevalue="True" label="Perform Sliding Window trimming?" help="Perform a sliding window trimming, cutting once the average quality within the window falls below a threshold."/>
+            <when value="True">
+                <param name="slid_window" type="integer" value="4" label="Sliding window size" help="Specifies the number of bases to average across"/>
+                <param name="slid_qual" type="integer" value="15" label="Average quality required" help="Specifies the average quality required."/>
+            </when>
+            <when value="false">
+            </when>
+        </conditional>
+        
+        <conditional name="leading">
+            <param name="trimleading" type="boolean" checked="true" falsevalue="False" truevalue="True" label="Trim leading bases?" help="Cut bases off the start of a read, if below a threshold quality."/>
+            <when value="True">
+                <param name="lead_qual" type="integer" value="3" label="Minimum quality" help="Specifies the minimum quality required to keep a base."/>
+            </when>
+            <when value="false">
+            </when>
+        </conditional>
+        
+        <conditional name="trailing">
+            <param name="trimtrailing" type="boolean" checked="true" falsevalue="False" truevalue="True" label="Trim trailing bases?" help="Cut bases off the end of a read, if below a threshold quality."/>
+            <when value="True">
+                <param name="trail_qual" type="integer" value="3" label="Minimum quality" help="Specifies the minimum quality required to keep a base."/>
+            </when>
+            <when value="false">
+            </when>
+        </conditional>
+        
+        <conditional name="crop">
+            <param name="cropend" type="boolean" checked="false" falsevalue="False" truevalue="True" label="Crop reads?" help="Cut the read to a specified length."/>
+            <when value="True">
+                <param name="crop_len" type="integer" value="0" label="Number of bases" help="The number of bases to keep, from the start of the read."/>
+            </when>
+            <when value="false">
+            </when>
+        </conditional>
+        
+        <conditional name="headcrop">
+            <param name="headcrop_s" type="boolean" checked="false" falsevalue="False" truevalue="True" label="Crop starts?" help="Cut the specified number of bases from the start of the read."/>
+            <when value="True">
+                <param name="headcrop_len" type="integer" value="0" label="Number of bases" help="The number of bases to remove from the start of the read."/>
+            </when>
+            <when value="false">
+            </when>
+        </conditional>
+        
+        <param name="minlen" type="integer" value="24" label="Minimum length read" help="Drop the read if it is below specified length"/>
+        
+        <param name="logfile" type="boolean" checked="false" falsevalue="False" truevalue="True" label="Turn on log?" help="Detailed log of trims on each read. (Very large file!)"/>    
+    </inputs>
+    
+    <outputs>
+        <data name="log" format="tabular" label="${tool.name} on ${on_string}: Trimmomatic Log" hidden="True">
+        </data>
+        <data name="fwdpairs" format="fastq" label="${tool.name} on ${on_string}: Dir1 trimmed pairs">
+            <filter>(paired['is_paired'])</filter>
+        </data>
+        <data name="revpairs" format="fastq" label="${tool.name} on ${on_string}: Dir2 trimmed pairs">
+            <filter>(paired['is_paired'])</filter>
+        </data>
+        <data name="singles" format="fastq" label="${tool.name} on ${on_string}: trimmed reads"/>
+        <data name="dummy_out" format="tabular" label="${tool.name} on ${on_string}: DEBUG OUTPUT" hidden="True"/>
+    </outputs>
+    <help>
+***Trimmomatic***
+
+A flexible read trimming tool for Illumina NGS data
+
+ 
+
+Trimmomatic performs a variety of useful trimming tasks for illumina paired-end and single ended data.The selection of trimming steps and their associated parameters are supplied on the command line.
+
+The current trimming steps are:
+
+ILLUMINACLIP: Cut adapter and other illumina-specific sequences from the read.
+
+SLIDINGWINDOW: Perform a sliding window trimming, cutting once the average quality within the window falls below a threshold.
+
+LEADING: Cut bases off the start of a read, if below a threshold quality
+
+TRAILING: Cut bases off the end of a read, if below a threshold quality
+
+CROP: Cut the read to a specified length
+
+HEADCROP: Cut the specified number of bases from the start of the read
+
+MINLEN: Drop the read if it is below a specified length
+
+**The Adapter Fasta**
+
+Illumina adapter and other technical sequences are copyrighted by Illumina, which makes it illegal for us to make them available without a licence. As such, you need to get access to the illumina sequences from another source, and create an appropriate adapter FASTA.
+
+To make this fasta, you must first understand how it will be used. Trimmomatic uses two strategies for adapter trimming: Palindrome and Simple
+
+With 'simple' trimming, each adapter sequence is tested against the reads, and if a sufficiently accurate match is detected, the read is clipped appropriately.
+
+'Palindrome' trimming is specifically designed for the case of 'reading through' a short fragment into the adapter sequence on the other end. In this approach, the appropriate adapter sequences are 'in silico ligated' onto the start of the reads, and the combined adapter+read sequences, forward and reverse are aligned. If they align in a manner which indicates 'read-through', the forward read is clipped and the reverse read dropped (since it contains no new data).
+
+Naming of the sequences indicates how they should be used. For 'Palindrome' clipping, the sequence names should both start with 'Prefix', and end in '/1' for the forward adapter and '/2' for the reverse adapter.All other sequences are checked using 'simple' mode. Sequences with names ending in '/1' or '/2' will be checked only against the forward or reverse read. All other sequences will be checked against both the forward and reverse read. If you want to check for the reverse-complement of a specific sequence, you need to specifically include the reverse-complemented form of the sequence as well, with another name.
+
+The thresholds used are a simplified log-likelihood approach. Each matching base adds just over 0.6, while each mismatch reduces the alignment score by Q/10. Therefore, a perfect match of a 20 base sequence will score just over 12, while 25 bases are needed to score 15. As such we recommend values between 12 - 15 for this parameter. For palindromic matches, the entire read sequence plus (partial) adapter sequences can be used - therefore this threshold can be higher, in the range of 30-40. The 'seed mismatch' parameter is used to make alignments more efficient, specifying the maximum base mismatch count in the 'seed' (16 bases). Typical values here are 1 or 2.
+
+**Citation**
+
+Lohse M, Bolger AM, Nagel A, Fernie AR, Lunn JE, Stitt M, Usadel B. RobiNA: a 
+user-friendly, integrated software solution for RNA-Seq-based transcriptomics.
+Nucleic Acids Res. 2012 Jul;40(Web Server issue):W622-7.
+
+ 
+
+**Contacts**
+
+Anthony Bolger bolger at mpimp-golm dot mpg dot de
+
+Federico M. Giorgi federico dot giorgi at gmail dot com
+
+Wrapped for Galaxy by:
+
+Simon Gladman (VBC/VLSCI) simon dot gladman at monash dot edu
+    </help>
+</tool>