annotate sort-header.xml @ 0:631dfde45073 draft default tip

First tool-shed public version
author gordon
date Tue, 09 Oct 2012 18:48:06 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
1 <tool id="cshl_sort_header" name="Sort" version="0.1.1">
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
2 <command interpreter="perl">sort-header
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
3 --header $header
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
4 $unique
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
5 $ignore_case
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
6 --stable
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
7 -t ' '
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
8 #for $key in $sortkeys
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
9 '-k ${key.column}${key.order}${key.style},${key.column}'
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
10 #end for
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
11 --output '$out_file1'
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
12 '$input1'
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
13 </command>
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
14
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
15 <inputs>
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
16 <param format="txt" name="input1" type="data" label="Sort Query" />
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
17
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
18 <!-- header line is boolean for now, but the values are 1 or 0.
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
19 in the future, we can use Galaxy's number-of-comment-lines variable -->
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
20 <param name="header" type="boolean" checked="false" truevalue="1" falsevalue="0"
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
21 label="First line is a header line" help="Use if first line contains column headers. It will not be sorted." />
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
22
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
23 <param name="unique" type="boolean" checked="false" truevalue="--unique" falsevalue=""
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
24 label="Output unique values" help="Print only unique values (based on sorted key columns. See help section for details." />
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
25
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
26 <param name="ignore_case" type="boolean" checked="false" truevalue="-i" falsevalue="" label="Ignore case" help="Sort and Join key column values regardless of upper/lower case letters." />
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
27
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
28 <repeat name="sortkeys" title="sort key">
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
29 <param name="column" label="on column" type="data_column" data_ref="input1" accept_default="true" />
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
30 <param name="order" type="select" display="radio" label="in">
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
31 <option value="">Ascending order</option>
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
32 <option value="r">Descending order</option>
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
33 </param>
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
34 <param name="style" type="select" display="radio" label="Flavor">
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
35 <option value="n">Fast numeric sort ([-n])</option>
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
36 <option value="g">General numeric sort ( scientific notation [-g])</option>
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
37 <option value="V">Natural/Version sort ([-V]) </option>
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
38 <option value="">Alphabetical sort</option>
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
39 <option value="h">Human-readable numbers (-h)</option>
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
40 <option value="R">Random order</option>
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
41 </param>
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
42 </repeat>
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
43 </inputs>
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
44 <tests>
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
45 </tests>
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
46 <outputs>
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
47 <data format="input" name="out_file1" metadata_source="input1"
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
48 />
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
49 </outputs>
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
50 <help>
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
51
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
52 **What it does**
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
53
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
54 This tool sorts an input file.
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
55
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
56 -----
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
57
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
58 **Sorting Styles**
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
59
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
60 * **Fast Numeric**: sort by numeric values. Handles integer values (e.g. 43, 134) and decimal-point values (e.g. 3.14). *Does not* handle scientific notation (e.g. -2.32e2).
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
61 * **General Numeric**: sort by numeric values. Handles all numeric notations (including scientific notation). Slower than *fast numeric*, so use only when necessary.
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
62 * **Natural Sort**: Sort in 'natural' order (natural to humans, not to computers). See example below.
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
63 * **Alphabetical sort**: Sort in strict alphabetical order. See example below.
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
64 * **Human-readable numbers**: Sort human readble numbers (e.g. 1G > 2M > 3K > 400)
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
65 * **Random order**: return lines in random order.
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
66
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
67 ------
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
68
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
69 **Example - Header line**
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
70
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
71 **Input file** (note first line is a header line, should not be sorted)::
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
72
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
73 Fruit Color Price
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
74 Banana Yellow 4.1
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
75 Avocado Green 8.0
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
76 Apple Red 3.0
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
77 Melon Green 6.1
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
78
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
79 **Sorting** by **numeric order** on column **3**, with **header**, will return::
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
80
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
81 Fruit Color Price
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
82 Apple Red 3.0
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
83 Banana Yellow 4.1
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
84 Melon Green 6.1
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
85 Avocado Green 8.0
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
86
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
87
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
88 -----
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
89
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
90 **Example - Natural vs. Alphabetical sorting**
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
91
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
92 Given the following list::
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
93
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
94 chr4
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
95 chr13
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
96 chr1
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
97 chr10
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
98 chr20
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
99 chr2
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
100
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
101 **Alphabetical sort** would produce the following sorted list::
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
102
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
103 chr1
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
104 chr10
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
105 chr13
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
106 chr2
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
107 chr20
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
108 chr4
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
109
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
110 **Natural Sort** would produce the following sorted list::
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
111
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
112 chr1
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
113 chr2
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
114 chr4
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
115 chr10
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
116 chr13
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
117 chr20
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
118
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
119
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
120 .. class:: infomark
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
121
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
122 If you're planning to use the file with another tool that expected sorted files (such as *join*), you should use the **Alphabetical sort**, not the **Natural Sort**. Natural sort order is easier for humans, but is unnatural for computer programs.
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
123
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
124 -----
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
125
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
126 *sort-header* is was written by A. Gordon ( gordon at cshl dot edu )
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
127
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
128 </help>
631dfde45073 First tool-shed public version
gordon
parents:
diff changeset
129 </tool>