function [matrix, matrixInfo] = nuc44
%NUC44 returns the NUC44 nucleotide scoring matrix.
%
%   NUC44 uses ambiguous nucleotide codes, with probabilities rounded to
%   nearest integer.
%
%   Scale =  0.277316
%   Expected score = -1.7495024, Entropy = 0.5164710 bits
%   Lowest score = -4, Highest score = 5
%
%   Order:
%   A  C  G  T  R  Y  K  M  S  W  B  D  H  V  N
%
%   [MATRIX,MATRIXINFO] = NUC44 returns the structure of information about
%   the matrix with Name and Order.

%   Source: ftp://ftp.ncbi.nih.gov/blast/matrices/
%   $Revision: 1.3.4.1 $  $Date: 2003/08/29 04:37:23 $

matrix = [...
    5 -4 -4 -4  1 -4 -4  1 -4  1 -4 -1 -1 -1 -2;...
   -4  5 -4 -4 -4  1 -4  1  1 -4 -1 -4 -1 -1 -2;...
   -4 -4  5 -4  1 -4  1 -4  1 -4 -1 -1 -4 -1 -2;...
   -4 -4 -4  5 -4  1  1 -4 -4  1 -1 -1 -1 -4 -2;...
    1 -4  1 -4 -1 -4 -2 -2 -2 -2 -3 -1 -3 -1 -1;...
   -4  1 -4  1 -4 -1 -2 -2 -2 -2 -1 -3 -1 -3 -1;...
   -4 -4  1  1 -2 -2 -1 -4 -2 -2 -1 -1 -3 -3 -1;...
    1  1 -4 -4 -2 -2 -4 -1 -2 -2 -3 -3 -1 -1 -1;...
   -4  1  1 -4 -2 -2 -2 -2 -1 -4 -1 -3 -3 -1 -1;...
    1 -4 -4  1 -2 -2 -2 -2 -4 -1 -3 -1 -1 -3 -1;...
   -4 -1 -1 -1 -3 -1 -1 -3 -1 -3 -1 -2 -2 -2 -1;...
   -1 -4 -1 -1 -1 -3 -1 -3 -3 -1 -2 -1 -2 -2 -1;...
   -1 -1 -4 -1 -3 -1 -3 -1 -3 -1 -2 -2 -1 -2 -1;...
   -1 -1 -1 -4 -1 -3 -3 -1 -1 -3 -2 -2 -2 -1 -1;...
   -2 -2 -2 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1;...
];
  
if nargout >1
    matrixInfo.Name = 'NUC4.4';
    matrixInfo.Scale = 0.277316;
    matrixInfo.Entropy = 0.5164710 ;
    matrixInfo.ExpectedScore = -1.7495024;
    matrixInfo.LowestScore = -4;
    matrixInfo.HighestScore = 5;
    matrixInfo.Order = 'ACGTRYKMSWBDHVN';
end
