Mercurial > repos > immport-devteam > extract_pop
view 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 |
line wrap: on
line source
#!/usr/bin/env python ###################################################################### # Copyright (c) 2016 Northrop Grumman. # All rights reserved. ###################################################################### from __future__ import print_function import sys import pandas as pd from argparse import ArgumentParser def is_int(s): try: int(s) return True except ValueError: return False def extract_pop(in_file, pop_list, out_file): df = pd.read_table(in_file, dtype={'Population': object}) dfout = df.loc[df['Population'].isin(pop_list)] dfout.to_csv(out_file, sep="\t", index=False) return def remove_pop(in_file, pop_list, out_file): df = pd.read_table(in_file, dtype={'Population': object}) dfout = df.loc[~df['Population'].isin(pop_list)] dfout.to_csv(out_file, sep="\t", index=False) return if __name__ == "__main__": parser = ArgumentParser( prog="ExtractPop", description="Extract events associated to given population numbers.") parser.add_argument( '-i', dest="input_file", required=True, help="File location for the text file.") parser.add_argument( '-p', dest="pops", required=True, help="List of populations to extract.") parser.add_argument( '-o', dest="output_file", required=True, help="Name of the output file.") parser.add_argument( '-m', dest="method", required=True, help="What to do with the populations.") args = parser.parse_args() # check populations default_values = ["i.e.:2,3,11,25", "default", "Default"] populations = [] if args.pops: if args.pops not in default_values: tmp_pops = args.pops.split(",") for popn in tmp_pops: populations.append(popn.strip()) else: sys.exit(2) for pops in populations: if not is_int(pops): sys.exit(3) if args.method == "selected": extract_pop(args.input_file, populations, args.output_file) else: remove_pop(args.input_file, populations, args.output_file)