#!/usr/bin/env python

import argparse
import sys
import logging
import os

sys.path = [os.path.join(os.path.dirname(os.path.realpath(__file__)),'..')] + sys.path

from kmergenetyper import version

__author__ = "Malte B. Hallgren"
__version__ = version.__version__

from kmergenetyper import typeGenes

def main():
    description = 'K-mer Gene Typer. A tool for accurately typing genes from' \
                  ' Illumina and Nanopore sequencing data.'

    parser = argparse.ArgumentParser(description=description)
    parser.add_argument('-illumina', action="store", type=str, dest='illumina', nargs="+",
                        default=[], help='Illumina input files. Must be paired-end.')
    parser.add_argument('-nanopore', action="store", type=str, dest='nanopore', nargs="+",
                        default=[], help='Nanopore input files.')
    parser.add_argument('-fasta', action="store", type=str, dest='fasta', nargs="+",
                        default=[], help='fasta input files.')
    parser.add_argument('-md', action="store", type=float, default=5.0, dest='md',
                        help='Minimum depth. Default: 5.0')
    parser.add_argument('-t', action="store", type=int, default=4, dest='threads',
                        help='Number of threads. Default: 4')
    parser.add_argument('-t_db', action="store", type=str, dest='t_db', help='KMA indexed database')
    parser.add_argument('-o', action="store", type=str, dest='output', help='Output directory')
    parser.add_argument('-q', action="store", type=int, default=8, dest='q_score',
                        help='Minimum q-score. Default: 8')
    parser.add_argument('-keep', action="store_true", dest='keep', help='Keep intermediate gene files.')
    parser.add_argument('-v', '--version', action='version', version='%(prog)s ' + __version__)

    args = parser.parse_args()

    if args.illumina != []:
        check_illumina_pe(args.illumina)

    typeGenes.type_genes(args)


def check_illumina_pe(files):
    if len(files) % 2 != 0:
        sys.exit('Error: Illumina files must be paired-end. Exiting.')

if __name__ == '__main__':
    main()

