Mercurial > repos > bgruening > column_arrange_by_header
annotate column_arrange.py @ 1:6c6d26ff01ff draft default tip
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/column_arrange_by_header commit b6e0b2de32ddb91085235397728623a35ad13f42
| author | bgruening | 
|---|---|
| date | Fri, 15 Feb 2019 07:45:03 -0500 | 
| parents | f18f67056946 | 
| children | 
| rev | line source | 
|---|---|
| 
1
 
6c6d26ff01ff
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/column_arrange_by_header commit b6e0b2de32ddb91085235397728623a35ad13f42
 
bgruening 
parents: 
0 
diff
changeset
 | 
1 #!/usr/bin/env python | 
| 
 
6c6d26ff01ff
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/column_arrange_by_header commit b6e0b2de32ddb91085235397728623a35ad13f42
 
bgruening 
parents: 
0 
diff
changeset
 | 
2 | 
| 
0
 
f18f67056946
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/column_arrange_by_header commit 088e73e958b55dc765778641b8a84080cc289f85-dirty
 
bgruening 
parents:  
diff
changeset
 | 
3 import argparse | 
| 
 
f18f67056946
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/column_arrange_by_header commit 088e73e958b55dc765778641b8a84080cc289f85-dirty
 
bgruening 
parents:  
diff
changeset
 | 
4 | 
| 
 
f18f67056946
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/column_arrange_by_header commit 088e73e958b55dc765778641b8a84080cc289f85-dirty
 
bgruening 
parents:  
diff
changeset
 | 
5 parser = argparse.ArgumentParser() | 
| 
 
f18f67056946
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/column_arrange_by_header commit 088e73e958b55dc765778641b8a84080cc289f85-dirty
 
bgruening 
parents:  
diff
changeset
 | 
6 parser.add_argument('-i', '--input', help='Tabular Input File Name') | 
| 
 
f18f67056946
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/column_arrange_by_header commit 088e73e958b55dc765778641b8a84080cc289f85-dirty
 
bgruening 
parents:  
diff
changeset
 | 
7 parser.add_argument('-o','--output', help='Tabular Output File') | 
| 
1
 
6c6d26ff01ff
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/column_arrange_by_header commit b6e0b2de32ddb91085235397728623a35ad13f42
 
bgruening 
parents: 
0 
diff
changeset
 | 
8 parser.add_argument( | 
| 
 
6c6d26ff01ff
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/column_arrange_by_header commit b6e0b2de32ddb91085235397728623a35ad13f42
 
bgruening 
parents: 
0 
diff
changeset
 | 
9 '-c', '--columns', nargs='+', help='Column Headers to Sort By' | 
| 
 
6c6d26ff01ff
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/column_arrange_by_header commit b6e0b2de32ddb91085235397728623a35ad13f42
 
bgruening 
parents: 
0 
diff
changeset
 | 
10 ) | 
| 
 
6c6d26ff01ff
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/column_arrange_by_header commit b6e0b2de32ddb91085235397728623a35ad13f42
 
bgruening 
parents: 
0 
diff
changeset
 | 
11 parser.add_argument( | 
| 
 
6c6d26ff01ff
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/column_arrange_by_header commit b6e0b2de32ddb91085235397728623a35ad13f42
 
bgruening 
parents: 
0 
diff
changeset
 | 
12 '-d', '--discard', action='store_true', | 
| 
 
6c6d26ff01ff
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/column_arrange_by_header commit b6e0b2de32ddb91085235397728623a35ad13f42
 
bgruening 
parents: 
0 
diff
changeset
 | 
13 help='Discard remaining columns' | 
| 
 
6c6d26ff01ff
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/column_arrange_by_header commit b6e0b2de32ddb91085235397728623a35ad13f42
 
bgruening 
parents: 
0 
diff
changeset
 | 
14 ) | 
| 
 
6c6d26ff01ff
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/column_arrange_by_header commit b6e0b2de32ddb91085235397728623a35ad13f42
 
bgruening 
parents: 
0 
diff
changeset
 | 
15 | 
| 
0
 
f18f67056946
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/column_arrange_by_header commit 088e73e958b55dc765778641b8a84080cc289f85-dirty
 
bgruening 
parents:  
diff
changeset
 | 
16 args=parser.parse_args() | 
| 
 
f18f67056946
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/column_arrange_by_header commit 088e73e958b55dc765778641b8a84080cc289f85-dirty
 
bgruening 
parents:  
diff
changeset
 | 
17 | 
| 
1
 
6c6d26ff01ff
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/column_arrange_by_header commit b6e0b2de32ddb91085235397728623a35ad13f42
 
bgruening 
parents: 
0 
diff
changeset
 | 
18 with open(args.input) as data: | 
| 
 
6c6d26ff01ff
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/column_arrange_by_header commit b6e0b2de32ddb91085235397728623a35ad13f42
 
bgruening 
parents: 
0 
diff
changeset
 | 
19 hdr = next(data) | 
| 
 
6c6d26ff01ff
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/column_arrange_by_header commit b6e0b2de32ddb91085235397728623a35ad13f42
 
bgruening 
parents: 
0 
diff
changeset
 | 
20 columns = hdr.rstrip('\n').split('\t') | 
| 
 
6c6d26ff01ff
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/column_arrange_by_header commit b6e0b2de32ddb91085235397728623a35ad13f42
 
bgruening 
parents: 
0 
diff
changeset
 | 
21 idx = [columns.index(name) for name in args.columns] | 
| 
 
6c6d26ff01ff
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/column_arrange_by_header commit b6e0b2de32ddb91085235397728623a35ad13f42
 
bgruening 
parents: 
0 
diff
changeset
 | 
22 if not args.discard: | 
| 
 
6c6d26ff01ff
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/column_arrange_by_header commit b6e0b2de32ddb91085235397728623a35ad13f42
 
bgruening 
parents: 
0 
diff
changeset
 | 
23 idx += [i for i in range(len(columns)) if i not in idx] | 
| 
 
6c6d26ff01ff
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/column_arrange_by_header commit b6e0b2de32ddb91085235397728623a35ad13f42
 
bgruening 
parents: 
0 
diff
changeset
 | 
24 rearranged_cols = [columns[i] for i in idx] | 
| 
 
6c6d26ff01ff
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/column_arrange_by_header commit b6e0b2de32ddb91085235397728623a35ad13f42
 
bgruening 
parents: 
0 
diff
changeset
 | 
25 with open(args.output, 'w') as out: | 
| 
 
6c6d26ff01ff
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/column_arrange_by_header commit b6e0b2de32ddb91085235397728623a35ad13f42
 
bgruening 
parents: 
0 
diff
changeset
 | 
26 out.write('\t'.join(rearranged_cols) + '\n') | 
| 
 
6c6d26ff01ff
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/column_arrange_by_header commit b6e0b2de32ddb91085235397728623a35ad13f42
 
bgruening 
parents: 
0 
diff
changeset
 | 
27 for line in data: | 
| 
 
6c6d26ff01ff
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/column_arrange_by_header commit b6e0b2de32ddb91085235397728623a35ad13f42
 
bgruening 
parents: 
0 
diff
changeset
 | 
28 columns = line.rstrip('\n').split('\t') | 
| 
 
6c6d26ff01ff
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/column_arrange_by_header commit b6e0b2de32ddb91085235397728623a35ad13f42
 
bgruening 
parents: 
0 
diff
changeset
 | 
29 rearranged_cols = [columns[i] for i in idx] | 
| 
 
6c6d26ff01ff
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/text_processing/column_arrange_by_header commit b6e0b2de32ddb91085235397728623a35ad13f42
 
bgruening 
parents: 
0 
diff
changeset
 | 
30 out.write('\t'.join(rearranged_cols) + '\n') | 
