def make_arg_parser():
    parser = argparse.ArgumentParser(description='This is the commandline interface for shi7_learning',
                                     usage='shi7_learning v{version}\nshi7_learning.py -i <input> -o <output> ...'.format(version=__version__))
    parser.add_argument('-i', '--input', help='Set the directory path of the fastq directory OR oligos.txt if splitting', required=True)
    parser.add_argument('-o', '--output', help='Set the directory path of the output (default: cwd)', default=os.getcwd())
    parser.add_argument('--debug', help='Retain all intermediate files (default: Disabled)', dest='debug', action='store_true')
    parser.add_argument('-t', '--threads', help='Set the number of threads (default: %(default)s)',
                        default=min(multiprocessing.cpu_count(), 16))
    parser.add_argument('-v', '--version', action='version', version='%(prog)s ' + __version__)
    parser.set_defaults()
    return parser