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