Mercurial > repos > devteam > bowtie2
view bowtie2_macros.xml @ 32:d5ceb9f3c25b draft default tip
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/bowtie2 commit 7c23f328dedbbf24693ddfcc4ebc6b5ee1801767
author | iuc |
---|---|
date | Mon, 13 May 2024 13:49:14 +0000 |
parents | 0d4acadabb04 |
children |
line wrap: on
line source
<macros> <token name="@TOOL_VERSION@">2.5.3</token> <token name="@VERSION_SUFFIX@">1</token> <!-- Import this at the top of your command block and then define rg_auto_name. --> <token name="@define_read_group_helpers@"> #def identifier_or_name($input1) #if hasattr($input1, 'element_identifier') #return $input1.element_identifier #else #return $input1.name.rstrip('.gz').rstrip('.fastq').rstrip('.fq').rstrip('.bz2') #end if #end def #def clean(name) #import re #set $name_clean = re.sub('[^\w\-_\.]', '_', $name) #return $name_clean #end def #def read_group_name_default($input1, $input2=None) #if $input2 is None #return $clean($identifier_or_name($input1)) #else #import itertools #set $input_name1 = $clean($identifier_or_name($input1)) #set $input_name2 = $clean($identifier_or_name($input2)) #set $common_prefix = ''.join([c[0] for c in itertools.takewhile(lambda x: all(x[0] == y for y in x), zip(*[$input_name1, $input_name2]))]) #if len($common_prefix) > 3 #return $common_prefix #else #return $input_name1 #end if #end if #end def #def format_read_group(prefix, value, quote='', arg='') #if $value #return $arg + $quote + $prefix + $value + $quote #else #return '' #end if #end def #def rg_param(name) #if $varExists("rg") #return $rg.get($name, None) #else #return $getVar($name, None) #end if #end def #set $use_rg = True </token> <!-- preconditions use_rg and rg_auto_name have been defined. --> <token name="@set_read_group_vars@"> #if $use_rg #if $rg_param('read_group_id_conditional') is None #set $rg_id = $rg_auto_name #elif $rg_param('read_group_id_conditional').do_auto_name #set $rg_id = $rg_auto_name #else #set $rg_id = str($rg_param('read_group_id_conditional').ID) #end if #if $rg_param('read_group_sm_conditional') is None #set $rg_sm = '' #elif $rg_param('read_group_sm_conditional').do_auto_name #set $rg_sm = $rg_auto_name #else #set $rg_sm = str($rg_param('read_group_sm_conditional').SM) #end if #if $rg_param('PL') #set $rg_pl = str($rg_param('PL')) #else #set $rg_pl = '' #end if #if $rg_param('read_group_lb_conditional') is None #set $rg_lb = '' #elif $rg_param('read_group_lb_conditional').do_auto_name #set $rg_lb = $rg_auto_name #else #set $rg_lb = str($rg_param('read_group_lb_conditional').LB) #end if #if $rg_param('CN') #set $rg_cn = str($rg_param('CN')) #else #set $rg_cn = '' #end if #if $rg_param("DS") #set $rg_ds = str($rg_param("DS")) #else #set $rg_ds = '' #end if #if $rg_param("DT") #set $rg_dt = str($rg_param("DT")) #else #set $rg_dt = '' #end if #if $rg_param("FO") #set $rg_fo = str($rg_param("FO")) #else #set $rg_fo = '' #end if #if $rg_param("KS") #set $rg_ks = str($rg_param("KS")) #else #set $rg_ks = '' #end if #if $rg_param("PG") #set $rg_pg = str($rg_param("PG")) #else #set $rg_pg = '' #end if #if $rg_param("PI") != None #set $rg_pi = str($rg_param("PI")) #else #set $rg_pi = '' #end if #if $rg_param("PU") #set $rg_pu = str($rg_param("PU")) #else #set $rg_pu = '' #end if #end if </token> <token name="@set_use_rg_var@"> #set $use_rg = str($rg.rg_selector) != "do_not_set" </token> <xml name="read_group_auto_name_conditional"> <param name="do_auto_name" type="boolean" label="Auto-assign" help="Use dataset name or collection information to automatically assign this value" checked="false" /> <when value="true"> </when> <when value="false"> <yield /> </when> </xml> <xml name="read_group_id_param"> <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> <xml name="read_group_id_conditional"> <conditional name="read_group_id_conditional"> <expand macro="read_group_auto_name_conditional"> <expand macro="read_group_id_param" /> </expand> </conditional> </xml> <xml name="read_group_sm_param"> <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"> <expand macro="read_group_auto_name_conditional"> <expand macro="read_group_sm_param" /> </expand> </conditional> </xml> <!-- Above SM param is optional (for SAM/BAM spec, this is required as per Picard. --> <xml name="read_group_sm_param_required"> <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> <xml name="read_group_sm_required_conditional"> <conditional name="read_group_sm_conditional"> <expand macro="read_group_auto_name_conditional"> <expand macro="read_group_sm_param" /> </expand> </conditional> </xml> <xml name="read_group_pl_param"> <param name="PL" type="select" label="Platform/technology used to produce the reads (PL)"> <option value="CAPILLARY">CAPILLARY</option> <option value="LS454">LS454</option> <option selected="True" value="ILLUMINA">ILLUMINA</option> <option value="SOLID">SOLID</option> <option value="HELICOS">HELICOS</option> <option value="IONTORRENT">IONTORRENT</option> <option value="PACBIO">PACBIO</option> </param> </xml> <xml name="read_group_lb_param"> <param name="LB" type="text" label="Library name (LB)" optional="true" /> </xml> <xml name="read_group_lb_conditional"> <conditional name="read_group_lb_conditional"> <expand macro="read_group_auto_name_conditional"> <expand macro="read_group_lb_param" /> </expand> </conditional> </xml> <xml name="read_group_lb_required_param"> <param name="LB" type="text" label="Library name (LB)" optional="false"> <validator type="empty_field" /> </param> </xml> <xml name="read_group_lb_required_conditional"> <conditional name="read_group_lb_conditional"> <expand macro="read_group_auto_name_conditional"> <expand macro="read_group_lb_required_param" /> </expand> </conditional> </xml> <xml name="read_group_cn_param"> <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" label="Description (DS)" /> </xml> <xml name="read_group_dt_param"> <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" 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" 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" 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" 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" 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"> <expand macro="read_group_id_conditional" /> <expand macro="read_group_sm_conditional" /> <expand macro="read_group_pl_param" /> <expand macro="read_group_lb_conditional" /> <expand macro="read_group_cn_param" /> <expand macro="read_group_ds_param" /> <expand macro="read_group_dt_param" /> <expand macro="read_group_fo_param" /> <expand macro="read_group_ks_param" /> <expand macro="read_group_pg_param" /> <expand macro="read_group_pi_param" /> <expand macro="read_group_pu_param" /> </xml> <!-- ID, SM, LB, PU, PL all required - not ks, pg, or fo params. --> <xml name="read_group_inputs_picard"> <expand macro="read_group_id_conditional" /> <expand macro="read_group_sm_required_conditional" /> <expand macro="read_group_lb_required_conditional" /> <expand macro="read_group_pl_param" /> <expand macro="read_group_pu_required_param" /> <expand macro="read_group_cn_param" /> <expand macro="read_group_ds_param" /> <expand macro="read_group_pi_param" /> <expand macro="read_group_dt_param" /> </xml> <xml name="read_group_conditional"> <conditional name="rg"> <param name="rg_selector" type="select" label="Set read groups information?" help="Specifying read group information can greatly simplify your downstream analyses by allowing combining multiple datasets."> <option value="set">Set read groups (SAM/BAM specification)</option> <option value="set_picard">Set read groups (Picard style)</option> <option value="set_id_auto">Automatically assign ID using name of history item(s)</option> <option value="do_not_set" selected="True">Do not set</option> </param> <when value="set_picard"> <expand macro="read_group_inputs_picard" /> </when> <when value="set"> <expand macro="read_group_inputs_spec" /> </when> <when value="set_id_auto"> </when> <when value="do_not_set"> </when> </conditional> </xml> <xml name="paired_end_options"> <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"> <option value="no" selected="True">No</option> <option value="yes">Yes</option> </param> <when value="yes"> <param argument="-I" type="integer" value="0" min="0" label="Set the minimum fragment length for valid paired-end alignments" help="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 considered valid (as long as `-X` is also satisfied). A 19-bp gap would not be valid in that case. If trimming options `-3` or `-5` are also used, the `-I` constraint is applied with respect to the untrimmed mates. The larger the difference between `-I` and `-X`, the slower Bowtie 2 will run. This is because larger differences bewteen `-I` and `-X` require that Bowtie 2 scan a larger window to determine if a concordant alignment exists. For typical fragment length ranges (200 to 400 nucleotides), Bowtie 2 is very efficient. Default=0"/> <param argument="-X" type="integer" value="500" min="0" label="Set the maximum fragment length for valid paired-end alignments" help="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 valid (as long as `-I` is also satisfied). A 61-bp gap would not be valid in that case. If trimming options `-3` or `-5` are also used, the `-X` constraint is applied with respect to the untrimmed mates, not the trimmed mates; Default=500"/> <param name="fr_rf_ff" type="select" display="radio" label="Select the upstream/downstream mate orientations for a valid paired-end alignment against the forward reference strand" help="--fr, --rf, or --ff; E.g., if `--fr` is specified and there is a candidate paired-end alignment where mate 1 appears upstream of the reverse complement of mate 2 and the fragment length constraints (`-I` and `-X`) are met, that alignment is valid. Also, if mate 2 appears upstream of the reverse complement of mate 1 and all other constraints are met, that too is valid. `--rf` likewise requires that an upstream mate1 be reverse-complemented and a downstream mate2 be forward-oriented. `--ff` requires both an upstream mate 1 and a downstream mate 2 to be forward-oriented; Default=--fr (appropriate for Illumina's Paired-end Sequencing Assay)"> <option value="--fr" selected="True">--fr</option> <option value="--rf">--rf</option> <option value="--ff">--ff</option> </param> <param argument="--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 argument="--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 argument="--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 argument="--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 argument="--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 --> </when> </conditional> </xml> <xml name="align_unalign"> <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 (possibly with -gz or -bz2); This triggers --un parameter for single reads and --un-conc for paired reads" /> <param name="aligned_file" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Write aligned reads (in fastq format) to separate file(s)" help="--al/--al-conc (possibly with -gz or -bz2); This triggers --al parameter for single reads and --al-conc for paired reads" /> </xml> <xml name="dbKeyActions"> <conditional name="reference_genome.source"> <when value="indexed"> <action type="metadata" name="dbkey"> <option type="from_data_table" name="bowtie2_indexes" column="1"> <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> </xml> </macros>