class FlexStationData::DefaultSampleMap

Attributes

columns[R]
rows[R]
wells_per_sample[R]

Public Class Methods

new(rows, columns, wells_per_sample) click to toggle source
# File lib/flex_station_data/default_sample_map.rb, line 7
def initialize(rows, columns, wells_per_sample)
  @rows             = rows
  @columns          = columns
  @wells_per_sample = wells_per_sample
end

Public Instance Methods

[](sample_label) click to toggle source
# File lib/flex_station_data/default_sample_map.rb, line 13
def [](sample_label)
  sample_label = Integer(sample_label)
  map[sample_label] ||= map_sample(sample_label)
end

Private Instance Methods

map() click to toggle source
# File lib/flex_station_data/default_sample_map.rb, line 29
def map
  @map ||= {}
end
map_sample(sample_label) click to toggle source
# File lib/flex_station_data/default_sample_map.rb, line 20
def map_sample(sample_label)
  column, row = (sample_label - 1).divmod(rows)
  row_label = ("A".ord + row).chr
  base_column = (column * wells_per_sample) + 1
  (0...wells_per_sample).map do |column_offset|
    [ row_label, base_column + column_offset ].join("")
  end
end