function [matrix, matrixInfo] = pam420
%PAM420 substitution matrix in 1/6 bit units,
%   Expected score = -0.599, Entropy = 0.124 bits
%   Lowest score = -10, Highest score = 31
%
%   Order:
%   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
%
%   [MATRIX,MATRIXINFO] = PAM420 returns a structure of information about
%   the matrix with fields Name, Scale, Entropy, ExpectedScore, LowestScore,
%   HighestScore and Order.

% Source:  ftp://ftp.ncbi.nih.gov/blast/matrices/
%   $Revision: 1.5 $ 

matrix = [...
    1  -1   0   1  -2   0   1   2  -1   0  -2   0  -1  -4   1   1   1  -7  -4   0   1   0   0 -10;...
   -1   6   1   0  -4   2   0  -2   2  -2  -3   4   0  -5   0   0   0   4  -5  -2   0   1   0 -10;...
    0   1   1   2  -4   1   2   1   1  -2  -3   1  -1  -4   0   1   0  -5  -3  -1   2   2   0 -10;...
    1   0   2   3  -5   2   3   1   1  -2  -4   1  -2  -6   0   1   0  -8  -5  -2   3   3   0 -10;...
   -2  -4  -4  -5  20  -6  -6  -3  -4  -3  -7  -6  -6  -4  -3   0  -2 -10   1  -2  -5  -6  -3 -10;...
    0   2   1   2  -6   3   2   0   3  -2  -2   1  -1  -5   1   0   0  -5  -4  -2   2   3   0 -10;...
    1   0   2   3  -6   2   3   1   1  -2  -3   1  -2  -6   0   1   0  -8  -5  -2   3   3   0 -10;...
    2  -2   1   1  -3   0   1   5  -1  -2  -4  -1  -2  -6   0   1   1  -8  -6  -1   1   0   0 -10;...
   -1   2   1   1  -4   3   1  -1   6  -2  -2   1  -2  -2   0   0  -1  -3   0  -2   1   2   0 -10;...
    0  -2  -2  -2  -3  -2  -2  -2  -2   4   4  -2   3   2  -2  -1   0  -6   0   4  -2  -2   0 -10;...
   -2  -3  -3  -4  -7  -2  -3  -4  -2   4   7  -3   5   4  -2  -3  -1  -2   1   3  -3  -3  -1 -10;...
    0   4   1   1  -6   1   1  -1   1  -2  -3   5   0  -6   0   0   0  -3  -5  -2   1   1   0 -10;...
   -1   0  -1  -2  -6  -1  -2  -2  -2   3   5   0   5   1  -2  -1   0  -4  -1   2  -2  -1   0 -10;...
   -4  -5  -4  -6  -4  -5  -6  -6  -2   2   4  -6   1  13  -5  -4  -3   2  12   0  -5  -5  -2 -10;...
    1   0   0   0  -3   1   0   0   0  -2  -2   0  -2  -5   5   1   1  -6  -5  -1   0   0   0 -10;...
    1   0   1   1   0   0   1   1   0  -1  -3   0  -1  -4   1   1   1  -3  -3  -1   1   0   0 -10;...
    1   0   0   0  -2   0   0   1  -1   0  -1   0   0  -3   1   1   1  -6  -3   0   0   0   0 -10;...
   -7   4  -5  -8 -10  -5  -8  -8  -3  -6  -2  -3  -4   2  -6  -3  -6  31   2  -7  -6  -7  -4 -10;...
   -4  -5  -3  -5   1  -4  -5  -6   0   0   1  -5  -1  12  -5  -3  -3   2  15  -2  -4  -5  -2 -10;...
    0  -2  -1  -2  -2  -2  -2  -1  -2   4   3  -2   2   0  -1  -1   0  -7  -2   4  -2  -2   0 -10;...
    1   0   2   3  -5   2   3   1   1  -2  -3   1  -2  -5   0   1   0  -6  -4  -2   2   2   0 -10;...
    0   1   2   3  -6   3   3   0   2  -2  -3   1  -1  -5   0   0   0  -7  -5  -2   2   3   0 -10;...
    0   0   0   0  -3   0   0   0   0   0  -1   0   0  -2   0   0   0  -4  -2   0   0   0  -1 -10;...
  -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10   1;...
    ];

if nargout >1
    matrixInfo.Name = 'PAM420';
    matrixInfo.Scale = 1/6;
    matrixInfo.Entropy = 0.124 ;
    matrixInfo.ExpectedScore = -0.599;
    matrixInfo.LowestScore = -10;
    matrixInfo.HighestScore = 31;
    matrixInfo.Order = 'ARNDCQEGHILKMFPSTWYVBZX*';
end

