Пример #1
0
def test_run():
    parser = argparse.ArgumentParser(description="ILP solver for the Restricted Guided Genome Halving Problem (RGGHP)",
                                     formatter_class=argparse.RawDescriptionHelpFormatter, epilog=epilog())

    parser.add_argument("-pt", "--paper_test", dest="paper_test",
                        default=None, metavar="PATH",
                        help="The directory with data from the paper. Please use only "
                             "for reproducibility of the paper results")

    parser.add_argument("-tl", "--time_limit", dest="time_limit",
                        default=7200, required=False,
                        type=int, metavar="NUMBER",
                        help="Time limit for Gurobi solver")

    parser.add_argument("-v", "--version", action="version", version=version())

    args = parser.parse_args()

    if not os.path.isdir(args.paper_test):
        parser.error("The directory must exist and have correct structure")
    args.paper_test = os.path.abspath(args.paper_test)

    args.log_file = os.path.join(args.paper_test, "rgghp.log")
    args.gurobi_log_file = os.path.join(args.paper_test, "gurobi_rgghp.log")
    enable_logging(args.log_file, overwrite=False)

    do_test_job(args.paper_test, args.gurobi_log_file)
Пример #2
0
def main():
    parser = argparse.ArgumentParser(
        description="ILP solver for the Double Distance Problem (DDP)",
        formatter_class=argparse.RawDescriptionHelpFormatter,
        epilog=epilog())

    parser.add_argument("-r",
                        "--ordinary",
                        dest="ordinary",
                        default=None,
                        metavar="PATH",
                        help="Ordinary genome in GRIMM format")

    parser.add_argument("-t",
                        "--two_dupl",
                        dest="duplicated",
                        default=None,
                        metavar="PATH",
                        help="2-duplicated genome in GRIMM format")

    parser.add_argument("-o",
                        "--out-dir",
                        dest="out_dir",
                        default=None,
                        required=True,
                        metavar="PATH",
                        help="Output directory")

    parser.add_argument("-tl",
                        "--time_limit",
                        dest="time_limit",
                        default=7200,
                        required=False,
                        type=int,
                        metavar="NUMBER",
                        help="Time limit for Gurobi solver")

    parser.add_argument("-v", "--version", action="version", version=version())

    args = parser.parse_args()

    if not os.path.isdir(args.out_dir):
        os.mkdir(args.out_dir)
    args.out_dir = os.path.abspath(args.out_dir)

    args.log_file = os.path.join(args.out_dir, "double_distance.log")
    args.gurobi_log_file = os.path.join(args.out_dir,
                                        "gurobi_double_distance.log")
    enable_logging(args.log_file, overwrite=False)

    path_to_ord_genome = os.path.abspath(args.ordinary)
    path_to_dupl_genome = os.path.abspath(args.duplicated)

    result_out_file = os.path.join(args.out_dir, "result.txt")

    solve_double_distance_problem(ord_genome_file=path_to_ord_genome,
                                  all_dupl_genome_file=path_to_dupl_genome,
                                  out_result_file=result_out_file,
                                  gurobi_log_file=args.gurobi_log_file,
                                  time_limit=args.time_limit)
Пример #3
0
def main():
    parser = argparse.ArgumentParser(
        description="ILP solver for the Genome Median Problem (GMP)",
        formatter_class=argparse.RawDescriptionHelpFormatter,
        epilog=epilog())

    parser.add_argument("-f",
                        "--files",
                        dest="files",
                        default=None,
                        metavar="PATH",
                        nargs=3,
                        help="Three files in GRIMM format")

    parser.add_argument("-o",
                        "--out-dir",
                        dest="out_dir",
                        default=None,
                        required=True,
                        metavar="PATH",
                        help="Output directory")

    parser.add_argument("-tl",
                        "--time_limit",
                        dest="time_limit",
                        default=7200,
                        required=False,
                        type=int,
                        metavar="NUMBER",
                        help="Time limit for Gurobi solver")

    parser.add_argument("-v", "--version", action="version", version=version())

    args = parser.parse_args()

    if not os.path.isdir(args.out_dir):
        os.mkdir(args.out_dir)
    args.out_dir = os.path.abspath(args.out_dir)

    args.log_file = os.path.join(args.out_dir, "gmp.log")
    args.gurobi_log_file = os.path.join(args.out_dir, "gurobi_gmp.log")
    enable_logging(args.log_file, overwrite=False)

    path_to_genomes = [os.path.abspath(f) for f in args.files]
    result_out_file = os.path.join(args.out_dir, "result.txt")
    genome_out_file = os.path.join(args.out_dir, "median.gen")

    medians_without_singletons(genome_files=path_to_genomes,
                               out_result_file=result_out_file,
                               out_median_file=genome_out_file,
                               problem="GMP",
                               gurobi_log_file=args.gurobi_log_file,
                               time_limit=args.time_limit)
Пример #4
0
def main():
    parser = argparse.ArgumentParser(description="ILP solver for the Conserved Guided Genome Halving Problem (CGGHP)",
                                     formatter_class=argparse.RawDescriptionHelpFormatter, epilog=epilog())

    parser.add_argument("-r", "--ordinary", dest="ordinary",
                        default=None, metavar="PATH", help="Ordinary genome in GRIMM format")

    parser.add_argument("-t", "--two_dupl", dest="duplicated",
                        default=None, metavar="PATH", help="2-duplicated genome in GRIMM format")

    parser.add_argument("-o", "--out-dir", dest="out_dir",
                        default=None, required=True,
                        metavar="PATH", help="Output directory")

    parser.add_argument("-tl", "--time_limit", dest="time_limit",
                        default=7200, required=False,
                        type=int, metavar="NUMBER",
                        help="Time limit for Gurobi solver")

    parser.add_argument("-v", "--version", action="version", version=version())

    args = parser.parse_args()

    if not os.path.isdir(args.out_dir):
        os.mkdir(args.out_dir)
    args.out_dir = os.path.abspath(args.out_dir)

    args.log_file = os.path.join(args.out_dir, "cgghp.log")
    args.gurobi_log_file = os.path.join(args.out_dir, "gurobi_cgghp.log")
    enable_logging(args.log_file, overwrite=False)

    ordinary_genome_file = os.path.abspath(args.ordinary)
    all_dupl_genome_file = os.path.abspath(args.duplicated)

    result_out_file = os.path.join(args.out_dir, "result.txt")
    genome_out_file = os.path.join(args.out_dir, "pre_dup.gen")

    halvings_without_singletons(ordinary_genome_file=ordinary_genome_file,
                                all_dupl_genome_file=all_dupl_genome_file,
                                out_result_file=result_out_file,
                                out_predup_file=genome_out_file,
                                problem="CGGHP",
                                gurobi_log_file=args.gurobi_log_file,
                                time_limit=args.time_limit)