#!/usr/bin/python

# Usage: qualimap_parser -i <reports>

import sys
import argparse as ap


### Define global variables
mapped_percentage = ""
mean_mapping_quality = ""

parser = ap.ArgumentParser(prog='outlier-parser', conflict_handler='resolve',
                           description="Parses Qualimap output file to eliminate outliers")

input = parser.add_argument_group('Input', '')
input.add_argument('-n', '--name', nargs='+', required=True, help="Sample name")
input.add_argument('-i', '--input', nargs='+', required=True, help="Qualimap Genome Report File")

if len(sys.argv) == 1:
    parser.print_usage()
    sys.exit(1)

args = parser.parse_args()
output = open("outlier_list.txt", "a")

"""For parsing report file"""
for index,report in enumerate(args.input):
    with open(report) as file:
        for line in file:
            if "number of mapped reads" in line:
                mapped_percentage = line.split()[-1].strip('()%')
            if "mean mapping quality" in line:
                mean_mapping_quality = line.split()[-1]

        if float(mapped_percentage) < 90 or float(mean_mapping_quality) < 10:
            output.write("%s\n" % args.name[index])

