Example #1
0
def _lane_stats(cur_name, work_dir):
    """Parse metrics information from files in the working directory.
    """
    parser = PicardMetricsParser()
    metrics_files = glob.glob(os.path.join(work_dir, "%s*metrics" % cur_name))
    metrics = parser.extract_metrics(metrics_files)
    return metrics
Example #2
0
def _lane_stats(cur_name, work_dir):
    """Parse metrics information from files in the working directory.
    """
    parser = PicardMetricsParser()
    metrics_files = glob.glob(os.path.join(work_dir, "%s*metrics" % cur_name))
    metrics = parser.extract_metrics(metrics_files)
    return metrics
Example #3
0
def _bowtie_for_innerdist(start,
                          fastq_file,
                          pair_file,
                          ref_file,
                          out_base,
                          out_dir,
                          config,
                          remove_workdir=False):
    work_dir = os.path.join(out_dir, "innerdist_estimate")
    if os.path.exists(work_dir):
        shutil.rmtree(work_dir)
    safe_makedir(work_dir)
    extra_args = ["-s", str(start), "-u", "250000"]
    bowtie_runner = _select_bowtie_version(config)
    out_sam = bowtie_runner.align(fastq_file, pair_file, ref_file, out_base,
                                  work_dir, config, extra_args)
    runner = broad.runner_from_config(config)
    metrics_file = runner.run_fn("picard_insert_metrics", out_sam)
    if not file_exists(metrics_file):
        return None, None
    parser = PicardMetricsParser()
    with open(metrics_file) as metrics_handle:
        insert_metrics = parser._parse_insert_metrics(metrics_handle)

    avg_read_length = _calculate_average_read_length(out_sam)
    mean_insert = int(float(insert_metrics["MEAN_INSERT_SIZE"])) - int(
        2 * avg_read_length)
    std_deviation = int(float(insert_metrics["STANDARD_DEVIATION"]))
    return mean_insert, std_deviation
def main(run_name,
         work_dir=None,
         config_file=None,
         ref_file=None,
         bait_file=None,
         target_file=None):
    if work_dir is None:
        work_dir = os.getcwd()
    parser = PicardMetricsParser()

    base_bams = _get_base_bams(work_dir, run_name)
    samples = [_get_sample_name(b) for (_, _, b) in base_bams]
    metrics = [
        lane_stats(l, b, f, run_name, parser, config_file, ref_file, bait_file,
                   target_file) for (l, b, f) in base_bams
    ]
    header_counts = _get_header_counts(samples, metrics)
    header = [m for m in WANT_METRICS if header_counts[m] > 0]
    out_file = "%s-summary.csv" % (run_name)
    with open(out_file, "w") as out_handle:
        writer = csv.writer(out_handle)
        writer.writerow(["sample"] + header)
        for i, sample in enumerate(samples):
            info = [metrics[i].get(m, "") for m in header]
            writer.writerow([sample] + info)
Example #5
0
def _bowtie_for_innerdist(start, fastq_file, pair_file, ref_file, out_base,
                          out_dir, config, remove_workdir=False):
    work_dir = os.path.join(out_dir, "innerdist_estimate")
    if os.path.exists(work_dir):
        shutil.rmtree(work_dir)
    safe_makedir(work_dir)
    extra_args = ["-s", str(start), "-u", "250000"]
    bowtie_runner = _select_bowtie_version(config)
    out_sam = bowtie_runner.align(fastq_file, pair_file, ref_file, out_base,
                                  work_dir, config, extra_args)
    runner = broad.runner_from_config(config)
    metrics_file = runner.run_fn("picard_insert_metrics", out_sam)
    if not file_exists(metrics_file):
        return None, None
    parser = PicardMetricsParser()
    with open(metrics_file) as metrics_handle:
        insert_metrics = parser._parse_insert_metrics(metrics_handle)

    avg_read_length = _calculate_average_read_length(out_sam)
    mean_insert = int(float(insert_metrics["MEAN_INSERT_SIZE"])) - int(2 * avg_read_length)
    std_deviation = int(float(insert_metrics["STANDARD_DEVIATION"]))
    return mean_insert, std_deviation
Example #6
0
 def __init__(self):
     PicardMetricsParser.__init__(self)
Example #7
0
 def __init__(self):
     PicardMetricsParser.__init__(self)