Sha256: 8c4cf328e62ba4c5f5cd575e333064c60068ba9baf4128cd8001db10609b3147

Contents?: true

Size: 582 Bytes

Versions: 396

Compression:

Stored size: 582 Bytes

Contents

'use strict';

module.exports = dna;

function dna(strand) {
  var acids = (strand || '');
  var index = histogram(acids);

  for (var acid in acids) {
    if (!index.hasOwnProperty(acids[acid])) throw new RangeError('Invalid DNA ' + strand);
  }

  return Object.create({
    histogram: histogram.bind(null, acids),
    count: count.bind(null, acids)
  });
}

function count(acids, acid) {
  return acids.split(acid).length - 1;
}

function histogram(acids) {
  return {
    A: count(acids, 'A'),
    C: count(acids, 'C'),
    G: count(acids, 'G'),
    T: count(acids, 'T')
  };
}

Version data entries

396 entries across 396 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/javascript/exercises/nucleotide-count/example.js
trackler-2.2.1.179 tracks/javascript/exercises/nucleotide-count/example.js
trackler-2.2.1.178 tracks/javascript/exercises/nucleotide-count/example.js
trackler-2.2.1.177 tracks/javascript/exercises/nucleotide-count/example.js
trackler-2.2.1.176 tracks/javascript/exercises/nucleotide-count/example.js
trackler-2.2.1.175 tracks/javascript/exercises/nucleotide-count/example.js
trackler-2.2.1.174 tracks/javascript/exercises/nucleotide-count/example.js
trackler-2.2.1.173 tracks/javascript/exercises/nucleotide-count/example.js
trackler-2.2.1.172 tracks/javascript/exercises/nucleotide-count/example.js
trackler-2.2.1.171 tracks/javascript/exercises/nucleotide-count/example.js
trackler-2.2.1.170 tracks/javascript/exercises/nucleotide-count/example.js
trackler-2.2.1.169 tracks/javascript/exercises/nucleotide-count/example.js
trackler-2.2.1.167 tracks/javascript/exercises/nucleotide-count/example.js
trackler-2.2.1.166 tracks/javascript/exercises/nucleotide-count/example.js
trackler-2.2.1.165 tracks/javascript/exercises/nucleotide-count/example.js
trackler-2.2.1.164 tracks/javascript/exercises/nucleotide-count/example.js
trackler-2.2.1.163 tracks/javascript/exercises/nucleotide-count/example.js
trackler-2.2.1.162 tracks/javascript/exercises/nucleotide-count/example.js
trackler-2.2.1.161 tracks/javascript/exercises/nucleotide-count/example.js
trackler-2.2.1.160 tracks/javascript/exercises/nucleotide-count/example.js