Mercurial > repos > sanbi-uwc > trimmomatic
changeset 0:d8975856862e draft
planemo upload for repository https://github.com/SANBI-SA/galaxy-tools/tree/master/tools/trimmomatic commit 59bf1dad1e71026bff0431a020335c51ce1fd153
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/README.rst Fri Jan 20 08:00:23 2017 -0500 @@ -0,0 +1,112 @@ +Trimmomatic: flexible read trimming tool for Illumina NGS data +============================================================== + +Galaxy tool wrapper for the Trimmomatic program, which provides various functions for +manipluating Illumina FASTQ files (both single and paired-end). + +Trimmomatic has been developed within Bjorn Usadel's group at RWTH Aachen university +http://www.usadellab.org/cms/index.php?page=trimmomatic + +The reference for Trimmomatic is: + +- Bolger, A.M., Lohse, M., & Usadel, B. (2014). Trimmomatic: A flexible trimmer + for Illumina Sequence Data. Bioinformatics, btu170. + +Automated installation +====================== + +Installation via the Galaxy Tool Shed will take care of installing the tool wrapper +and the trimmomatic program and data, and setting the appropriate environment +variables. + +Manual Installation +=================== + +There are two files to install: + +- ``trimmomatic.xml`` (the Galaxy tool definition) +- ``trimmomatic.sh`` (the shell script wrapper) + +The suggested location is in a ``tools/trimmomatic/`` folder. You will then +need to modify the ``tools_conf.xml`` file to tell Galaxy to offer the tool +by adding the line: + + <tool file="trimmomatic/trimmomatic.xml" /> + +You will also need to install trimmomatic 0.36: + +- http://www.usadellab.org/cms/uploads/supplementary/Trimmomatic/Trimmomatic-0.36.zip + +The tool wrapper uses the following environment variables in order to find the +appropriate files: + +- ``TRIMMOMATIC_DIR`` should point to the directory holding the + ``trimmomatic-0.36.jar`` file +- ``TRIMMOMATIC_ADAPTERS_DIR`` should point to the directory holding the adapter + sequence files (used by the ``ILLUMINACLIP`` option). + +If you want to run the functional tests, copy the sample test files under +sample test files under Galaxy's ``test-data/`` directory. Then: + + ./run_tests.sh -id trimmomatic + +You will need to have set the environment variables above. + +History +======= + +========== ====================================================================== +Version Changes +---------- ---------------------------------------------------------------------- +0.36.0 - Update to Trimmomatic 0.36. +0.32.4 - Add support for ``AVGQUAL`` and ``MAXINFO`` operations. +0.32.3 - Add support for FASTQ R1/R2 pairs using dataset collections (input + can be dataset collection, in which case tool also outputs dataset + collections) and improve order and naming of output files. +0.32.2 - Use ``GALAXY_SLOTS`` to set the appropriate number of threads to use + at runtime (default is 6). +0.32.1 - Remove ``trimmomatic_adapters.loc.sample`` and hard-code adapter files + into the XML wrapper. +0.32.0 - Add tool_dependencies.xml to install Trimmomatic 0.32 automatically and + set the environment. + - Update tool versioning to use Trimmomatic version number (i.e. ``0.32``) + with tool iteration appended (i.e. ``.1``). +0.0.4 - Specify '-threads 6' in <command> section. +0.0.3 - Added MINLEN, LEADING, TRAILING, CROP and HEADCROP options of trimmomatic. +0.0.2 - Updated ILLUMINACLIP option to use standard adapter sequences (requires + the trimmomatic_adapters.loc file; sample version is supplied) plus + cosmetic updates to wording and help text for some options. +0.0.1 - Initial version +========== ====================================================================== + + +Developers +========== + +This tool is developed on the following GitHub repository: +https://github.com/fls-bioinformatics-core/galaxy-tools/tree/master/trimmomatic + +For making the "Galaxy Tool Shed" http://toolshed.g2.bx.psu.edu/ tarball I use +the ``package_trimmomatic.sh`` script. + + +Licence (MIT) +============= + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/install_tool_deps.sh Fri Jan 20 08:00:23 2017 -0500 @@ -0,0 +1,22 @@ +#!/bin/bash +# +# Install dependencies for Trimmomatic for testing from the command line +# +# Installer functions +. $(dirname $0)/../../local_dependency_installers/trimmomatic.sh +# Installation directory +TOP_DIR=$1 +if [ -z "$TOP_DIR" ] ; then + echo Usage: $(basename $0) DIR + exit +fi +if [ -z "$(echo $TOP_DIR | grep ^/)" ] ; then + TOP_DIR=$(pwd)/$TOP_DIR +fi +if [ ! -d "$TOP_DIR" ] ; then + mkdir -p $TOP_DIR +fi +# Trimmomatic 0.32 +install_trimmomatic_0_36 $TOP_DIR +## +#
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/package_trimmomatic.sh Fri Jan 20 08:00:23 2017 -0500 @@ -0,0 +1,24 @@ +#!/bin/sh +# +# Package Trimmomatic tool files into tgz file for upload to +# Galaxy toolshed +# +TGZ=trimmomatic.tgz +if [ -f $TGZ ] ; then + echo $TGZ: already exists, please remove >&2 + exit 1 +fi +tar cvzf $TGZ \ + README.rst \ + trimmomatic.xml \ + trimmomatic.sh \ + tool_dependencies.xml \ + test-data +if [ -f $TGZ ] ; then + echo Created $TGZ +else + echo Failed to created $TGZ >&2 + exit 1 +fi +## +#
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run_planemo_tests.sh Fri Jan 20 08:00:23 2017 -0500 @@ -0,0 +1,39 @@ +#!/bin/bash +# +# Install dependencies and set up environment for +# trimmomatic tool, then run tests using planemo +# +# Note that any arguments supplied to the script are +# passed directly to the "planemo test..." invocation +# +# e.g. --install_galaxy (to get planemo to create a +# Galaxy instance to run tests) +# +# --galaxy_root DIR (to run tests using existing +# Galaxy instance) +# +# List of dependencies +TOOL_DEPENDENCIES="trimmomatic/0.36" +# Where to find them +TOOL_DEPENDENCIES_DIR=$(pwd)/test.tool_dependencies.trimmomatic +if [ ! -d $TOOL_DEPENDENCIES_DIR ] ; then + echo WARNING $TOOL_DEPENDENCIES_DIR not found >&2 + echo Creating tool dependencies dir + mkdir -p $TOOL_DEPENDENCIES_DIR + echo Installing tool dependencies + $(dirname $0)/install_tool_deps.sh $TOOL_DEPENDENCIES_DIR +fi +# Load dependencies +for dep in $TOOL_DEPENDENCIES ; do + env_file=$TOOL_DEPENDENCIES_DIR/$dep/env.sh + if [ -e $env_file ] ; then + . $env_file + else + echo ERROR no env.sh file found for $dep >&2 + exit 1 + fi +done +# Run the planemo tests +planemo test $@ $(dirname $0)/trimmomatic.xml +## +#
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/Illumina_SG_R1.fastq Fri Jan 20 08:00:23 2017 -0500 @@ -0,0 +1,40 @@ +@MISEQ:1:000000000-A2Y1L:1:1101:19264:2433 1:N:0:NAAGGCGATAGATCGC +AGATAGCCGAAGATAAAGAGNTCATAACCGTAAAGGCCAGAGACGAGAACCACTCGCAGGCAAGGTTTGCAAGCCTCGCCAAGAATATTATAGACCCGCTTGCCAACGACTGGCATTACATCACCGTAAAGAAGGTAGGCAAGAATCACTGGATCAGCATAACAGATGAGGGTAGAGACGCCGTATCGTTTCTGGGCTAGGTTATCTGGGCCGCCTTCTTGCGTCGGCGCACAGTCACAAAGGAAATGCC ++ +?????BBB@BBBB?BBFFFF#66EAFHHHCEFEDFGHHHHF@DFHACEEF@FDFHHHHEEEHHHF?FGEHFHDEFGHHCEHEFHHHHFFFCFDFFFFBEEEEEEEEEEEB?EEEEEEEEEEEBBEE?CE?:ACCC*??CAAEECE:?ECA:?A*?EEEE?EEEE?0AAC/?8)00**0:8'8;48*?8/8?AEEEE8:A*8*0:**0**:?C?480?EE?A############################# +@MISEQ:1:000000000-A2Y1L:1:1101:18667:2435 1:N:0:NAAGGCGATAGATCGC +ATATATTCATCCGCCATTATNAGAGTCCGATTACTTTAGAACAGTGCCGCGAATCCTTCGTCAACTGTAATCCAAGCGACATTGGTTCGATTAGCACGCATGAGGCACGAGATCTACGCGTATCTCTGGTAGATACACCAGGAGGGATGAGAGTTGAGCGAGTTAGCTGTGGCCAGAGAGATGGGTCTAATCGTAGTCTACAACTGGGAGTCACATGCCACTACCGACTAATCTGGTCGCCGAACGGGAG ++ +?????BBBDDDDADDDE@FF#66CFCFHHBEHHIIIHIIHHFHHGHHHHHHHHHHIHIHIFHHHHHHEGFHIHHIIIHHHHHHHHCFHHHHHHHFFFFFFEEEEFFEFEEBBEEEFFE@E8;EEFFFEF*:AEEEEEFFFEAAEA?A?ACAEF?CEEFED2<.?AAECEAEFEEE8??A8?CAAE1?EEE?AE*888AEEEEFEEFFA8A8?ACEAEEEAE?C:??ED2<E:C*:?*:8?ED<>8.)8?< +@MISEQ:1:000000000-A2Y1L:1:1101:17523:2436 1:N:0:NAAGGCGATAGATCGC +CATCACTACCGCTCAGGAATNTGACGGCAGTCTTAGCGGCGCTCTAGTGCGGGAGGCCGTATCTTGGAATAAGGTGTCGTCAAATGCAAGGCAGGTAACCCTACACGCCGAGGTTACCACTATACTCCCGTTTCTATATTCCTGTCTCTTATACACATCTCCGAGCCCACGAGACTAAGGCGAATATCGGTTGCCGTCTTCTGCTTGAAAAAAAAAAACAAACAAGAGAAGACGACGTACTGCACCACCA ++ +?<,<?BBBBBBBBBBBFFFF#6ACECCEC78CE=CGHEH7CHCHFGHADGHHHCCCHHE<DFHFFFFDFFFFFFDFDFDDEEEEEEEEECAEEEE;?BEEEBEEBCE;C;48;)?AACCEEE?AA?:?E88AEE:CE?AAEEEE:?***0:*??AAEEEEEEA?.8;E################################################################################## +@MISEQ:1:000000000-A2Y1L:1:1101:15489:2437 1:N:0:NAAGGCGATAGATCGC +GAGCAGTCGGGCTCAGCGCTNTGCAAATTCTAGTTAGAAACTCACAGTTCTGACAAGCCTTAGGTCAGTGTGATTGGCGGTTAGTCAACTCGGAGAAAGCGTCTTTTCCCGACTTGAATGGTTTGTCCCGACAGTTCGTTGACTGGGGTTTCGTCAGCCTTGAGCGGGGTTCCATCCATCTTTATCGCGCCTTGGGAAAGTAGTCGGCGGGCTTCGGGGTTGGGTGAGGGCAATCCTTGTTCGGTCAAAA ++ +5====>/<@@@@@@>@CCCE#66>ACEEEEGGGGGGGFFFEFDFFFFF=CDEFFFFEDEFFFFFC=AEBF-AA@CE;ECD5<5<==C==DEEE)83CD==@+4@DEE*<D1<)1@;888*90;*1988@)2)'4;=EE################################################################################################################ +@MISEQ:1:000000000-A2Y1L:1:1101:18851:2442 1:N:0:NAAGGCGATAGATCGC +GGTATCCCCCGGCAGTGAGGATGGAGCCATGGTCTGCATCATACTCACCGTAGGTGAGAATATCCACGTCCTTCGACTCCTGGGTGCCGTCTATGGTGCCCTCTGTTACCAGGCAGTGACGGAGGACATGGTGAGGTTTCAGTACCTCTGGCCCGGCCTGGGTCACAGGGTCAGACTGGGTGACCTTCATGAAGCGTCTGGTGACGTAGCTGTGATAGTCCAGCTTGGCAACCTCTGCTGGTTGCAGAGG ++ +??,<?BBBDDDDDDD<FFF@FC;FFFBEFHHHCDDHHGHHHDGHHHFHHEA?EEAEEHDEFHHHHHFECFHHHFHDHEEHHCFH7CEFHDEHHCFHHFHHF=FFFDFDFFFFEEEEDDEFEEE<BBCEBCE,==AE1::AAEECEE*?*AAEFF??>D?)8):A8?EC?8***0*00:8?*)0*1:?CACC:AA?;)?EEFAEECE88*)1A*10*1:*1?:AC::A)*::*8ACEEE?########### +@MISEQ:1:000000000-A2Y1L:1:1101:15290:2442 1:N:0:NAAGGCGATAGATCGC +AAAATAATCCTAAAAAATAACCTCTATGCCGCCGAACGCTCCGCCTCTATCTTCGTAAAAACTATCTTCTCCTCCTCACCTCCATAATCAAGCATCAAGCGATCGCCCTCCGCCAACTCACCCCGCAAAATCTTATCCGCTAGCGGATTCTCAATCTCCGTCTGAATGACCCGCCTCAGCGGCCGCGCCCCATAAACCGAATCAAATCCACGCCTGTCTCTTATACACATCTCCGAGCCCACGAGACTAA ++ +?????BBBDDDDDDDDGGGGGGIIIHHFFHHHHHHHHHHEHHEHHHHHIIHHHHHFEHIIIHHIHHIHIHIIIIIHHHHHHHHHHHHHHHHDHHHHHHHHGEDFGGGGGGG;CEGEGCEGGGGG8>GGGGEGGEECEGGGGD8EDGGAEGEEGGCE:CGG8CEEGG???CEE<DG8CC*??>DG.8<AGGGGCEEG*C2<GCCECE*:?CE?CE9C:C:C:?C*1**010:*?E82'2<GCE######## +@MISEQ:1:000000000-A2Y1L:1:1101:18106:2444 1:N:0:NAAGGCGATAGATCGC +GTAGTATTCTCATATCACAAGTCCCCAAACTGCATAAGGTGTGGAGTGGAGTGTCTCCCACTGCATTTTGTTGGTTTGGGTTGCATTTTTTGTGGCACAAAATTATCTTTAAACACTCTAAGCTCATATTTGCACATGCAACATGAATTGGAGCATTTCTTTTGCAGTCAACTGCCAGTACATTAACTCCACTCTGTAATAGTAAATCCTGTCTCTTATCCACATCTCCGAGCCCACGAGAATAAGGCGA ++ +55,,5?9BBBBB<<BBFFFFFFFHHFBEFHFHHHFDFCF0A9@>9D9DFG;FHHHHGHHFFFFHHHHECDCEFF>EFEEEE@CDFEFHHGHHHHEHDGHHFHDFHFHHHHFFHHH@FDD??DFFFFDBBEEBEEEEEEEEEEEEEEEEE,;?CEC;CEEEECB?CEEEEEEEECEEE?C?CE*0?***/:::?:*/?:A::**/:*:ACE?0:::A::***00::*/?C888??EEE############# +@MISEQ:1:000000000-A2Y1L:1:1101:15892:2446 1:N:0:NAAGGCGATAGATCGC +CTTCCCCACGGCCCAGACACAAGAGACGACCTCCATAAATCTTTTAGAGGGTGACCGCATCTCCGACGCAAACCAGGACGCCGATACCCTCGTGGTGGTGTTCGACCGTACGGATGGCGCAGACACCGACGGCACTAGTGCCACGGTATCAGGTACCACCATAACGTATGATTCGGGCACGCTCAAGGGCCAGCGTGACGGAATCGATAGAATACACTACACGGTGACTGATGGGGCCAGCCAAACCTGT ++ +?????BBBDBDDDDDDFFFFFFHIHIHHHHHHIHIFGGHFHHHHIIFHIHH?EEGHHHHHH-EGEHHCEHHHHH@FDFFEFF5@EEEFFEFE;AECCE;AEEEEEA?8?AEDDEEDFFDE2>>EEFF<<<2>D?DEEE*:C?AA<>8AEFCEE:?C?EEE?CEFEE0?:E?ACEECD8>EE>)8>E:CEEEEEED.)?AE??A?:A?*??:C0?CCE?AAA:88.88?::C:C?*8)4A?A######### +@MISEQ:1:000000000-A2Y1L:1:1101:17903:2450 1:N:0:TAAGGCGATAGATCGC +GTGCAGGGGGTGTGGTCAATCCACACTGTTGCTGAGGTGATTGGGTCTCCGGGGTCAACTCCATGAGGTAGCAGACCAGTGCCAGAGATAGTGACCACAGTGTTGGCCCTGTCTCTTATACACATCTCCGAGCCCACGAGACTAAGGCGAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAGACTTTTAAAAAACCGATCTACACCTTGACAGGCTATTAAAGGAAACTGGCCTGGTATCACAG ++ +=5===<>+5<5<+5=@CC;8CEEEEE;-8ACFDE.7C87CF-A>E>E=FFE**>>5AEDAEED-5-5AADC=D+=DDE<++3+CCD9DCD+=@3:DEEEEDD<@D*9DE99;@;@EE@;@@EEE7@@8@:@@@;9EE'449?<<E;=E<<;8(6;?############################################################################################## +@MISEQ:1:000000000-A2Y1L:1:1101:15113:2451 1:N:0:TAAGGCGATAGATCGC +TCTCAGATGAGCATGCAGCAGCCCAGACTCGCCCCACGCAGTTTGCCAACCACAAGGCCATCCTCGGCCTGTCAGCCTGCCCCTCCCTCCCTCACCAGCTAGCCTCCTATGCCGCGGTAGGGGGCTCAAAGAGATTCAGACACAGCCACGTAATCATGTTACTTGCCCATTCCCCCCTCCCTCCTCCTCCTCTCCCCCCCTCTCTTCCCCTCTCCCCTCCCCTCCTCCCCTCCTGTCCCTTATACACATC ++ +=,,<=>>>@@@@@9@@CCEE@EE+++6C8-++CECE+>DCC>@@EFFFFEEEDEE55+ACEF;-C+>EE++CBA--5A++CDC+4<<+=DE=CDEE@+@9D:D+4;@###############################################################################################################################################
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/Illumina_SG_R2.fastq Fri Jan 20 08:00:23 2017 -0500 @@ -0,0 +1,40 @@ +@MISEQ:1:000000000-A2Y1L:1:1101:19264:2433 2:N:0:NAAGGCGATAGATCGC +GCCGATATGCAGATGCCGTTGATTGCTGCCAGCATAGCAGCCATTGCCGGCATATCCTTTGTGACTGTGCGCCGACGCAAGAAGGCGGCCCAGATAACCTAGCCCAGAAACGATACGGCGTCTCTACCCTCATCTGTTATGCTGATCCAGTGATTCTTGCCTACCTTCTTTACGGTGATGTAATGCCAGTCGTTGGCAAGCGGGTCTATAATATTCTTGGCGAGGCTTGCAAACCTGGCCTGCGAGTGGT ++ +??A??ABBDDDDDDDDFFEEEFHIIIIHHIIHIFHIIHHHFHHIIIIIHHHFHHIIIIIIFFFHHIIHGDEHHAAEHHHHFHHHHD=EBBEEEEEFFFFEEEECEFFEEFFF8*??AA?;>DEEEFFFF*?8AECFEFFFFFFEAEEECFFFCEEEFFFFFFEEFEACEEC?CAACEFEEEFE?0?EACAAAEEAACEEA*.48.'0*1::A?CAA?CC::4''4'00'8:?A8?E############## +@MISEQ:1:000000000-A2Y1L:1:1101:18667:2435 2:N:0:NAAGGCGATAGATCGC +GATGACATCAGCACAGGTTCCGCTTCCGCTGTCGCAACGACGTGGCTGCCATCGATTATATTCAATTCTGAGTGCTGCCGTAGGGCTAGATGTAAGACTCACGTTCGGCGACCAGATTAGTCGGTAGTGGCATGTGACTCCCCGTTGTAGACTACGATTAGACCCATCTCTCTGGCCACAGCTAACTCGCTCAACTCTCATCCCTCCTGGGGTATCTACCAGCGATACGCGTAGAACTCGTGCCTCATGC ++ +?????BBBDDDDDDDDGFFGGGHHHHIHHHHHHHIHHHHIHBCEEHFFHHHIIHFHHHIIIIIIIHIFBGFGFHHHHIHE@EEEHHFFHHFF?CFHHHHHGGGGGGGGGGGGGGGGGGGECGGG;EE:CEGGG?#################################################################################################################### +@MISEQ:1:000000000-A2Y1L:1:1101:17523:2436 2:N:0:NAAGGCGATAGATCGC +GAATATAGAAACGGGAGTATAGTGGTAACCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCTAGNNCGCCGCTAAGACTGCCGTCAAATTCCTGAGCGGTAGTGATGCTGTCTCTTATACACATCTGACGCTGCCGACGAGCGATCTAGTGTAGATCTCGGGGGGCGCCGGCACATTCAAAAAAAAAAAACAGGAAAATGACATAGGCGTGTGTGA ++ +??AAABBBDDDDDEDDGGCFGGHHIFFHHH################################################################66?=##466@@EEEGCGGC>CE<EGEEGEGCEGEGGGG88<?1?C?EGCE?EEC?CC?CCEGGCGGCGC8?CCAC<AA'2228>*0*1C:?################################################################# +@MISEQ:1:000000000-A2Y1L:1:1101:15489:2437 2:N:0:NAAGGCGATAGATCGC +GTCCACGTGAAATCCCGAGCGTCCCTCTCCCTCCCGAGAACCCGGTCTATATCCCACGATTTTTGACCGAACAAGGATTGACCTCATCCAACTCCGAAGCCCGCCGCCTACTTTCCCAAGGCGCGATAAAGATTGATGGAACCCCGCCCAAGGCTGACGAAATCCCCGCCAACGAACTGTCGGGCCGACCCATTCAAGTGGGGAAAAAAACCTTTCCCCGGGTTGACAAACCGCCAAACAACCTCACCAA ++ +????9B???AD9?BDDEEDDDDHHHHHFHFHFFHHHHHHHHHEHH>CEGHHFGHHGHH=FHHHHC+CGEBCC<CF@,4CF@CFBFFFFDF?B4BD@@D)>CE6BB)).).:AAAEE?A?A################################################################################################################################## +@MISEQ:1:000000000-A2Y1L:1:1101:18851:2442 2:N:0:NAAGGCGATAGATCGC +TCTCCTCAGTACGGGGGAGGAGGTTCGCTCGGCGGACGTGCGGCCCTACGCCAGACTCTACCACATGGTTCAGCAGGAGCTGGAGCACCGCGCTGTGTCCGGGGACTGGGAATACACCATCAGCCCCGGCGAGGAGTGGCAAGAGACGGAGCCTCTGCAACCAGCAGAGGTTGCCAAGCTGGACTATCACAGCTACGTCACCAGACGCTTCATGAAGGTCACCCAGTCTGACCCTGTGAACCAGGCCGGG ++ +A??A?BBBDDDDDDDDGGGGGGHEFHHGEHHHIHEHHHHHDHBEHGFFFEGGDEEDGGGGGEGGEECE?EGCEGEGGGCEEEGGCEEGG4D;;4AGGGGGG8>GGA?EGGGEEGEEGGGCGGEGEGGGGD8<AADECECEGG?CCC:8CC''8:C:?CCE*?)0CC0:*?:C:?CCC8?CCEC9*::CCCC?C*::.CEGGEC99C4')).00*:C:?*10:CC########################## +@MISEQ:1:000000000-A2Y1L:1:1101:15290:2442 2:N:0:NAAGGCGATAGATCGC +GCGTGGATTTGATTCGGTTTATGGGGCGCGGCCGCTGAGGCGGGTCATTCAGACGGAGATTGAGAATCCGCTAGCGGATAAGATTTTGCGGGGGGAGTTGGCGGAGGGCGATCGCTTGATGCTTGATTATGGAGGGGAGGGGGAGAAGATAGGTTTTACGAAAATAGAGGCGGAGGGGTCGGCGGCATAGAGGGTAATTTTTTGGGTTTTTTTCTGTGTCTTATACACAACTGAACGTGCCGACGAGCGG ++ +?????@?BDDDDDDDDFEEEFFHIIHEHHHHDHHHHHEHHHHHH8ADFFFDFFD1D;>1,;;;;3B,3B;;*:B;1;''0::0*1:A*:;>DD'4'8.::AA>D22>DA>''0..08?*:A*1?:*0?########################################################################################################################## +@MISEQ:1:000000000-A2Y1L:1:1101:18106:2444 2:N:0:NAAGGCGATAGATCGC +GAGTTACTATTACAGAGTGGAGCTAATGTACTGGCAGTTGACTGCAAAAGAAATGCTCCAATTCATGTTGCATGTGCAAATATGAGCTTAGAGTGTTTAAAGATAATTTTGTGCCACAAAAAATGCAACCCAAACCAACAAAATGCAGTGGGAGACACTCCACTCCACACCTTATGCAGTTTGGGGACTTGTGATATGAGAATACTACCTGTCTCTTATACACATCTGACGCTGCCGACGAGCGAACAAG ++ +?????BBBDDDDDDDDGCFGFGIIIIIHFHIIIIHIHFG=EHHIGIIIIFHIHDGHGHHHIHIH=CGHGGHFHHHFHFGHHFH/ACDFGG?FE?CDFFHHHHHIIHFHHI>CEDGFHHHHHHHHDFHHFHHHFFAFFGGGGGGEDEG>>DACC;?EGG>CEEA>AEACCEE?:C::CC:::C:CE<C<9C:?C?*?CEECCC*:C?C?E:?:C:C:CCCCE:?C1*0*11.8C)2?'48>G######### +@MISEQ:1:000000000-A2Y1L:1:1101:15892:2446 2:N:0:NAAGGCGATAGATCGC +GTATTGCTGGCACCATCAGTCACCGTGTAGTGTATTCTATCGATTCCGTCACGCTGGCCCTTGAGCGTGCCCGAATCATACGTTATGGTGGTACCTGATACCGTGGCACTAGTGCCGTCGGTGTCTGCGCCATCCGTACGGTCGAACACCACCACGAGGGTATCGGCGTCCTGGTTTGCGTCGGGGATGCGGTCACCCTCTAAAAGATTTATGGAGGTCGTCTCTTGTGTCTGGGCCGGGGGGAAGATGT ++ +?????BBBDDDDDDDDGGGGGGIIHIIFHHHIHHIFHGHGGHHIHIIDEFFHEF@DFHIIHIIIGHACDCFFHHHIHIIHIHGHHHBGFGEEHHHHFHFFHHDFDCEGGFGGFGGG@DBEEEEGC>CEEGGGGGGE0?CDGGGD>EE2CE8CEGEE<>>>):CEEGDA'428CE:?9CC4828>'4<)0:>'04)1?E*8:1CC??):CCEECC**8)0548?C*:?:*010*:CC############## +@MISEQ:1:000000000-A2Y1L:1:1101:17903:2450 2:N:0:TAAGGCGATAGATCGC +GGCCAACACTGTGGTCACTATCTCTGGCACTGGTCTGCTACCACATGGAGTTGACACCGGAGACCCAATCACCACAGCAACAGTGTGGATTGACCACACCCCCTGCACCTGTCTCTTATACACATCTGACGCTGCCGACGAGCGATCTAGTGTAGATCTCCGTGGGCGCCGCATCATTAAAAAAAAAAAAAAAAAACATAACTCTCAAACGCGAATAGAGCAAGAAACAGACAGCTAAAGTACAAACAAT ++ +55<?????DDDBBDDBFFFFFFCHHIIHHIIIIIIIHGHHIIIIHHGHIIHFHHIIIIHHHCDHIIIHFFHIIIIICFFHIHECGCGEHIH=FHHHHHHHHHHF;FFFFFDDFFFFFFFEFFFFEFEBDFAEEAEE@EEDD>DDD880:?#################################################################################################### +@MISEQ:1:000000000-A2Y1L:1:1101:15113:2451 2:N:0:TAAGGCGATAGATCGC +GAGGGGAGGAGGGGAAGGGAGAGGGGAAGAGAGGAGAGGAGAGGAGGAGGAGAGAAGGGGGAATGAGCAAGTAACATAATTACATAGCTGTGTCTGAATCTCTTTGAGCACCCTACCTCGGCATAGGAGGCTAGCTGGTGAGGGAGGGAGGGGCAGACTGACAGGCCGAGGATGGCCTTGTGGTTGGCAAACTCCGTGGGGCGAGTCTGGGCTGCTGCATGCGCATCTGAGACTGGCTCTTGTACACATC ++ +?????@9@B?B?BBBBEEEFB@@EEHEC?BF-CE@DDEH,5+5C,>@+CE+<?=E-CFECEHHDBD,?DFF,4DDDBF;=B;;BBD;D,B4=BEEEEECB,,BB;?C?CEEEE*;;C:AC?C;?CC:AEEE?E8ACE:0:A?AA8A4.??8?8248)8:ACEEE?E)4;?;?##############################################################################
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/trimmomatic_avgqual.fastq Fri Jan 20 08:00:23 2017 -0500 @@ -0,0 +1,16 @@ +@MISEQ:1:000000000-A2Y1L:1:1101:18667:2435 1:N:0:NAAGGCGATAGATCGC +ATATATTCATCCGCCATTATNAGAGTCCGATTACTTTAGAACAGTGCCGCGAATCCTTCGTCAACTGTAATCCAAGCGACATTGGTTCGATTAGCACGCATGAGGCACGAGATCTACGCGTATCTCTGGTAGATACACCAGGAGGGATGAGAGTTGAGCGAGTTAGCTGTGGCCAGAGAGATGGGTCTAATCGTAGTCTACAACTGGGAGTCACATGCCACTACCGACTAATCTGGTCGCCGAACGGGAG ++ +?????BBBDDDDADDDE@FF#66CFCFHHBEHHIIIHIIHHFHHGHHHHHHHHHHIHIHIFHHHHHHEGFHIHHIIIHHHHHHHHCFHHHHHHHFFFFFFEEEEFFEFEEBBEEEFFE@E8;EEFFFEF*:AEEEEEFFFEAAEA?A?ACAEF?CEEFED2<.?AAECEAEFEEE8??A8?CAAE1?EEE?AE*888AEEEEFEEFFA8A8?ACEAEEEAE?C:??ED2<E:C*:?*:8?ED<>8.)8?< +@MISEQ:1:000000000-A2Y1L:1:1101:15290:2442 1:N:0:NAAGGCGATAGATCGC +AAAATAATCCTAAAAAATAACCTCTATGCCGCCGAACGCTCCGCCTCTATCTTCGTAAAAACTATCTTCTCCTCCTCACCTCCATAATCAAGCATCAAGCGATCGCCCTCCGCCAACTCACCCCGCAAAATCTTATCCGCTAGCGGATTCTCAATCTCCGTCTGAATGACCCGCCTCAGCGGCCGCGCCCCATAAACCGAATCAAATCCACGCCTGTCTCTTATACACATCTCCGAGCCCACGAGACTAA ++ +?????BBBDDDDDDDDGGGGGGIIIHHFFHHHHHHHHHHEHHEHHHHHIIHHHHHFEHIIIHHIHHIHIHIIIIIHHHHHHHHHHHHHHHHDHHHHHHHHGEDFGGGGGGG;CEGEGCEGGGGG8>GGGGEGGEECEGGGGD8EDGGAEGEEGGCE:CGG8CEEGG???CEE<DG8CC*??>DG.8<AGGGGCEEG*C2<GCCECE*:?CE?CE9C:C:C:?C*1**010:*?E82'2<GCE######## +@MISEQ:1:000000000-A2Y1L:1:1101:18106:2444 1:N:0:NAAGGCGATAGATCGC +GTAGTATTCTCATATCACAAGTCCCCAAACTGCATAAGGTGTGGAGTGGAGTGTCTCCCACTGCATTTTGTTGGTTTGGGTTGCATTTTTTGTGGCACAAAATTATCTTTAAACACTCTAAGCTCATATTTGCACATGCAACATGAATTGGAGCATTTCTTTTGCAGTCAACTGCCAGTACATTAACTCCACTCTGTAATAGTAAATCCTGTCTCTTATCCACATCTCCGAGCCCACGAGAATAAGGCGA ++ +55,,5?9BBBBB<<BBFFFFFFFHHFBEFHFHHHFDFCF0A9@>9D9DFG;FHHHHGHHFFFFHHHHECDCEFF>EFEEEE@CDFEFHHGHHHHEHDGHHFHDFHFHHHHFFHHH@FDD??DFFFFDBBEEBEEEEEEEEEEEEEEEEE,;?CEC;CEEEECB?CEEEEEEEECEEE?C?CE*0?***/:::?:*/?:A::**/:*:ACE?0:::A::***00::*/?C888??EEE############# +@MISEQ:1:000000000-A2Y1L:1:1101:15892:2446 1:N:0:NAAGGCGATAGATCGC +CTTCCCCACGGCCCAGACACAAGAGACGACCTCCATAAATCTTTTAGAGGGTGACCGCATCTCCGACGCAAACCAGGACGCCGATACCCTCGTGGTGGTGTTCGACCGTACGGATGGCGCAGACACCGACGGCACTAGTGCCACGGTATCAGGTACCACCATAACGTATGATTCGGGCACGCTCAAGGGCCAGCGTGACGGAATCGATAGAATACACTACACGGTGACTGATGGGGCCAGCCAAACCTGT ++ +?????BBBDBDDDDDDFFFFFFHIHIHHHHHHIHIFGGHFHHHHIIFHIHH?EEGHHHHHH-EGEHHCEHHHHH@FDFFEFF5@EEEFFEFE;AECCE;AEEEEEA?8?AEDDEEDFFDE2>>EEFF<<<2>D?DEEE*:C?AA<>8AEFCEE:?C?EEE?CEFEE0?:E?ACEECD8>EE>)8>E:CEEEEEED.)?AE??A?:A?*??:C0?CCE?AAA:88.88?::C:C?*8)4A?A#########
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/trimmomatic_maxinfo.fastq Fri Jan 20 08:00:23 2017 -0500 @@ -0,0 +1,40 @@ +@MISEQ:1:000000000-A2Y1L:1:1101:19264:2433 1:N:0:NAAGGCGATAGATCGC +AGATAGCCGAAGATAAAGAGNTCATAACCGTAAAGGCCAGAGACGAGAACCACTCGCAGGCAAGGTTTGCAAGCCTCGCCAAGAATATTATAGACCCGCTTGCCAACGACTGGCATTACATCACCGTAAAGAAGG ++ +?????BBB@BBBB?BBFFFF#66EAFHHHCEFEDFGHHHHF@DFHACEEF@FDFHHHHEEEHHHF?FGEHFHDEFGHHCEHEFHHHHFFFCFDFFFFBEEEEEEEEEEEB?EEEEEEEEEEEBBEE?CE?:ACCC +@MISEQ:1:000000000-A2Y1L:1:1101:18667:2435 1:N:0:NAAGGCGATAGATCGC +ATATATTCATCCGCCATTATNAGAGTCCGATTACTTTAGAACAGTGCCGCGAATCCTTCGTCAACTGTAATCCAAGCGACATTGGTTCGATTAGCACGCATGAGGCACGAGATCTACGCGTATCTCTGG ++ +?????BBBDDDDADDDE@FF#66CFCFHHBEHHIIIHIIHHFHHGHHHHHHHHHHIHIHIFHHHHHHEGFHIHHIIIHHHHHHHHCFHHHHHHHFFFFFFEEEEFFEFEEBBEEEFFE@E8;EEFFFEF +@MISEQ:1:000000000-A2Y1L:1:1101:17523:2436 1:N:0:NAAGGCGATAGATCGC +CATCACTACCGCTCAGGAATNTGACGGCAGTCTTAGCGGCGCTCTAGTGCGGGAGGCCGTATCTTGGAATAAGGTGTCGTCAAATGCAAGGCAGGTAACCCTACACGCCG ++ +?<,<?BBBBBBBBBBBFFFF#6ACECCEC78CE=CGHEH7CHCHFGHADGHHHCCCHHE<DFHFFFFDFFFFFFDFDFDDEEEEEEEEECAEEEE;?BEEEBEEBCE;C; +@MISEQ:1:000000000-A2Y1L:1:1101:15489:2437 1:N:0:NAAGGCGATAGATCGC +GAGCAGTCGGGCTCAGCGCTNTGCAAATTCTAGTTAGAAACTCACAGTTCTGACAAGCCTTAGGTCAGTGTGATTGGCGGTTAGTCAACTCGG ++ +5====>/<@@@@@@>@CCCE#66>ACEEEEGGGGGGGFFFEFDFFFFF=CDEFFFFEDEFFFFFC=AEBF-AA@CE;ECD5<5<==C==DEEE +@MISEQ:1:000000000-A2Y1L:1:1101:18851:2442 1:N:0:NAAGGCGATAGATCGC +GGTATCCCCCGGCAGTGAGGATGGAGCCATGGTCTGCATCATACTCACCGTAGGTGAGAATATCCACGTCCTTCGACTCCTGGGTGCCGTCTATGGTGCCCTCTGTTACCAGGCAGTGACGGAGGACATGG ++ +??,<?BBBDDDDDDD<FFF@FC;FFFBEFHHHCDDHHGHHHDGHHHFHHEA?EEAEEHDEFHHHHHFECFHHHFHDHEEHHCFH7CEFHDEHHCFHHFHHF=FFFDFDFFFFEEEEDDEFEEE<BBCEBCE +@MISEQ:1:000000000-A2Y1L:1:1101:15290:2442 1:N:0:NAAGGCGATAGATCGC +AAAATAATCCTAAAAAATAACCTCTATGCCGCCGAACGCTCCGCCTCTATCTTCGTAAAAACTATCTTCTCCTCCTCACCTCCATAATCAAGCATCAAGCGATCGCCCTCCGCCAACTCACCCCGCAAAATCTTATCCGCTAGCGGATTCTCAATCTCCGTCTGAATGACCCGCC ++ +?????BBBDDDDDDDDGGGGGGIIIHHFFHHHHHHHHHHEHHEHHHHHIIHHHHHFEHIIIHHIHHIHIHIIIIIHHHHHHHHHHHHHHHHDHHHHHHHHGEDFGGGGGGG;CEGEGCEGGGGG8>GGGGEGGEECEGGGGD8EDGGAEGEEGGCE:CGG8CEEGG???CEE<DG +@MISEQ:1:000000000-A2Y1L:1:1101:18106:2444 1:N:0:NAAGGCGATAGATCGC +GTAGTATTCTCATATCACAAGTCCCCAAACTGCATAAGGTGTGGAGTGGAGTGTCTCCCACTGCATTTTGTTGGTTTGGGTTGCATTTTTTGTGGCACAAAATTATCTTTAAACACTCTAAGCTCATATTTGCACATGCAACATGAATT ++ +55,,5?9BBBBB<<BBFFFFFFFHHFBEFHFHHHFDFCF0A9@>9D9DFG;FHHHHGHHFFFFHHHHECDCEFF>EFEEEE@CDFEFHHGHHHHEHDGHHFHDFHFHHHHFFHHH@FDD??DFFFFDBBEEBEEEEEEEEEEEEEEEEE +@MISEQ:1:000000000-A2Y1L:1:1101:15892:2446 1:N:0:NAAGGCGATAGATCGC +CTTCCCCACGGCCCAGACACAAGAGACGACCTCCATAAATCTTTTAGAGGGTGACCGCATCTCCGACGCAAACCAGGACGCCGATACCCTCGTGGTGGTGTTCGACCGTACGGATGGCGC ++ +?????BBBDBDDDDDDFFFFFFHIHIHHHHHHIHIFGGHFHHHHIIFHIHH?EEGHHHHHH-EGEHHCEHHHHH@FDFFEFF5@EEEFFEFE;AECCE;AEEEEEA?8?AEDDEEDFFDE +@MISEQ:1:000000000-A2Y1L:1:1101:17903:2450 1:N:0:TAAGGCGATAGATCGC +GTGCAGGGGGTGTGGTCAATCCACACTGTTGCTGAGGTGATTGGGTCTCCGGGGTCAACTCCATGAGGTAGCAGACCAG ++ +=5===<>+5<5<+5=@CC;8CEEEEE;-8ACFDE.7C87CF-A>E>E=FFE**>>5AEDAEED-5-5AADC=D+=DDE< +@MISEQ:1:000000000-A2Y1L:1:1101:15113:2451 1:N:0:TAAGGCGATAGATCGC +TCTCAGATGAGCATGCAGCAGCCCAGACTCGCCCCACGCAGTTTGCCAACCACAAGGCCATCCTCGGCCTGTCAGCCT ++ +=,,<=>>>@@@@@9@@CCEE@EE+++6C8-++CECE+>DCC>@@EFFFFEEEDEE55+ACEF;-C+>EE++CBA--5A
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/trimmomatic_pe_r1_paired_out1.fastq Fri Jan 20 08:00:23 2017 -0500 @@ -0,0 +1,32 @@ +@MISEQ:1:000000000-A2Y1L:1:1101:19264:2433 1:N:0:NAAGGCGATAGATCGC +AGATAGCCGAAGATAAAGAGNT ++ +?????BBB@BBBB?BBFFFF#6 +@MISEQ:1:000000000-A2Y1L:1:1101:18667:2435 1:N:0:NAAGGCGATAGATCGC +ATATATTCATCCGCCATTATNA ++ +?????BBBDDDDADDDE@FF#6 +@MISEQ:1:000000000-A2Y1L:1:1101:17523:2436 1:N:0:NAAGGCGATAGATCGC +CATCACTACCGCTCAGGAATNTGACGGCAGTCTTAGCGGCGCTCTAGTGCGGGAGGCCGTATCTTGGAATAAGGTGTCGTCAAATGCAAGGCAGGTAACCCTACACGCCGAGG ++ +?<,<?BBBBBBBBBBBFFFF#6ACECCEC78CE=CGHEH7CHCHFGHADGHHHCCCHHE<DFHFFFFDFFFFFFDFDFDDEEEEEEEEECAEEEE;?BEEEBEEBCE;C;48; +@MISEQ:1:000000000-A2Y1L:1:1101:15489:2437 1:N:0:NAAGGCGATAGATCGC +GAGCAGTCGGGCTCAGCGCTNT ++ +5====>/<@@@@@@>@CCCE#6 +@MISEQ:1:000000000-A2Y1L:1:1101:18851:2442 1:N:0:NAAGGCGATAGATCGC +GGTATCCCCCGGCAGTGAGGATGGAGCCATGGTCTGCATCATACTCACCGTAGGTGAGAATATCCACGTCCTTCGACTCCTGGGTGCCGTCTATGGTGCCCTCTGTTACCAGGCAGTGACGGAGGACATGGTGAGGTTTCAGTACCTCTGGCCCGGCCTGG ++ +??,<?BBBDDDDDDD<FFF@FC;FFFBEFHHHCDDHHGHHHDGHHHFHHEA?EEAEEHDEFHHHHHFECFHHHFHDHEEHHCFH7CEFHDEHHCFHHFHHF=FFFDFDFFFFEEEEDDEFEEE<BBCEBCE,==AE1::AAEECEE*?*AAEFF??>D?)8 +@MISEQ:1:000000000-A2Y1L:1:1101:15290:2442 1:N:0:NAAGGCGATAGATCGC +AAAATAATCCTAAAAAATAACCTCTATGCCGCCGAACGCTCCGCCTCTATCTTCGTAAAAACTATCTTCTCCTCCTCACCTCCATAATCAAGCATCAAGCGATCGCCCTCCGCCAACTCACCCCGCAAAATCTTATCCGCTAGCGGATTCTCAATCTCCGTCTGAATGACCCGCCTCAGCGGCCGCGCCCCATAAACCGAATCAAATCCACGCCTGTCTCTTA ++ +?????BBBDDDDDDDDGGGGGGIIIHHFFHHHHHHHHHHEHHEHHHHHIIHHHHHFEHIIIHHIHHIHIHIIIIIHHHHHHHHHHHHHHHHDHHHHHHHHGEDFGGGGGGG;CEGEGCEGGGGG8>GGGGEGGEECEGGGGD8EDGGAEGEEGGCE:CGG8CEEGG???CEE<DG8CC*??>DG.8<AGGGGCEEG*C2<GCCECE*:?CE?CE9C:C:C:?C +@MISEQ:1:000000000-A2Y1L:1:1101:15892:2446 1:N:0:NAAGGCGATAGATCGC +CTTCCCCACGGCCCAGACACAAGAGACGACCTCCATAAATCTTTTAGAGGGTGACCGCATCTCCGACGCAAACCAGGACGCCGATACCCTCGTGGTGGTGTTCGACCGTACGGATGGCGCAGACACCGACGGCACTAGTGCCACGGTATCAGGTACCACCATAACGTATGATTCGGGCACGCTCAAGGGCCAGCGTGACGGAATCGATAGAATACACTACACGGTGACTGATGGGG ++ +?????BBBDBDDDDDDFFFFFFHIHIHHHHHHIHIFGGHFHHHHIIFHIHH?EEGHHHHHH-EGEHHCEHHHHH@FDFFEFF5@EEEFFEFE;AECCE;AEEEEEA?8?AEDDEEDFFDE2>>EEFF<<<2>D?DEEE*:C?AA<>8AEFCEE:?C?EEE?CEFEE0?:E?ACEECD8>EE>)8>E:CEEEEEED.)?AE??A?:A?*??:C0?CCE?AAA:88.88?::C:C?*8 +@MISEQ:1:000000000-A2Y1L:1:1101:17903:2450 1:N:0:TAAGGCGATAGATCGC +GTGCAGGGGG ++ +=5===<>+5<
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/trimmomatic_pe_r2_paired_out1.fastq Fri Jan 20 08:00:23 2017 -0500 @@ -0,0 +1,32 @@ +@MISEQ:1:000000000-A2Y1L:1:1101:19264:2433 2:N:0:NAAGGCGATAGATCGC +GCCGATATGCAGATGCCGTTGATTGCTGCCAGCATAGCAGCCATTGCCGGCATATCCTTTGTGACTGTGCGCCGACGCAAGAAGGCGGCCCAGATAACCTAGCCCAGAAACGATACGGCGTCTCTACCCTCATCTGTTATGCTGATCCAGTGATTCTTGCCTACCTTCTTTACGGTGATGTAATGCCAGTCGTTGGCAAG ++ +??A??ABBDDDDDDDDFFEEEFHIIIIHHIIHIFHIIHHHFHHIIIIIHHHFHHIIIIIIFFFHHIIHGDEHHAAEHHHHFHHHHD=EBBEEEEEFFFFEEEECEFFEEFFF8*??AA?;>DEEEFFFF*?8AECFEFFFFFFEAEEECFFFCEEEFFFFFFEEFEACEEC?CAACEFEEEFE?0?EACAAAEEAACEEA +@MISEQ:1:000000000-A2Y1L:1:1101:18667:2435 2:N:0:NAAGGCGATAGATCGC +GATGACATCAGCACAGGTTCCGCTTCCGCTGTCGCAACGACGTGGCTGCCATCGATTATATTCAATTCTGAGTGCTGCCGTAGGGCTAGATGTAAGACTCACGTTCGGCGACCAGATTAGTCGGTAGTGGCATG ++ +?????BBBDDDDDDDDGFFGGGHHHHIHHHHHHHIHHHHIHBCEEHFFHHHIIHFHHHIIIIIIIHIFBGFGFHHHHIHE@EEEHHFFHHFF?CFHHHHHGGGGGGGGGGGGGGGGGGGECGGG;EE:CEGGG? +@MISEQ:1:000000000-A2Y1L:1:1101:17523:2436 2:N:0:NAAGGCGATAGATCGC +GAATATAGAAACGGGAGTATAGTGGTAACC ++ +??AAABBBDDDDDEDDGGCFGGHHIFFHHH +@MISEQ:1:000000000-A2Y1L:1:1101:15489:2437 2:N:0:NAAGGCGATAGATCGC +GTCCACGTGAAATCCCGAGCGTCCCTCTCCCTCCCGAGAACCCGGTCTATATCCCACGATTTTTGACCGAACAAGGATTGACCTCATCCAACTCCGAAGCCCGCC ++ +????9B???AD9?BDDEEDDDDHHHHHFHFHFFHHHHHHHHHEHH>CEGHHFGHHGHH=FHHHHC+CGEBCC<CF@,4CF@CFBFFFFDF?B4BD@@D)>CE6BB +@MISEQ:1:000000000-A2Y1L:1:1101:18851:2442 2:N:0:NAAGGCGATAGATCGC +TCTCCTCAGTACGGGGGAGGAGGTTCGCTCGGCGGACGTGCGGCCCTACGCCAGACTCTACCACATGGTTCAGCAGGAGCTGGAGCACCGCGCTGTGTCCGGGGACTGGGAATACACCATCAGCCCCGGCGAGGAGTGGCAAGAGACGGA ++ +A??A?BBBDDDDDDDDGGGGGGHEFHHGEHHHIHEHHHHHDHBEHGFFFEGGDEEDGGGGGEGGEECE?EGCEGEGGGCEEEGGCEEGG4D;;4AGGGGGG8>GGA?EGGGEEGEEGGGCGGEGEGGGGD8<AADECECEGG?CCC:8CC +@MISEQ:1:000000000-A2Y1L:1:1101:15290:2442 2:N:0:NAAGGCGATAGATCGC +GCGTGGATTTGATTCGGTTTATGGGGCGCGGCCGCTGAGGCGGGTCATTCAGACGGAGATT ++ +?????@?BDDDDDDDDFEEEFFHIIHEHHHHDHHHHHEHHHHHH8ADFFFDFFD1D;>1,; +@MISEQ:1:000000000-A2Y1L:1:1101:15892:2446 2:N:0:NAAGGCGATAGATCGC +GTATTGCTGGCACCATCAGTCACCGTGTAGTGTATTCTATCGATTCCGTCACGCTGGCCCTTGAGCGTGCCCGAATCATACGTTATGGTGGTACCTGATACCGTGGCACTAGTGCCGTCGGTGTCTGCGCCATCCGTACGGTCGAACACCACCACGAGGGTATCGGCG ++ +?????BBBDDDDDDDDGGGGGGIIHIIFHHHIHHIFHGHGGHHIHIIDEFFHEF@DFHIIHIIIGHACDCFFHHHIHIIHIHGHHHBGFGEEHHHHFHFFHHDFDCEGGFGGFGGG@DBEEEEGC>CEEGGGGGGE0?CDGGGD>EE2CE8CEGEE<>>>):CEEGDA +@MISEQ:1:000000000-A2Y1L:1:1101:17903:2450 2:N:0:TAAGGCGATAGATCGC +GGCCAACACTGTGGTCACTATCTCTGGCACTGGTCTGCTACCACATGGAGTTGACACCGGAGACCCAATCACCACAGCAACAGTGTGGATTGACCACACCCCCTGCACCTGTCTCTTATACACATCTGACGCTGCCGACGAGCGATCTAG ++ +55<?????DDDBBDDBFFFFFFCHHIIHHIIIIIIIHGHHIIIIHHGHIIHFHHIIIIHHHCDHIIIHFFHIIIIICFFHIHECGCGEHIH=FHHHHHHHHHHF;FFFFFDDFFFFFFFEFFFFEFEBDFAEEAEE@EEDD>DDD880:?
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/trimmomatic_pe_r2_unpaired_out1.fastq Fri Jan 20 08:00:23 2017 -0500 @@ -0,0 +1,8 @@ +@MISEQ:1:000000000-A2Y1L:1:1101:18106:2444 2:N:0:NAAGGCGATAGATCGC +GAGTTACTATTACAGAGTGGAGCTAATGTACTGGCAGTTGACTGCAAAAGAAATGCTCCAATTCATGTTGCATGTGCAAATATGAGCTTAGAGTGTTTAAAGATAATTTTGTGCCACAAAAAATGCAACCCAAACCAACAAAATGCAGTGGGAGACACTCCACTCCACACCTTATGCAGTTTGGGGACTTGTGATATGAGAATACTACCTGTCTCTTATACACA ++ +?????BBBDDDDDDDDGCFGFGIIIIIHFHIIIIHIHFG=EHHIGIIIIFHIHDGHGHHHIHIH=CGHGGHFHHHFHFGHHFH/ACDFGG?FE?CDFFHHHHHIIHFHHI>CEDGFHHHHHHHHDFHHFHHHFFAFFGGGGGGEDEG>>DACC;?EGG>CEEA>AEACCEE?:C::CC:::C:CE<C<9C:?C?*?CEECCC*:C?C?E:?:C:C:CCCCE:?C +@MISEQ:1:000000000-A2Y1L:1:1101:15113:2451 2:N:0:TAAGGCGATAGATCGC +GAGGGGAGGAGGGGAAGGGAGAGGGGAAGAGAGGAGAGGAG ++ +?????@9@B?B?BBBBEEEFB@@EEHEC?BF-CE@DDEH,5
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/trimmomatic_se_out1.fastq Fri Jan 20 08:00:23 2017 -0500 @@ -0,0 +1,32 @@ +@MISEQ:1:000000000-A2Y1L:1:1101:19264:2433 1:N:0:NAAGGCGATAGATCGC +AGATAGCCGAAGATAAAGAGNT ++ +?????BBB@BBBB?BBFFFF#6 +@MISEQ:1:000000000-A2Y1L:1:1101:18667:2435 1:N:0:NAAGGCGATAGATCGC +ATATATTCATCCGCCATTATNA ++ +?????BBBDDDDADDDE@FF#6 +@MISEQ:1:000000000-A2Y1L:1:1101:17523:2436 1:N:0:NAAGGCGATAGATCGC +CATCACTACCGCTCAGGAATNTGACGGCAGTCTTAGCGGCGCTCTAGTGCGGGAGGCCGTATCTTGGAATAAGGTGTCGTCAAATGCAAGGCAGGTAACCCTACACGCCGAGG ++ +?<,<?BBBBBBBBBBBFFFF#6ACECCEC78CE=CGHEH7CHCHFGHADGHHHCCCHHE<DFHFFFFDFFFFFFDFDFDDEEEEEEEEECAEEEE;?BEEEBEEBCE;C;48; +@MISEQ:1:000000000-A2Y1L:1:1101:15489:2437 1:N:0:NAAGGCGATAGATCGC +GAGCAGTCGGGCTCAGCGCTNT ++ +5====>/<@@@@@@>@CCCE#6 +@MISEQ:1:000000000-A2Y1L:1:1101:18851:2442 1:N:0:NAAGGCGATAGATCGC +GGTATCCCCCGGCAGTGAGGATGGAGCCATGGTCTGCATCATACTCACCGTAGGTGAGAATATCCACGTCCTTCGACTCCTGGGTGCCGTCTATGGTGCCCTCTGTTACCAGGCAGTGACGGAGGACATGGTGAGGTTTCAGTACCTCTGGCCCGGCCTGG ++ +??,<?BBBDDDDDDD<FFF@FC;FFFBEFHHHCDDHHGHHHDGHHHFHHEA?EEAEEHDEFHHHHHFECFHHHFHDHEEHHCFH7CEFHDEHHCFHHFHHF=FFFDFDFFFFEEEEDDEFEEE<BBCEBCE,==AE1::AAEECEE*?*AAEFF??>D?)8 +@MISEQ:1:000000000-A2Y1L:1:1101:15290:2442 1:N:0:NAAGGCGATAGATCGC +AAAATAATCCTAAAAAATAACCTCTATGCCGCCGAACGCTCCGCCTCTATCTTCGTAAAAACTATCTTCTCCTCCTCACCTCCATAATCAAGCATCAAGCGATCGCCCTCCGCCAACTCACCCCGCAAAATCTTATCCGCTAGCGGATTCTCAATCTCCGTCTGAATGACCCGCCTCAGCGGCCGCGCCCCATAAACCGAATCAAATCCACGCCTGTCTCTTA ++ +?????BBBDDDDDDDDGGGGGGIIIHHFFHHHHHHHHHHEHHEHHHHHIIHHHHHFEHIIIHHIHHIHIHIIIIIHHHHHHHHHHHHHHHHDHHHHHHHHGEDFGGGGGGG;CEGEGCEGGGGG8>GGGGEGGEECEGGGGD8EDGGAEGEEGGCE:CGG8CEEGG???CEE<DG8CC*??>DG.8<AGGGGCEEG*C2<GCCECE*:?CE?CE9C:C:C:?C +@MISEQ:1:000000000-A2Y1L:1:1101:15892:2446 1:N:0:NAAGGCGATAGATCGC +CTTCCCCACGGCCCAGACACAAGAGACGACCTCCATAAATCTTTTAGAGGGTGACCGCATCTCCGACGCAAACCAGGACGCCGATACCCTCGTGGTGGTGTTCGACCGTACGGATGGCGCAGACACCGACGGCACTAGTGCCACGGTATCAGGTACCACCATAACGTATGATTCGGGCACGCTCAAGGGCCAGCGTGACGGAATCGATAGAATACACTACACGGTGACTGATGGGG ++ +?????BBBDBDDDDDDFFFFFFHIHIHHHHHHIHIFGGHFHHHHIIFHIHH?EEGHHHHHH-EGEHHCEHHHHH@FDFFEFF5@EEEFFEFE;AECCE;AEEEEEA?8?AEDDEEDFFDE2>>EEFF<<<2>D?DEEE*:C?AA<>8AEFCEE:?C?EEE?CEFEE0?:E?ACEECD8>EE>)8>E:CEEEEEED.)?AE??A?:A?*??:C0?CCE?AAA:88.88?::C:C?*8 +@MISEQ:1:000000000-A2Y1L:1:1101:17903:2450 1:N:0:TAAGGCGATAGATCGC +GTGCAGGGGG ++ +=5===<>+5<
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/trimmomatic_se_out2.fastq Fri Jan 20 08:00:23 2017 -0500 @@ -0,0 +1,40 @@ +@MISEQ:1:000000000-A2Y1L:1:1101:19264:2433 1:N:0:NAAGGCGATAGATCGC +AGATAGCCGA ++ +?????BBB@B +@MISEQ:1:000000000-A2Y1L:1:1101:18667:2435 1:N:0:NAAGGCGATAGATCGC +ATATATTCAT ++ +?????BBBDD +@MISEQ:1:000000000-A2Y1L:1:1101:17523:2436 1:N:0:NAAGGCGATAGATCGC +CATCACTACC ++ +?<,<?BBBBB +@MISEQ:1:000000000-A2Y1L:1:1101:15489:2437 1:N:0:NAAGGCGATAGATCGC +GAGCAGTCGG ++ +5====>/<@@ +@MISEQ:1:000000000-A2Y1L:1:1101:18851:2442 1:N:0:NAAGGCGATAGATCGC +GGTATCCCCC ++ +??,<?BBBDD +@MISEQ:1:000000000-A2Y1L:1:1101:15290:2442 1:N:0:NAAGGCGATAGATCGC +AAAATAATCC ++ +?????BBBDD +@MISEQ:1:000000000-A2Y1L:1:1101:18106:2444 1:N:0:NAAGGCGATAGATCGC +GTAGTATTCT ++ +55,,5?9BBB +@MISEQ:1:000000000-A2Y1L:1:1101:15892:2446 1:N:0:NAAGGCGATAGATCGC +CTTCCCCACG ++ +?????BBBDB +@MISEQ:1:000000000-A2Y1L:1:1101:17903:2450 1:N:0:TAAGGCGATAGATCGC +GTGCAGGGGG ++ +=5===<>+5< +@MISEQ:1:000000000-A2Y1L:1:1101:15113:2451 1:N:0:TAAGGCGATAGATCGC +TCTCAGATGA ++ +=,,<=>>>@@
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tool_dependencies.xml Fri Jan 20 08:00:23 2017 -0500 @@ -0,0 +1,27 @@ +<?xml version="1.0"?> +<tool_dependency> + <package name="trimmomatic" version="0.36"> + <install version="1.0"> + <actions> + <action type="download_by_url">http://www.usadellab.org/cms/uploads/supplementary/Trimmomatic/Trimmomatic-0.36.zip</action> + <action type="move_file"> + <source>trimmomatic-0.36.jar</source> + <destination>$INSTALL_DIR</destination> + </action> + <action type="move_directory_files"> + <source_directory>adapters</source_directory> + <destination_directory>$INSTALL_DIR/adapters</destination_directory> + </action> + <action type="set_environment"> + <environment_variable name="TRIMMOMATIC_DIR" action="set_to">$INSTALL_DIR</environment_variable> + </action> + <action type="set_environment"> + <environment_variable name="TRIMMOMATIC_ADAPTERS_DIR" action="set_to">$INSTALL_DIR/adapters</environment_variable> + </action> + </actions> + </install> + <readme>Trimmomatic requires the Java Runtime Environment + </readme> + </package> +</tool_dependency> +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/trimmomatic.sh Fri Jan 20 08:00:23 2017 -0500 @@ -0,0 +1,33 @@ +#!/bin/sh +# +# Shell wrapper to run Trimmomatic jar file as a Galaxy tool +echo Arguments: +for i in $@ ; do + echo "*" $i +done + +if [ -n "$CONDA_PREFIX" ] ; then + # bioconda installs trimmomatic in a share directory + # with a jarfile called trimmomatic.jar + TRIMMOMATIC_DIR="$CONDA_PREFIX/share/trimmomatic" + JARFILE="trimmomatic.jar" +else + JARFILE="trimmomatic-0.36.jar" +fi + +if [ -z "$TRIMMOMATIC_DIR" ] ; then + echo "TRIMMOMATIC_DIR variable not set, can't find jar file" + exit 1 +fi + +java -mx8G -jar $TRIMMOMATIC_DIR/$JARFILE $@ 2>&1 | tee trimmomatic.log +status=$? +echo "Exit status: $status" +# Check for successful completion +if [ -z "$(tail -1 trimmomatic.log | grep "Completed successfully")" ] ; then + echo "Trimmomatic did not finish successfully" >&2 + exit 1 +fi +exit $status +## +#
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/trimmomatic.xml Fri Jan 20 08:00:23 2017 -0500 @@ -0,0 +1,434 @@ +<tool id="trimmomatic" name="Trimmomatic" version="0.36.1"> + <description>flexible read trimming tool for Illumina NGS data</description> + <requirements> + <requirement type="package" version="0.36">trimmomatic</requirement> + </requirements> + <stdio> + <exit_code range="1:" /> + </stdio> + <command><![CDATA[ + #if $paired_end.is_paired_end + #set $paired_input_type = $paired_end.paired_input_type_conditional.paired_input_type + #if $paired_input_type == "pair_of_files" + #set r1_ext = $paired_end.paired_input_type_conditional.fastq_r1_in.extension + #set r2_ext = $paired_end.paired_input_type_conditional.fastq_r2_in.extension + ln -s '${paired_end.paired_input_type_conditional.fastq_r1_in}' fastq_r1.'$r1_ext' && + ln -s '${paired_end.paired_input_type_conditional.fastq_r2_in}' fastq_r2.'$r2_ext' && + #else + #set r1_ext = $paired_end.paired_input_type_conditional.fastq_pair.forward.extension + #set r2_ext = $paired_end.paired_input_type_conditional.fastq_pair.reverse.extension + ln -s '${paired_end.paired_input_type_conditional.fastq_pair.forward}' fastq_r1.'$r1_ext' && + ln -s '${paired_end.paired_input_type_conditional.fastq_pair.reverse}' fastq_r2.'$r2_ext' && + #end if + #else + ln -s '$fastq_in' fastq_in.'$fastq_in.extension' && + #end if + bash '${__tool_directory__}/trimmomatic.sh' + #if $paired_end.is_paired_end + PE -threads \${GALAXY_SLOTS:-6} -phred33 + fastq_r1.'$r1_ext' fastq_r2.'$r2_ext' + fastq_out_r1_paired.'$r1_ext' fastq_out_r1_unpaired.'$r1_ext' + fastq_out_r2_paired.'$r2_ext' fastq_out_r2_unpaired.'$r2_ext' + #else + SE -threads \${GALAXY_SLOTS:-6} -phred33 fastq_in.'$fastq_in.extension' fastq_out.'$fastq_in.extension' + #end if + ## ILLUMINACLIP option + #if $illuminaclip.do_illuminaclip + ILLUMINACLIP:\$TRIMMOMATIC_ADAPTERS_DIR/$illuminaclip.adapter_fasta:$illuminaclip.seed_mismatches:$illuminaclip.palindrome_clip_threshold:$illuminaclip.simple_clip_threshold + #end if + ## Other operations + #for $op in $operations + ## SLIDINGWINDOW + #if str( $op.operation.name ) == "SLIDINGWINDOW" + SLIDINGWINDOW:$op.operation.window_size:$op.operation.required_quality + #end if + ## MINLEN:36 + #if str( $op.operation.name ) == "MINLEN" + MINLEN:$op.operation.minlen + #end if + #if str( $op.operation.name ) == "LEADING" + LEADING:$op.operation.leading + #end if + #if str( $op.operation.name ) == "TRAILING" + TRAILING:$op.operation.trailing + #end if + #if str( $op.operation.name ) == "CROP" + CROP:$op.operation.crop + #end if + #if str( $op.operation.name ) == "HEADCROP" + HEADCROP:$op.operation.headcrop + #end if + #if str( $op.operation.name ) == "AVGQUAL" + AVGQUAL:$op.operation.avgqual + #end if + #if str( $op.operation.name ) == "MAXINFO" + MAXINFO:$op.operation.target_length:$op.operation.strictness + #end if + #end for + && + #if $paired_end.is_paired_end + #set $paired_input_type = $paired_end.paired_input_type_conditional.paired_input_type + #if $paired_input_type == "pair_of_files" + mv fastq_out_r1_paired.'$r1_ext' '${fastq_out_r1_paired}' && + mv fastq_out_r1_unpaired.'$r1_ext' '${fastq_out_r1_unpaired}' && + mv fastq_out_r2_paired.'$r2_ext' '${fastq_out_r2_paired}' && + mv fastq_out_r2_unpaired.'$r2_ext' '${fastq_out_r2_unpaired}' + #else + mv fastq_out_r1_paired.'$r1_ext' '${fastq_out_paired.forward}' && + mv fastq_out_r1_unpaired.'$r1_ext' '${fastq_out_unpaired.forward}' && + mv fastq_out_r2_paired.'$r2_ext' '${fastq_out_paired.reverse}' && + mv fastq_out_r2_unpaired.'$r2_ext' '${fastq_out_unpaired.reverse}' + #end if + #else + mv fastq_out.'$fastq_in.extension' '${fastq_out}' + #end if + ]]></command> + <inputs> + <conditional name="paired_end"> + <param name="is_paired_end" type="boolean" label="Paired end data?" truevalue="yes" falsevalue="no" checked="True" /> + <when value="no"> + <param name="fastq_in" type="data" format="fastqsanger|fastqsanger.gz" label="Input FASTQ file" /> + </when> + <when value="yes"> + <conditional name="paired_input_type_conditional"> + <param name="paired_input_type" type="select" label="Input Type"> + <option value="pair_of_files" selected="true">Pair of datasets</option> + <option value="collection">Dataset collection pair</option> + </param> + <when value="pair_of_files"> + <param name="fastq_r1_in" type="data" format="fastqsanger|fastqsanger.gz" + label="Input FASTQ file (R1/first of pair)" /> + <param name="fastq_r2_in" type="data" format="fastqsanger|fastqgsanger.gz" + label="Input FASTQ file (R2/second of pair)" /> + </when> + <when value="collection"> + <param name="fastq_pair" format="fastqsanger|fastqsanger.gz" type="data_collection" + collection_type="paired" + label="Select FASTQ dataset collection with R1/R2 pair" /> + </when> + </conditional> + </when> + </conditional> + <conditional name="illuminaclip"> + <param name="do_illuminaclip" type="boolean" label="Perform initial ILLUMINACLIP step?" help="Cut adapter and other illumina-specific sequences from the read" truevalue="yes" falsevalue="no" checked="False" /> + <when value="yes"> + <param name="adapter_fasta" type="select" label="Adapter sequences to use"> + <option value="TruSeq2-SE.fa">TruSeq2 (single-ended, for Illumina GAII)</option> + <option value="TruSeq3-SE.fa">TruSeq3 (single-ended, for MiSeq and HiSeq)</option> + <option value="TruSeq2-PE.fa">TruSeq2 (paired-ended, for Illumina GAII)</option> + <option value="TruSeq3-PE.fa">TruSeq3 (paired-ended, for MiSeq and HiSeq)</option> + <option value="TruSeq3-PE-2.fa">TruSeq3 (additional seqs) (paired-ended, for MiSeq and HiSeq)</option> + <option value="NexteraPE-PE.fa">Nextera (paired-ended)</option> + </param> + <param name="seed_mismatches" type="integer" label="Maximum mismatch count which will still allow a full match to be performed" value="2" /> + <param name="palindrome_clip_threshold" type="integer" label="How accurate the match between the two 'adapter ligated' reads must be for PE palindrome read alignment" value="30" /> + <param name="simple_clip_threshold" type="integer" label="How accurate the match between any adapter etc. sequence must be against a read" value="10" /> + </when> + <when value="no" /> <!-- empty clause to satisfy planemo lint --> + </conditional> + <repeat name="operations" title="Trimmomatic Operation" min="1"> + <conditional name="operation"> + <param name="name" type="select" label="Select Trimmomatic operation to perform"> + <option selected="true" value="SLIDINGWINDOW">Sliding window trimming (SLIDINGWINDOW)</option> + <option value="MINLEN">Drop reads below a specified length (MINLEN)</option> + <option value="LEADING">Cut bases off the start of a read, if below a threshold quality (LEADING)</option> + <option value="TRAILING">Cut bases off the end of a read, if below a threshold quality (TRAILING)</option> + <option value="CROP">Cut the read to a specified length (CROP)</option> + <option value="HEADCROP">Cut the specified number of bases from the start of the read (HEADCROP)</option> + <option value="AVGQUAL">Drop reads with average quality lower than a specified level (AVGQUAL)</option> + <option value="MAXINFO">Trim reads adaptively, balancing read length and error rate to maximise the value of each read (MAXINFO)</option> + </param> + <when value="SLIDINGWINDOW"> + <param name="window_size" type="integer" label="Number of bases to average across" value="4" /> + <param name="required_quality" type="integer" label="Average quality required" value="20" /> + </when> + <when value="MINLEN"> + <param name="minlen" type="integer" label="Minimum length of reads to be kept" value="20" /> + </when> + <when value="LEADING"> + <param name="leading" type="integer" label="Minimum quality required to keep a base" value="3" help="Bases at the start of the read with quality below the threshold will be removed" /> + </when> + <when value="TRAILING"> + <param name="trailing" type="integer" label="Minimum quality required to keep a base" value="3" help="Bases at the end of the read with quality below the threshold will be removed" /> + </when> + <when value="CROP"> + <param name="crop" type="integer" label="Number of bases to keep from the start of the read" value="" /> + </when> + <when value="HEADCROP"> + <param name="headcrop" type="integer" label="Number of bases to remove from the start of the read" value="" /> + </when> + <when value="AVGQUAL"> + <param name="avgqual" type="integer" label="Minimum average quality required to keep a read" value="" /> + </when> + <when value="MAXINFO"> + <param name="target_length" type="integer" label="Target read length" value="" help="The read length which is likely to allow the location of the read within the target sequence to be determined." /> + <param name="strictness" type="float" label="Strictness" value="" help="Set between zero and one - specifies the balance between preserving read length versus removal of incorrect bases; low values (<0.2) favours longer reads, high values (>0.8) favours read correctness." /> + </when> + </conditional> + </repeat> + </inputs> + <outputs> + <data name="fastq_out_r1_paired" label="${tool.name} on ${paired_end.paired_input_type_conditional.fastq_r1_in.name} (R1 paired)" + format_source="${paired_end.paired_input_type_conditional.fastq_r1_in}"> + <filter>paired_end['is_paired_end']</filter> + <filter>paired_end['paired_input_type_conditional']['paired_input_type'] == "pair_of_files"</filter> + </data> + <data name="fastq_out_r2_paired" label="${tool.name} on ${paired_end.paired_input_type_conditional.fastq_r2_in.name} (R2 paired)" + format_source="${paired_end.paired_input_type_conditional.fastq_r2_in}"> + <filter>paired_end['is_paired_end']</filter> + <filter>paired_end['paired_input_type_conditional']['paired_input_type'] == "pair_of_files"</filter> + </data> + <data name="fastq_out_r1_unpaired" label="${tool.name} on ${paired_end.paired_input_type_conditional.fastq_r1_in.name} (R1 unpaired)" + format_source="${paired_end.paired_input_type_conditional.fastq_r1_in}"> + <filter>paired_end['is_paired_end']</filter> + <filter>paired_end['paired_input_type_conditional']['paired_input_type'] == "pair_of_files"</filter> + </data> + <data name="fastq_out_r2_unpaired" label="${tool.name} on ${paired_end.paired_input_type_conditional.fastq_r2_in.name} (R2 unpaired)" + format_source="${paired_end.paired_input_type_conditional.fastq_r1_in}"> + <filter>paired_end['is_paired_end']</filter> + <filter>paired_end['paired_input_type_conditional']['paired_input_type'] == "pair_of_files"</filter> + </data> + <data name="fastq_out" label="${tool.name} on ${paired_end.fastq_in.name}" + format_source="${fastq_in}"> + <filter>not paired_end['is_paired_end']</filter> + </data> + <collection name="fastq_out_paired" type="paired" label="${tool.name} on ${paired_end.paired_input_type_conditional.fastq_pair.name}: paired"> + <data name="forward" label="${tool.name} on ${paired_end.paired_input_type_conditional.fastq_pair.forward.name} (R1 paired)" + format_source="${paired_end.paired_input_type_conditional.fastq_pair.forward}" /> + <data name="reverse" label="${tool.name} on ${paired_end.paired_input_type_conditional.fastq_pair.reverse.name} (R2 paired)" + format_source="${paired_end.paired_input_type_conditional.fastq_pair.reverse}" /> + <filter>paired_end['is_paired_end']</filter> + <filter>paired_end['paired_input_type_conditional']['paired_input_type'] == "collection"</filter> + </collection> + <collection name="fastq_out_unpaired" type="paired" label="${tool.name} on ${paired_end.paired_input_type_conditional.fastq_pair.name}: unpaired"> + <data name="forward" label="${tool.name} on ${paired_end.paired_input_type_conditional.fastq_pair.forward.name} (R1 unpaired)" + format_source="${paired_end.paired_input_type_conditional.fastq_pair.forward}" /> + <data name="reverse" label="${tool.name} on ${paired_end.paired_input_type_conditional.fastq_pair.reverse.name} (R2 unpaired)" + format_source="${paired_end.paired_input_type_conditional.fastq_pair.reverse}" /> + <filter>paired_end['is_paired_end']</filter> + <filter>paired_end['paired_input_type_conditional']['paired_input_type'] == "collection"</filter> + </collection> + </outputs> + <tests> + <test> + <!-- Single-end example --> + <param name="is_paired_end" value="no" /> + <param name="fastq_in" value="Illumina_SG_R1.fastq" ftype="fastqsanger" /> + <param name="operations_0|operation|name" value="SLIDINGWINDOW" /> + <!-- + **NB** outputs have to be specified in order that they appear in the + tool (which is the order they will be written to the history) - the + test framework seems to use the order and ignores the "name" attribute + --> + <output name="fastq_out" file="trimmomatic_se_out1.fastq" /> + </test> + <test> + <!-- Single-end example - gzipped --> + <param name="is_paired_end" value="no" /> + <param name="fastq_in" value="Illumina_SG_R1.fastq.gz" ftype="fastqsanger.gz" /> + <param name="operations_0|operation|name" value="SLIDINGWINDOW" /> + <!-- + **NB** outputs have to be specified in order that they appear in the + tool (which is the order they will be written to the history) - the + test framework seems to use the order and ignores the "name" attribute + --> + <output name="fastq_out" file="trimmomatic_se_out1.fastq.gz" /> + </test> + <test> + <!-- Paired-end example - gzipped --> + <param name="is_paired_end" value="yes" /> + <param name="fastq_r1_in" value="Illumina_SG_R1.fastq.gz" ftype="fastqsanger.gz" /> + <param name="fastq_r2_in" value="Illumina_SG_R2.fastq.gz" ftype="fastqsanger.gz" /> + <param name="operations_0|operation|name" value="SLIDINGWINDOW" /> + <!-- + **NB** outputs have to be specified in order that they appear in the + tool (which is the order they will be written to the history) - the + test framework seems to use the order and ignores the "name" attribute + --> + <output name="fastq_out_r1_paired" file="trimmomatic_pe_r1_paired_out1.fastq.gz" /> + <output name="fastq_out_r1_unpaired" file="trimmomatic_pe_r1_unpaired_out1.fastq.gz" /> + <output name="fastq_out_r2_paired" file="trimmomatic_pe_r2_paired_out1.fastq.gz" /> + <output name="fastq_out_r2_unpaired" file="trimmomatic_pe_r2_unpaired_out1.fastq.gz" /> + </test> + <test> + <!-- Paired-end example --> + <param name="is_paired_end" value="yes" /> + <param name="fastq_r1_in" value="Illumina_SG_R1.fastq" ftype="fastqsanger" /> + <param name="fastq_r2_in" value="Illumina_SG_R2.fastq" ftype="fastqsanger" /> + <param name="operations_0|operation|name" value="SLIDINGWINDOW" /> + <!-- + **NB** outputs have to be specified in order that they appear in the + tool (which is the order they will be written to the history) - the + test framework seems to use the order and ignores the "name" attribute + --> + <output name="fastq_out_r1_paired" file="trimmomatic_pe_r1_paired_out1.fastq" /> + <output name="fastq_out_r1_unpaired" file="trimmomatic_pe_r1_unpaired_out1.fastq" /> + <output name="fastq_out_r2_paired" file="trimmomatic_pe_r2_paired_out1.fastq" /> + <output name="fastq_out_r2_unpaired" file="trimmomatic_pe_r2_unpaired_out1.fastq" /> + </test> + <test> + <!-- Single-end example (cropping) --> + <param name="is_paired_end" value="no" /> + <param name="fastq_in" value="Illumina_SG_R1.fastq" ftype="fastqsanger" /> + <param name="operations_0|operation|name" value="CROP" /> + <param name="operations_0|operation|crop" value="10" /> + <!-- + **NB** outputs have to be specified in order that they appear in the + tool (which is the order they will be written to the history) - the + test framework seems to use the order and ignores the "name" attribute + --> + <output name="fastq_out" file="trimmomatic_se_out2.fastq" /> + </test> + <test> + <!-- Paired-end with dataset collection --> + <param name="is_paired_end" value="yes" /> + <param name="paired_input_type" value="collection" /> + <param name="fastq_pair"> + <collection type="paired"> + <element name="forward" value="Illumina_SG_R1.fastq" ftype="fastqsanger" /> + <element name="reverse" value="Illumina_SG_R2.fastq" ftype="fastqsanger"/> + </collection> + </param> + <param name="operations_0|operation|name" value="SLIDINGWINDOW" /> + <output_collection name="fastq_out_paired" type="paired"> + <element name="forward" file="trimmomatic_pe_r1_paired_out1.fastq" /> + <element name="reverse" file="trimmomatic_pe_r2_paired_out1.fastq" /> + </output_collection> + <output_collection name="fastq_out_unpaired" type="paired"> + <element name="forward" file="trimmomatic_pe_r1_unpaired_out1.fastq" /> + <element name="reverse" file="trimmomatic_pe_r2_unpaired_out1.fastq" /> + </output_collection> + </test> + <test> + <!-- Paired-end with dataset collection - gzipped --> + <param name="is_paired_end" value="yes" /> + <param name="paired_input_type" value="collection" /> + <param name="fastq_pair"> + <collection type="paired"> + <element name="forward" value="Illumina_SG_R1.fastq.gz" ftype="fastqsanger.gz" /> + <element name="reverse" value="Illumina_SG_R2.fastq.gz" ftype="fastqsanger.gz"/> + </collection> + </param> + <param name="operations_0|operation|name" value="SLIDINGWINDOW" /> + <output_collection name="fastq_out_paired" type="paired"> + <element name="forward" file="trimmomatic_pe_r1_paired_out1.fastq.gz" /> + <element name="reverse" file="trimmomatic_pe_r2_paired_out1.fastq.gz" /> + </output_collection> + <output_collection name="fastq_out_unpaired" type="paired"> + <element name="forward" file="trimmomatic_pe_r1_unpaired_out1.fastq.gz" /> + <element name="reverse" file="trimmomatic_pe_r2_unpaired_out1.fastq.gz" /> + </output_collection> + </test> + <test> + <!-- Single-end using AVGQUAL --> + <param name="is_paired_end" value="no" /> + <param name="fastq_in" value="Illumina_SG_R1.fastq" ftype="fastqsanger" /> + <param name="operations_0|operation|name" value="AVGQUAL" /> + <param name="operations_0|operation|avgqual" value="30" /> + <output name="fastq_out" file="trimmomatic_avgqual.fastq" /> + </test> + <test> + <!-- Single-end using MAXINFO --> + <param name="is_paired_end" value="no" /> + <param name="fastq_in" value="Illumina_SG_R1.fastq" ftype="fastqsanger" /> + <param name="operations_0|operation|name" value="MAXINFO" /> + <param name="operations_0|operation|target_length" value="75" /> + <param name="operations_0|operation|strictness" value="0.8" /> + <output name="fastq_out" file="trimmomatic_maxinfo.fastq" /> + </test> + </tests> + <help><![CDATA[ +.. class:: infomark + +**What it does** + +Trimmomatic performs a variety of useful trimming tasks for illumina paired-end and +single ended data. + +This tool allows the following trimming steps to be performed: + + * **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 + * **MINLEN:** Drop the read if it is below a specified length + * **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 + * **AVGQUAL:** Drop the read if the average quality is below a specified value + * **MAXINFO:** Trim reads adaptively, balancing read length and error rate to + maximise the value of each read + +If ILLUMINACLIP is requested then it is always performed first; subsequent options +can be mixed and matched and will be performed in the order that they have been +specified. + +.. class:: warningmark + +Note that trimming operation order is important. + +------------- + +.. class:: infomark + +**Inputs** + +For single-end data this Trimmomatic tool accepts a single FASTQ file; for +paired-end data it will accept either two FASTQ files (R1 and R2), or a +dataset collection containing the R1/R2 FASTQ pair. + +.. class:: infomark + +**Outputs** + +For paired-end data a particular strength of Trimmomatic is that it retains the +pairing of reads (from R1 and R2) in the filtered output files: + + * Two FASTQ files (R1-paired and R2-paired) contain one read from each pair where + both have survived filtering. + * Additionally two FASTQ files (R1-unpaired and R2-unpaired) contain reads where + one of the pair failed the filtering steps. + +.. class:: warningmark + +If the input consists of a dataset collection with the R1/R2 FASTQ pair then +the outputs will also inclue two dataset collections: one for the 'paired' +outputs and one for the 'unpaired' (as described above) + +Retaining the same order and number of reads in the filtered output fastq files is +essential for many downstream analysis tools. + +For single-end data the output is a single FASTQ file containing just the filtered +reads. + +------------- + +.. class:: infomark + +**Credits** + +This Galaxy tool has been developed within the Bioinformatics Core Facility at the +University of Manchester. It runs the Trimmomatic program which has been developed +within Bjorn Usadel's group at RWTH Aachen university. + +Trimmomatic website (including documentation): + + * http://www.usadellab.org/cms/index.php?page=trimmomatic + +The reference for Trimmomatic is: + + * Bolger, A.M., Lohse, M., & Usadel, B. (2014). Trimmomatic: A flexible trimmer + for Illumina Sequence Data. Bioinformatics, btu170. + +Please kindly acknowledge both this Galaxy tool and the Trimmomatic program if you +use it. + ]]></help> + <citations> + <!-- + See https://wiki.galaxyproject.org/Admin/Tools/ToolConfigSyntax#A.3Ccitations.3E_tag_set + Can be either DOI or Bibtex + Use http://www.bioinformatics.org/texmed/ to convert PubMed to Bibtex + --> + <citation type="doi">10.1093/bioinformatics/btu170</citation> + </citations> +</tool>