예제 #1
0
def _piped_dedup_recal_cmd(data, prep_params, tmp_dir, out_file):
    """Generate de-duplication and recalibration commandline.
    """
    if prep_params["dup"] == "bamutil":
        assert prep_params["recal"] in ["bamutil", False], \
            "Cannot handle recalibration approach %s with bamutil dedup" % prep_params["recal"]
        out_stream = "-.ubam" if prep_params["realign"] else "-.bam"
        return "| " + recalibrate.bamutil_dedup_recal_cl(
            "-.ubam", out_stream, data, prep_params["recal"] == "bamutil")
    elif prep_params["dup"] == "samtools":
        samtools = config_utils.get_program("samtools", data["config"])
        return "| " + "{samtools} rmdup - -".format(**locals())
    elif prep_params["dup"] == "biobambam":
        biobambam_md = config_utils.get_program("bammarkduplicates2",
                                                data["config"])
        num_cores = 1
        compression_level = 1 if prep_params.get("realign") else 9
        tmpfile = os.path.join(
            tmp_dir, "%s-md" % os.path.splitext(os.path.basename(out_file))[0])
        metrics_file = "%s-dupmetrics.txt" % (os.path.splitext(out_file)[0])
        return (
            "| {biobambam_md} level={compression_level} markthreads={num_cores} verbose=0 "
            "M={metrics_file} tmpfile={tmpfile}".format(**locals()))
    elif prep_params["dup"]:
        raise ValueError("Unexpected deduplication approach: %s" %
                         prep_params["dup"])
    else:
        return ""
예제 #2
0
def _piped_dedup_recal_cmd(data, prep_params, tmp_dir, out_file):
    """Generate de-duplication and recalibration commandline.
    """
    if prep_params["dup"] == "bamutil":
        assert prep_params["recal"] in ["bamutil", False], (
            "Cannot handle recalibration approach %s with bamutil dedup" % prep_params["recal"]
        )
        out_stream = "-.ubam" if prep_params["realign"] else "-.bam"
        return "| " + recalibrate.bamutil_dedup_recal_cl("-.ubam", out_stream, data, prep_params["recal"] == "bamutil")
    elif prep_params["dup"] == "samtools":
        samtools = config_utils.get_program("samtools", data["config"])
        return "| " + "{samtools} rmdup - -".format(**locals())
    elif prep_params["dup"] == "biobambam":
        biobambam_md = config_utils.get_program("bammarkduplicates2", data["config"])
        num_cores = 1
        compression_level = 1 if prep_params.get("realign") else 9
        tmpfile = os.path.join(tmp_dir, "%s-md" % os.path.splitext(os.path.basename(out_file))[0])
        metrics_file = "%s-dupmetrics.txt" % (os.path.splitext(out_file)[0])
        return (
            "| {biobambam_md} level={compression_level} markthreads={num_cores} verbose=0 "
            "M={metrics_file} tmpfile={tmpfile}".format(**locals())
        )
    elif prep_params["dup"]:
        raise ValueError("Unexpected deduplication approach: %s" % prep_params["dup"])
    else:
        return ""
예제 #3
0
def _piped_dedup_recal_cmd(data, prep_params, tmp_dir):
    """Generate de-duplication and recalibration commandline.
    """
    if prep_params["dup"] == "bamutil":
        assert prep_params["recal"] in ["bamutil", False], \
            "Cannot handle recalibration approach %s with bamutil dedup" % prep_params["recal"]
        out_stream = "-.ubam" if prep_params["realign"] else "-.bam"
        return "| " + recalibrate.bamutil_dedup_recal_cl("-.ubam", out_stream, data,
                                                         prep_params["recal"] == "bamutil")
    elif prep_params["dup"] == "samtools":
        samtools = config_utils.get_program("samtools", data["config"])
        return "| " + "{samtools} rmdup - -".format(**locals())
    elif prep_params["dup"]:
        raise ValueError("Unexpected deduplication approach: %s" % prep_params["dup"])
    else:
        return ""