def merge_postprocess_bams(inputs, output, tempdir, containers): helpers.makedirs(tempdir) merged_out = os.path.join(tempdir, 'merged_lanes.bam') picardutils.merge_bams(inputs, merged_out, docker_image=containers['picard']) bamutils.bam_index(merged_out, merged_out + '.bai', docker_image=containers['samtools']) sorted_bam = os.path.join(tempdir, 'sorted.bam') picardutils.bam_sort(merged_out, sorted_bam, tempdir, docker_image=containers['picard']) markdups_metrics = os.path.join(tempdir, 'markdups_metrics.txt') picardutils.bam_markdups(sorted_bam, output, markdups_metrics, tempdir, docker_image=containers['picard']) bamutils.bam_index(output, output + '.bai', docker_image=containers['samtools'])
def merge_bams(inputs, output, output_index, config): container_ctx = helpers.get_container_ctx(config['containers'], 'picard', docker_only=True) picardutils.merge_bams(inputs, output, **container_ctx) container_ctx = helpers.get_container_ctx(config['containers'], 'samtools', docker_only=True) bamutils.bam_index(output, output_index, **container_ctx)
def cell_region_merge_bams(cell_bams, region_bam, region): cell_bams = cell_bams.values() region = '{}:{}-{}'.format(*region.split('-')) bamutils.bam_merge(cell_bams, region_bam, region=region) bamutils.bam_index( region_bam, region_bam + '.bai', )
def merge_postprocess_bams(inputs, output, tempdir): helpers.makedirs(tempdir) merged_out = os.path.join(tempdir, 'merged_lanes.bam') picardutils.merge_bams(inputs, merged_out) bamutils.bam_index(merged_out, merged_out + '.bai') sorted_bam = os.path.join(tempdir, 'sorted.bam') picardutils.bam_sort(merged_out, sorted_bam, tempdir) markdups_metrics = os.path.join(tempdir, 'markdups_metrics.txt') picardutils.bam_markdups(sorted_bam, output, markdups_metrics, tempdir) bamutils.bam_index(output, output + '.bai')
def postprocess_bam(infile, outfile, tempdir, containers): outfile_index = outfile + '.bai' if not os.path.exists(tempdir): helpers.makedirs(tempdir) sorted_bam = os.path.join(tempdir, 'sorted.bam') picardutils.bam_sort(infile, sorted_bam, tempdir, docker_image=containers['picard']) markdups_metrics = os.path.join(tempdir, 'markdups_metrics.txt') picardutils.bam_markdups(sorted_bam, outfile, markdups_metrics, tempdir, docker_image=containers['picard']) bamutils.bam_index(outfile, outfile_index, docker_image=containers['samtools'])
def remove_softclipped_reads(infile, outfile, softclipped_reads_threshold): if softclipped_reads_threshold == 1: shutil.copyfile(infile, outfile) shutil.copyfile(infile + '.bai', outfile + '.bai') return bamfile = pysam.AlignmentFile(infile, "rb") filteredbam = pysam.AlignmentFile(outfile, "wb", template=bamfile) for read in bamfile.fetch(): if _fraction_softclipped(read) < softclipped_reads_threshold: filteredbam.write(read) filteredbam.close() bam_index(outfile, outfile + '.bai')
def postprocess_bam(infile, outfile, outfile_index, tempdir, config, markdups_metrics, flagstat_metrics): if not os.path.exists(tempdir): helpers.makedirs(tempdir) container_ctx = helpers.get_container_ctx(config['containers'], 'picard', docker_only=True) sorted_bam = os.path.join(tempdir, 'sorted.bam') picardutils.bam_sort(infile, sorted_bam, tempdir, **container_ctx) picardutils.bam_markdups(sorted_bam, outfile, markdups_metrics, tempdir, **container_ctx) container_ctx = helpers.get_container_ctx(config['containers'], 'samtools', docker_only=True) bamutils.bam_index(outfile, outfile_index, **container_ctx) bamutils.bam_flagstat(outfile, flagstat_metrics, **container_ctx)
def get_postprocess_metrics(infile, infile_bai, tempdir, config, markdups_metrics, flagstat_metrics): if not os.path.exists(tempdir): helpers.makedirs(tempdir) outfile = os.path.join(tempdir, 'markdps.bam') outfile_index = outfile + '.bai' container_ctx = helpers.get_container_ctx(config['containers'], 'picard', docker_only=True) picardutils.bam_markdups(infile, outfile, markdups_metrics, tempdir, **container_ctx) container_ctx = helpers.get_container_ctx(config['containers'], 'samtools', docker_only=True) bamutils.bam_index(outfile, outfile_index, **container_ctx) bamutils.bam_flagstat(outfile, flagstat_metrics, **container_ctx)
def split_bam_file(bam, outbam, interval, samtools_docker): outbai = outbam + '.bai' bamutils.bam_view(bam, outbam, interval, docker_image=samtools_docker) bamutils.bam_index(outbam, outbai, docker_image=samtools_docker)
def merge_bam_worker(input_bam_files, output_bam, region, kwargs): bamutils.bam_merge(input_bam_files, output_bam, region=region, **kwargs) bamutils.bam_index(output_bam, output_bam + '.bai', **kwargs)
def split_bam_file(bam, bai, outbam, outbai, interval, kwargs): bamutils.bam_view(bam, outbam, interval, **kwargs) bamutils.bam_index(outbam, outbai, **kwargs)
def index_bam_worker(bam, kwargs): bamutils.bam_index( bam, bam+'.bai', **kwargs)
def merge_bams(inputs, output, output_index, containers): picardutils.merge_bams(inputs, output, docker_image=containers['picard']) bamutils.bam_index(output, output_index, docker_image=containers['samtools'])
def split_bam_file(bam, outbam, interval): outbai = outbam + '.bai' bamutils.bam_view(bam, outbam, interval) bamutils.bam_index(outbam, outbai)