Created
October 18, 2014 08:37
-
-
Save ShujiaHuang/822436250745ca0f26f4 to your computer and use it in GitHub Desktop.
测试pysam 包的使用
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
Test pysam | |
""" | |
import pysam | |
import numpy as np | |
def Test1 () : | |
samfile = pysam.Samfile('1006-01.bam', 'rb') | |
print samfile.header['SQ'][0] | |
for pileupColumn in samfile.pileup('1', 10000, 10001 ) : | |
a = [ reads.alignment.mapq for reads in pileupColumn.pileups if reads.alignment.mapq >= 0 ] | |
print pileupColumn.tid, pileupColumn.pos, pileupColumn.n, np.array(a).mean(), a | |
for reads in pileupColumn.pileups : | |
reads.alignment.tags += [('AS', 1000)] | |
print reads.alignment.opt('RG'), \ | |
reads.alignment.opt('AS'), dict(reads.alignment.tags)['AS'], \ | |
reads.alignment.flag, reads.alignment.isize, '%', reads.alignment.pos, reads.alignment.qstart, \ | |
reads.alignment.rlen, '#', reads.alignment | |
samfile.close() | |
def Test2 () : | |
samfile = pysam.Samfile('1006-01.bam', 'rb') | |
for pileupColumn in samfile.pileup('1', 10000, 10005 ) : | |
for reads in [ al for al in pileupColumn.pileups if al.alignment.mapq >= 0 ]: | |
print pileupColumn.pos+1, len(reads.alignment.positions), reads.alignment.aend, reads.alignment.alen, \ | |
reads.alignment.inferred_length, reads.alignment.is_duplicate, samfile.header['SQ'][reads.alignment.rname], \ | |
reads.alignment.is_paired, '#',len(reads.alignment.query),len(reads.alignment.seq), reads.alignment.qstart, \ | |
reads.alignment.qend, reads.alignment.rlen,len(reads.alignment.qual) | |
samfile.close() | |
def Test3 () : | |
samfile = pysam.Samfile('1006-01.bam', 'rb') | |
for read in samfile.fetch( '1', 10000, 10005 ) : | |
print read.opt('AS'), read.opt('RG'), read.tags | |
##################################################################################################### | |
if __name__ == '__main__' : | |
Test1() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment