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
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)