Mercurial > repos > immport-devteam > rearrange_columns
annotate editColumnHeadings.py @ 1:ce206587d42f draft default tip
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
author | azomics |
---|---|
date | Thu, 16 Jul 2020 07:22:06 -0400 |
parents | |
children |
rev | line source |
---|---|
1
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
1 #!/usr/bin/env python |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
2 |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
3 ###################################################################### |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
4 # Copyright (c) 2016 Northrop Grumman. |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
5 # All rights reserved. |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
6 ###################################################################### |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
7 # |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
8 # Cristel Thomas - May 2018 |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
9 # Version 2 -- with Pandas! |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
10 # |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
11 |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
12 import sys |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
13 |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
14 from argparse import ArgumentParser |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
15 import pandas as pd |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
16 |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
17 |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
18 def is_integer(s): |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
19 try: |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
20 int(s) |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
21 return True |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
22 except ValueError: |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
23 return False |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
24 |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
25 |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
26 def rearrange_file(input_file, output_file, new_cols, new_order, flag_text): |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
27 df = pd.read_table(input_file) |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
28 original_columns = [x for x in df.columns] |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
29 if new_cols: |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
30 edited_cols = [] |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
31 if len(new_cols) > len(df.columns): |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
32 sys.exit(6) |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
33 for i in range(0, len(df.columns)): |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
34 if df.columns[i] in new_cols: |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
35 edited_cols.append(new_cols[df.columns[i]]) |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
36 else: |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
37 edited_cols.append(df.columns[i]) |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
38 df.columns = edited_cols |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
39 |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
40 if new_order: |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
41 if len(new_order) > len(df.columns): |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
42 sys.exit(6) |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
43 subset = [] |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
44 if flag_text: |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
45 existing_cols = list(df.columns) |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
46 unknown_elements = list(set(new_order) - set(existing_cols)) |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
47 if len(unknown_elements): |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
48 print("%s of the provided columns for reorder is/are not in the input file." % len(unknown_elements), file=sys.stderr) |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
49 print("Existing columns:", file=sys.stderr) |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
50 for col in existing_cols: |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
51 print(col, file=sys.stderr) |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
52 print("Provided columns for new order which are not in the original list:", file=sys.stderr) |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
53 for col in unknown_elements: |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
54 print(col, file=sys.stderr) |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
55 sys.exit(9) |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
56 subset = new_order |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
57 else: |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
58 subset = [df.columns[x] for x in new_order] |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
59 df = df[subset] |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
60 |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
61 df.to_csv(output_file, sep="\t", index=False) |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
62 if new_cols: |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
63 for c in new_cols: |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
64 if c not in original_columns: |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
65 sys.exit(10) |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
66 |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
67 if __name__ == "__main__": |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
68 parser = ArgumentParser( |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
69 prog="editColumnHeadings", |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
70 description="Cut, rearrange and rename columns in a tab-separated file.") |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
71 |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
72 parser.add_argument( |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
73 '-i', |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
74 dest="input_file", |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
75 required=True, |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
76 help="File location for the text file.") |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
77 |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
78 parser.add_argument( |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
79 '-r', |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
80 dest="columns", |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
81 action="append", |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
82 help="Columns to replace.") |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
83 |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
84 parser.add_argument( |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
85 '-w', |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
86 dest="replace_with", |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
87 action="append", |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
88 help="new column headers.") |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
89 |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
90 parser.add_argument( |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
91 '-n', |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
92 dest="new_order", |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
93 help="New column order if re-ordering or subsetting.") |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
94 |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
95 parser.add_argument( |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
96 '-o', |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
97 dest="output_file", |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
98 required=True, |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
99 help="Name of the output file.") |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
100 |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
101 args = parser.parse_args() |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
102 |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
103 |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
104 new_order = [] |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
105 new_cols = {} |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
106 # flag = False |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
107 # exit_codes = [3,4,7,8,9,10,2] |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
108 defaults = ["i.e.:TLR 6, TLR6PE", "i.e.:TLR6", "i.e.:1,2,5 or CD3,CD4,CCR3", "default", "Default", ""] |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
109 flag_text = False |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
110 |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
111 if args.new_order: |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
112 if args.new_order not in defaults: |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
113 nwor = [x.strip() for x in args.new_order.strip().split(",")] |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
114 check_integer = [is_integer(x) for x in nwor] |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
115 if sum(check_integer) != len(check_integer): |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
116 flag_text = True |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
117 new_order = [str(x) if flag_text else int(x)-1 for x in nwor] |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
118 else: |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
119 sys.exit(8) |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
120 |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
121 if args.columns: |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
122 if args.replace_with: |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
123 cols_to_change = [c.strip().split(",") if c not in defaults else None for c in args.columns] |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
124 replacements = [r.strip() if r not in defaults else None for r in args.replace_with] |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
125 check_col = sum([True if x is not None else False for x in cols_to_change]) |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
126 check_rep = sum([True if x is not None else False for x in replacements]) |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
127 if check_col != check_rep: |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
128 sys.exit(7) |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
129 for i in range(0, check_col): |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
130 if cols_to_change[i]: |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
131 if replacements[i]: |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
132 for c in cols_to_change[i]: |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
133 new_cols[c.strip()] = replacements[i] |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
134 else: |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
135 sys.exit(4) |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
136 else: |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
137 sys.exit(3) |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
138 else: |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
139 sys.exit(7) |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
140 else: |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
141 if args.replace_with: |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
142 sys.exit(7) |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
143 |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
144 if not new_order and not new_cols: |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
145 sys.exit(2) |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
146 |
ce206587d42f
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/rearrange_columns commit 3289c1f97444f45f946ff92d47c490c9d58f3d94"
azomics
parents:
diff
changeset
|
147 rearrange_file(args.input_file, args.output_file, new_cols, new_order, flag_text) |