Mercurial > repos > artbio > mapping_quality_stats
view mapping_quality_stats.py @ 0:f00479673d47 draft
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
author | artbio |
---|---|
date | Wed, 15 Jun 2022 10:43:07 +0000 |
parents | |
children |
line wrap: on
line source
import argparse from collections import defaultdict import pysam def Parser(): the_parser = argparse.ArgumentParser() the_parser.add_argument('-bam', '--bam', dest='bam', required=True, help='input BAM file') the_parser.add_argument('-o', '--output', dest='distribution', required=True, help='tabular output for mapq distribution') args = the_parser.parse_args() return args def collect_mapq(bam, out): samfile = pysam.AlignmentFile(bam, "rb") mapq_dict = defaultdict(int) for read in samfile: mapq_dict[read.mapping_quality] += 1 with open(out, 'w') as out: out.write('mapq\tnumber_of_alignments\n') for quality in sorted(mapq_dict): out.write(f"{quality}\t{mapq_dict[quality]}\n") return mapq_dict def main(bam, out): collect_mapq(bam, out) if __name__ == "__main__": args = Parser() main(args.bam, args.distribution)