コード例 #1
0
ファイル: tophat.py プロジェクト: dargorr/bcbio-nextgen
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
コード例 #2
0
ファイル: tophat.py プロジェクト: adeshpande/bcbio-nextgen
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