class BioDSL::Hamming

Class for calculating Hamming distance.

Public Class Methods

check_strings(str1, str2) click to toggle source

Check that string lengths are equal.

@param str1 [String] String 1. @param str2 [String] String 2.

@raise [HammingError] if string lengths mismatch.

# File lib/BioDSL/hamming.rb, line 62
def self.check_strings(str1, str2)
  return if str1.length == str2.length

  fail HammingError, "bad string lengths: #{str1.length} != #{str2.length}"
end
distance(str1, str2, options = {}) click to toggle source

Class method for calculating the Hamming distance between two given strings optionally allowing for IUPAC ambiguity codes.

@param str1 [String] String 1. @param str2 [String] String 2. @param options [Hash] Options hash. @option options [Boolean] :ambiguity

# File lib/BioDSL/hamming.rb, line 44
def self.distance(str1, str2, options = {})
  check_strings(str1, str2)

  hd = new

  if options[:ambiguity]
    hd.hamming_distance_ambiguity_C(str1, str2, str1.length)
  else
    hd.hamming_distance_C(str1, str2, str1.length)
  end
end