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 _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