def getUniqMapRead(self,outfile=None):
'''Extract uniquely mapped reads.'''
if outfile is None:
outfile = self.fileName + ".uniq.sam"
FO=open(outfile,'w')
Uniqcount=0
print >>sys.stderr, "Writing uniquely mapped reads to\"",outfile,"\"... ",
for line in self.f:
hits=[]
if line[0] == '@':continue #skip head lines
if ParseSAM._reExpr2.match(line):continue #skip blank lines
field=line.rstrip('\n').split()
flagCode=string.atoi(field[1])
if (flagCode & 0x0004) == 1:
continue #skip unmapped reads
#else:
#print >>sys.stderr,line,
if (ParseSAM._uniqueHit_pat.search(line)):
print >>sys.stderr,line,
Uniqcount +=1
FO.write(line)
FO.close()
print >>sys.stderr, str(Uniqcount) + " reads were saved!\n",
self.f.seek(0)
评论列表
文章目录