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