Mercurial > repos > artbio > mapping_quality_stats
annotate mapping_quality_stats.py @ 1:29f187484f35 draft default tip
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit 73d041253a6c8d3f1126894c547e43dda5e700c1
author | artbio |
---|---|
date | Wed, 15 Jun 2022 15:36:40 +0000 |
parents | 1e10a4538f3f |
children |
rev | line source |
---|---|
0
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
1 import argparse |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
2 from collections import defaultdict |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
3 |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
4 import pysam |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
5 |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
6 |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
7 def Parser(): |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
8 the_parser = argparse.ArgumentParser() |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
9 the_parser.add_argument('-bam', '--bam', dest='bam', required=True, |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
10 help='input BAM file') |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
11 the_parser.add_argument('-o', '--output', dest='distribution', |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
12 required=True, |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
13 help='tabular output for mapq distribution') |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
14 args = the_parser.parse_args() |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
15 return args |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
16 |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
17 |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
18 def collect_mapq(bam, out): |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
19 samfile = pysam.AlignmentFile(bam, "rb") |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
20 mapq_dict = defaultdict(int) |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
21 for read in samfile: |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
22 mapq_dict[read.mapping_quality] += 1 |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
23 with open(out, 'w') as out: |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
24 out.write('mapq\tnumber_of_alignments\n') |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
25 for quality in sorted(mapq_dict): |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
26 out.write(f"{quality}\t{mapq_dict[quality]}\n") |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
27 return mapq_dict |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
28 |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
29 |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
30 def main(bam, out): |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
31 collect_mapq(bam, out) |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
32 |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
33 |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
34 if __name__ == "__main__": |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
35 args = Parser() |
1e10a4538f3f
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/mapping_quality_stats commit e4b37874b820a2ac48732667128a08e5755b7c4b
artbio
parents:
diff
changeset
|
36 main(args.bam, args.distribution) |