# File lib/bettersam/samrecord.rb, line 147 def primary_aln? (flag & $flags[9]) == 0 end
class BetterSam::SAMRecord
Attributes
cigar_list[R]
insert[RW]
length[RW]
snp[RW]
Public Instance Methods
both_mapped?()
click to toggle source
pair convenience methods
# File lib/bettersam/samrecord.rb, line 161 def both_mapped? !(read_unmapped? && mate_unmapped?) end
chrome()
click to toggle source
# File lib/bettersam/samrecord.rb, line 61 def chrome rname end
cigar()
click to toggle source
# File lib/bettersam/samrecord.rb, line 73 def cigar self[:cigar].read_string end
edit_distance()
click to toggle source
# File lib/bettersam/samrecord.rb, line 174 def edit_distance tags.nm end
endpos()
click to toggle source
# File lib/bettersam/samrecord.rb, line 189 def endpos if !@cigar_list parse_cigar end e = pos @cigar_list.each do |h| a = h.to_a bases = a[0][0] match = a[0][1] if match =~ /[MD]/ e += bases end end e end
exact_match?()
click to toggle source
cigar parsing methods
# File lib/bettersam/samrecord.rb, line 185 def exact_match? tags.nm==0 && cigar=="#{seq.length}M" end
first_in_pair?()
click to toggle source
# File lib/bettersam/samrecord.rb, line 139 def first_in_pair? flag & $flags[7] != 0 end
flag()
click to toggle source
# File lib/bettersam/samrecord.rb, line 53 def flag self[:flag] end
get_base_at(p)
click to toggle source
# File lib/bettersam/samrecord.rb, line 219 def get_base_at p seq[p] end
mapq()
click to toggle source
# File lib/bettersam/samrecord.rb, line 69 def mapq self[:mapq] end
mate_reverse_strand?()
click to toggle source
# File lib/bettersam/samrecord.rb, line 135 def mate_reverse_strand? flag & $flags[6] != 0 end
mate_unmapped?()
click to toggle source
# File lib/bettersam/samrecord.rb, line 127 def mate_unmapped? flag & $flags[4] != 0 end
mchrom()
click to toggle source
# File lib/bettersam/samrecord.rb, line 81 def mchrom rnext end
mpos()
click to toggle source
# File lib/bettersam/samrecord.rb, line 89 def mpos pnext end
name()
click to toggle source
# File lib/bettersam/samrecord.rb, line 49 def name qname end
pair_opposite_strands?()
click to toggle source
# File lib/bettersam/samrecord.rb, line 165 def pair_opposite_strands? (!read_reverse_strand? && mate_reverse_strand?) || (read_reverse_strand? && !mate_reverse_strand?) end
pair_same_strand?()
click to toggle source
# File lib/bettersam/samrecord.rb, line 170 def pair_same_strand? !pair_opposite_strands? end
parse_cigar()
click to toggle source
# File lib/bettersam/samrecord.rb, line 205 def parse_cigar str = cigar l = str.length @cigar_list = [] while str.length>0 if str =~ /([0-9]+[MIDNSHPX=]+)/ @cigar_list << {$1[0..-2].to_i => $1[-1]} str = str.slice($1.length, l) else puts str end end end
pcr_duplicate?()
click to toggle source
# File lib/bettersam/samrecord.rb, line 155 def pcr_duplicate? flag & $flags[11] != 0 end
pnext()
click to toggle source
# File lib/bettersam/samrecord.rb, line 85 def pnext self[:pnext] end
pos()
click to toggle source
# File lib/bettersam/samrecord.rb, line 65 def pos self[:pos] end
primary_aln?()
click to toggle source
qname()
click to toggle source
# File lib/bettersam/samrecord.rb, line 45 def qname self[:qname].read_string end
qual()
click to toggle source
# File lib/bettersam/samrecord.rb, line 101 def qual self[:qual].read_string end
quality_fail?()
click to toggle source
# File lib/bettersam/samrecord.rb, line 151 def quality_fail? flag & $flags[10] != 0 end
read_paired?()
click to toggle source
basic flag convenience methods
# File lib/bettersam/samrecord.rb, line 115 def read_paired? flag & $flags[1] != 0 end
read_properly_paired?()
click to toggle source
# File lib/bettersam/samrecord.rb, line 119 def read_properly_paired? flag & $flags[2] != 0 end
read_reverse_strand?()
click to toggle source
# File lib/bettersam/samrecord.rb, line 131 def read_reverse_strand? flag & $flags[5] != 0 end
read_unmapped?()
click to toggle source
# File lib/bettersam/samrecord.rb, line 123 def read_unmapped? flag & $flags[3] != 0 end
rname()
click to toggle source
# File lib/bettersam/samrecord.rb, line 57 def rname self[:rname].read_string end
rnext()
click to toggle source
# File lib/bettersam/samrecord.rb, line 77 def rnext self[:rnext].read_string end
second_in_pair?()
click to toggle source
# File lib/bettersam/samrecord.rb, line 143 def second_in_pair? flag & $flags[8] !=0 end
seq()
click to toggle source
# File lib/bettersam/samrecord.rb, line 97 def seq self[:seq].read_string end
tlen()
click to toggle source
# File lib/bettersam/samrecord.rb, line 93 def tlen self[:tlen] end