def consensus_validation(prediction_raw, consensus)
      return 1 if prediction_raw.length != consensus.length
      # no of conserved residues among the hits
      no_conserved_residues = consensus.length - consensus.scan(/[\?-]/).length

      return 1 if no_conserved_residues.zero?

      # no of conserved residues from the hita that appear in the prediction
      no_conserved_pred = consensus.split(//).each_index.count { |j| consensus[j] != '-' && consensus[j] != '?' && consensus[j] == prediction_raw[j] }

      no_conserved_pred / (no_conserved_residues + 0.0)
    end
def consensus_validation(prediction_raw, consensus)
      return 1 if prediction_raw.length != consensus.length
      # no of conserved residues among the hits
      no_conserved_residues = consensus.length - consensus.scan(/[\?-]/).length

      return 1 if no_conserved_residues.zero?

      # no of conserved residues from the hita that appear in the prediction
      no_conserved_pred = consensus.split(//).each_index.count { |j| consensus[j] != '-' && consensus[j] != '?' && consensus[j] == prediction_raw[j] }

      no_conserved_pred / (no_conserved_residues + 0.0)
    end
Returns the percentage of consesnsus residues from the ma
 that are in the prediction
 Params:
 +prediction_raw+: +String+ corresponding to the prediction sequence
 +consensus+: +String+ corresponding to the statistical model
 Output:
 +Fixnum+ with the score