Sha256: d3253408236eaf3599525ef54f394dc92f7c25e757db52e679681eee17dbd193
Contents?: true
Size: 1.29 KB
Versions: 1
Compression:
Stored size: 1.29 KB
Contents
class Track attr_reader :glyph, :name, :label, :args, :track_height, :scale, :max_y attr_accessor :features, :feature_rows, :name, :number_rows, :feature_height def initialize(args) @args = {:glyph => :generic, :name => "feature_track", :label => true, :feature_height => 10, :track_height => nil }.merge!(args) @glyph = @args[:glyph] @name = @args[:name] @label = @args[:label] @track_height = @args[:track_height] @features = [] @feature_rows = [] @scale = @args[:scale] @feature_height = @args[:feature_height] @number_of_rows = 1 @max_y = args[:max_y] end def add(feature) @features << feature end def get_rows #works out how many rows are needed per track for overlapping features #and which row each feature should be in current_row = 1 @feature_rows = Array.new(@features.length,1) @features.each_with_index do |f1, i| @features.each_with_index do |f2, j| next if i == j or j <= i if overlaps(f1,f2) @feature_rows[i] += 1 end end @number_rows = @feature_rows.max end end def overlaps(f1, f2) (f1.start >= f2.start and f1.start <= f2.end) or (f1.end >= f2.start and f1.end <= f2.end) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
bio-svgenes-0.1.1 | lib/bio/graphics/track.rb |