else: alniter = sam.fetch(until_eof=True) for aln in alniter: # print aln.pos, dir(aln) nr+=1 if nr%200000 == 0: sys.stderr.write("%d\n"%nr) i,j = aln.tid, aln.rnext if args.debug: print([i,j,int(aln.mapq),aln.tlen,aln.is_duplicate]) if int(aln.mapq) < args.min_qual: continue if BamTags.mate_mapq(aln) < args.min_qual: continue if aln.is_duplicate : continue if args.junctions and BamTags.junction(aln) != "T": continue if i==j: if (slen[i]<args.minlength) : continue if aln.tlen < 0: continue hist[aln.tlen] = hist.get(aln.tlen,0)+1 n+=1 else: if (slen[i]<args.minlength) or (slen[j]<args.minlength) : continue if not aln.is_read1: continue x = min( aln.pos , slen[i] - aln.pos ) + min( aln.pnext,slen[j]-aln.pnext) hist2[x] = hist2.get(x,0)+1 n2+=1 if args.head and (n+n2)>args.head: break