Class: SequenceLogo::Alignment

Inherits:
Object
  • Object
show all
Defined in:
lib/sequence_logo/alignment.rb

Defined Under Namespace

Classes: Item

Instance Method Summary collapse

Constructor Details

#initialize(items = []) ⇒ Alignment

Returns a new instance of Alignment.



30
31
32
# File 'lib/sequence_logo/alignment.rb', line 30

def initialize(items = [])
  @alignable_items = items
end

Instance Method Details

#+(item) ⇒ Object



34
35
36
# File 'lib/sequence_logo/alignment.rb', line 34

def +(item)
  Alignment.new(@alignable_items + [item])
end

#render(canvas_factory) ⇒ Object



46
47
48
49
50
51
52
53
# File 'lib/sequence_logo/alignment.rb', line 46

def render(canvas_factory)
  canvas = VerticalGluingCanvas.new
  items_normalized.each do |item|
    canvas.add_image item.render(canvas_factory)
  end
  canvas.background(canvas_factory.background_fill)
  canvas.image
end

#revcompObject



38
39
40
41
42
43
44
# File 'lib/sequence_logo/alignment.rb', line 38

def revcomp
  items_reversed = @alignable_items.map{|item|
    shift_reversed = rightmost_position - item.shift - item.length
    Item.new(item.object.revcomp, shift_reversed)
  }
  Alignment.new(items_reversed)
end