Mercurial > repos > devteam > bowtie2
changeset 7:4f92dccc808a draft
planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/bowtie2 commit a1517c9d22029095120643bbe2c8fa53754dd2b7
author | devteam |
---|---|
date | Wed, 11 Nov 2015 12:04:23 -0500 |
parents | e23b0cdeeba6 |
children | 82414e16b6bd |
files | bowtie2_wrapper.xml read_group_macros.xml |
diffstat | 2 files changed, 100 insertions(+), 52 deletions(-) [+] |
line wrap: on
line diff
--- a/bowtie2_wrapper.xml Wed Aug 26 12:46:11 2015 -0400 +++ b/bowtie2_wrapper.xml Wed Nov 11 12:04:23 2015 -0500 @@ -10,7 +10,7 @@ <requirement type="package" version="0.1.18">samtools</requirement> </requirements> <command> - + ## prepare bowtie2 index #set index_path = '' #if str($reference_genome.source) == "history": @@ -20,18 +20,17 @@ #else: #set index_path = $reference_genome.index.fields.path #end if - + ## execute bowtie2 - + bowtie2 - + ## number of threads -p \${GALAXY_SLOTS:-4} ## index file path -x $index_path - - + ## Fastq inputs #if str( $library.type ) == "single": -U "${library.input_1}" @@ -72,7 +71,7 @@ --un-conc $output_unaligned_reads_l #end if #end if - + ## Read group information. @define_read_group_helpers@ #if str( $library.type ) == "single": @@ -98,7 +97,7 @@ $format_read_group("PI:", $rg_pi, '"', arg='--rg ') $format_read_group("PU:", $rg_pu, '"', arg='--rg ') #end if - + ## Analysis type #if ( str( $analysis_type.analysis_type_selector ) == "simple" and str( $analysis_type.presets ) != "no_presets" ): $analysis_type.presets @@ -112,7 +111,7 @@ ${analysis_type.input_options.solexa_quals} ${analysis_type.input_options.int_quals} #end if - + #if str( $analysis_type.alignment_options.alignment_options_selector ) == "yes": -N "${analysis_type.alignment_options.N}" -L "${analysis_type.alignment_options.L}" @@ -132,7 +131,7 @@ --score-min "${analysis_type.alignment_options.align_mode.score_min_loc}" #end if #end if - + #if str( $analysis_type.scoring_options.scoring_options_selector ) == "yes": #if ( str( $analysis_type.alignment_options.alignment_options_selector ) == "yes" and str( $analysis_type.alignment_options.align_mode.align_mode_selector ) == "local" ): --ma "${analysis_type.scoring_options.ma}" @@ -142,36 +141,39 @@ --rdg "${analysis_type.scoring_options.rdg_read_open},${analysis_type.scoring_options.rdg_read_extend}" --rfg "${analysis_type.scoring_options.rfg_ref_open},${analysis_type.scoring_options.rfg_ref_extend}" #end if - + #if str( $analysis_type.reporting_options.reporting_options_selector ) == "k": -k "${analysis_type.reporting_options.k}" #elif str( $analysis_type.reporting_options.reporting_options_selector ) == "a": -a #end if - + #if str( $analysis_type.effort_options.effort_options_selector ) == "yes": -D "${analysis_type.effort_options.D}" -R "${analysis_type.effort_options.R}" #end if - + #if str( $analysis_type.sam_options.sam_options_selector ) == "yes": ${analysis_type.sam_options.no_unal} ${analysis_type.sam_options.omit_sec_seq} #end if - + #if str( $analysis_type.other_options.other_options_selector ) == "yes": + ${analysis_type.other_options.reorder} ${analysis_type.other_options.non_deterministic} --seed "${analysis_type.other_options.seed}" #end if - + #elif str( $analysis_type.analysis_type_selector ) == "cline": ${analysis_type.cline} #end if - - -S "galaxy_bowtie_2_output.sam" && - ## view/sort and output BAM file - ( samtools view -Su "galaxy_bowtie_2_output.sam" | samtools sort -o - - > $output ) + ## output file + #if ( str( $analysis_type.analysis_type_selector ) != "full" or str( $analysis_type.sam_opt ) != "true" ): + | samtools view -Su - | samtools sort -o - - > $output + #else + > $output_sam + #end if ## rename unaligned sequence files #if $library.type == "paired" and $output_unaligned_reads_l and $output_unaligned_reads_r: @@ -180,14 +182,13 @@ && mv "${ _unaligned_root }.1${_unaligned_ext}" "${ output_unaligned_reads_l }" && mv "${ _unaligned_root }.2${_unaligned_ext}" "${ output_unaligned_reads_r }" #end if - + </command> - <!-- basic error handling --> <stdio> <exit_code range="1:" level="fatal" description="Tool exception" /> </stdio> - + <inputs> <!-- single/paired --> <conditional name="library"> @@ -198,12 +199,12 @@ </param> <when value="single"> - <param name="input_1" format="fastqsanger" type="data" label="FASTQ file" help="Nucleotide-space: Must have Sanger-scaled quality values with ASCII offset 33"/> + <param name="input_1" format="fastqsanger" type="data" label="FASTQ file" help="Must be of datatype "fastqsanger"" /> <param name="unaligned_file" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Write unaligned reads (in fastq format) to separate file(s)" help="--un/--un-conc; This triggers --un parameter for single reads and --un-conc for paired reads" /> </when> <when value="paired"> - <param name="input_1" format="fastqsanger" type="data" label="FASTQ file" help="Nucleotide-space: Must have Sanger-scaled quality values with ASCII offset 33" /> - <param name="input_2" format="fastqsanger" type="data" label="FASTQ file" help="Nucleotide-space: Must have Sanger-scaled quality values with ASCII offset 33" /> + <param name="input_1" format="fastqsanger" type="data" label="FASTQ file #1" help="Must be of datatype "fastqsanger"" /> + <param name="input_2" format="fastqsanger" type="data" label="FASTQ file #2" help="Must be of datatype "fastqsanger"" /> <param name="unaligned_file" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Write unaligned reads (in fastq format) to separate file(s)" help="--un/--un-conc; This triggers --un parameter for single reads and --un-conc for paired reads" /> <conditional name="paired_options"> <param name="paired_options_selector" type="select" label="Do you want to set paired-end options?" help="See "Alignment Options" section of Help below for information"> @@ -221,8 +222,8 @@ <param name="no_mixed" type="boolean" truevalue="--no-mixed" falsevalue="" checked="False" label="Disable no-mixed behavior" help="--no-mixed; By default, when `bowtie2` cannot find a concordant or discordant alignment for a pair, it then tries to find alignments for the individual mates; default=False"/> <param name="no_discordant" type="boolean" truevalue="--no-discordant" falsevalue="" checked="False" label="Disable no-discordant behavior" help="--no-discordant; By default, `bowtie2` looks for discordant alignments if it cannot find any concordant alignments. A discordant alignment is an alignment where both mates align uniquely, but that does not satisfy the paired-end constraints (`--fr`/`--rf`/`--ff`, `-I`, `-X`); default=False"/> <param name="dovetail" type="boolean" truevalue="--dovetail" falsevalue="" checked="False" label="Allow mate dovetailing" help="--dovetail; If the mates `dovetail`, that is if one mate alignment extends past the beginning of the other such that the wrong mate begins upstream, consider that to be concordant. Default=False"/> - <param name="no_contain" type="boolean" truevalue="--no-contain" falsevalue="" checked="False" label="Allow one mate alignment to contain another" help="--no-contain; If one mate alignment contains the other, consider that to be non-concordant. Default=False"/> - <param name="no_overlap" type="boolean" truevalue="--no-overlap" falsevalue="" checked="False" label="Allow mate alignments to overlap" help="--no-overlap; If one mate alignment overlaps the other at all, consider that to be non-concordant. Default=False"/> + <param name="no_contain" type="boolean" truevalue="--no-contain" falsevalue="" checked="False" label="Disallow one mate alignment to contain another" help="--no-contain; If one mate alignment contains the other, consider that to be non-concordant. Default=False"/> + <param name="no_overlap" type="boolean" truevalue="--no-overlap" falsevalue="" checked="False" label="Disallow mate alignments to overlap" help="--no-overlap; If one mate alignment overlaps the other at all, consider that to be non-concordant. Default=False"/> </when> <when value="no"> <!-- do nothing --> @@ -230,7 +231,7 @@ </conditional> </when> <when value="paired_collection"> - <param name="input_1" format="fastqsanger" type="data_collection" collection_type="paired" label="FASTQ Paired Dataset" help="Nucleotide-space: Must have Sanger-scaled quality values with ASCII offset 33" /> + <param name="input_1" format="fastqsanger" type="data_collection" collection_type="paired" label="FASTQ Paired Dataset" help="Must be of datatype "fastqsanger"" /> <param name="unaligned_file" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Write unaligned reads (in fastq format) to separate file(s)" help="--un/--un-conc; This triggers --un parameter for single reads and --un-conc for paired reads" /> <conditional name="paired_options"> <param name="paired_options_selector" type="select" label="Do you want to set paired-end options?" help="See "Alignment Options" section of Help below for information"> @@ -248,8 +249,8 @@ <param name="no_mixed" type="boolean" truevalue="--no-mixed" falsevalue="" checked="False" label="Disable no-mixed behavior" help="--no-mixed; By default, when `bowtie2` cannot find a concordant or discordant alignment for a pair, it then tries to find alignments for the individual mates; default=False"/> <param name="no_discordant" type="boolean" truevalue="--no-discordant" falsevalue="" checked="False" label="Disable no-discordant behavior" help="--no-discordant; By default, `bowtie2` looks for discordant alignments if it cannot find any concordant alignments. A discordant alignment is an alignment where both mates align uniquely, but that does not satisfy the paired-end constraints (`--fr`/`--rf`/`--ff`, `-I`, `-X`); default=False"/> <param name="dovetail" type="boolean" truevalue="--dovetail" falsevalue="" checked="False" label="Allow mate dovetailing" help="--dovetail; If the mates `dovetail`, that is if one mate alignment extends past the beginning of the other such that the wrong mate begins upstream, consider that to be concordant. Default=False"/> - <param name="no_contain" type="boolean" truevalue="--no-contain" falsevalue="" checked="False" label="Allow one mate alignment to contain another" help="--no-contain; If one mate alignment contains the other, consider that to be non-concordant. Default=False"/> - <param name="no_overlap" type="boolean" truevalue="--no-overlap" falsevalue="" checked="False" label="Allow mate alignments to overlap" help="--no-overlap; If one mate alignment overlaps the other at all, consider that to be non-concordant. Default=False"/> + <param name="no_contain" type="boolean" truevalue="--no-contain" falsevalue="" checked="False" label="Disallow one mate alignment to contain another" help="--no-contain; If one mate alignment contains the other, consider that to be non-concordant. Default=False"/> + <param name="no_overlap" type="boolean" truevalue="--no-overlap" falsevalue="" checked="False" label="Disallow mate alignments to overlap" help="--no-overlap; If one mate alignment overlaps the other at all, consider that to be non-concordant. Default=False"/> </when> <when value="no"> <!-- do nothing --> @@ -327,7 +328,7 @@ <when value="yes"> <param name="N" type="integer" min="0" max="1" value="0" label="Set the number of mismatches to be allowed in a seed alignment during multiseed alignment (see `Multiseed alignment` section of help below)" help="-N; Can be set to 0 or 1. Setting this higher makes alignment slower (often much slower) but increases sensitivity; default=0"/> <param name="L" type="integer" min="0" max="32" value="22" label="Sets the length of the seed substrings to align during multiseed alignment (see `Multiseed alignment` section of help below)" help="-L; Smaller values make alignment slower but more sensitive. Default=22"/> - <param name="i" type="text" value="S,1,1.15" size="10" label="Set a function governing the interval between seed substrings to use during multiseed alignment (see `Multiseed alignment` section of help below). Also see description of this option below in the help section" help="-i; Since it's best to use longer intervals for longer reads, this parameter sets the interval as a function of the read length, rather than a single one-size-fits-all number. For instance, specifying `-i S,1,2.5` sets the interval function `f` to `f(x) = 1 + 2.5 * sqrt(x)`, where x is the read length. If the function returns a result less than 1, it is rounded up to 1. Default=`S,1,1.15`"/> + <param name="i" type="text" value="S,1,1.15" label="Set a function governing the interval between seed substrings to use during multiseed alignment (see `Multiseed alignment` section of help below). Also see description of this option below in the help section" help="-i; Since it's best to use longer intervals for longer reads, this parameter sets the interval as a function of the read length, rather than a single one-size-fits-all number. For instance, specifying `-i S,1,2.5` sets the interval function `f` to `f(x) = 1 + 2.5 * sqrt(x)`, where x is the read length. If the function returns a result less than 1, it is rounded up to 1. Default=`S,1,1.15`"/> <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"/> @@ -359,7 +360,7 @@ </param> <when value="yes"> <param name="ma" type="integer" value="2" label="Set the match bonus" help="--ma; In `--local` mode match bonus 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"/> - <param name="mp" type="text" size="10" value="6,2" label="Set the maximum (`MX`) and minimum (`MN`) mismatch penalties, both integers" help="--mp; A number less than or equal to `MX` and greater than or equal to `MN` is subtracted from the alignment score for each position where a read character aligns to a reference character, the characters do not match, and neither is an `N`. If `--ignore-quals` is specified, the number subtracted quals `MX`. Otherwise, the number subtracted is `MN + floor( (MX-MN)(MIN(Q, 40.0)/40.0) )` where Q is the Phred quality value; Default=6,2"/> + <param name="mp" type="text" value="6,2" label="Set the maximum (`MX`) and minimum (`MN`) mismatch penalties, both integers" help="--mp; A number less than or equal to `MX` and greater than or equal to `MN` is subtracted from the alignment score for each position where a read character aligns to a reference character, the characters do not match, and neither is an `N`. If `--ignore-quals` is specified, the number subtracted quals `MX`. Otherwise, the number subtracted is `MN + floor( (MX-MN)(MIN(Q, 40.0)/40.0) )` where Q is the Phred quality value; Default=6,2"/> <param name="np" type="integer" value="1" label="Sets penalty for positions where the read, reference, or both, contain an ambiguous character such as `N`" help="--np; Default=1"/> <param name="rdg_read_open" type="integer" value="5" label="Set the read gap opening penalty" help="--rdg; this is the first component of --rdg flag - opening penalty; Default=5"/> <param name="rdg_read_extend" type="integer" value="3" label="Set the read gap extension penalty" help="--rdg; this is the second component of --rdg flag - extension penalty; Default=3"/> @@ -419,6 +420,7 @@ <option value="no" selected="true">No</option> </param> <when value="yes"> + <param name="reorder" type="boolean" truevalue="--reorder" falsevalue="" label="Guarantee that output SAM records are printed in an order corresponding to the order of the reads in the original input file" help="--reorder; Default=False"/> <param name="seed" type="integer" value="0" min="0" label="Use this number as the seed for pseudo-random number generator" help="--seed; Default=0"/> <param name="non_deterministic" type="boolean" truevalue="--non-deterministic" falsevalue="" label="Re-initialize the pseudo-random generator for each read using the current time" help="--non-deterministic; see Help below for explanation of this option; default=False"/> </when> @@ -426,6 +428,7 @@ <!-- do nothing --> </when> </conditional> + <param name="sam_opt" type="boolean" truevalue="true" falsevalue="false" label="Would you like the output to be a SAM file" help="By default, the output from this Bowtie2 wrapper is a sorted BAM file."/> </when> </conditional> </inputs> @@ -437,21 +440,66 @@ <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> - <action type="format"> - <option type="from_param" name="library.input_1" param_attribute="ext" /> - </action> + <conditional name="library.type"> + <when value="single"> + <action type="format"> + <option type="from_param" name="library.input_1" param_attribute="ext" /> + </action> + </when> + <when value="paired"> + <action type="format"> + <option type="from_param" name="library.input_1" param_attribute="ext" /> + </action> + </when> + <when value="paired_collection"> + <action type="format"> + <option type="from_param" name="library.input_1" param_attribute="forward.ext" /> + </action> + </when> + </conditional> </actions> </data> <data format="fastqsanger" name="output_unaligned_reads_r" label="${tool.name} on ${on_string}: unaligned reads (R)"> <filter>( library['type'] == "paired" or library['type'] == "paired_collection" ) and library['unaligned_file'] is True</filter> <actions> - <action type="format"> - <option type="from_param" name="library.input_1" param_attribute="ext" /> - </action> + <conditional name="library.type"> + <when value="paired"> + <action type="format"> + <option type="from_param" name="library.input_2" param_attribute="ext" /> + </action> + </when> + <when value="paired_collection"> + <action type="format"> + <option type="from_param" name="library.input_1" param_attribute="reverse.ext" /> + </action> + </when> + </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> + <conditional name="reference_genome.source"> + <when value="indexed"> + <action type="metadata" name="dbkey"> + <option type="from_data_table" name="bowtie2_indexes" column="1" offset="0"> + <filter type="param_value" column="0" value="#" compare="startswith" keep="False"/> + <filter type="param_value" ref="reference_genome.index" column="0"/> + </option> + </action> + </when> + <when value="history"> + <action type="metadata" name="dbkey"> + <option type="from_param" name="reference_genome.own_file" param_attribute="dbkey" /> + </action> + </when> + </conditional> + </actions> + </data> + + <data format="sam" name="output_sam" label="${tool.name} on ${on_string}: aligned reads (SAM)"> + <filter>analysis_type['analysis_type_selector'] == "full" and analysis_type['sam_opt'] is True</filter> <actions> <conditional name="reference_genome.source"> <when value="indexed">
--- a/read_group_macros.xml Wed Aug 26 12:46:11 2015 -0400 +++ b/read_group_macros.xml Wed Nov 11 12:04:23 2015 -0500 @@ -121,7 +121,7 @@ #set $rg_pg = '' #end if - #if str($rg_param("PI")) + #if $rg_param("PI") != None #set $rg_pi = str($rg_param("PI")) #else #set $rg_pi = '' @@ -146,7 +146,7 @@ </when> </xml> <xml name="read_group_id_param"> - <param name="ID" type="text" value="" size="20" label="Read group identifier (ID)" help="This value must be unique among multiple samples in your experiment" optional="false"> + <param name="ID" type="text" value="" label="Read group identifier (ID)" help="This value must be unique among multiple samples in your experiment" optional="false"> <validator type="empty_field" /> </param> </xml> @@ -158,7 +158,7 @@ </conditional> </xml> <xml name="read_group_sm_param"> - <param name="SM" type="text" value="" size="20" label="Read group sample name (SM)" help="This value should be descriptive. Use pool name where a pool is being sequenced" /> + <param name="SM" type="text" value="" label="Read group sample name (SM)" help="This value should be descriptive. Use pool name where a pool is being sequenced" /> </xml> <xml name="read_group_sm_conditional"> <conditional name="read_group_sm_conditional"> @@ -171,7 +171,7 @@ as per Picard. --> <xml name="read_group_sm_param_required"> - <param name="SM" type="text" value="" size="20" label="Read group sample name (SM)" optional="false" help="This value should be descriptive. Use pool name where a pool is being sequenced"> + <param name="SM" type="text" value="" label="Read group sample name (SM)" optional="false" help="This value should be descriptive. Use pool name where a pool is being sequenced"> <validator type="empty_field" /> </param> </xml> @@ -194,7 +194,7 @@ </param> </xml> <xml name="read_group_lb_param"> - <param name="LB" type="text" size="25" label="Library name (LB)" optional="true" /> + <param name="LB" type="text" label="Library name (LB)" optional="true" /> </xml> <xml name="read_group_lb_conditional"> <conditional name="read_group_lb_conditional"> @@ -204,7 +204,7 @@ </conditional> </xml> <xml name="read_group_lb_required_param"> - <param name="LB" type="text" size="25" label="Library name (LB)" optional="false"> + <param name="LB" type="text" label="Library name (LB)" optional="false"> <validator type="empty_field" /> </param> </xml> @@ -216,33 +216,33 @@ </conditional> </xml> <xml name="read_group_cn_param"> - <param name="CN" type="text" size="25" label="Sequencing center that produced the read (CN)" /> + <param name="CN" type="text" label="Sequencing center that produced the read (CN)" /> </xml> <xml name="read_group_ds_param"> - <param name="DS" type="text" size="25" label="Description (DS)" /> + <param name="DS" type="text" label="Description (DS)" /> </xml> <xml name="read_group_dt_param"> - <param name="DT" type="text" size="25" label="Date that run was produced (DT)" help="ISO8601 format date or date/time, like YYYY-MM-DD" /> + <param name="DT" type="text" label="Date that run was produced (DT)" help="ISO8601 format date or date/time, like YYYY-MM-DD" /> </xml> <xml name="read_group_fo_param"> - <param name="FO" type="text" size="25" optional="true" label="Flow order (FO)" help="The array of nucleotide bases that correspond to the nucleotides used for each flow of each read. Multi-base flows are encoded in IUPAC format, and non-nucleotide flows by various other characters. Format: /\*|[ACMGRSVTWYHKDBN]+/"> + <param name="FO" type="text" optional="true" label="Flow order (FO)" help="The array of nucleotide bases that correspond to the nucleotides used for each flow of each read. Multi-base flows are encoded in IUPAC format, and non-nucleotide flows by various other characters. Format: /\*|[ACMGRSVTWYHKDBN]+/"> <validator type="regex" message="Invalid flow order">\*|[ACMGRSVTWYHKDBN]+$</validator> </param> </xml> <xml name="read_group_ks_param"> - <param name="KS" type="text" size="25" label="The array of nucleotide bases that correspond to the key sequence of each read (KS)" /> + <param name="KS" type="text" label="The array of nucleotide bases that correspond to the key sequence of each read (KS)" /> </xml> <xml name="read_group_pg_param"> - <param name="PG" type="text" size="25" label="Programs used for processing the read group (PG)" /> + <param name="PG" type="text" label="Programs used for processing the read group (PG)" /> </xml> <xml name="read_group_pi_param"> <param name="PI" type="integer" optional="true" label="Predicted median insert size (PI)" /> </xml> <xml name="read_group_pu_param"> - <param name="PU" type="text" size="25" label="Platform unit (PU)" help="Unique identifier (e.g. flowcell-barcode.lane for Illumina or slide for SOLiD)" optional="True" /> + <param name="PU" type="text" label="Platform unit (PU)" help="Unique identifier (e.g. flowcell-barcode.lane for Illumina or slide for SOLiD)" optional="True" /> </xml> <xml name="read_group_pu_required_param"> - <param name="PU" type="text" size="25" label="Platform unit (PU)" help="Unique identifier (e.g. flowcell-barcode.lane for Illumina or slide for SOLiD)" optional="False" /> + <param name="PU" type="text" label="Platform unit (PU)" help="Unique identifier (e.g. flowcell-barcode.lane for Illumina or slide for SOLiD)" optional="False" /> </xml> <!-- Only ID is required - all groups available --> <xml name="read_group_inputs_spec">