Mercurial > repos > immport-devteam > extract_pop
annotate extractpop.py @ 1:4f28ee74079b draft default tip
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
author | azomics |
---|---|
date | Fri, 24 Jul 2020 19:24:49 -0400 |
parents | |
children |
rev | line source |
---|---|
1
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
1 #!/usr/bin/env python |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
2 |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
3 ###################################################################### |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
4 # Copyright (c) 2016 Northrop Grumman. |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
5 # All rights reserved. |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
6 ###################################################################### |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
7 |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
8 from __future__ import print_function |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
9 import sys |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
10 import pandas as pd |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
11 |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
12 from argparse import ArgumentParser |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
13 |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
14 |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
15 def is_int(s): |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
16 try: |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
17 int(s) |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
18 return True |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
19 except ValueError: |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
20 return False |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
21 |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
22 |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
23 def extract_pop(in_file, pop_list, out_file): |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
24 df = pd.read_table(in_file, dtype={'Population': object}) |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
25 dfout = df.loc[df['Population'].isin(pop_list)] |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
26 dfout.to_csv(out_file, sep="\t", index=False) |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
27 return |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
28 |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
29 |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
30 def remove_pop(in_file, pop_list, out_file): |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
31 df = pd.read_table(in_file, dtype={'Population': object}) |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
32 dfout = df.loc[~df['Population'].isin(pop_list)] |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
33 dfout.to_csv(out_file, sep="\t", index=False) |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
34 return |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
35 |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
36 |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
37 if __name__ == "__main__": |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
38 parser = ArgumentParser( |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
39 prog="ExtractPop", |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
40 description="Extract events associated to given population numbers.") |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
41 |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
42 parser.add_argument( |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
43 '-i', |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
44 dest="input_file", |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
45 required=True, |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
46 help="File location for the text file.") |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
47 |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
48 parser.add_argument( |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
49 '-p', |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
50 dest="pops", |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
51 required=True, |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
52 help="List of populations to extract.") |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
53 |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
54 parser.add_argument( |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
55 '-o', |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
56 dest="output_file", |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
57 required=True, |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
58 help="Name of the output file.") |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
59 |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
60 parser.add_argument( |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
61 '-m', |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
62 dest="method", |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
63 required=True, |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
64 help="What to do with the populations.") |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
65 |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
66 args = parser.parse_args() |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
67 |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
68 # check populations |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
69 default_values = ["i.e.:2,3,11,25", "default", "Default"] |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
70 populations = [] |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
71 if args.pops: |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
72 if args.pops not in default_values: |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
73 tmp_pops = args.pops.split(",") |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
74 for popn in tmp_pops: |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
75 populations.append(popn.strip()) |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
76 else: |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
77 sys.exit(2) |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
78 for pops in populations: |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
79 if not is_int(pops): |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
80 sys.exit(3) |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
81 if args.method == "selected": |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
82 extract_pop(args.input_file, populations, args.output_file) |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
83 else: |
4f28ee74079b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/extract_pop commit 117c0e4a5c00dfd2e190359badf77d5643fccefa"
azomics
parents:
diff
changeset
|
84 remove_pop(args.input_file, populations, args.output_file) |