Example #1
0
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'])
Example #2
0
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)
Example #3
0
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',
    )
Example #4
0
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')
Example #5
0
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'])
Example #6
0
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')
Example #7
0
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)
Example #8
0
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)
Example #10
0
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)
Example #11
0
def split_bam_file(bam, bai, outbam, outbai, interval, kwargs):

    bamutils.bam_view(bam, outbam, interval, **kwargs)

    bamutils.bam_index(outbam, outbai, **kwargs)
Example #12
0
def index_bam_worker(bam, kwargs):

    bamutils.bam_index(
        bam, bam+'.bai', **kwargs)
Example #13
0
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'])
Example #14
0
def split_bam_file(bam, outbam, interval):
    outbai = outbam + '.bai'
    bamutils.bam_view(bam, outbam, interval)

    bamutils.bam_index(outbam, outbai)