#!/usr/bin/env python
import argparse
import os
import sys
from io import StringIO

from gimmemotifs import __version__
from gimmemotifs.preprocessing import combine_peaks


if __name__ == "__main__":

    description = """
    GimmeMotifs v{0} - combine_peaks
    """.format(
        __version__
    )

    parser = argparse.ArgumentParser(description=description)

    parser.add_argument(
        "-i",
        "--input",
        dest="peaks",
        required=True,
        help="MACS2 summit or narrowPeak files",
        metavar="FNAME",
        nargs="*",
    )
    parser.add_argument(
        "-g",
        "--genome",
        dest="genome",
        required=True,
        help="Genome name or genome file",
        metavar="GENOME",
    )
    parser.add_argument(
        "-w",
        "--window",
        dest="window",
        type=int,
        help="Window size (default 200)",
        default=200,
    )
    parser.add_argument(
        "-s",
        "--scale",
        dest="scale",
        help="Scale summit values",
        action="store_true",
        default=False,
    )

    args = parser.parse_args()

    exit = False
    for fname in args.peaks:
        if not os.path.exists(fname):
            print("File {} does not exist!".format(fname), file=sys.stderr)
            exit = True
    if exit:
        sys.exit(1)

    df = combine_peaks(args.peaks, args.genome, args.window, args.scale)
    output = StringIO()
    df.to_csv(output, sep="\t", index=False, header=False)
    output.seek(0)
    print(output.read())
