Sha256: 55089dd2e81ff0670cb0e34abba9f467b6ffa105e0abc9a6de96bda0754667c9
Contents?: true
Size: 797 Bytes
Versions: 1
Compression:
Stored size: 797 Bytes
Contents
# frozen_string_literal: true module FlexStationData class DefaultSampleMap attr_reader :rows, :columns, :wells_per_sample def initialize(rows, columns, wells_per_sample) @rows = rows @columns = columns @wells_per_sample = wells_per_sample end def [](sample_label) sample_label = Integer(sample_label) map[sample_label] ||= map_sample(sample_label) end private 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 def map @map ||= {} end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
flex-station-data-1.0.2 | lib/flex_station_data/default_sample_map.rb |