Mercurial > repos > immport-devteam > generate_mfi
diff generate_mfi/generateMFI.py @ 0:2f6dcda6e74e draft
Uploaded
author | immport-devteam |
---|---|
date | Mon, 27 Feb 2017 13:00:34 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generate_mfi/generateMFI.py Mon Feb 27 13:00:34 2017 -0500 @@ -0,0 +1,52 @@ +#!/usr/bin/env python +###################################################################### +# Copyright (c) 2016 Northrop Grumman. +# All rights reserved. +###################################################################### +from __future__ import print_function +import sys +from argparse import ArgumentParser +import pandas as pd +from scipy.stats import gmean + + +def generate_MFI(input_file_name, output_file_name, mfi_calc): + flock_df = pd.read_table(input_file_name) + if mfi_calc == "mfi": + MFIs = flock_df.groupby('Population').mean().round(decimals=2) + elif mfi_calc == "gmfi": + MFIs = flock_df.groupby('Population').agg(lambda x: gmean(list(x))).round(decimals=2) + else: + MFIs = flock_df.groupby('Population').median().round(decimals=2) + + with open(output_file_name, "w") as outf: + MFIs.to_csv(outf, sep="\t", float_format='%.0f') + return + + +if __name__ == "__main__": + parser = ArgumentParser( + prog="removeColumns", + description="Generate MFI from Flow Result file.") + + parser.add_argument( + '-i', + dest="input_file", + required=True, + help="File location for the Flow Result file.") + + parser.add_argument( + '-M', + dest="mfi_calc", + required=True, + help="what to calculate for centroids.") + + parser.add_argument( + '-o', + dest="output_file", + required=True, + help="File location for the MFI output file.") + + args = parser.parse_args() + generate_MFI(args.input_file, args.output_file, args.mfi_calc) + sys.exit(0)