annotate generate_mfi/generateMFI.py @ 0:2f6dcda6e74e draft

Uploaded
author immport-devteam
date Mon, 27 Feb 2017 13:00:34 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
1 #!/usr/bin/env python
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
2 ######################################################################
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
3 # Copyright (c) 2016 Northrop Grumman.
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
4 # All rights reserved.
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
5 ######################################################################
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
6 from __future__ import print_function
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
7 import sys
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
8 from argparse import ArgumentParser
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
9 import pandas as pd
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
10 from scipy.stats import gmean
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
11
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
12
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
13 def generate_MFI(input_file_name, output_file_name, mfi_calc):
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
14 flock_df = pd.read_table(input_file_name)
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
15 if mfi_calc == "mfi":
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
16 MFIs = flock_df.groupby('Population').mean().round(decimals=2)
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
17 elif mfi_calc == "gmfi":
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
18 MFIs = flock_df.groupby('Population').agg(lambda x: gmean(list(x))).round(decimals=2)
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
19 else:
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
20 MFIs = flock_df.groupby('Population').median().round(decimals=2)
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
21
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
22 with open(output_file_name, "w") as outf:
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
23 MFIs.to_csv(outf, sep="\t", float_format='%.0f')
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
24 return
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
25
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
26
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
27 if __name__ == "__main__":
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
28 parser = ArgumentParser(
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
29 prog="removeColumns",
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
30 description="Generate MFI from Flow Result file.")
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
31
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
32 parser.add_argument(
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
33 '-i',
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
34 dest="input_file",
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
35 required=True,
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
36 help="File location for the Flow Result file.")
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
37
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
38 parser.add_argument(
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
39 '-M',
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
40 dest="mfi_calc",
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
41 required=True,
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
42 help="what to calculate for centroids.")
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
43
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
44 parser.add_argument(
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
45 '-o',
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
46 dest="output_file",
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
47 required=True,
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
48 help="File location for the MFI output file.")
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
49
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
50 args = parser.parse_args()
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
51 generate_MFI(args.input_file, args.output_file, args.mfi_calc)
2f6dcda6e74e Uploaded
immport-devteam
parents:
diff changeset
52 sys.exit(0)