Mercurial > repos > devteam > bowtie2
changeset 11:b4e9cf5f2ae8 draft
planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/bowtie2 commit d0e857ba2691ca15b6239890baf98dbe7bc3ccbd
author | devteam |
---|---|
date | Tue, 03 Jan 2017 10:51:03 -0500 |
parents | a9d4f71dbfb0 |
children | 781e3a3b9d31 |
files | bowtie2_wrapper.xml |
diffstat | 1 files changed, 99 insertions(+), 104 deletions(-) [+] |
line wrap: on
line diff
--- a/bowtie2_wrapper.xml Tue Mar 22 14:58:55 2016 -0400 +++ b/bowtie2_wrapper.xml Tue Jan 03 10:51:03 2017 -0500 @@ -1,22 +1,22 @@ -<tool id="bowtie2" name="Bowtie2" version="2.2.6.2"> +<tool id="bowtie2" name="Bowtie2" version="2.2.8"> <description>- map reads against reference genome</description> <macros> <import>read_group_macros.xml</import> </macros> + <requirements> + <requirement type="package" version="2.2.8">bowtie2</requirement> + <requirement type="package" version="1.3.1">samtools</requirement> + </requirements> <version_command>bowtie2 --version</version_command> - <requirements> - <requirement type="package" version="2.2.6">bowtie2</requirement> - <requirement type="package" version="1.2">samtools</requirement> - </requirements> - <command> + <command detect_errors="exit_code"><![CDATA[ ## prepare bowtie2 index #set index_path = '' #if str($reference_genome.source) == "history": - bowtie2-build "$reference_genome.own_file" genome && - ln -s "$reference_genome.own_file" genome.fa && + bowtie2-build --threads \${GALAXY_SLOTS:-4} '$reference_genome.own_file' genome && + ln -s -f '$reference_genome.own_file' genome.fa && #set index_path = 'genome' #else: - #set index_path = $reference_genome.index.fields.path + #set index_path = '$reference_genome.index.fields.path' #end if ## execute bowtie2 @@ -27,20 +27,20 @@ -p \${GALAXY_SLOTS:-4} ## index file path - -x $index_path + -x '$index_path' ## Fastq inputs #if str( $library.type ) == "single": - -U "${library.input_1}" + -U '${library.input_1}' #if str( $library.unaligned_file ) == "true": - --un $output_unaligned_reads_l + --un '$output_unaligned_reads_l' #end if #if str( $library.aligned_file ) == "true": - --al $output_aligned_reads_l + --al '$output_aligned_reads_l' #end if #elif str( $library.type ) == "paired": - -1 "${library.input_1}" - -2 "${library.input_2}" + -1 '${library.input_1}' + -2 '${library.input_2}' #if str( $library.paired_options.paired_options_selector ) == "yes": -I "${library.paired_options.I}" -X "${library.paired_options.X}" @@ -72,7 +72,7 @@ ${library.paired_options.no_overlap} #end if #if str( $library.unaligned_file ) == "true": - --un-conc $output_unaligned_reads_l + --un-conc '$output_unaligned_reads_l' #end if #end if @@ -174,36 +174,31 @@ ## mapping stats (i.e. stderr from bowtie2) #if $save_mapping_stats - 2> "$mapping_stats" + 2> '$mapping_stats' #end if ## output file #if ( str( $analysis_type.analysis_type_selector ) != "full" or str( $analysis_type.sam_opt ) != "true" ): - | samtools view -Su - | samtools sort -o - - > $output + | samtools sort -O bam -o '$output' #else - > $output_sam + > '$output_sam' #end if ## rename unaligned sequence files #if $library.type == "paired" and $output_unaligned_reads_l and $output_unaligned_reads_r: #from os.path import splitext #set _unaligned_root, _unaligned_ext = splitext( str( $output_unaligned_reads_l ) ) - && mv "${ _unaligned_root }.1${_unaligned_ext}" "${ output_unaligned_reads_l }" - && mv "${ _unaligned_root }.2${_unaligned_ext}" "${ output_unaligned_reads_r }" + && mv "${ _unaligned_root }.1${_unaligned_ext}" '$output_unaligned_reads_l' + && mv "${ _unaligned_root }.2${_unaligned_ext}" '$output_unaligned_reads_r' #end if #if $library.type == "paired" and $output_aligned_reads_l and $output_aligned_reads_r: #from os.path import splitext #set _aligned_root, _aligned_ext = splitext( str( $output_aligned_reads_l ) ) - && mv "${ _aligned_root }.1${_aligned_ext}" "${ output_aligned_reads_l }" - && mv "${ _aligned_root }.2${_aligned_ext}" "${ output_aligned_reads_r }" + && mv "${ _aligned_root }.1${_aligned_ext}" '$output_aligned_reads_l' + && mv "${ _aligned_root }.2${_aligned_ext}" '$output_aligned_reads_r' #end if - </command> - <!-- basic error handling --> - <stdio> - <exit_code range="1:" level="fatal" description="Tool exception" /> - </stdio> - + ]]></command> <inputs> <!-- single/paired --> <conditional name="library"> @@ -276,7 +271,7 @@ </conditional> </when> </conditional> - + <!-- reference genome --> <conditional name="reference_genome"> <param name="source" type="select" label="Will you select a reference genome from your history or use a built-in index?" help="Built-ins were indexed using default options. See `Indexes` section of help below"> @@ -292,10 +287,10 @@ </param> </when> <when value="history"> - <param name="own_file" type="data" format="fasta" metadata_name="dbkey" label="Select reference genome" /> + <param name="own_file" type="data" format="fasta" label="Select reference genome" /> </when> </conditional> - + <!-- read group settings --> <expand macro="read_group_conditional" /> <conditional name="analysis_type"> @@ -350,10 +345,10 @@ <param name="n_ceil" type="text" value="L,0,0.15" label="Set a function governing the maximum number of ambiguous characters (usually `N`s and/or `.`s) allowed in a read as a function of read length" help="--n-ceil; For instance, specifying `L,0,0.15` sets the N-ceiling function `f` to `f(x) = 0 + 0.15 * x`, where x is the read length. Reads exceeding this ceiling are filtered out. Default=`L,0,0.15`"/> <param name="dpad" type="integer" min="0" value="15" label="Pad dynamic programming problems by that many columns on either side to allow gaps" help="--dpad; default=15"/> <param name="gbar" type="integer" min="0" value="4" label="Disallow gaps within that many positions of the beginning or end of the read" help="--gbar; default=4"/> - <param name="ignore_quals" type="boolean" truevalue="--ignore-quals" falsevalue="" selected="False" label="When calculating a mismatch penalty, always consider the quality value at the mismatched position to be the highest possible, regardless of the actual value" help="--ignore-quals; input is treated as though all quality values are high; default=False"/> - <param name="nofw" type="boolean" truevalue="--nofw" falsevalue="" selected="False" label="Do not attempt to align unpaired reads to the forward (Watson) reference strand" help="In paired-end mode, `--nofw` and `--norc` pertain to the fragments; i.e. specifying `--nofw` causes `bowtie2` to explore only those paired-end configurations corresponding to fragments from the reverse-complement (Crick) strand. Default=False"/> - <param name="norc" type="boolean" truevalue="--norc" falsevalue="" selected="False" label="Do not attempt to align unpaired reads to the reverse (Crick) reference strand" help="In paired-end mode, `--nofw` and `--norc` pertain to the fragments; i.e. specifying `--nofw` causes `bowtie2` to explore only those paired-end configurations corresponding to fragments from the reverse-complement (Crick) strand. Default=False"/> - <param name="no_1mm_upfront" type="boolean" truevalue="--no-1mm-upfront" falsevalue="" selected="False" label="Prevent searching for 1-mismatch end-to-end alignments before using the multiseed heuristic (see `Multiseed alignment` section of help below)" help="--no-1mm-upfront; By default, Bowtie 2 will attempt to find either an exact or a 1-mismatch end-to-end alignment for the read *before* trying the multiseed heuristic. Such alignments can be found very quickly, and many short read alignments have exact or near-exact end-to-end alignments. However, this can lead to unexpected alignments when the user also sets options governing the multiseed heuristic, like `-L` and `-N`. For instance, if the user specifies `-N 0` and `-L` equal to the length of the read, the user will be surprised to find 1-mismatch alignments reported. This option prevents Bowtie 2 from searching for 1-mismatch end-to-end alignments before using the multiseed heuristic, which leads to the expected behavior when combined with options such as `-L` and `-N`. This comes at the expense of speed; Default=False"/> + <param name="ignore_quals" type="boolean" truevalue="--ignore-quals" falsevalue="" label="When calculating a mismatch penalty, always consider the quality value at the mismatched position to be the highest possible, regardless of the actual value" help="--ignore-quals; input is treated as though all quality values are high; default=False"/> + <param name="nofw" type="boolean" truevalue="--nofw" falsevalue="" label="Do not attempt to align unpaired reads to the forward (Watson) reference strand" help="In paired-end mode, `--nofw` and `--norc` pertain to the fragments; i.e. specifying `--nofw` causes `bowtie2` to explore only those paired-end configurations corresponding to fragments from the reverse-complement (Crick) strand. Default=False"/> + <param name="norc" type="boolean" truevalue="--norc" falsevalue="" label="Do not attempt to align unpaired reads to the reverse (Crick) reference strand" help="In paired-end mode, `--nofw` and `--norc` pertain to the fragments; i.e. specifying `--nofw` causes `bowtie2` to explore only those paired-end configurations corresponding to fragments from the reverse-complement (Crick) strand. Default=False"/> + <param name="no_1mm_upfront" type="boolean" truevalue="--no-1mm-upfront" falsevalue="" label="Prevent searching for 1-mismatch end-to-end alignments before using the multiseed heuristic (see `Multiseed alignment` section of help below)" help="--no-1mm-upfront; By default, Bowtie 2 will attempt to find either an exact or a 1-mismatch end-to-end alignment for the read *before* trying the multiseed heuristic. Such alignments can be found very quickly, and many short read alignments have exact or near-exact end-to-end alignments. However, this can lead to unexpected alignments when the user also sets options governing the multiseed heuristic, like `-L` and `-N`. For instance, if the user specifies `-N 0` and `-L` equal to the length of the read, the user will be surprised to find 1-mismatch alignments reported. This option prevents Bowtie 2 from searching for 1-mismatch end-to-end alignments before using the multiseed heuristic, which leads to the expected behavior when combined with options such as `-L` and `-N`. This comes at the expense of speed; Default=False"/> <conditional name="align_mode"> <param name="align_mode_selector" type="select" display="radio" label="Select between `--local` and `--end-to-end` alignment modes" help="--local and --end-to-end; see help below for detailed explanation; default=--end-to-end"> <option value="end-to-end" selected="True">End to End (--end-to-end)</option> @@ -418,7 +413,7 @@ <!-- do nothing --> </when> </conditional> - + <conditional name="sam_options"> <param name="sam_options_selector" type="select" label="Do you want to tweak SAM/BAM Options?" help="See "Output Options" section of Help below for information"> <option value="yes">Yes</option> @@ -453,9 +448,9 @@ </inputs> <!-- define outputs --> - + <outputs> - + <data format="fastqsanger" name="output_unaligned_reads_l" label="${tool.name} on ${on_string}: unaligned reads (L)" > <filter>library['unaligned_file'] is True</filter> <actions> @@ -534,7 +529,7 @@ </conditional> </actions> </data> - + <data format="bam" name="output" label="${tool.name} on ${on_string}: aligned reads (sorted BAM)"> <filter>analysis_type['analysis_type_selector'] == "simple" or analysis_type['sam_opt'] is False</filter> <actions> @@ -629,10 +624,10 @@ </test> </tests> - <help> - + <help><![CDATA[ + **Bowtie2 Overview** - + Bowtie2_ is an ultrafast and memory-efficient tool for aligning sequencing reads to long reference sequences. It is particularly good at aligning reads of about 50 up to 100s or 1,000s of characters to relatively long (e.g. mammalian) genomes. Bowtie 2 supports gapped, local, and paired-end alignment modes. Galaxy wrapper for Bowtie 2 outputs alignments in `BAM format`_, enabling interoperation with a large number of other tools available at this site. Majority of information in this page is derived from an excellent `Bowtie2 manual`_ written by Ben Langmead. @@ -646,9 +641,9 @@ Galaxy wrapper for Bowtie2 allows you select between precomputed and user-defined indices for reference genomes using **Will you select a reference genome from your history or use a built-in index?** flag. This flag has two options: - 1. **Use a built-in genome index** - when selected (this is default), Galaxy provides the user with **Select reference genome index** dropdown. Genomes listed in this dropdown have been pre-indexed with bowtie2-build utility and are ready to be mapped against. + 1. **Use a built-in genome index** - when selected (this is default), Galaxy provides the user with **Select reference genome index** dropdown. Genomes listed in this dropdown have been pre-indexed with bowtie2-build utility and are ready to be mapped against. 2. **Use a genome from the history and build index** - when selected, Galaxy provides the user with **Select reference genome sequence** dropdown. This dropdown is populated by all FASTA formatted files listed in your current history. If your genome of interest is uploaded into history it will be shown there. Selecting a genome from this dropdown will cause Galaxy to first transparently index it using bowtie2-build command, and then run mapping with bowtie2. - + If your genome of interest is not listed here you have two choices: 1. Contact galaxy team using **Help->Support** link at the top of the interface and let us know that an index needs to be added @@ -672,18 +667,18 @@ **Input options**:: - -s/--skip <int> - Skip (i.e. do not align) the first `<int>` reads or pairs in the input. + -s/--skip <int> + Skip (i.e. do not align) the first `<int>` reads or pairs in the input. - -u/--qupto <int> - Align the first `<int>` reads or read pairs from the input (after the + -u/--qupto <int> + Align the first `<int>` reads or read pairs from the input (after the `-s`/`--skip` reads or pairs have been skipped), then stop. Default: no limit. - -5/--trim5 <int> - Trim `<int>` bases from 5' (left) end of each read before alignment (default: 0). + -5/--trim5 <int> + Trim `<int>` bases from 5' (left) end of each read before alignment (default: 0). - -3/--trim3 <int> - Trim `<int>` bases from 3' (right) end of each read before alignment (default: 0). + -3/--trim3 <int> + Trim `<int>` bases from 3' (right) end of each read before alignment (default: 0). --phred33 Input qualities are ASCII chars equal to the Phred quality plus 33. This is @@ -703,7 +698,7 @@ Quality values are represented in the read input file as space-separated ASCII integers, e.g., `40 40 30 40`..., rather than ASCII characters, e.g., `II?I`.... Integers are treated as being on the Phred quality scale unless `--solexa-quals` is also specified. Default: off. - + ------ **Presets in `--end-to-end` mode**:: @@ -713,7 +708,7 @@ --fast Same as: `-D 10 -R 2 -N 0 -L 22 -i S,0,2.50` - + --sensitive Same as: `-D 15 -R 2 -L 22 -i S,1,1.15` (default in `--end-to-end` mode) @@ -735,23 +730,23 @@ --very-sensitive-local Same as: `-D 20 -R 3 -N 0 -L 20 -i S,1,0.50` - + ------ **Alignment options**:: - -N <int> + -N <int> Sets the number of mismatches to allowed in a seed alignment during multiseed alignment. Can be set to 0 or 1. Setting this higher makes alignment slower (often much slower) but increases sensitivity. Default: 0. - -L <int> + -L <int> Sets the length of the seed substrings to align during multiseed alignment. Smaller values make alignment slower but more sensitive. Default: the `--sensitive` preset is used by default, which sets `-L` to 22 in `--end-to-end` mode and to 20 in `--local` mode. - -i <func> + -i <func> Sets a function governing the interval between seed substrings to use during multiseed alignment. For instance, if the read has 30 characers, and seed length is 10, and the seed interval is 6, the seeds extracted will be: @@ -775,24 +770,24 @@ default, which sets `-i` to `S,1,1.15` in `--end-to-end` mode to `-i S,1,0.75` in `--local` mode. - --n-ceil <func> + --n-ceil <func> Sets a function governing the maximum number of ambiguous characters (usually `N`s and/or `.`s) allowed in a read as a function of read length. For instance, specifying `-L,0,0.15` sets the N-ceiling function `f` to `f(x) = 0 + 0.15 * x`, where x is the read length. Reads exceeding this ceiling are filtered out. Default: `L,0,0.15`. - --dpad <int> - "Pads" dynamic programming problems by `<int>` columns on either side to allow + --dpad <int> + "Pads" dynamic programming problems by `<int>` columns on either side to allow gaps. Default: 15. - --gbar <int> - Disallow gaps within `<int>` positions of the beginning or end of the read. + --gbar <int> + Disallow gaps within `<int>` positions of the beginning or end of the read. Default: 4. --ignore-quals When calculating a mismatch penalty, always consider the quality value at the - mismatched position to be the highest possible, regardless of the actual value. + mismatched position to be the highest possible, regardless of the actual value. I.e. input is treated as though all quality values are high. This is also the default behavior when the input doesn't specify quality values (e.g. in `-f`, `-r`, or `-c` modes). @@ -804,7 +799,7 @@ reference strand. In paired-end mode, `--nofw` and `--norc` pertain to the fragments; i.e. specifying `--nofw` causes `bowtie2` to explore only those paired-end configurations corresponding to fragments from the reverse-complement - (Crick) strand. Default: both strands enabled. + (Crick) strand. Default: both strands enabled. --no-1mm-upfront By default, Bowtie 2 will attempt to find either an exact or a 1-mismatch @@ -835,13 +830,13 @@ and one of the presets (e.g. `--local --very-fast`) is equivalent to specifying the local version of the preset (`--very-fast-local`). This is mutually exclusive with `--end-to-end`. `--end-to-end` is the default mode. - + ----- **Scoring options**:: - --ma <int> - Sets the match bonus. In `--local` mode `<int>` is added to the alignment + --ma <int> + Sets the match bonus. In `--local` mode `<int>` is added to the alignment score for each position where a read character aligns to a reference character and the characters match. Not used in `--end-to-end` mode. Default: 2. @@ -854,31 +849,31 @@ Otherwise, the number subtracted is `MN + floor( (MX-MN)(MIN(Q, 40.0)/40.0) )` where Q is the Phred quality value. Default: `MX` = 6, `MN` = 2. - --np <int> + --np <int> Sets penalty for positions where the read, reference, or both, contain an ambiguous character such as `N`. Default: 1. - --rdg <int1>,<int2> - Sets the read gap open (`<int1>`) and extend (`<int2>`) penalties. A read gap of - length N gets a penalty of `<int1>` + N * `<int2>`. Default: 5, 3. + --rdg <int1>,<int2> + Sets the read gap open (`<int1>`) and extend (`<int2>`) penalties. A read gap of + length N gets a penalty of `<int1>` + N * `<int2>`. Default: 5, 3. - --rfg <int1>,<int2> - Sets the reference gap open (`<int1>`) and extend (`<int2>`) penalties. A - reference gap of length N gets a penalty of `<int1>` + N * `<int2>`. Default: + --rfg <int1>,<int2> + Sets the reference gap open (`<int1>`) and extend (`<int2>`) penalties. A + reference gap of length N gets a penalty of `<int1>` + N * `<int2>`. Default: 5, 3. - --score-min <func> + --score-min <func> Sets a function governing the minimum alignment score needed for an alignment to be considered "valid" (i.e. good enough to report). This is a function of read length. For instance, specifying `L,0,-0.6` sets the minimum-score function `f` to `f(x) = 0 + -0.6 * x`, where `x` is the read length. The default in `--end-to-end` mode is `L,-0.6,-0.6` and the default in `--local` mode is `G,20,8`. - ------ + +----- **Reporting options**:: - -k <int> + -k <int> By default, `bowtie2` searches for distinct, valid alignments for each read. When it finds a valid alignment, it continues looking for alignments that are nearly as good or better. The best alignment found is reported (randomly @@ -887,15 +882,15 @@ `AS:i` and `XS:i`. When `-k` is specified, however, `bowtie2` behaves differently. Instead, it - searches for at most `<int>` distinct, valid alignments for each read. The + searches for at most `<int>` distinct, valid alignments for each read. The search terminates when it can't find more distinct valid alignments, or when it - finds `<int>`, whichever happens first. All alignments found are reported in + finds `<int>`, whichever happens first. All alignments found are reported in descending order by alignment score. The alignment score for a paired-end alignment equals the sum of the alignment scores of the individual mates. Each reported read or pair alignment beyond the first has the SAM 'secondary' bit (which equals 256) set in its FLAGS field. For reads that have more than - `<int>` distinct, valid alignments, `bowtie2` does not guarantee that the - `<int>` alignments reported are the best possible in terms of alignment score. + `<int>` distinct, valid alignments, `bowtie2` does not guarantee that the + `<int>` alignments reported are the best possible in terms of alignment score. `-k` is mutually exclusive with `-a`. Note: Bowtie 2 is not designed with large values for `-k` in mind, and when @@ -907,30 +902,30 @@ Note: Bowtie 2 is not designed with `-a` mode in mind, and when aligning reads to long, repetitive genomes this mode can be very, very slow. - + ----- **Effort options**:: - -D <int> - Up to `<int>` consecutive seed extension attempts can "fail" before Bowtie 2 + -D <int> + Up to `<int>` consecutive seed extension attempts can "fail" before Bowtie 2 moves on, using the alignments found so far. A seed extension "fails" if it does not yield a new best or a new second-best alignment. This limit is automatically adjusted up when -k or -a are specified. Default: 15. - -R <int> - `<int>` is the maximum number of times Bowtie 2 will "re-seed" reads with + -R <int> + `<int>` is the maximum number of times Bowtie 2 will "re-seed" reads with repetitive seeds. When "re-seeding," Bowtie 2 simply chooses a new set of reads (same length, same number of mismatches allowed) at different offsets and searches for more alignments. A read is considered to have repetitive seeds if the total number of seed hits divided by the number of seeds that aligned at least once is greater than 300. Default: 2. - + ----- **Paired-end options**:: - -I/--minins <int> + -I/--minins <int> The minimum fragment length for valid paired-end alignments. E.g. if `-I 60` is specified and a paired-end alignment consists of two 20-bp alignments in the appropriate orientation with a 20-bp gap between them, that alignment is @@ -944,9 +939,9 @@ For typical fragment length ranges (200 to 400 nucleotides), Bowtie 2 is very efficient. - Default: 0 (essentially imposing no minimum) + Default: 0 (essentially imposing no minimum) - -X/--maxins <int> + -X/--maxins <int> The maximum fragment length for valid paired-end alignments. E.g. if `-X 100` is specified and a paired-end alignment consists of two 20-bp alignments in the proper orientation with a 60-bp gap between them, that alignment is considered @@ -998,19 +993,19 @@ --no-overlap If one mate alignment overlaps the other at all, consider that to be non-concordant. Default: mates can overlap in a concordant alignment. - + ------ **SAM options**:: - --rg-id <text> - Set the read group ID to `<text>`. This causes the SAM `@RG` header line to be - printed, with `<text>` as the value associated with the `ID:` tag. It also + --rg-id <text> + Set the read group ID to `<text>`. This causes the SAM `@RG` header line to be + printed, with `<text>` as the value associated with the `ID:` tag. It also causes the `RG:Z:` extra field to be attached to each SAM output record, with - value set to `<text>`. + value set to `<text>`. - --rg <text> - Add `<text>` (usually of the form `TAG:VAL`, e.g. `SM:Pool1`) as a field on the + --rg <text> + Add `<text>` (usually of the form `TAG:VAL`, e.g. `SM:Pool1`) as a field on the `@RG` header line. Note: in order for the `@RG` line to appear, `--rg-id` must also be specified. This is because the `ID` tag is required by the SAM Specification. Specify `--rg` multiple times to set multiple fields. See the @@ -1020,7 +1015,7 @@ When printing secondary alignments, Bowtie 2 by default will write out the `SEQ` and `QUAL` strings. Specifying this option causes Bowtie 2 to print an asterix in those fields instead. - + ----- **Other options**:: @@ -1033,8 +1028,8 @@ not specified. Has no effect if `-p` is set to 1, since output order will naturally correspond to input order in that case. - --seed <int> - Use `<int>` as the seed for pseudo-random number generator. Default: 0. + --seed <int> + Use `<int>` as the seed for pseudo-random number generator. Default: 0. --non-deterministic Normally, Bowtie 2 re-initializes its pseudo-random generator for each read. It @@ -1049,7 +1044,7 @@ but might be more appropriate in situations where the input consists of many identical reads. - </help> + ]]></help> <citations> <citation type="doi">10.1186/gb-2009-10-3-r25</citation> <citation type="doi">10.1038/nmeth.1923</citation>