Mercurial > repos > galaxyp > blastxml_to_tabular_selectable
diff blastxml_to_tabular_selectable.xml @ 0:2bd0cbccb3c6
Uploaded
author | galaxyp |
---|---|
date | Wed, 08 Oct 2014 19:38:28 -0400 |
parents | |
children | 5da5dcc5e13a |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/blastxml_to_tabular_selectable.xml Wed Oct 08 19:38:28 2014 -0400 @@ -0,0 +1,178 @@ +<tool id="blastxml_to_tabular_selectable" name="BLAST XML to selected tabular columns" version="0.0.9"> + <description>Convert BLAST XML output to tabular</description> + <command interpreter="python"> + blastxml_to_tabular_selectable.py -o $tabular_file + #if $output.out_format == 'cols' and $output.columns: + -c '$output.columns' + #else + -c '$output.out_format' + #end if + $qdef + $allqueries + #if $unmatched: + -u $unmatched_file + #end if + #if $maxhits.__str__ != '': + --maxhits $maxhits + #end if + #if $maxhsps.__str__ != '': + --maxhsps $maxhsps + #end if + #for i in $blastxml_file#${i} #end for# + ## $blastxml_file + </command> + <inputs> + <param name="blastxml_file" type="data" format="blastxml" multiple="true" label="BLAST results as XML"/> + <param name="qdef" type="boolean" truevalue="-d" falsevalue="" checked="False" label="Use Iteration_query-def value for qseqid"/> + <param name="allqueries" type="boolean" truevalue="-a" falsevalue="" checked="False" label="Output all queries including those with no hits"/> + <param name="unmatched" type="boolean" truevalue="-u" falsevalue="" checked="False" label="Output a list with queries having no hits"/> + <param name="maxhits" type="integer" value="1" optional="true" label="Maximum number of Hits to display for a query"> + <validator type="in_range" min="1" /> + </param> + <param name="maxhsps" type="integer" value="1" optional="true" label="Maximum number of HSPs to display for a Hit"> + <validator type="in_range" min="1" /> + </param> + + <conditional name="output"> + <param name="out_format" type="select" label="Output format"> + <option value="std" selected="True">Tabular (standard 12 columns)</option> + <option value="ext">Tabular (extended 24 columns)</option> + <option value="cols">Tabular (select columns to output)</option> + </param> + <when value="std"/> + <when value="ext"/> + <when value="cols"> + <param name="columns" type="select" multiple="true" display="checkboxes" label="Output columns"> + <option value="qseqid"> 1 qseqid Query Seq-id (ID of your sequence)</option> + <option value="sseqid"> 2 sseqid Subject Seq-id (ID of the database hit)</option> + <option value="pident"> 3 pident Percentage of identical matches</option> + <option value="length"> 4 length Alignment length</option> + <option value="mismatch"> 5 mismatch Number of mismatches</option> + <option value="gapopen"> 6 gapopen Number of gap openings</option> + <option value="qstart"> 7 qstart Start of alignment in query</option> + <option value="qend"> 8 qend End of alignment in query</option> + <option value="sstart"> 9 sstart Start of alignment in subject (database hit)</option> + <option value="send">10 send End of alignment in subject (database hit)</option> + <option value="evalue">11 evalue Expectation value (E-value)</option> + <option value="bitscore">12 bitscore Bit score</option> + <option value="sallseqid">13 sallseqid All subject Seq-id(s), separated by a ';'</option> + <option value="score">14 score Raw score</option> + <option value="nident">15 nident Number of identical matches</option> + <option value="positive">16 positive Number of positive-scoring matches</option> + <option value="gaps">17 gaps Total number of gaps</option> + <option value="ppos">18 ppos Percentage of positive-scoring matches</option> + <option value="qframe">19 qframe Query frame</option> + <option value="sframe">20 sframe Subject frame</option> + <option value="qseq">21 qseq Aligned part of query sequence</option> + <option value="sseq">22 sseq Aligned part of subject sequence</option> + <option value="qlen">23 qlen Query sequence length</option> + <option value="slen">24 slen Subject sequence length</option> + <option value="salltitles">25 salltitles = All subject title(s), separated by a '<>'</option> + </param> + </when> + </conditional> + </inputs> + <outputs> + <data name="tabular_file" format="tabular" label="BLAST results as tabular for ${on_string}" /> + <data name="unmatched_file" format="tabular" label="Query sequences with no hits for ${on_string}"> + <filter>unmatched == True</filter> + </data> + </outputs> + <requirements> + </requirements> + <tests> + <test> + <param name="blastxml_file" value="blastp_rhodopsin_proteins.xml" ftype="blastxml" /> + <param name="out_format" value="std" /> + <output name="tabular_file" file="blastp_rhodopsin_proteins_std.tabular" ftype="tabular" /> + </test> + <test> + <param name="blastxml_file" value="blastp_rhodopsin_proteins.xml" ftype="blastxml" /> + <param name="out_format" value="ext" /> + <output name="tabular_file" file="blastp_rhodopsin_proteins_ext.tabular" ftype="tabular" /> + </test> + <test> + <param name="blastxml_file" value="blastp_rhodopsin_proteins.xml" ftype="blastxml" /> + <param name="out_format" value="cols" /> + <param name="columns" value="qseqid,sseqid,length,bitscore" /> + <output name="tabular_file" file="blastp_rhodopsin_proteins_selcol.tabular" ftype="tabular" /> + </test> + <test> + <param name="blastxml_file" value="blastp_rhodopsin_proteins.xml" ftype="blastxml" /> + <param name="out_format" value="ext" /> + <param name="maxhits" value="10" /> + <param name="maxhsps" value="10" /> + <output name="tabular_file" file="blastp_rhodopsin_proteins_ext_allhits.tabular" ftype="tabular" /> + </test> + <test> + <param name="blastxml_file" value="blastp_rhodopsin_proteins.xml" ftype="blastxml" /> + <param name="out_format" value="ext" /> + <param name="maxhits" value="1" /> + <param name="maxhsps" value="1" /> + <param name="unmatched" value="True" /> + <param name="allqueries" value="True" /> + <output name="tabular_file" file="blastp_rhodopsin_proteins_ext_allqueries.tabular" ftype="tabular" /> + <output name="unmatched_file" file="unmatched_queries.tabular" ftype="tabular" /> + </test> + </tests> + <help> + +**What it does** + +NCBI BLAST+ (and the older NCBI 'legacy' BLAST) can output in a range of +formats including tabular and a more detailed XML format. A complex workflow +may need both the XML and the tabular output - but running BLAST twice is +slow and wasteful. + +This tool takes the BLAST XML output and by default converts it into the +standard 12 column tabular equivalent: + +====== ========= ============================================ +Column NCBI name Description +------ --------- -------------------------------------------- + 1 qseqid Query Seq-id (ID of your sequence) + 2 sseqid Subject Seq-id (ID of the database hit) + 3 pident Percentage of identical matches + 4 length Alignment length + 5 mismatch Number of mismatches + 6 gapopen Number of gap openings + 7 qstart Start of alignment in query + 8 qend End of alignment in query + 9 sstart Start of alignment in subject (database hit) + 10 send End of alignment in subject (database hit) + 11 evalue Expectation value (E-value) + 12 bitscore Bit score +====== ========= ============================================ + +The BLAST+ tools can optionally output additional columns of information, +but this takes longer to calculate. Most (but not all) of these columns are +included by selecting the extended tabular output. The extra columns are +included *after* the standard 12 columns. This is so that you can write +workflow filtering steps that accept either the 12 or 22 column tabular +BLAST output. + +====== ============= =========================================== +Column NCBI name Description +------ ------------- ------------------------------------------- + 13 sallseqid All subject Seq-id(s), separated by a ';' + 14 score Raw score + 15 nident Number of identical matches + 16 positive Number of positive-scoring matches + 17 gaps Total number of gaps + 18 ppos Percentage of positive-scoring matches + 19 qframe Query frame + 20 sframe Subject frame + 21 qseq Aligned part of query sequence + 22 sseq Aligned part of subject sequence + 23 qlen Query sequence length + 24 slen Subject sequence length + 25 salltitles All subject title(s), separated by a '<>' +====== ============= =========================================== + +Beware that the XML file (and thus the conversion) and the tabular output +direct from BLAST+ may differ in the presence of XXXX masking on regions +low complexity (columns 21 and 22), and thus also calculated figures like +the percentage idenity (column 3). + + </help> +</tool>