Exemplo n.º 1
0
def run_mpi_blast(config):

    size = MPI.COMM_WORLD.Get_size()
    rank = MPI.COMM_WORLD.Get_rank()
    name = MPI.Get_processor_name()

    print("Hello World! \n I am process %d of %d on %s." % (rank, size, name))
    uniprot_db = config["data"]["mixed-method"]["preprocess"]["uniprot_db"]
    if "tmpdir" in config["input"]:
        tmpdir = config["input"]["tmpdir"]
    else:
        tmpdir = "/tmpdir"

    src = os.path.dirname(uniprot_db)
    dest = tmpdir + "/blastdb"

    if rank == 0:
        workdir = config["input"]["gomap_dir"] + "/"
        print(workdir)
        tmp_fa_dir = workdir + config["input"]["split_path"] + "/"
        dest = workdir + config["data"]["mixed-method"]["preprocess"][
            "blast_out"] + "/temp/"
        results = pyrocopy.copy(tmp_fa_dir, dest)
        print(results)
        fa_pattern = dest + config["input"]["basename"] + "*.fa"
        fa_files = glob(fa_pattern)
        work_list = natsorted(fa_files)
        all_dat = master(work_list)
    else:
        results = pyrocopy.copy(src, dest)
        #pprint(results)
        slave(dest, config)
Exemplo n.º 2
0
def run_uniprot_blast(config):
    if config["input"]["mpi"] is True:
        from code.utils.run_mpi_blast import run_mpi_blast
        run_mpi_blast(config)
    else:
        from code.utils.run_single_blast import run_single_blast
        print("Running the single blast step")
        workdir = config["input"]["gomap_dir"] + "/"
        #print(workdir)
        tmp_fa_dir = workdir + config["input"]["split_path"] + "/"
        dest = workdir + config["data"]["mixed-method"]["preprocess"][
            "blast_out"] + "/temp/"
        results = pyrocopy.copy(tmp_fa_dir, dest)
        #print(results)
        fa_pattern = dest + config["input"]["basename"] + "*.fa"
        fa_files = sorted(glob(fa_pattern))

        uniprot_db = config["pipeline"]["pipeline_loc"] + "/" + config["data"][
            "mixed-method"]["preprocess"]["uniprot_db"]
        src_db = os.path.dirname(uniprot_db)
        # print(src_db)
        dest_db = "/tmpdir/blastdb"
        results = pyrocopy.copy(src_db, dest_db)
        uniprot_db = dest_db + "/" + os.path.basename(
            config["data"]["mixed-method"]["preprocess"]["uniprot_db"])
        run_single_blast(fa_files, uniprot_db, config)
Exemplo n.º 3
0
def run_mpi_iprs(fa_files, config):

    size = MPI.COMM_WORLD.Get_size()
    rank = MPI.COMM_WORLD.Get_rank()
    name = MPI.Get_processor_name()

    print("Hello World! \n I am process %d of %d on %s." % (rank, size, name))
    iprs_src = config["software"]["iprs"]["path"]
    if "tmpdir" in config["input"]:
        tmpdir = config["input"]["tmpdir"]
    else:
        tmpdir = "/tmpdir"

    src = iprs_src
    dest = tmpdir + "/"

    print(src + " " + dest)

    work_list = natsorted(fa_files)

    if rank == 0:
        all_dat = master(work_list)
    else:
        results = pyrocopy.copy(src, dest)
        pprint(results)
        slave(config)
Exemplo n.º 4
0
def copy_blast(config):
    workdir = config["input"]["gomap_dir"] + "/"
    tmp_blast_dir = workdir + config["data"]["mixed-method"]["preprocess"][
        "blast_out"]
    pannzer_blast_dir = workdir + config["data"]["mixed-method"]["pannzer"][
        "preprocess"]["blast"]
    results = pyrocopy.copy(tmp_blast_dir,
                            pannzer_blast_dir,
                            excludeDirs=['temp'])
Exemplo n.º 5
0
def run_uniprot_blast(config):
    if config["input"]["mpi"] is True:
        from code.utils.run_mpi_blast import run_mpi_blast
        run_mpi_blast(config)
    else:
        from code.utils.run_single_blast import run_single_blast
        workdir = config["input"]["gomap_dir"] + "/"
        print(workdir)
        tmp_fa_dir = workdir + config["input"]["split_path"] + "/"
        dest = workdir + config["data"]["mixed-method"]["preprocess"][
            "blast_out"] + "/temp/"
        results = pyrocopy.copy(tmp_fa_dir, dest)
        print(results)
        fa_pattern = dest + config["input"]["basename"] + "*.fa"
        fa_files = sorted(glob(fa_pattern))
        run_single_blast(fa_files, config)
Exemplo n.º 6
0
def init_dirs(config):
    gomap_dir = config["input"]["workdir"] + "/GOMAP-" + config["input"][
        "basename"]
    config["input"]["gomap_dir"] = gomap_dir
    if not os.path.exists(gomap_dir):
        os.makedirs(gomap_dir, mode=0777)
    excl_files = ['a']
    for root, dir, files in os.walk(gomap_dir):
        excl_files = excl_files + files
    with open(config["pipeline"]["dir_struct"]) as tmp_file:
        dir_struct = tmp_file.read()
        with create_files(dir_struct) as workdir:
            results = pyrocopy.copy(workdir,
                                    gomap_dir,
                                    excludeFiles=excl_files,
                                    detailedResults=True)
            setlogging(config, "init_dirs")
            logging.info("Initializing directory structure")
            logging.info(pformat(results))
    return (config)
Exemplo n.º 7
0
def run_iprs(config):
    dom_config = config["data"]["domain"]
    iprs_config = config["software"]["iprs"]
    workdir = config["input"]["gomap_dir"] + "/"
    fa_pattern = workdir + config["input"]["split_path"] + "/" + config[
        "input"]["basename"] + "*fa"
    fa_files = sorted(glob(fa_pattern))
    #print(fa_files)

    iprs_src = config["software"]["iprs"]["path"]
    # print(src_db)
    iprs_loc = "/tmpdir/iprs"
    results = pyrocopy.copy(iprs_src, iprs_loc)

    if config["input"]["mpi"] is True:
        from code.utils.run_mpi_iprs import run_mpi_iprs
        run_mpi_iprs(fa_files, config)
    else:
        from code.utils.run_single_iprs import run_single_iprs
        run_single_iprs(fa_files, config, iprs_loc)
Exemplo n.º 8
0
        raise Exception("Failed _isSamePath test with same folder")

    # _getTreeDepth test
    depth = pyrocopy._getTreeDepth("Level1")
    if (depth != 3):
        raise Exception("Failed to get maximum depth of tree: Level1")

    # copy test
    logger.info("Testing pyrocopy.copy() ...")
    numFiles = 30
    src = os.path.relpath(genRandomTree(tmpdir, 4, numFiles, MAX_FILE_SIZE),
                          tmpdir)
    dst = os.path.basename(src) + "Copy"

    # check initial copy
    results = pyrocopy.copy(src, dst, preserveStats=PRESERVE_TIMESTAMPS)
    if (results['filesCopied'] != numFiles):
        raise Exception("Failed to copy all files.")
    if (results['filesFailed'] > 0 or results['dirsFailed'] > 0):
        raise Exception("Failed to copy some files or directories.")
    # TODO Diff src and dst

    # check second copy (should skip all files)
    results = pyrocopy.copy(src, dst, preserveStats=PRESERVE_TIMESTAMPS)
    if (results['filesSkipped'] != numFiles):
        raise Exception("Failed to skip all files.")
    if (results['filesFailed'] > 0 or results['dirsFailed'] > 0):
        raise Exception("Failed to process some files or directories.")
    # TODO Diff src and dst

    # check overwrite copy
Exemplo n.º 9
0
    if (not pyrocopy._isSamePath("Level1", "Level1")):
        raise Exception("Failed _isSamePath test with same folder")

    # _getTreeDepth test
    depth = pyrocopy._getTreeDepth("Level1")
    if (depth != 3):
        raise Exception("Failed to get maximum depth of tree: Level1")
    
    # copy test
    logger.info("Testing pyrocopy.copy() ...")
    numFiles = 30
    src = os.path.relpath(genRandomTree(tmpdir, 4, numFiles, MAX_FILE_SIZE), tmpdir)
    dst = os.path.basename(src) + "Copy"

    # check initial copy
    results = pyrocopy.copy(src, dst, preserveStats=PRESERVE_TIMESTAMPS)
    if (results['filesCopied'] != numFiles):
        raise Exception("Failed to copy all files.")
    if (results['filesFailed'] > 0 or results['dirsFailed'] > 0):
        raise Exception("Failed to copy some files or directories.")
    # TODO Diff src and dst

    # check second copy (should skip all files)
    results = pyrocopy.copy(src, dst, preserveStats=PRESERVE_TIMESTAMPS)
    if (results['filesSkipped'] != numFiles):
        raise Exception("Failed to skip all files.")
    if (results['filesFailed'] > 0 or results['dirsFailed'] > 0):
        raise Exception("Failed to process some files or directories.")
    # TODO Diff src and dst

    # check overwrite copy