class BioMummer::Alignment

Attributes

distances[RW]
qryname[RW]
qrystart[RW]
qrystop[RW]
refname[RW]
refstart[RW]
refstop[RW]
strand[RW]

Public Class Methods

new(refname, qryname, refstart, refstop, qrystart, qrystop, strand, distances) click to toggle source
# File lib/bio-mummer/mummer.rb, line 8
def initialize(refname, qryname, refstart, refstop, qrystart, qrystop, strand, distances)
  @refname = refname
  @qryname = qryname
  @refstart = refstart
  @refstop = refstop
  @qrystart = qrystart
  @qrystop = qrystop
  @strand = strand
  @distances = distances
end

Public Instance Methods

deltas() click to toggle source
# File lib/bio-mummer/mummer.rb, line 19
def deltas
  ds = []
  a = @distances.each_with_object([0]) do |d, arr|
    state = arr.last
    if d > 0
      ds += Array.new(d - 1, state)
      ds.push(nil)
      arr << state - 1
    else
      ds += Array.new(d * -1 - 1, state)
      arr << state + 1
    end
  end
  ds << a.last
  return ds
end
ref_to_query(ref_position) click to toggle source
# File lib/bio-mummer/mummer.rb, line 36
def ref_to_query(ref_position)
  position_in_alignment = ref_position - refstart + 1
  qrypos = nil
  if position_in_alignment >= deltas.length
    qrypos = @qrystart - 1 + position_in_alignment + deltas.last
  elsif deltas[position_in_alignment-1]
    qrypos = @qrystart - 1 + position_in_alignment + deltas[position_in_alignment-1]
  end
  !@strand && qrypos ? @qrystart + @qrystop - qrypos : qrypos
end