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
# File lib/bettersam/samrecord.rb, line 147
def primary_aln?
  (flag & $flags[9]) == 0
end
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
tags() click to toggle source

returns a SAMTagSet object

# File lib/bettersam/samrecord.rb, line 106
def tags
  if !@tags
    @tags = BetterSam::SAMTagSet.new(self[:tags])
  end
  @tags
end
tlen() click to toggle source
# File lib/bettersam/samrecord.rb, line 93
def tlen
  self[:tlen]
end