[2] | 1 | <tool id="lca1" name="Find lowest diagnostic rank" version="1.0.1">
|
---|
| 2 | <description></description>
|
---|
| 3 | <requirements> |
---|
| 4 | <requirement type="package">taxonomy</requirement> |
---|
| 5 | </requirements> |
---|
| 6 | <command interpreter="python">
|
---|
| 7 | lca.py $input1 $out_file1 $rank_bound
|
---|
| 8 | </command>
|
---|
| 9 | <inputs>
|
---|
| 10 | <param format="taxonomy" name="input1" type="data" label="for taxonomy dataset"/> |
---|
| 11 | <param name="rank_bound" label="require the lowest rank to be at least" type="select"> |
---|
| 12 | <option value="0">No restriction</option> |
---|
| 13 | <option value="3">Superkingdom</option> |
---|
| 14 | <option value="4">Kingdom</option> |
---|
| 15 | <option value="5">Subkingdom</option> |
---|
| 16 | <option value="6">Superphylum</option> |
---|
| 17 | <option value="7">Phylum</option> |
---|
| 18 | <option value="8">Subphylum</option> |
---|
| 19 | <option value="9">Superclass</option> |
---|
| 20 | <option value="10">Class</option> |
---|
| 21 | <option value="11">Subclass</option> |
---|
| 22 | <option value="12">Superorder</option> |
---|
| 23 | <option value="13">Order</option> |
---|
| 24 | <option value="14">Suborder</option> |
---|
| 25 | <option value="15">Superfamily</option> |
---|
| 26 | <option value="16">Family</option> |
---|
| 27 | <option value="17">Subfamily</option> |
---|
| 28 | <option value="18">Tribe</option> |
---|
| 29 | <option value="19">Subtribe</option> |
---|
| 30 | <option value="20">Genus</option> |
---|
| 31 | <option value="21">Subgenus</option> |
---|
| 32 | <option value="22">Species</option> |
---|
| 33 | <option value="23">Subspecies</option> |
---|
| 34 | </param>
|
---|
| 35 | </inputs>
|
---|
| 36 | <outputs>
|
---|
| 37 | <data format="taxonomy" name="out_file1" metadata_source="input1" />
|
---|
| 38 | </outputs> |
---|
| 39 | <tests>
|
---|
| 40 | <test> |
---|
| 41 | <param name="input1" value="lca_input.taxonomy" ftype="taxonomy"/> |
---|
| 42 | <param name="rank_bound" value="0" /> |
---|
| 43 | <output name="out_file1" file="lca_output.taxonomy" ftype="taxonomy"/> |
---|
| 44 | </test>
|
---|
| 45 | <test>
|
---|
| 46 | <param name="input1" value="lca_input2.taxonomy" ftype="taxonomy"/>
|
---|
| 47 | <param name="rank_bound" value="7" />
|
---|
| 48 | <output name="out_file1" file="lca_output2.taxonomy" ftype="taxonomy"/>
|
---|
| 49 | </test>
|
---|
| 50 |
|
---|
| 51 | <!--Test case with invalid lines -->
|
---|
| 52 | <test>
|
---|
| 53 | <param name="input1" value="lca_input3.taxonomy" ftype="taxonomy"/>
|
---|
| 54 | <param name="rank_bound" value="10" />
|
---|
| 55 | <output name="out_file1" file="lca_output3.taxonomy" ftype="taxonomy"/>
|
---|
| 56 | </test> |
---|
| 57 | </tests> |
---|
| 58 |
|
---|
| 59 | <help> |
---|
| 60 | |
---|
| 61 | **What it does** |
---|
| 62 | |
---|
| 63 | This tool identifies the lowest taxonomic rank for which a mategenomic sequencing read is diagnostic. It takes datasets produced by *Fetch Taxonomic Ranks* tool (aka Taxonomy format) as the input. |
---|
| 64 | |
---|
| 65 | ------- |
---|
| 66 | |
---|
| 67 | **Example** |
---|
| 68 | |
---|
| 69 | Suppose you have two reads, **read_1** and **read_2**, with the following taxonomic profiles (scroll sideways to see the entire dataset):: |
---|
| 70 | |
---|
| 71 | read_1 1 root superkingdom1 kingdom1 subkingdom1 superphylum1 phylum1 subphylum1 superclass1 class1 subclass1 superorder1 order1 suborder1 superfamily1 family1 subfamily1 tribe1 subtribe1 genus1 subgenus1 species1 subspecies1 |
---|
| 72 | read_1 2 root superkingdom1 kingdom1 subkingdom1 superphylum1 phylum1 subphylum1 superclass1 class1 subclass1 superorder1 order1 suborder1 superfamily1 family1 subfamily1 tribe1 subtribe1 genus2 subgenus2 species2 subspecies2 |
---|
| 73 | read_2 3 root superkingdom1 kingdom1 subkingdom1 superphylum1 phylum3 subphylum3 superclass3 class3 subclass3 superorder3 order3 suborder3 superfamily3 family3 subfamily3 tribe3 subtribe3 genus3 subgenus3 species3 subspecies3 |
---|
| 74 | read_2 4 root superkingdom1 kingdom1 subkingdom1 superphylum1 phylum4 subphylum4 superclass4 class4 subclass4 superorder4 order4 suborder4 superfamily4 family4 subfamily4 tribe4 subtribe4 genus4 subgenus4 species4 subspecies4 |
---|
| 75 | |
---|
| 76 | For **read_1** taxonomic labels are consistent until the genus level, where the taxonomy splits into two branches, one ending with *subspecies1* and the other with *subspecies2*. This implies **that the lowest taxomomic rank read_1 can identify is SUBTRIBE**. Similarly, read_2 is diagnostic up until the **superphylum** level. As a results the output of this tool will be:: |
---|
| 77 | |
---|
| 78 | read_1 2 root superkingdom1 kingdom1 subkingdom1 superphylum1 phylum1 subphylum1 superclass1 class1 subclass1 superorder1 order1 suborder1 superfamily1 family1 subfamily1 tribe1 subtribe1 n n n n |
---|
| 79 | read_2 3 root superkingdom1 kingdom1 subkingdom1 superphylum1 n n n n n n n n n n n n n n n n n |
---|
| 80 | |
---|
| 81 | where, **n** means *EMPTY*. |
---|
| 82 | |
---|
| 83 | -------- |
---|
| 84 | |
---|
| 85 | **What's up with the drop down?** |
---|
| 86 | |
---|
| 87 | Why do we need the *require the lowest rank to be at least* dropdown? Let's look at the above example again. Suppose you need to find only those reads that are diagnostic on at least phylum level. To do this you need to set the *require the lowest rank to be at least* to **phylum**. As a result your output will look like this:: |
---|
| 88 | |
---|
| 89 | read_1 2 root superkingdom1 kingdom1 subkingdom1 superphylum1 phylum1 subphylum1 superclass1 class1 subclass1 superorder1 order1 suborder1 superfamily1 family1 subfamily1 tribe1 subtribe1 n n n n |
---|
| 90 | |
---|
| 91 | .. class:: infomark |
---|
| 92 | |
---|
| 93 | Note, that **read_2** is now omitted as it matches two phyla (**phylum3** and **phylum4**) and therefore is not diagnostic (but rather cosmopolitan) on *phylum* level. |
---|
| 94 | |
---|
| 95 | |
---|
| 96 | |
---|
| 97 | |
---|
| 98 | |
---|
| 99 | </help> |
---|
| 100 | </tool> |
---|