Sha256: d0344eb3d46523ffcd4a32152a1a6be8f5847b57b10860071ca766fac248d6be
Contents?: true
Size: 503 Bytes
Versions: 396
Compression:
Stored size: 503 Bytes
Contents
class Nucleotide def self.from_dna(strand) acids = strand.chars fail ArgumentError.new("Invalid DNA #{strand}") unless acids.all?(&validate) new(acids) end def self.validate proc { |acid| %w(A C G T).include?(acid) } end attr_reader :acids def initialize(acids) @acids = acids end def histogram { 'A' => count('A'), 'T' => count('T'), 'G' => count('G'), 'C' => count('C') } end def count(acid) acids.count(acid) end end
Version data entries
396 entries across 396 versions & 1 rubygems