Sha256: e00f942297ef536d490b3dfa2d5928555e1752cedc7595b73782cab8cde1a19b
Contents?: true
Size: 706 Bytes
Versions: 69
Compression:
Stored size: 706 Bytes
Contents
defmodule NucleotideCount do @nucleotides [?A, ?C, ?G, ?T] @doc """ Counts individual nucleotides in a NucleotideCount strand. ## Examples iex> NucleotideCount.count('AATAA', ?A) 4 iex> NucleotideCount.count('AATAA', ?T) 1 """ def count(strand, nucleotide) when nucleotide in @nucleotides do Enum.count(strand, &(&1 == nucleotide)) end def count(_strand, _nucleotide), do: raise(ArgumentError) @doc """ Returns a summary of counts by nucleotide. ## Examples iex> NucleotideCount.nucleotide_counts('AATAA') %{?A => 4, ?T => 1, ?C => 0, ?G => 0} """ def histogram(strand) do Enum.map(@nucleotides, &{&1, count(strand, &1)}) |> Enum.into(%{}) end end
Version data entries
69 entries across 69 versions & 1 rubygems