#!/usr/bin/env python

from mirror_seq import trimming

if __name__=='__main__':
    import argparse
    import os

    parser = argparse.ArgumentParser(
        description='Pre-alignment trimming for Mirror-seq. It includes adapter trmming and filled-in nucleotides trimming.'
    )
    parser.add_argument(
        '-1',
        dest='read1_filename',
        required=True,
        help='The read1 fastq filename. Fastq file can be either gzipped or not.'
    )
    parser.add_argument(
        '-2',
        dest='read2_filename',
        help='The read2 fastq filename. If single-end, don\'t use this argument. Fastq file can be either gzipped or not.'
    )
    parser.add_argument(
        '-o',
        dest='out_dir',
        help='The output directory. Default is the same directory as read1 file.'
    )
    parser.add_argument(
        '--no-adapter-trimming',
        dest='no_adapter_trimming',
        action='store_true',
        help='If set, the script won\'t do adapter trimming by Trim_galore.'
    )
    parser.add_argument(
        '-a',
        dest='adapter1',
        default='GATCGGAAGAGC',
        help='The adapter sequence for read 1. Default is true seq adapter (GATCGGAAGAGC).'
    )
    parser.add_argument(
        '-a2',
        dest='adapter2',
        help='The adapter sequence for read 2. Default is the same as adapter of read 1.'
    )
    parser.add_argument(
        '-l',
        dest='read_len',
        type=int,
        help='The orginal read length. If not set, use the length of first read of read1.'
    )
    args = parser.parse_args()

    if not args.out_dir:
        args.out_dir = os.path.dirname(args.read1_filename)

    if not args.read_len:
        args.read_len = find_read_len(args.read1_filename)
        print('Based on the first read of read 1 file, use read length = {}'.format(args.read_len))

    trimming.main(args.read1_filename, args.read2_filename, args.out_dir,
        args.no_adapter_trimming, args.read_len, args.adapter1, args.adapter2)
