PageRenderTime 33ms CodeModel.GetById 28ms app.highlight 2ms RepoModel.GetById 1ms app.codeStats 0ms

/tools/ncbi_blast_plus/ncbi_blastn_wrapper.xml

https://bitbucket.org/cistrome/cistrome-harvard/
XML | 209 lines | 182 code | 17 blank | 10 comment | 0 complexity | 3ee6937c5e2dec6e754e51709e6cc36a MD5 | raw file
  1<tool id="ncbi_blastn_wrapper" name="NCBI BLAST+ blastn" version="0.0.11">
  2    <description>Search nucleotide database with nucleotide query sequence(s)</description>
  3    <version_command>blastn -version</version_command>
  4    <command interpreter="python">hide_stderr.py
  5## The command is a Cheetah template which allows some Python based syntax.
  6## Lines starting hash hash are comments. Galaxy will turn newlines into spaces
  7blastn
  8-query "$query"
  9#if $db_opts.db_opts_selector == "db":
 10  -db "${db_opts.database.fields.path}"
 11#else:
 12  -subject "$db_opts.subject"
 13#end if
 14-task $blast_type
 15-evalue $evalue_cutoff
 16-out $output1
 17##Set the extended list here so if/when we add things, saved workflows are not affected
 18#if str($out_format)=="ext":
 19    -outfmt "6 std sallseqid score nident positive gaps ppos qframe sframe qseq sseq qlen slen"
 20#else:
 21    -outfmt $out_format
 22#end if
 23-num_threads 8
 24#if $adv_opts.adv_opts_selector=="advanced":
 25$adv_opts.filter_query
 26$adv_opts.strand
 27## Need int(str(...)) because $adv_opts.max_hits is an InputValueWrapper object not a string
 28## Note -max_target_seqs overrides -num_descriptions and -num_alignments
 29#if (str($adv_opts.max_hits) and int(str($adv_opts.max_hits)) > 0):
 30-max_target_seqs $adv_opts.max_hits
 31#end if
 32#if (str($adv_opts.word_size) and int(str($adv_opts.word_size)) > 0):
 33-word_size $adv_opts.word_size
 34#end if
 35$adv_opts.ungapped
 36$adv_opts.parse_deflines
 37## End of advanced options:
 38#end if
 39    </command>
 40    <inputs>
 41        <param name="query" type="data" format="fasta" label="Nucleotide query sequence(s)"/> 
 42        <conditional name="db_opts">
 43            <param name="db_opts_selector" type="select" label="Subject database/sequences">
 44              <option value="db" selected="True">BLAST Database</option>
 45              <option value="file">FASTA file</option>
 46            </param>
 47            <when value="db">
 48                <param name="database" type="select" label="Nucleotide BLAST database">
 49                    <options from_file="blastdb.loc">
 50                      <column name="value" index="0"/>
 51                      <column name="name" index="1"/>
 52                      <column name="path" index="2"/>
 53                    </options>
 54                </param>
 55                <param name="subject" type="hidden" value="" /> 
 56            </when>
 57            <when value="file">
 58                <param name="database" type="hidden" value="" /> 
 59                <param name="subject" type="data" format="fasta" label="Nucleotide FASTA file to use as database"/> 
 60            </when>
 61        </conditional>
 62        <param name="blast_type" type="select" display="radio" label="Type of BLAST">
 63            <option value="megablast">megablast</option>
 64            <option value="blastn">blastn</option>
 65            <option value="blastn-short">blastn-short</option>
 66            <option value="dc-megablast">dc-megablast</option>
 67            <!-- Using BLAST 2.2.24+ this gives an error:
 68            BLAST engine error: Program type 'vecscreen' not supported
 69            <option value="vecscreen">vecscreen</option>
 70            -->
 71        </param>
 72        <param name="evalue_cutoff" type="float" size="15" value="0.001" label="Set expectation value cutoff" />
 73        <param name="out_format" type="select" label="Output format">
 74            <option value="6" selected="True">Tabular (standard 12 columns)</option>
 75            <option value="ext">Tabular (extended 24 columns)</option>
 76            <option value="5">BLAST XML</option>
 77            <option value="0">Pairwise text</option>
 78            <option value="0 -html">Pairwise HTML</option>
 79            <option value="2">Query-anchored text</option>
 80            <option value="2 -html">Query-anchored HTML</option>
 81            <option value="4">Flat query-anchored text</option>
 82            <option value="4 -html">Flat query-anchored HTML</option>
 83            <!--
 84            <option value="-outfmt 11">BLAST archive format (ASN.1)</option>
 85            -->
 86        </param>
 87        <conditional name="adv_opts">
 88            <param name="adv_opts_selector" type="select" label="Advanced Options">
 89              <option value="basic" selected="True">Hide Advanced Options</option>
 90              <option value="advanced">Show Advanced Options</option>
 91            </param>
 92            <when value="basic" />
 93            <when value="advanced">
 94                <!-- Could use a select (yes, no, other) where other allows setting 'level window linker' -->
 95                <param name="filter_query" type="boolean" label="Filter out low complexity regions (with DUST)" truevalue="-dust yes" falsevalue="-dust no" checked="true" />
 96                <param name="strand" type="select" label="Query strand(s) to search against database/subject">
 97                    <option value="-strand both">Both</option>
 98                    <option value="-strand plus">Plus (forward)</option>
 99                    <option value="-strand minus">Minus (reverse complement)</option>
100                </param>
101                <!-- Why doesn't optional override a validator? I want to accept an empty string OR a non-negative integer -->
102                <param name="max_hits" type="integer" value="0" label="Maximum hits to show" help="Use zero for default limits">
103                    <validator type="in_range" min="0" />
104                </param>
105                <!-- I'd like word_size to be optional, with minimum 4 for blastn -->
106                <param name="word_size" type="integer" value="0" label="Word size for wordfinder algorithm" help="Use zero for default, otherwise minimum 4.">
107                    <validator type="in_range" min="0" />
108                </param>
109                <param name="ungapped" type="boolean" label="Perform ungapped alignment only?" truevalue="-ungapped" falsevalue="" checked="false" />
110                <param name="parse_deflines" type="boolean" label="Should the query and subject defline(s) be parsed?" truevalue="-parse_deflines" falsevalue="" checked="false" help="This affects the formatting of the query/subject ID strings"/>
111            </when>
112        </conditional>
113    </inputs>
114    <outputs>
115        <data name="output1" format="tabular" label="${blast_type.value_label} on ${db_opts.db_opts_selector}">
116            <change_format>
117                <when input="out_format" value="0" format="txt"/>
118                <when input="out_format" value="0 -html" format="html"/>
119                <when input="out_format" value="2" format="txt"/>
120                <when input="out_format" value="2 -html" format="html"/>
121                <when input="out_format" value="4" format="txt"/>
122                <when input="out_format" value="4 -html" format="html"/>
123                <when input="out_format" value="5" format="blastxml"/>
124            </change_format>
125        </data>
126    </outputs>
127    <requirements>
128        <requirement type="binary">blastn</requirement>
129    </requirements>
130    <help>
131    
132.. class:: warningmark
133
134**Note**. Database searches may take a substantial amount of time.
135For large input datasets it is advisable to allow overnight processing.  
136
137-----
138
139**What it does**
140
141Search a *nucleotide database* using a *nucleotide query*,
142using the NCBI BLAST+ blastn command line tool.
143Algorithms include blastn, megablast, and discontiguous megablast.
144
145-----
146
147**Output format**
148
149Because Galaxy focuses on processing tabular data, the default output of this
150tool is tabular. The standard BLAST+ tabular output contains 12 columns:
151
152====== ========= ============================================
153Column NCBI name Description
154------ --------- --------------------------------------------
155     1 qseqid    Query Seq-id (ID of your sequence)
156     2 sseqid    Subject Seq-id (ID of the database hit)
157     3 pident    Percentage of identical matches
158     4 length    Alignment length
159     5 mismatch  Number of mismatches
160     6 gapopen   Number of gap openings
161     7 qstart    Start of alignment in query
162     8 qend      End of alignment in query
163     9 sstart    Start of alignment in subject (database hit)
164    10 send      End of alignment in subject (database hit)
165    11 evalue    Expectation value (E-value)
166    12 bitscore  Bit score
167====== ========= ============================================
168
169The BLAST+ tools can optionally output additional columns of information,
170but this takes longer to calculate. Most (but not all) of these columns are
171included by selecting the extended tabular output. The extra columns are
172included *after* the standard 12 columns. This is so that you can write
173workflow filtering steps that accept either the 12 or 24 column tabular
174BLAST output.
175
176====== ============= ===========================================
177Column NCBI name     Description
178------ ------------- -------------------------------------------
179    13 sallseqid     All subject Seq-id(s), separated by a ';'
180    14 score         Raw score
181    15 nident        Number of identical matches
182    16 positive      Number of positive-scoring matches
183    17 gaps          Total number of gaps
184    18 ppos          Percentage of positive-scoring matches
185    19 qframe        Query frame
186    20 sframe        Subject frame
187    21 qseq          Aligned part of query sequence
188    22 sseq          Aligned part of subject sequence
189    23 qlen          Query sequence length
190    24 slen          Subject sequence length
191====== ============= ===========================================
192
193The third option is BLAST XML output, which is designed to be parsed by
194another program, and is understood by some Galaxy tools.
195
196You can also choose several plain text or HTML output formats which are designed to be read by a person (not by another program).
197The HTML versions use basic webpage formatting and can include links to the hits on the NCBI website.
198The pairwise output (the default on the NCBI BLAST website) shows each match as a pairwise alignment with the query.
199The two query anchored outputs show a multiple sequence alignment between the query and all the matches,
200and differ in how insertions are shown (marked as insertions or with gap characters added to the other sequences).
201
202-------
203
204**References**
205
206Zhang et al. A Greedy Algorithm for Aligning DNA Sequences. 2000. JCB: 203-214.
207
208    </help>
209</tool>