Esempio n. 1
0
    def run(self, input_files, metadata, output_files):
        """
        This is the main function that run the tools to create
        .baitmap.

        Parameters
        ----------
        input_files: dict
            genome: str
                Indexed Ref genome used used in the experiment.

        metadata: dict
            input metadata

        output_files: dict
            Rtree_files: str
                    Name of the Rtree files
            bait_sam: str
                whole path of SAM file, generated to locate baits
            out_baitmap: str
                whole path for the .baitmap file

        Returns
        -------
        output_files_Baitmap : bool
        output_metadata_Baitmap : dict
            metadata for baitmap
            files
        """
        try:
            baitmap_caller = makeBaitmapTool(self.configuration)
            output_files_baitmap, output_metadata_baitmap = baitmap_caller.run(
                {
                    "genome_idx": input_files["genome_idx"],
                    "probes_fa": input_files["probes_fa"],
                    "Rtree_file_dat": input_files["Rtree_file_dat"],
                    "Rtree_file_idx": input_files["Rtree_file_idx"],
                    "genome_fa": input_files["genome_fa"],
                    "chr_handler": input_files["chr_handler"]
                },
                {
                    "genome_fa": metadata["genome_fa"],
                    "probes_fa": metadata["probes_fa"],
                    "Rtree_file_dat": metadata["Rtree_file_dat"],
                    "Rtree_file_idx": metadata["Rtree_file_idx"],
                    "genome_idx": metadata["genome_idx"]
                },
                {
                    "bait_sam": output_files["bait_sam"],
                    "out_baitmap": output_files["out_baitmap"],
                    "out_bam": output_files["out_bam"]
                }
            )

            logger.info(".baitmap file generated succesfully")

        except IOError:
            logger.fatal("generate_CHiCAGO_baitmap failed to generate .baitmap file")

        return output_files_baitmap, output_metadata_baitmap
Esempio n. 2
0
def test_baitmap():
    """
    Function to test the makeBaitmap tool. Tool that
    generate .baitmap files
    """

    import sys
    sys._run_from_cmdl = True  # pylint: disable=protected-access

    path = os.path.join(os.path.dirname(__file__), "data/")

    configuration = {
        "execution": path,
        "chic_RE_name": "HindIII",
        "chic_RE_sequence": "A|AGCTT"
    }

    input_files = {
        "genome_idx": path + "test_baitmap/bwa.tar.gz",
        "probes_fa": path + "test_baitmap/baits.fa",
        "Rtree_file_dat": path + "test_rmap/rtree_file.dat",
        "Rtree_file_idx": path + "test_rmap/rtree_file.idx",
        "genome_fa": path + "test_baitmap/chr21_hg19.fa",
        "chr_handler": path + "test_baitmap/chr_handler.txt"
    }

    output_files = {
        "bait_sam": path + "test_baitmap/baits.sam",
        "out_bam": path + "test_baitmap/baits.bam",
        "out_baitmap": path + "test_run_chicago/test.baitmap"
    }

    metadata = {
        "genome_idx":
        Metadata("index_bwa", "tar", input_files["genome_idx"],
                 [input_files["genome_fa"]], {
                     "assembly": "test",
                     "tool": "bwa_indexer"
                 }, 9606),
        "genome_fa":
        Metadata("hg38", "fasta", input_files["genome_fa"], [], {
            "assembly": "test",
            "tool": "bwa_indexer"
        }, 9606),
        "probes_fa":
        Metadata("C-HiC probes", "fasta", input_files["probes_fa"], [], {
            "assembly": "test",
            "tool": "bwa_indexer"
        }, 9606),
        "Rtree_file_dat":
        Metadata("Rtree files", "dat", input_files["Rtree_file_dat"], [], {
            "genome": input_files["genome_fa"],
            "RE": {
                "HindIII": 'A|AGCTT'
            }
        }, 9606),
        "Rtree_file_idx":
        Metadata("Rtree files", "idx", input_files["Rtree_file_idx"], [], {
            "genome": input_files["genome_fa"],
            "RE": {
                "HindIII": 'A|AGCTT'
            }
        }, 9606)
    }

    baitmap_handler = makeBaitmapTool(configuration)
    baitmap_handler.run(input_files, metadata, output_files)

    assert os.path.getsize(output_files["out_bam"]) > 0
    assert os.path.getsize(output_files["out_baitmap"]) > 0
Esempio n. 3
0
    def run(self, input_files, metadata, output_files):
        """
        This is the main function that run the tools to create
        .baitmap.

        Parameters
        ----------
        input_files: dict
            fastq1: str
            fastq2: str
            genome_fa: str
            genome in fasta format

        input_metadata: dict
            input metadata

        output_files: dict

        Returns
        -------
        output_files
        output_metadata

        """
        #call hicup
        try:
            hicup_caller = hicup(self.configuration)
            output_files_hicup, output_metadata_hicup = hicup_caller.run(
                {
                    "genome_fa": input_files["genome_fa"],
                    "fastq1": input_files["fastq1"],
                    "fastq2" : input_files["fastq2"],
                    "bowtie_gen_idx": input_files["bowtie_gen_idx"]
                },
                {
                    "genome_fa": metadata["genome_fa"],
                    "fastq1": metadata["fastq1"],
                    "fastq2": metadata["fastq2"]
                },
                {
                    "hicup_outdir_tar" : output_files["hicup_outdir_tar"]
                }
            )

            logger.info("hicup runned succesfully =)")

        except IOError:
            logger.fatal("hicup failed to run succesfully =(")

        #call ramp
        try:
            rmap_caller = makeRmapFile(self.configuration)
            output_files_rmap, output_metadata_rmap = rmap_caller.run(
                {
                    "genome_fa" : input_files["genome_fa"]
                },
                {
                    "genome_fa" : metadata["genome_fa"]
                },
                {
                    "RMAP" : output_files["RMAP"],
                    "Rtree_file_dat" : output_files["Rtree_file_dat"],
                    "Rtree_file_idx" : output_files["Rtree_file_idx"],
                    "chr_handler" : output_files["chr_handler"]
                }
            )


            logger.info(".rmap file generated succesfully")

        except IOError:
            logger.fatal("rmap_tool failed to generate .rmap file")

        #produce Baitmap file
        try:
            baitmap_caller = makeBaitmapTool(self.configuration)
            output_files_baitmap, output_metadata_baitmap = baitmap_caller.run(
                {
                    "genome_idx" : input_files["genome_idx"],
                    "probes_fa": input_files["probes_fa"],
                    "Rtree_file_dat": input_files["Rtree_file_dat"],
                    "Rtree_file_idx": input_files["Rtree_file_idx"],
                    "genome_fa" : input_files["genome_fa"],
                    "chr_handler" : input_files["chr_handler"]
                },
                {
                    "genome_fa" : metadata["genome_fa"],
                    "probes_fa" : metadata["probes_fa"],
                    "Rtree_file_dat": metadata["Rtree_file_dat"],
                    "Rtree_file_idx": metadata["Rtree_file_idx"],
                    "genome_idx": metadata["genome_idx"]
                },
                {
                    "bait_sam" : output_files["bait_sam"],
                    "out_baitmap" : output_files["out_baitmap"],
                    "out_bam" : output_files["out_bam"]
                }
            )

            logger.info(".baitmap file generated succesfully")

        except IOError:
            logger.fatal("generate_CHiCAGO_baitmap failed to generate .baitmap file")


        try:
            design_caller = makeDesignFilesTool(self.configuration)
            design_out, design_meta = design_caller.run(
                {
                    "RMAP" : input_files["RMAP"],
                    "BAITMAP": input_files["BAITMAP"]
                },
                {
                    "RMAP" : metadata["RMAP"],
                    "BAITMAP" : metadata["BAITMAP"]
                },
                {
                    "nbpb" : output_files["nbpb"],
                    "npb"  : output_files["npb"],
                    "poe" : output_files["poe"]
                }
            )

            logger.info("design files succesfully generated =)")

        except IOError:
            logger.fatal("process_makeDesign failed to" +
                         "generate design files")

        try:
            bam2chicago_caller = bam2chicagoTool(self.configuration)
            output_files_bam2chicago, output_metadata_bam2chicago = bam2chicago_caller.run(
                {
                    "hicup_outdir_tar" : input_files["hicup_outdir_tar"],
                    "RMAP" : input_files["RMAP"],
                    "BAITMAP" : input_files["BAITMAP"]
                },
                {
                    "hicup_outdir_tar" : metadata["hicup_outdir_tar"],
                    "RMAP" : metadata["RMAP"],
                    "BAITMAP" : metadata["BAITMAP"]
                },
                {
                    "chinput": output_files["chinput"]
                }
            )

            logger.info("bam2chicago_tool succesfully generate chinput files =)")

        except IOError:
            logger.fatal("process_bam2chicago failed to generate .chinput files")

        try:
            chicago_caller = ChicagoTool(self.configuration)

            output_files_chicago, output_metadata_chicago = chicago_caller.run(
                input_files, metadata, output_files)

        except IOError:
            logger.info("chicago failed to generate output files =(")

        output_files = {}
        output_metadata = {}

        output_files.update(output_files_rmap)
        output_files.update(output_files_baitmap)
        output_files.update(design_out)
        output_files.update(output_files_hicup)
        output_files.update(output_files_bam2chicago)
        output_files.update(output_files_chicago)

        output_metadata.update(output_metadata_rmap)
        output_metadata.update(output_metadata_baitmap)
        output_metadata.update(design_meta)
        output_metadata.update(output_metadata_hicup)
        output_metadata.update(output_metadata_bam2chicago)
        output_metadata.update(output_metadata_chicago)

        return output_files, output_metadata
Esempio n. 4
0
    def run(self, input_files, metadata, output_files):
        """
        This is the main function that run the tools to create
        .baitmap.

        Parameters
        ----------
        input_files: dict
            fastq1: str
            fastq2: str
            genome_fa: str
            genome in fasta format

        input_metadata: dict
            input metadata

        output_files: dict

        Returns
        -------
        output_files
        output_metadata
        """
        if not os.path.exists("tests/data/test_bam2chicago_tool"):
            os.makedirs("tests/data/test_bam2chicago_tool")

        if not os.path.exists("tests/data/test_hicup"):
            os.makedirs("tests/data/test_hicup")

        if not os.path.exists("tests/data/test_rmap"):
            os.makedirs("tests/data/test_rmap")

        self.configuration["bowtie2_fasta_input"] = "True"

        if "genome_fa_public" in input_files:
            input_files["genome_fa"] = input_files.pop("genome_fa_public")
            metadata["genome_fa"] = metadata.pop("genome_fa_public")

            input_files["bowtie_gen_idx"] = input_files.pop(
                "bowtie_gen_idx_public")
            metadata["bowtie_gen_idx"] = metadata.pop("bowtie_gen_idx_public")

        #call hicup
        try:
            hicup_caller = hicup(self.configuration)
            output_files_hicup, output_metadata_hicup = hicup_caller.run(
                {
                    "genome_fa": input_files["genome_fa"],
                    "fastq1": input_files["fastq1"],
                    "fastq2": input_files["fastq2"],
                    "bowtie_gen_idx": input_files["bowtie_gen_idx"]
                }, {
                    "genome_fa": metadata["genome_fa"],
                    "fastq1": metadata["fastq1"],
                    "fastq2": metadata["fastq2"]
                }, {"hicup_outdir_tar": output_files["hicup_outdir_tar"]})

            logger.info("hicup runned succesfully =)")

        except IOError:
            logger.fatal("hicup failed to run succesfully =(")

        #call ramp
        try:
            rmap_caller = makeRmapFile(self.configuration)
            output_files_rmap, output_metadata_rmap = rmap_caller.run(
                {"genome_fa": input_files["genome_fa"]},
                {"genome_fa": metadata["genome_fa"]}, {})
            logger.info(".rmap file generated succesfully")

        except IOError:
            logger.fatal("rmap_tool failed to generate .rmap file")

        #produce Baitmap file
        try:
            baitmap_caller = makeBaitmapTool(self.configuration)
            output_files_baitmap, output_metadata_baitmap = baitmap_caller.run(
                {
                    "bowtie_gen_idx": input_files["bowtie_gen_idx"],
                    "probes_fa": input_files["probes_fa"],
                    "genome_fa": input_files["genome_fa"],
                }, {
                    "genome_fa": metadata["genome_fa"],
                    "probes_fa": metadata["probes_fa"],
                    "bowtie_gen_idx": metadata["bowtie_gen_idx"]
                }, {})

            logger.info(".baitmap file generated succesfully")

        except IOError:
            logger.fatal(
                "generate_CHiCAGO_baitmap failed to generate .baitmap file")

        try:
            design_caller = makeDesignFilesTool(self.configuration)
            design_out, design_meta = design_caller.run({}, {}, {})

            logger.info("design files succesfully generated =)")

        except IOError:
            logger.fatal("process_makeDesign failed to" +
                         "generate design files")

        try:
            bam2chicago_caller = bam2chicagoTool(self.configuration)
            output_files_bam2chicago, output_metadata_bam2chicago = bam2chicago_caller.run(
                input_files, metadata, output_files)

            logger.info(
                "bam2chicago_tool succesfully generate chinput files =)")

        except IOError:
            logger.fatal(
                "process_bam2chicago failed to generate .chinput files")

        try:
            pychic_caller = run_pyCHiC(self.configuration)

            output_files_pychic, output_metadata_pychic = pychic_caller.run(
                input_files, metadata, output_files)

        except IOError:
            logger.info("chicago failed to generate output files =(")

        output_files = {}
        output_metadata = {}

        output_files.update(output_files_rmap)
        output_files.update(output_files_baitmap)
        output_files.update(design_out)
        output_files.update(output_files_hicup)
        output_files.update(output_files_bam2chicago)
        output_files.update(output_files_pychic)

        output_metadata.update(output_metadata_rmap)
        output_metadata.update(output_metadata_baitmap)
        output_metadata.update(design_meta)
        output_metadata.update(output_metadata_hicup)
        output_metadata.update(output_metadata_bam2chicago)
        output_metadata.update(output_metadata_pychic)

        return output_files, output_metadata