Example #1
0
def parse_args():
    parser = argparse.ArgumentParser(
        description="Score the conservation of a single alignment file, using a single scorer.",
        usage="%(prog)s [-h] [-l] scorer_name align_file [-a ALIGN_PARAMS] [-p SCORER_PARAMS]")

    parser.add_argument('-l', dest='list_params', default=None,
        nargs=argparse.REMAINDER,
        help="list parameters for all scorers (score.py -l), or for certain defined scorers (score.py -l intrepid rate4site_eb)")

    parser.add_argument('scorer_name', nargs="?",
        help="conservation estimation method")
    parser.add_argument('align_file', nargs="?",
        help="path to alignment file to score")

    parser.add_argument('-a', dest='align_params', action='append', default=[],
        help="parameters associcated with align_file, can specify multiple. Specify as '-a inputName=inputValue', e.g. '-a tree_file=tree.txt'")
    parser.add_argument('-p', dest='scorer_params', action='append', default=[],
        help="parameters to pass to the scorer, can specify multiple. Specify as '-p paramName=paramValue', e.g. '-p use_gap_penalty=1")

    parser.add_argument('-d', dest='draw', action='store_true',
        help="draw visual of scores")

    args = parser.parse_args()
    if args.list_params is not None:
        list_alignment_paramdefs()
        list_scorer_paramdefs(args.list_params)
        sys.exit(0)
    elif not args.scorer_name or not args.align_file:
        parser.print_usage()
        sys.stderr.write("%s: error: too few arguments\n" % sys.argv[0])
        sys.exit(1)
    args.align_params = parse_params(args.align_params)
    args.scorer_params = parse_params(args.scorer_params)

    return args
Example #2
0
def main():
    parser = argparse.ArgumentParser(
        description="Run evaluators of scoring methods using the output from batch running the scorers on a dataset(s)",
        usage="%(prog)s [-h] [-l] evaluator_name dataset_name <batchscore_ids...>")

    parser.add_argument('-l', dest='list_batchscore_ids', type=str,
        help="list all batchscore run ids for the dataset")

    parser.add_argument('evaluator_name', nargs='?',
        help="name of evaluator")
    parser.add_argument('dataset_name', nargs='?',
        help="name of dataset")
    parser.add_argument('batchscore_ids', nargs='*',
        help="ids of batchscore runs to evaluate")

    parser.add_argument('-p', dest='evaluator_params', action='append', default=[],
        help="parameters to pass to the evaluator, can specify multiple. Specify as '-p paramName=paramValue', e.g. '-p overwrite=1")


    args = parser.parse_args()
    if args.list_batchscore_ids:
        ba_dir = get_batchscore_dir(args.list_batchscore_ids)
        fnames = os.listdir(ba_dir)
        print "\n".join(sorted(x for x in fnames if os.path.isdir(os.path.join(ba_dir,x))))
        sys.exit(0)
    if not args.evaluator_name or not args.dataset_name:
        parser.print_usage()
        print "%s: error: too few arguments" % sys.argv[0]
        sys.exit(1)

    args.evaluator_params = parse_params(args.evaluator_params)

    ev_name = args.evaluator_name
    ev_fn = get_evaluator(ev_name)

    ev_fn(args.dataset_name, *args.batchscore_ids, **args.evaluator_params)