annotate tools/ncbi_blast_plus/ncbi_blastdbcmd_wrapper.xml @ 13:623f727cdff1 draft

Uploaded v0.1.00, uses BLAST+ 2.2.29, allows custom column selection for tabular output - including taxonomy fields.
author peterjc
date Fri, 14 Mar 2014 07:40:46 -0400
parents 4c4a0da938ff
children 2fe07f50a41e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
13
623f727cdff1 Uploaded v0.1.00, uses BLAST+ 2.2.29, allows custom column selection for tabular output - including taxonomy fields.
peterjc
parents: 11
diff changeset
1 <tool id="ncbi_blastdbcmd_wrapper" name="NCBI BLAST+ blastdbcmd entry(s)" version="0.1.00">
5
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
2 <description>Extract sequence(s) from BLAST database</description>
11
4c4a0da938ff Uploaded v0.0.22, now wraps BLAST+ 2.2.28 allowing extended tabular output to include the hit descriptions as column 25.
peterjc
parents: 10
diff changeset
3 <macros>
4c4a0da938ff Uploaded v0.0.22, now wraps BLAST+ 2.2.28 allowing extended tabular output to include the hit descriptions as column 25.
peterjc
parents: 10
diff changeset
4 <token name="@BINARY@">blastdbcmd</token>
4c4a0da938ff Uploaded v0.0.22, now wraps BLAST+ 2.2.28 allowing extended tabular output to include the hit descriptions as column 25.
peterjc
parents: 10
diff changeset
5 <import>ncbi_macros.xml</import>
4c4a0da938ff Uploaded v0.0.22, now wraps BLAST+ 2.2.28 allowing extended tabular output to include the hit descriptions as column 25.
peterjc
parents: 10
diff changeset
6 </macros>
4c4a0da938ff Uploaded v0.0.22, now wraps BLAST+ 2.2.28 allowing extended tabular output to include the hit descriptions as column 25.
peterjc
parents: 10
diff changeset
7 <expand macro="requirements" />
5
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
8 <command>
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
9 ## The command is a Cheetah template which allows some Python based syntax.
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
10 ## Lines starting hash hash are comments. Galaxy will turn newlines into spaces
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
11 blastdbcmd -dbtype $db_opts.db_type -db "${db_opts.database.fields.path}"
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
12
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
13 ##TODO: What about -ctrl_a and -target_only as advanced options?
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
14
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
15 #if $id_opts.id_type=="file":
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
16 -entry_batch "$id_opts.entries"
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
17 #else:
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
18 ##Perform some simple search/replaces to remove whitespace
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
19 ##and make it comma separated, and escape any pipe characters
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
20 -entry "$id_opts.entries.replace('\r',',').replace('\n',',').replace(' ','').replace(',,',',').replace(',,',',').strip(',').replace('|','\|')"
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
21 #end if
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
22
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
23 ##When building a BLAST database, to ensure unique IDs makeblastdb will
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
24 ##do things like turning a FASTA entry with ID of ERP44 into lcl|ERP44
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
25 ##(if using -parse_seqids) or simply assign it an ID using the record
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
26 ##number like gnl|BL_ORD_ID|123 (to cope with duplicate IDs in the FASTA
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
27 ##file). In -parse_seqids mode, a duplicate FASTA ID gives an error.
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
28 ##
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
29 ##The BLAST plain text and XML output will contain these BLAST IDs, but
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
30 ##the tabular output does not (at least, not in BLAST 2.2.25+).
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
31 ##Therefore in general, Galaxy users won't care about the (internal)
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
32 ##BLAST identifiers.
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
33 ##
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
34 ##The blastdbcmd FASTA output will also contain these IDs, but in the
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
35 ##context of the BLAST tabular output they are not helpful. Therefore
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
36 ##to recover the original ID as used in the FASTA file for makeblastdb
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
37 ##we need a litte post processing.
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
38 ##
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
39 ##We remove the NCBI's lcl|... or gnl|BL_ORD_ID|123 prefixes
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
40 ##using sed, however the exact syntax differs for Mac OS X's sed
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
41
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
42 #if str($outfmt)=="blastid":
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
43 -out "$seq"
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
44 #else if sys.platform == "darwin":
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
45 | sed -E 's/^>(lcl\||gnl\|BL_ORD_ID\|[0-9]* )/>/1' > "$seq"
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
46 #else:
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
47 | sed 's/>\(lcl|\|gnl|BL_ORD_ID|[0-9]* \)/>/1' > "$seq"
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
48 #end if
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
49 </command>
11
4c4a0da938ff Uploaded v0.0.22, now wraps BLAST+ 2.2.28 allowing extended tabular output to include the hit descriptions as column 25.
peterjc
parents: 10
diff changeset
50 <expand macro="stdio" />
5
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
51 <inputs>
11
4c4a0da938ff Uploaded v0.0.22, now wraps BLAST+ 2.2.28 allowing extended tabular output to include the hit descriptions as column 25.
peterjc
parents: 10
diff changeset
52 <expand macro="input_conditional_choose_db_type" />
5
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
53 <conditional name="id_opts">
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
54 <param name="id_type" type="select" label="Type of identifier list">
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
55 <option value="file">From file</option>
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
56 <option value="prompt">User entered</option>
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
57 </param>
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
58 <when value="file">
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
59 <param name="entries" type="data" format="txt,tabular" label="Sequence identifier(s)" help="Plain text file with one ID per line (i.e. single column tabular file)"/>
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
60 </when>
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
61 <when value="prompt">
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
62 <param name="entries" type="text" label="Sequence identifier(s)" help="Comma or new line separated list." optional="False" area="True" size="10x30"/>
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
63 </when>
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
64 </conditional>
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
65 <param name="outfmt" type="select" label="Output format">
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
66 <option value="original">FASTA with original identifiers</option>
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
67 <option value="blastid">FASTA with BLAST assigned identifiers</option>
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
68 </param>
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
69 </inputs>
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
70 <outputs>
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
71 <data name="seq" format="fasta" label="Sequences from ${db_opts.database.fields.name}" />
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
72 </outputs>
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
73 <help>
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
74
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
75 **What it does**
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
76
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
77 Extracts FASTA formatted sequences from a BLAST database
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
78 using the NCBI BLAST+ blastdbcmd command line tool.
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
79
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
80 .. class:: warningmark
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
81
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
82 **BLAST assigned identifiers**
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
83
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
84 When a BLAST database is constructed from a FASTA file, the
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
85 original identifiers can be replaced with BLAST assigned
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
86 identifiers, partly to ensure uniqueness. e.g. Sometimes
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
87 a prefix of 'lcl|' is added (lcl is short for local),
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
88 or an arbitrary name starting 'gnl|BL_ORD_ID|' is created.
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
89
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
90 If you are using the tabular output from BLAST, it will contain
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
91 the original identifiers - not the BLAST assigned identifiers
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
92 suitable for use with the blastdbcmd tool.
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
93
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
94 If you are using the XML or plain text output, this will also
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
95 contain the BLAST assigned identifiers. However, this means
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
96 getting a list of BLAST assigned identifiers isn't straightforward.
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
97
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
98 -------
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
99
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
100 **References**
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
101
10
70e7dcbf6573 Uploaded v0.0.20, handles dependencies via package_blast_plus_2_2_26, development moved to GitHub, RST README, MIT licence, citation information, more tests, percentage identity option to BLASTN, cElementTree to ElementTree fallback.
peterjc
parents: 9
diff changeset
102 If you use this Galaxy tool in work leading to a scientific publication please
70e7dcbf6573 Uploaded v0.0.20, handles dependencies via package_blast_plus_2_2_26, development moved to GitHub, RST README, MIT licence, citation information, more tests, percentage identity option to BLASTN, cElementTree to ElementTree fallback.
peterjc
parents: 9
diff changeset
103 cite the following papers:
70e7dcbf6573 Uploaded v0.0.20, handles dependencies via package_blast_plus_2_2_26, development moved to GitHub, RST README, MIT licence, citation information, more tests, percentage identity option to BLASTN, cElementTree to ElementTree fallback.
peterjc
parents: 9
diff changeset
104
11
4c4a0da938ff Uploaded v0.0.22, now wraps BLAST+ 2.2.28 allowing extended tabular output to include the hit descriptions as column 25.
peterjc
parents: 10
diff changeset
105 @REFERENCES@
5
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
106 </help>
393a7a35383c Uploaded v0.0.14 adding local BLAST database support.
peterjc
parents:
diff changeset
107 </tool>