#!/usr/bin/env jython
# -*- python -*-

__version__ = "$Revision: 1.14 $"

from compatibility import *
from getopt import getopt
import sys

import metascript

def main():
    OPTIONS = ["connections",
               "metaintrons",
               "hardmask-splice-region",
               "metascripts",
               "metatranslations",
               "longest-translations",
               "longest-peptides",
               "longest-exons",
               "skip=",
               "bad-feature-log=",
               "help"]
    options, args = getopt(sys.argv[1:], "ceiHstpehCS:b:", OPTIONS)

    gene_processors = []
    translation_processors = []
    metascript_processors = []
    skip = 0
    bad_feature_filename = metascript.FILENAME_BAD_FEATURE
    global_options = {"hardmask": 0, "ensids": 0, "enstags": 0}

    for option, value in options:
        if option in ("-c", "--connections"):
            metascript_processors.append(metascript.save_metascript_connections)
        if option in ("-i", "--metaintrons"):
            metascript_processors.append(metascript.save_metascript_metaintrons)
        if option in ("-H", "--hardmask-splice-region"):
            global_options["hardmask"] = 1
        if option in ("-s", "--metascripts"):
            metascript_processors.append(metascript.save_metascript_sequence)
        if option in ("-C", "--metatranslations"): # metaCDS
            gene_processors.append(metascript.save_metatranslation_sequence)
        if option in ("-t", "--longest-translations"):
            translation_processors.append(metascript.save_translation_sequence)
        if option in ("-p", "--longest-peptides"):
            translation_processors.append(metascript.save_translation_peptide)
        if option in ("-e", "--longest-exons"):
            translation_processors.append(metascript.save_translation_exons)
        if option in ("-S", "--skip"):
            skip = int(value)
        if option in ("-b", "--bad-feature-log"):
            bad_feature_filename = value
        if option in ("-h", "--help"):
            print "usage: %s [OPTIONS...] FILE" % sys.argv[0]
            print
            print "possible options:"
            print '\n'.join(OPTIONS)
            sys.exit(0)

    metascript.process_genes(args[0], gene_processors, metascript_processors,
                             translation_processors, global_options, skip,
                             bad_feature_filename)

if __name__ == "__main__":
    main()
