def get_genome_coverage(bam_fhands): coverage_hist = IntCounter() for bam_fhand in bam_fhands: bam_fpath = bam_fhand.name cmd = [get_binary_path('bedtools'), 'genomecov', '-ibam', bam_fpath] cover_process = Popen(cmd, stdout=PIPE) for line in cover_process.stdout: if line.startswith('genome'): cov, value = line.split('\t')[1:3] coverage_hist[int(cov)] += int(value) return coverage_hist
def get_genome_coverage(bam_fhands): coverage_hist = IntCounter() for bam_fhand in bam_fhands: bam_fpath = bam_fhand.name cmd = [get_binary_path('bedtools'), 'genomecov', '-ibam', bam_fpath] cover_process = Popen(cmd, stdout=PIPE) for line in cover_process.stdout: if line.startswith('genome'): cov, value = line.split('\t')[1: 3] coverage_hist[int(cov)] += int(value) return coverage_hist
def get_reference_counts(bam_fpath): 'Using samtools idxstats it generates dictionaries with read counts' cmd = [get_binary_path('samtools'), 'idxstats', bam_fpath] idx_process = Popen(cmd, stdout=PIPE) # we're not using pysam.idxstats here because the stdout differed # depending on how the tests were run for line in idx_process.stdout: ref_name, ref_length, mapped_reads, unmapped_reads = line.split() if ref_name == '*': ref_name = None ref_length = None else: ref_length = int(ref_length) yield {'reference': ref_name, 'length': ref_length, 'mapped_reads': int(mapped_reads), 'unmapped_reads': int(unmapped_reads)}
def get_reference_counts(bam_fpath): 'Using samtools idxstats it generates dictionaries with read counts' cmd = [get_binary_path('samtools'), 'idxstats', bam_fpath] idx_process = Popen(cmd, stdout=PIPE) # we're not using pysam.idxstats here because the stdout differed # depending on how the tests were run for line in idx_process.stdout: ref_name, ref_length, mapped_reads, unmapped_reads = line.split() if ref_name == '*': ref_name = None ref_length = None else: ref_length = int(ref_length) yield { 'reference': ref_name, 'length': ref_length, 'mapped_reads': int(mapped_reads), 'unmapped_reads': int(unmapped_reads) }