diff --git a/Biobase/BLAST/Import.hs b/Biobase/BLAST/Import.hs
--- a/Biobase/BLAST/Import.hs
+++ b/Biobase/BLAST/Import.hs
@@ -3,7 +3,9 @@
 
 -- | Parses NCBI BLAST+ tabular output
 
-module Biobase.BLAST.Import (blastFromFile,
+module Biobase.BLAST.Import (blastCmdJSON2FromFile,
+                             parseJSONBlast,
+                             blastFromFile,
                              parseTabularBlasts,
                              parseTabularHTTPBlasts,
                              blastHTTPFromFile
@@ -22,8 +24,27 @@
 import Debug.Trace
 import Text.Printf
 import Biobase.BLAST.Types
+import Data.Aeson as A
 
 -- | reads and parses tabular Blast result from provided filePath
+blastCmdJSON2FromFile :: String -> IO (Either String BlastCmdJSON2)
+blastCmdJSON2FromFile filePath = do
+  printf "# reading blast JSON2 input from file %s\n" filePath
+  blastFileExists <- doesFileExist filePath
+  if blastFileExists
+     then do
+       bs <- B.readFile filePath
+       let json = parseJSONBlastCmd bs
+       return json
+     else fail "# JSON2 blast file \"%s\" does not exist\n" filePath
+
+parseJSONBlastCmd :: B.ByteString -> Either String BlastCmdJSON2
+parseJSONBlastCmd bs = A.eitherDecode bs :: Either String BlastCmdJSON2
+
+parseJSONBlast :: B.ByteString -> Either String BlastJSON2
+parseJSONBlast bs = A.eitherDecode bs :: Either String BlastJSON2
+
+-- | reads and parses tabular Blast result from provided filePath
 blastFromFile :: String -> IO [BlastTabularResult]
 blastFromFile filePath = do
   printf "# reading tabular blast input from file %s\n" filePath
@@ -32,7 +53,7 @@
      then parseTabularBlasts <$> B.readFile filePath
      else fail "# tabular blast file \"%s\" does not exist\n" filePath
 
-  -- | reads and parses tabular HTTP Blast result from provided filePath
+-- | reads and parses tabular HTTP Blast result from provided filePath
 blastHTTPFromFile :: String -> IO [BlastTabularResult]
 blastHTTPFromFile filePath = do
   printf "# reading tabular blast input from file %s\n" filePath
@@ -182,6 +203,13 @@
     _bitScore <- double <?> "hit bs"
     char '\n'
     return $ BlastTabularHit (B.fromStrict _queryId) (B.fromStrict _subjectId) _seqIdentity _alignmentLength _misMatches _gapOpenScore _queryStart _queryEnd _hitSeqStart _hitSeqEnd _eValue _bitScore 0 B.empty B.empty
+
+-- Blast evalues can be reported as e.g. .051e-22 not supported by double parsing
+readEvalue :: C.ByteString -> Double
+readEvalue eValBs
+  | (head stringEval) == '.' = read ('0':(stringEval)) :: Double
+  | otherwise = read stringEval :: Double
+  where stringEval = C.unpack eValBs
 
 --IUPAC amino acid with gap
 --aminoacidLetters :: Char -> Bool
diff --git a/Biobase/BLAST/Types.hs b/Biobase/BLAST/Types.hs
--- a/Biobase/BLAST/Types.hs
+++ b/Biobase/BLAST/Types.hs
@@ -1,4 +1,9 @@
-
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DeriveAnyClass #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE RankNTypes #-}
 -- | Encoding of tabular NCBI BLAST+ output
 
 module Biobase.BLAST.Types where
@@ -10,40 +15,235 @@
 import qualified Data.ByteString.Builder as S
 import qualified Data.ByteString.Lazy.Char8 as B
 import qualified Data.Vector as V
+import qualified Data.Text as T
 import System.Directory
 import Data.Char
 import Control.Monad
-import Debug.Trace
 import Text.Printf
+import GHC.Generics
+import Data.Aeson
+import Data.Aeson.TH
+import Data.Aeson.Types
+import qualified Data.HashMap.Strict as HM
+import qualified Data.Sequence as DS
+import Control.Lens
 
+-- | Turn all keys in a JSON object to lowercase.
+jsonLower :: Value -> Value
+jsonLower (Object o) = Object . HM.fromList . map lowerPair . HM.toList $ o
+  where lowerPair (key, val) = (T.toLower key, val)
+jsonLower x = x
+
+newtype BlastJSON2 = BlastJSON2
+  {
+    _blastoutput2 :: BlastOutput2
+  }
+  deriving (Show, Eq, Generic)
+
+newtype BlastCmdJSON2 = BlastCmdJSON2
+  {
+    _blastcmdoutput2 :: [BlastOutput2]
+  }
+  deriving (Show, Eq, Generic)
+
+--instance FromJSON BlastJSON2 where
+--  parseJSON = genericParseJSON opts . jsonLower
+--    where
+--      opts = defaultOptions { fieldLabelModifier = map toLower }
+
+newtype BlastOutput2 = BlastOutput2
+  {
+    _report :: BlastReport
+  }
+  deriving (Show, Eq, Generic)
+
+data BlastReport = BlastReport
+  { _program :: !T.Text,
+    _version :: !T.Text,
+    _reference :: !T.Text,
+    _search_target :: !SearchTarget,
+    _params :: !Params,
+    _results :: !BlastJSONResult
+  }
+  deriving (Show, Eq, Generic)
+
+newtype SearchTarget =  SearchTarget
+  {
+    _db :: T.Text
+  }
+  deriving (Show, Eq, Generic)
+
+data Params = Params
+  {
+    _expect :: !Double,
+    _sc_match :: !Int,
+    _sc_mismatch :: !Int,
+    _gap_open :: !Int,
+    _gap_extend :: !Int,
+    _filter :: !T.Text
+  }
+  deriving (Show, Eq, Generic)
+
+data BlastJSONResult = BlastJSONResult
+  {
+    _search :: !Search
+  }
+  deriving (Show, Eq, Generic)
+
+data Search = Search
+  {
+    _query_id :: !T.Text,
+    _query_title :: !T.Text,
+    _query_len :: !Int,
+    _hits :: DS.Seq Hit,
+    _stat :: !SearchStat
+  }
+  deriving (Show, Eq, Generic)
+
+data Hit = Hit
+  {
+    _num :: !Int,
+    _description :: ![HitDescription],
+    _len :: !Int,
+    _hsps :: ![Hsp]
+  }
+  deriving (Show, Eq, Generic)
+
+data Hsp = Hsp
+  {
+    _hsp_num :: !Int, --actually just num in the output, but duplicate field exits in Hit
+    _bit_score :: !Double,
+    _score :: !Int,
+    _evalue :: !Double,
+    _identity :: !Int,
+    _query_from :: !Int,
+    _query_to :: !Int,
+    _query_strand :: !T.Text,
+    _hit_from :: !Int,
+    _hit_to :: !Int,
+    _hit_strand :: !T.Text,
+    _align_len :: !Int,
+    _gaps :: !Int,
+    _qseq :: !T.Text,
+    _hseq :: !T.Text,
+    _midline :: !T.Text
+  }
+  deriving (Show, Eq, Generic, ToJSON)
+
+instance FromJSON Hsp where
+ parseJSON (Object v) =
+    Hsp <$> v .: "num"
+        <*> v .: "bit_score"
+        <*> v .: "score"
+        <*> v .: "evalue"
+        <*> v .: "identity"
+        <*> v .: "query_from"
+        <*> v .: "query_to"
+        <*> v .: "query_strand"
+        <*> v .: "hit_from"
+        <*> v .: "hit_to"
+        <*> v .: "hit_strand"
+        <*> v .: "align_len"
+        <*> v .: "gaps"
+        <*> v .: "qseq"
+        <*> v .: "hseq"
+        <*> v .: "midline"
+ parseJSON _ = mzero
+
+
+data HitDescription = HitDescription
+  {
+    _id :: !T.Text,
+    _accession :: !T.Text,
+    _title :: !T.Text,
+    _taxid :: !Int
+    --_sciname :: !T.Text
+  }
+  deriving (Show, Eq, Generic)
+
+data SearchStat = SearchStat {
+    _db_num :: !Int,
+    _db_len :: !Int,
+    _hsp_len :: !Int,
+    _eff_space :: !Int,
+    _kappa :: !Double,
+    _lambda :: !Double,
+    _entropy :: !Double
+  }
+  deriving (Show, Eq, Generic)
+
 data BlastTabularResult = BlastTabularResult
-  { blastProgram :: !BlastProgram,
-    blastQueryId :: !B.ByteString,
+  { _blastProgram :: !BlastProgram,
+    _blastQueryId :: !B.ByteString,
 --    blastQueryName :: !B.ByteString,
-    blastDatabase :: !B.ByteString,
-    blastHitNumber :: !Int,
-    hitLines :: !(V.Vector BlastTabularHit)
+    _blastDatabase :: !B.ByteString,
+    _blastHitNumber :: !Int,
+    _hitLines :: !(V.Vector BlastTabularHit)
   }
   deriving (Show, Eq)
 
-data BlastProgram = BlastX | BlastP | BlastN
-  deriving (Show, Eq)
-
 data BlastTabularHit = BlastTabularHit
-  { queryId :: !B.ByteString,
-    subjectId ::  !B.ByteString,
-    seqIdentity :: !Double,
-    alignmentLength :: !Int,
-    misMatches :: !Int,
-    gapOpenScore :: !Int,
-    queryStart :: !Int,
-    queryEnd :: !Int,
-    hitSeqStart :: !Int,
-    hitSeqEnd :: !Int,
-    eValue :: !Double,
-    bitScore :: !Double,
-    subjectFrame :: !Int,
-    querySeq  :: !B.ByteString,
-    subjectSeq  :: !B.ByteString
+  { _queryId :: !B.ByteString,
+    _subjectId ::  !B.ByteString,
+    _seqIdentity :: !Double,
+    _alignmentLength :: !Int,
+    _misMatches :: !Int,
+    _gapOpenScore :: !Int,
+    _queryStart :: !Int,
+    _queryEnd :: !Int,
+    _hitSeqStart :: !Int,
+    _hitSeqEnd :: !Int,
+    _eValue :: !Double,
+    _bitScore :: !Double,
+    _subjectFrame :: !Int,
+    _querySeq  :: !B.ByteString,
+    _subjectSeq  :: !B.ByteString
   }
   deriving (Show, Eq)
+
+data BlastProgram = BlastX | BlastP | BlastN
+  deriving (Show, Eq)
+
+makeLenses ''BlastCmdJSON2
+--deriveJSON defaultOptions{fieldLabelModifier = (map toLower) . drop 1} ''BlastJSON2
+instance FromJSON BlastCmdJSON2 where
+  parseJSON (Object v) =
+    BlastCmdJSON2 <$> (v .: "BlastOutput2")
+  parseJSON _ = mzero
+instance ToJSON BlastCmdJSON2 where
+  toJSON (BlastCmdJSON2 _blastoutput2) =
+        object [ "BlastOutput2"  Data.Aeson.Types..= _blastoutput2 ]
+
+makeLenses ''BlastJSON2
+--deriveJSON defaultOptions{fieldLabelModifier = (map toLower) . drop 1} ''BlastJSON2
+instance FromJSON BlastJSON2 where
+  parseJSON (Object v) = BlastJSON2 <$> (v .: "BlastOutput2")
+  parseJSON _ = mzero
+
+instance ToJSON BlastJSON2 where
+  toJSON (BlastJSON2 _blastoutput2) = object [ "BlastOutput2"  Data.Aeson.Types..= _blastoutput2 ]
+--deriveJSON defaultOptions{fieldLabelModifier = drop 1} ''BlastJSON2
+makeLenses ''BlastOutput2
+deriveJSON defaultOptions{fieldLabelModifier = drop 1} ''BlastOutput2
+makeLenses ''BlastReport
+deriveJSON defaultOptions{fieldLabelModifier = drop 1} ''BlastReport
+makeLenses ''Params
+deriveJSON defaultOptions{fieldLabelModifier = drop 1} ''Params
+makeLenses ''BlastJSONResult
+deriveJSON defaultOptions{fieldLabelModifier = drop 1} ''BlastJSONResult
+makeLenses ''Search
+deriveJSON defaultOptions{fieldLabelModifier = drop 1} ''Search
+makeLenses ''Hit
+deriveJSON defaultOptions{fieldLabelModifier = drop 1} ''Hit
+makeLenses ''Hsp
+--deriveJSON defaultOptions{fieldLabelModifier = drop 1} ''Hsp
+makeLenses ''HitDescription
+deriveJSON defaultOptions{fieldLabelModifier = drop 1} ''HitDescription
+makeLenses ''SearchStat
+deriveJSON defaultOptions{fieldLabelModifier = drop 1} ''SearchStat
+makeLenses ''BlastTabularResult
+makeLenses ''BlastTabularHit
+makeLenses ''SearchTarget
+deriveJSON defaultOptions{fieldLabelModifier = drop 1} ''SearchTarget
+makeLenses ''BlastProgram
+deriveJSON defaultOptions{fieldLabelModifier = drop 1} ''BlastProgram
diff --git a/Biobase/SubstMatrix.hs b/Biobase/SubstMatrix.hs
--- a/Biobase/SubstMatrix.hs
+++ b/Biobase/SubstMatrix.hs
@@ -2,114 +2,111 @@
 module Biobase.SubstMatrix where
 
 import           Control.DeepSeq (NFData(..))
+import           Control.Lens
+import           Control.Monad.Except
+import           Control.Monad.IO.Class
 import           Data.Aeson (FromJSON,ToJSON)
 import           Data.Binary (Binary)
+import           Data.List (maximumBy,find)
 import           Data.Serialize (Serialize)
 import           Data.Vector.Unboxed.Deriving
 import           GHC.Generics (Generic)
+import           Numeric.Log
 import qualified Data.Map.Strict as M
 import qualified Data.Vector.Unboxed as VU
+import           System.Directory (doesFileExist)
+import           System.Exit (exitSuccess)
+import           Text.Printf
 
-import           Biobase.Primary.AA (AA,aaRange)
+import           Biobase.GeneticCodes.Translation
+import           Biobase.GeneticCodes.Types
+import           Biobase.Primary.AA (aaRange)
 import           Biobase.Primary.Letter
-import           Biobase.Primary.Nuc.DNA (DNA)
-import           Biobase.Primary.Trans (dnaAAmap)
-import           Biobase.Types.Odds
-import           Data.PrimitiveArray
+import           Biobase.Primary.Nuc.DNA ()
+import           Biobase.Primary.Trans
+import           Biobase.Types.BioSequence (DNA,AA)
+import           Biobase.Types.Codon
+import           Data.PrimitiveArray as PA
+import           Numeric.Discretized
 import qualified Biobase.Primary.AA as AA
-import qualified Biobase.Primary.Nuc.DNA as D
+import qualified Biobase.Primary.Nuc.DNA as DNA
+import           StatisticalMechanics.Ensemble
+import           Statistics.Odds
+import           Statistics.Probability
 
+import           Biobase.SubstMatrix.Embedded
+import           Biobase.SubstMatrix.Import
+import           Biobase.SubstMatrix.Types
 
 
--- | Denotes that we are dealing with a similarity score. Higher is more
--- similar.
 
-data Similarity
+-- | The usual substitution matrix, but here with a codon and an amino acid
+-- to be compared.
+--
+-- The resulting @AA@ are tagged with the name type from the @DNA n@.
+--
+-- TODO Definitely use the correct upper bound constants here!
 
--- | Denotes that we are dealing with a distance score. Lower is more
--- similar.
+mkANuc3SubstMat
+  ∷ TranslationTable (Letter DNA n) (Letter AA n)
+  → AASubstMat t (DiscLogOdds k) n
+  → ANuc3SubstMat t (Letter AA n, (DiscLogOdds k)) n n
+mkANuc3SubstMat tbl (AASubstMat m)
+  = ANuc3SubstMat
+  $ fromAssocs (ZZ:..LtLetter AA.Undef:..LtLetter DNA.N:..LtLetter DNA.N:..LtLetter DNA.N) (AA.Undef, DiscLogOdds . Discretized $ -999)
+    [ ( (Z:.a:.u:.v:.w)
+      , (t, m!(Z:.a:.t))
+      )
+    | a <- VU.toList aaRange
+    , u <- [DNA.A .. DNA.N], v <- [DNA.A .. DNA.N], w <- [DNA.A .. DNA.N]
+    , let b = Codon u v w
+    , let t = translate tbl b
+    ]
 
-data Distance
+-- | This function does the following:
+-- 1. check if @fname@ is a file, and if so try to load it.
+-- 2. if not, check if @fname@ happens to be the name of one of the known @PAM/BLOSUM@ tables.
 
--- An amino-acid substitution matrix. Tagged with the type of scoring used.
+fromFileOrCached ∷ (MonadIO m, MonadError String m) ⇒ FilePath → m (AASubstMat t (DiscLogOdds Unknown) a)
+fromFileOrCached fname = do
+  dfe ← liftIO $ doesFileExist fname
+  if | fname == "list" → do
+        mapM_ (liftIO . printf "%s\n" . fst) embeddedPamBlosum
+        liftIO exitSuccess
+     | dfe → fromFile fname
+     | Just (k,v) ← find ((fname==).fst) embeddedPamBlosum → return v
+     | otherwise → throwError $ fname ++ " is neither a file nor a known substitution matrix"
 
-newtype AASubstMat t = AASubstMat { aaSubstMat :: Unboxed (Z:.Letter AA:.Letter AA) DLO }
-  deriving (Generic,Eq,Read,Show)
+-- | Turn log-odds into log-probabilities. Normalizes over the whole set of
+-- values in the matrix.
 
-instance Binary    (AASubstMat t)
-instance Serialize (AASubstMat t)
---instance FromJSON  (AASubstMat t)
---instance ToJSON    (AASubstMat t)
+mkProbabilityMatrix
+  ∷ Double
+  → AASubstMat t (DiscLogOdds k) n
+  → AASubstMat t (Log (Probability NotNormalized Double)) n
+mkProbabilityMatrix invScale (AASubstMat dlo) = AASubstMat $ PA.map (/nrm) $ dbl
+  where dbl = PA.map (\(DiscLogOdds (Discretized k)) → stateLogProbability (negate invScale) $ fromIntegral @Int @Double k) dlo
+        nrm = maximum . Prelude.map snd $ PA.assocs dbl
 
-instance NFData (AASubstMat t)
 
--- | @PAM@ matrices are similarity matrices.
 
-type SubstPAM = AASubstMat Similarity
-
--- | @BLOSUM@ matrices are distance matrices.
-
-type SubstBLOSUM = AASubstMat Distance
-
--- | Substitution matrix from amino acids to nucleotide triplets.
-
-newtype ANuc3SubstMat t = ANuc3SubstMat { anuc3SubstMat :: Unboxed (Z:.Letter AA:.Letter DNA:.Letter DNA:.Letter DNA) DLO }
-  deriving (Generic,Eq,Read,Show)
-
-instance Binary    (ANuc3SubstMat t)
-instance Serialize (ANuc3SubstMat t)
---instance FromJSON  (ANuc3SubstMat t)
---instance ToJSON    (ANuc3SubstMat t)
-
-instance NFData (ANuc3SubstMat t)
-
--- | Substitution matrix from amino acids to degenerate nucleotide
--- 2-tuples. The third nucleotide letter is missing.
-
-newtype ANuc2SubstMat t = ANuc2SubstMat { anuc2SubstMat :: Unboxed (Z:.Letter AA:.Letter DNA:.Letter DNA) DLO }
-  deriving (Generic,Eq,Read,Show)
-
-instance Binary    (ANuc2SubstMat t)
-instance Serialize (ANuc2SubstMat t)
---instance FromJSON  (ANuc2SubstMat t)
---instance ToJSON    (ANuc2SubstMat t)
-
-instance NFData (ANuc2SubstMat t)
-
--- | Substitution matrix from amino acids to degenerate nucleotide
--- 1-tuples. Two out of three nucleotides in a triplet are missing.
-
-newtype ANuc1SubstMat t = ANuc1SubstMat { anuc1SubstMat :: Unboxed (Z:.Letter AA:.Letter DNA) DLO }
-  deriving (Generic,Eq,Read,Show)
-
-instance Binary    (ANuc1SubstMat t)
-instance Serialize (ANuc1SubstMat t)
---instance FromJSON  (ANuc1SubstMat t)
---instance ToJSON    (ANuc1SubstMat t)
-
-instance NFData (ANuc1SubstMat t)
-
--- | The usual substitution matrix, but here with a codon and an amino acid
--- to be compared.
-
-mkANuc3SubstMat :: AASubstMat t -> ANuc3SubstMat t
-mkANuc3SubstMat (AASubstMat m) = ANuc3SubstMat $ fromAssocs (Z:. AA.Stop :. D.A:.D.A:.D.A) (Z:. AA.Z :. D.N:.D.N:.D.N) (DLO $ -999)
-  [ ( (Z:.a:.u:.v:.w) , maybe (DLO $ -999) (\b -> m!(Z:.a:.b)) $ M.lookup uvw dnaAAmap)
-  | a <- aaRange
-  , u <- [D.A .. D.N], v <- [D.A .. D.N], w <- [D.A .. D.N]
-  , let uvw = VU.fromList [u,v,w]
-  ]
-
+{-
 -- | Create a 2-tuple to amino acid substitution matrix. Here, @f@ combines
 -- all to entries that have the same 2-tuple index.
 
-mkANuc2SubstMat :: (DLO -> DLO -> DLO) -> AASubstMat t -> ANuc2SubstMat t
-mkANuc2SubstMat f (AASubstMat m) = ANuc2SubstMat $ fromAssocs (Z:. AA.Stop :. D.A:.D.A) (Z:. AA.Z :. D.N:.D.N) (DLO $ -999)
+mkANuc2SubstMat
+  ∷ ((Z:.Letter AA:.Letter DNA:.Letter DNA) → (Letter AA, DiscLogOdds) → (Letter AA, DiscLogOdds) → Ordering)
+  → AASubstMat t DiscLogOdds
+  → ANuc2SubstMat t (Letter AA, DiscLogOdds)
+mkANuc2SubstMat f (AASubstMat m)
+  = ANuc2SubstMat
+  $ fromAssocs (ZZ:..LtLetter (length aaRange):..LtLetter 5:..LtLetter 5) (AA.Undef, DiscLogOdds $ -999)
   . M.assocs
-  . M.fromListWith f
-  $ [ ((Z:.a:.x:.y), maybe (DLO $ -999) (\k -> m!(Z:.a:.k)) $ M.lookup uvw dnaAAmap)
+  . M.mapWithKey (\k → maximumBy (f k))
+  . M.fromListWith (++)
+  $ [ ((Z:.a:.x:.y), [maybe (AA.Undef, DiscLogOdds $ -999) (\k -> (k, m!(Z:.a:.k))) $ M.lookup uvw dnaAAmap])
     | a <- aaRange
-    , u <- [D.A .. D.N], v <- [D.A .. D.N], w <- [D.A .. D.N]
+    , u <- [DNA.A .. DNA.N], v <- [DNA.A .. DNA.N], w <- [DNA.A .. DNA.N]
     , (x,y) <- [ (u,v), (u,w), (v,w) ]
     , let uvw = VU.fromList [u,v,w]
     ]
@@ -118,14 +115,21 @@
 -- the amino-acid / nucleotide substitution. Again, @f@ combines different
 -- entries.
 
-mkANuc1SubstMat :: (DLO -> DLO -> DLO) -> AASubstMat t -> ANuc1SubstMat t
-mkANuc1SubstMat f (AASubstMat m) = ANuc1SubstMat $ fromAssocs (Z:. AA.Stop :. D.A) (Z:. AA.Z :. D.N) (DLO $ -999)
+mkANuc1SubstMat
+  ∷ ((Z:.Letter AA:.Letter DNA) → (Letter AA, DiscLogOdds) → (Letter AA, DiscLogOdds) → Ordering)
+  → AASubstMat t DiscLogOdds
+  → ANuc1SubstMat t (Letter AA, DiscLogOdds)
+mkANuc1SubstMat f (AASubstMat m)
+  = ANuc1SubstMat
+  $ fromAssocs (ZZ:..LtLetter (length aaRange):..LtLetter 5) (AA.Undef, DiscLogOdds $ -999)
   . M.assocs
-  . M.fromListWith f
-  $ [ ((Z:.a:.x), maybe (DLO $ -999) (\k -> m!(Z:.a:.k)) $ M.lookup uvw dnaAAmap)
+  . M.mapWithKey (\k → maximumBy (f k))
+  . M.fromListWith (++)
+  $ [ ((Z:.a:.x), [maybe (AA.Undef, DiscLogOdds $ -999) (\k -> (k, m!(Z:.a:.k))) $ M.lookup uvw dnaAAmap])
     | a <- aaRange
-    , u <- [D.A .. D.N], v <- [D.A .. D.N], w <- [D.A .. D.N]
+    , u <- [DNA.A .. DNA.N], v <- [DNA.A .. DNA.N], w <- [DNA.A .. DNA.N]
     , x <- [u,v,w]
     , let uvw = VU.fromList [u,v,w]
     ]
+-}
 
diff --git a/Biobase/SubstMatrix/Embedded.hs b/Biobase/SubstMatrix/Embedded.hs
new file mode 100644
--- /dev/null
+++ b/Biobase/SubstMatrix/Embedded.hs
@@ -0,0 +1,25 @@
+
+module Biobase.SubstMatrix.Embedded where
+
+import Control.Monad.Except
+import Data.ByteString (ByteString)
+import Data.FileEmbed
+import Control.Arrow (second)
+
+import Numeric.Discretized
+import Statistics.Odds
+
+import Biobase.SubstMatrix.Import
+import Biobase.SubstMatrix.Types
+
+
+
+embeddedPamBlosumFiles ∷ [(FilePath,ByteString)]
+embeddedPamBlosumFiles = $(embedDir "sources/PamBlosum")
+
+embeddedPamBlosum ∷ [(FilePath,AASubstMat t (DiscLogOdds Unknown) a)]
+embeddedPamBlosum = either error id . runExcept
+                  . mapM (\(k,v) → fromByteString v >>= \mv → return (k,mv))
+                  $ embeddedPamBlosumFiles
+{-# NoInline embeddedPamBlosum #-}
+
diff --git a/Biobase/SubstMatrix/Hints.hs b/Biobase/SubstMatrix/Hints.hs
new file mode 100644
--- /dev/null
+++ b/Biobase/SubstMatrix/Hints.hs
@@ -0,0 +1,21 @@
+
+module Biobase.SubstMatrix.Hints where
+
+import Statistics.Odds
+import Numeric.Discretized
+
+import Biobase.SubstMatrix.Types
+
+
+
+-- | Provide recommendations for both, substitution matrix to use, and gap
+-- cost.
+
+recommendByQueryLength ∷ Int → (String, GapCost (DiscLogOdds Unknown))
+recommendByQueryLength k
+  | k <  35 = ("PAM30"   , gc ( -9) (-1))
+  | k <= 50 = ("PAM70"   , gc (-10) (-1))
+  | k <= 85 = ("BLOSUM80", gc (-10) (-1))
+  | k >  85 = ("BLOSUM62", gc (-10) (-1))
+  where gc init cont = GapCost { gcInit = DiscLogOdds $ Discretized init, gcCont = DiscLogOdds $ Discretized cont }
+
diff --git a/Biobase/SubstMatrix/Import.hs b/Biobase/SubstMatrix/Import.hs
--- a/Biobase/SubstMatrix/Import.hs
+++ b/Biobase/SubstMatrix/Import.hs
@@ -1,28 +1,45 @@
 
-module Biobase.SubstMatrix.Import where
+-- | Import PAM/BLOSUM substituion matrices.
 
+module Biobase.SubstMatrix.Import where
 
 import           Control.Applicative
+import           Control.Monad.Except
+import           Control.Monad.IO.Class
+import           Data.ByteString.Char8 (ByteString,unpack)
 import           Data.Char (toLower)
+import qualified Data.ByteString.Char8 as BS
 import qualified Data.Map as M
+import           System.Directory (doesFileExist)
 
 import           Biobase.Primary.AA (charAA)
-import           Biobase.Types.Odds
+import           Biobase.Primary.Letter (getLetter,LimitType(..))
 import           Data.PrimitiveArray hiding (map)
+import           Numeric.Discretized
 import qualified Biobase.Primary.AA as AA
+import           Statistics.Odds
 
-import           Biobase.SubstMatrix
+import           Biobase.SubstMatrix.Types
 
 
 
-fromFile :: FilePath -> IO (AASubstMat t)
-fromFile fname = do
-  (x:xs) <- dropWhile (("#"==).take 1) . lines <$> readFile fname
+-- | Import substituion matrix from a bytestring.
+--
+-- TODO the parser is fragile, since it uses @read@. This should be fixed.
+
+fromByteString ∷ (MonadError String m) ⇒ ByteString → m (AASubstMat t (DiscLogOdds k) a)
+fromByteString bs = do
+  let (x:xs) = dropWhile (("#"==).take 1) . lines $ unpack bs
   let cs = map head . words $ x -- should give us the characters encoding an amino acid
-  let ss = map (map DLO . map read . drop 1 . words) $ xs
+  let ss = map (map (DiscLogOdds . Discretized) . map read . drop 1 . words) $ xs
   let xs = [ ((Z:.charAA k1:.charAA k2),z)
            | (k1,s) <- zip cs ss
            , (k2,z) <- zip cs s
            ]
-  return . AASubstMat $ fromAssocs (Z:.AA.Stop:.AA.Stop) (Z:.AA.Z:.AA.Z) (DLO $ -999) xs
+  return . AASubstMat $ fromAssocs (ZZ:..LtLetter AA.Z:..LtLetter AA.Z) (DiscLogOdds . Discretized $ -999) xs
+
+-- | Import substitution matrix from file.
+
+fromFile ∷ (MonadIO m, MonadError String m) ⇒ FilePath → m (AASubstMat t (DiscLogOdds k) a)
+fromFile fname = liftIO (BS.readFile fname) >>= fromByteString
 
diff --git a/Biobase/SubstMatrix/Types.hs b/Biobase/SubstMatrix/Types.hs
new file mode 100644
--- /dev/null
+++ b/Biobase/SubstMatrix/Types.hs
@@ -0,0 +1,95 @@
+
+module Biobase.SubstMatrix.Types where
+
+import Control.Lens
+import GHC.Generics (Generic)
+
+import Algebra.Structure.Semiring
+import Biobase.Types.BioSequence (AA,DNA)
+import Biobase.Primary.AA (aaRange)
+import Biobase.Primary.Letter
+import Biobase.Primary.Nuc.DNA ()
+import Data.PrimitiveArray
+import Statistics.Odds
+import Numeric.Discretized
+
+
+
+-- | Denotes that we are dealing with a similarity score. Higher is more
+-- similar.
+
+data Similarity
+
+-- | Denotes that we are dealing with a distance score. Lower is more
+-- similar.
+
+data Distance
+
+-- An amino-acid substitution matrix. Tagged with the type of scoring used.
+
+newtype AASubstMat t s a = AASubstMat { _aaSubstMat :: Unboxed (Z:.Letter AA a:.Letter AA a) s }
+  deriving (Generic,Eq,Read,Show)
+makeLenses ''AASubstMat
+
+--instance Binary    (AASubstMat t)
+--instance Serialize (AASubstMat t)
+--instance FromJSON  (AASubstMat t)
+--instance (ToJSON s, VU.Unbox s, Generic s) ⇒ ToJSON    (AASubstMat t s)
+
+--instance NFData (AASubstMat t s)
+
+-- | @PAM@ matrices are similarity matrices.
+
+type SubstPAM = AASubstMat Similarity (DiscLogOdds Unknown)
+
+-- | @BLOSUM@ matrices are distance matrices.
+
+type SubstBLOSUM = AASubstMat Distance (DiscLogOdds Unknown)
+
+-- | Substitution matrix from amino acids to nucleotide triplets.
+
+newtype ANuc3SubstMat t s a n = ANuc3SubstMat { _anuc3SubstMat :: Unboxed (Z:.Letter AA a:.Letter DNA n:.Letter DNA n:.Letter DNA n) s }
+  deriving (Generic,Eq,Read,Show)
+makeLenses ''ANuc3SubstMat
+
+--instance Binary    (ANuc3SubstMat t)
+--instance Serialize (ANuc3SubstMat t)
+--instance FromJSON  (ANuc3SubstMat t)
+--instance ToJSON    (ANuc3SubstMat t)
+
+--instance NFData (ANuc3SubstMat t)
+
+-- | Substitution matrix from amino acids to degenerate nucleotide
+-- 2-tuples. The third nucleotide letter is missing.
+
+newtype ANuc2SubstMat t s a n = ANuc2SubstMat { _anuc2SubstMat :: Unboxed (Z:.Letter AA a:.Letter DNA n:.Letter DNA n) s }
+  deriving (Generic,Eq,Read,Show)
+makeLenses ''ANuc2SubstMat
+
+--instance Binary    (ANuc2SubstMat t)
+--instance Serialize (ANuc2SubstMat t)
+--instance FromJSON  (ANuc2SubstMat t)
+--instance ToJSON    (ANuc2SubstMat t)
+
+--instance NFData (ANuc2SubstMat t)
+
+-- | Substitution matrix from amino acids to degenerate nucleotide
+-- 1-tuples. Two out of three nucleotides in a triplet are missing.
+
+newtype ANuc1SubstMat t s a n = ANuc1SubstMat { _anuc1SubstMat :: Unboxed (Z:.Letter AA a:.Letter DNA n) s }
+  deriving (Generic,Eq,Read,Show)
+makeLenses ''ANuc1SubstMat
+
+--instance Binary    (ANuc1SubstMat t)
+--instance Serialize (ANuc1SubstMat t)
+--instance FromJSON  (ANuc1SubstMat t)
+--instance ToJSON    (ANuc1SubstMat t)
+
+--instance NFData (ANuc1SubstMat t)
+
+
+
+data GapCost t = GapCost
+  { gcInit ∷ !t
+  , gcCont ∷ !t
+  }
diff --git a/BiobaseBlast.cabal b/BiobaseBlast.cabal
--- a/BiobaseBlast.cabal
+++ b/BiobaseBlast.cabal
@@ -1,22 +1,23 @@
 name:           BiobaseBlast
-version:        0.2.1.0
+version:        0.3.0.0
 author:         Christian Hoener zu Siederdissen, Florian Eggenhofer
 maintainer:     choener@bioinf.uni-leipzig.de
 homepage:       https://github.com/choener/BiobaseBlast
 bug-reports:    https://github.com/choener/BiobaseBlast/issues
-copyright:      Christian Hoener zu Siederdissen, 2013 - 2017
+copyright:      Christian Hoener zu Siederdissen, 2013 - 2019
 category:       Bioinformatics
 license:        GPL-3
 license-file:   LICENSE
 build-type:     Simple
 stability:      experimental
 cabal-version:  >= 1.10.0
-tested-with:    GHC == 7.10.3, GHC == 8.0.1, GHC == 8.0.2
+tested-with:    GHC == 8.4.4
 synopsis:       BLAST-related tools
 description:
                 This library contains BLAST-related functionality:
                 .
                 - Parser for tabular NCBI BLAST+ output
+                - Parser for JSON2 NCBI BLAST+ output
                 - Parsers for BLOSUM and PAM matrices.
                 - Specialized substitution functions for (in)complete amino
                   acid / nucleotide triplet substitution.
@@ -34,6 +35,101 @@
   README.md
   tests/succeed/*.golden
   tests/succeed/*.test
+  -- because nobody would ever want to distribute files without extensions ... :(
+  sources/PamBlosum/BLOSUM45.50
+  sources/PamBlosum/BLOSUM45
+  sources/PamBlosum/BLOSUM40.50
+  sources/PamBlosum/BLOSUM40
+  sources/PamBlosum/BLOSUM35.50
+  sources/PamBlosum/BLOSUM35
+  sources/PamBlosum/BLOSUM30.50
+  sources/PamBlosum/BLOSUM30
+  sources/PamBlosum/BLOSUM100.50
+  sources/PamBlosum/BLOSUM100
+  sources/PamBlosum/BLOSUM90
+  sources/PamBlosum/BLOSUM85.50
+  sources/PamBlosum/BLOSUM85
+  sources/PamBlosum/BLOSUM80.50
+  sources/PamBlosum/BLOSUM80
+  sources/PamBlosum/BLOSUM75.50
+  sources/PamBlosum/BLOSUM75
+  sources/PamBlosum/BLOSUM70.50
+  sources/PamBlosum/BLOSUM70
+  sources/PamBlosum/BLOSUM65.50
+  sources/PamBlosum/BLOSUM65
+  sources/PamBlosum/BLOSUM62.50
+  sources/PamBlosum/BLOSUM62
+  sources/PamBlosum/BLOSUM60.50
+  sources/PamBlosum/BLOSUM60
+  sources/PamBlosum/BLOSUM55.50
+  sources/PamBlosum/BLOSUM55
+  sources/PamBlosum/BLOSUM50.50
+  sources/PamBlosum/BLOSUM50
+  sources/PamBlosum/PAM160.cdi
+  sources/PamBlosum/PAM160
+  sources/PamBlosum/PAM150
+  sources/PamBlosum/PAM140
+  sources/PamBlosum/PAM130
+  sources/PamBlosum/PAM120.cdi
+  sources/PamBlosum/PAM120
+  sources/PamBlosum/PAM110
+  sources/PamBlosum/PAM100
+  sources/PamBlosum/PAM10
+  sources/PamBlosum/NUC.4.4
+  sources/PamBlosum/NUC.4.2
+  sources/PamBlosum/MATCH
+  sources/PamBlosum/IDENTITY
+  sources/PamBlosum/GONNET
+  sources/PamBlosum/DAYHOFF
+  sources/PamBlosum/BLOSUMN.50
+  sources/PamBlosum/BLOSUMN
+  sources/PamBlosum/BLOSUM90.50
+  sources/PamBlosum/PAM310
+  sources/PamBlosum/PAM300
+  sources/PamBlosum/PAM30
+  sources/PamBlosum/PAM290
+  sources/PamBlosum/PAM280
+  sources/PamBlosum/PAM270
+  sources/PamBlosum/PAM260
+  sources/PamBlosum/PAM250.cdi
+  sources/PamBlosum/PAM250
+  sources/PamBlosum/PAM240
+  sources/PamBlosum/PAM230
+  sources/PamBlosum/PAM220
+  sources/PamBlosum/PAM210
+  sources/PamBlosum/PAM200.cdi
+  sources/PamBlosum/PAM200
+  sources/PamBlosum/PAM20
+  sources/PamBlosum/PAM190
+  sources/PamBlosum/PAM180
+  sources/PamBlosum/PAM170
+  sources/PamBlosum/PAM490
+  sources/PamBlosum/PAM480
+  sources/PamBlosum/PAM470
+  sources/PamBlosum/PAM460
+  sources/PamBlosum/PAM450
+  sources/PamBlosum/PAM440
+  sources/PamBlosum/PAM430
+  sources/PamBlosum/PAM420
+  sources/PamBlosum/PAM410
+  sources/PamBlosum/PAM40.cdi
+  sources/PamBlosum/PAM400
+  sources/PamBlosum/PAM40
+  sources/PamBlosum/PAM390
+  sources/PamBlosum/PAM380
+  sources/PamBlosum/PAM370
+  sources/PamBlosum/PAM360
+  sources/PamBlosum/PAM350
+  sources/PamBlosum/PAM340
+  sources/PamBlosum/PAM330
+  sources/PamBlosum/PAM320
+  sources/PamBlosum/PAM90
+  sources/PamBlosum/PAM80.cdi
+  sources/PamBlosum/PAM80
+  sources/PamBlosum/PAM70
+  sources/PamBlosum/PAM60
+  sources/PamBlosum/PAM500
+  sources/PamBlosum/PAM50
 
 library
   build-depends: base             >= 4.7      && < 5.0
@@ -45,26 +141,44 @@
                , containers
                , deepseq          >= 1.3
                , directory
-               , vector           >= 0.10
+               , file-embed       >= 0.0.10
+               , lens             >= 4.0
+               , log-domain       >= 0.12
+               , mtl              >= 2.0
+               , text
+               , unordered-containers
+               , vector           >= 0.11
                , vector-th-unbox  >= 0.2
                --
-               , BiobaseTypes     == 0.1.2.*
-               , BiobaseXNA       == 0.9.3.*
-               , PrimitiveArray   == 0.8.0.*
+               , BiobaseENA       == 0.0.0.*
+               , BiobaseTypes     == 0.2.0.*
+               , BiobaseXNA       == 0.11.0.*
+               , PrimitiveArray   == 0.9.1.*
+               , SciBaseTypes     == 0.1.0.*
 
   default-language:
     Haskell2010
-  default-extensions: DeriveGeneric
+  default-extensions: BangPatterns
+                    , DataKinds
+                    , DeriveGeneric
+                    , FlexibleContexts
                     , MultiParamTypeClasses
+                    , MultiWayIf
+                    , PolyKinds
                     , TemplateHaskell
+                    , TypeApplications
                     , TypeFamilies
                     , TypeOperators
+                    , UnicodeSyntax
   exposed-modules:
-    Biobase.SubstMatrix
-    Biobase.SubstMatrix.Import
     Biobase.BLAST
     Biobase.BLAST.Import
     Biobase.BLAST.Types
+    Biobase.SubstMatrix
+    Biobase.SubstMatrix.Embedded
+    Biobase.SubstMatrix.Hints
+    Biobase.SubstMatrix.Import
+    Biobase.SubstMatrix.Types
 
   ghc-options:
     -O2
@@ -107,5 +221,5 @@
 
 source-repository this
   type:     git
-  location: https://github.com/choener/BiobaseBlast/tree/0.2.1.0
-  tag:      0.2.1.0
+  location: https://github.com/choener/BiobaseBlast/tree/0.3.0.0
+  tag:      0.3.0.0
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,11 @@
+0.3.0.0
+-------
+
+- generalized IO-based functions to MonadIO. This should be non-breaking in
+  most cases.
+- Added parsing functionality for JSON2 NCBI BLAST+ output
+- currently tags all DNA/AA letters with ()
+
 0.2.0.0
 -------
 
diff --git a/sources/PamBlosum/BLOSUM100 b/sources/PamBlosum/BLOSUM100
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUM100
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosum100_3.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/3 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 100
+#  Entropy =   1.4516, Expected =  -1.0948
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  8 -3 -4 -5 -2 -2 -3 -1 -4 -4 -4 -2 -3 -5 -2  1 -1 -6 -5 -2 -4 -2 -2 -10 
+R -3 10 -2 -5 -8  0 -2 -6 -1 -7 -6  3 -4 -6 -5 -3 -3 -7 -5 -6 -4 -1 -3 -10 
+N -4 -2 11  1 -5 -1 -2 -2  0 -7 -7 -1 -5 -7 -5  0 -1 -8 -5 -7  5 -2 -3 -10 
+D -5 -5  1 10 -8 -2  2 -4 -3 -8 -8 -3 -8 -8 -5 -2 -4 -10 -7 -8  6  0 -4 -10 
+C -2 -8 -5 -8 14 -7 -9 -7 -8 -3 -5 -8 -4 -4 -8 -3 -3 -7 -6 -3 -7 -8 -5 -10 
+Q -2  0 -1 -2 -7 11  2 -5  1 -6 -5  2 -2 -6 -4 -2 -3 -5 -4 -5 -2  5 -2 -10 
+E -3 -2 -2  2 -9  2 10 -6 -2 -7 -7  0 -5 -8 -4 -2 -3 -8 -7 -5  0  7 -3 -10 
+G -1 -6 -2 -4 -7 -5 -6  9 -6 -9 -8 -5 -7 -8 -6 -2 -5 -7 -8 -8 -3 -5 -4 -10 
+H -4 -1  0 -3 -8  1 -2 -6 13 -7 -6 -3 -5 -4 -5 -3 -4 -5  1 -7 -2 -1 -4 -10 
+I -4 -7 -7 -8 -3 -6 -7 -9 -7  8  2 -6  1 -2 -7 -5 -3 -6 -4  4 -8 -7 -3 -10 
+L -4 -6 -7 -8 -5 -5 -7 -8 -6  2  8 -6  3  0 -7 -6 -4 -5 -4  0 -8 -6 -3 -10 
+K -2  3 -1 -3 -8  2  0 -5 -3 -6 -6 10 -4 -6 -3 -2 -3 -8 -5 -5 -2  0 -3 -10 
+M -3 -4 -5 -8 -4 -2 -5 -7 -5  1  3 -4 12 -1 -5 -4 -2 -4 -5  0 -7 -4 -3 -10 
+F -5 -6 -7 -8 -4 -6 -8 -8 -4 -2  0 -6 -1 11 -7 -5 -5  0  4 -3 -7 -7 -4 -10 
+P -2 -5 -5 -5 -8 -4 -4 -6 -5 -7 -7 -3 -5 -7 12 -3 -4 -8 -7 -6 -5 -4 -4 -10 
+S  1 -3  0 -2 -3 -2 -2 -2 -3 -5 -6 -2 -4 -5 -3  9  2 -7 -5 -4 -1 -2 -2 -10 
+T -1 -3 -1 -4 -3 -3 -3 -5 -4 -3 -4 -3 -2 -5 -4  2  9 -7 -5 -1 -2 -3 -2 -10 
+W -6 -7 -8 -10 -7 -5 -8 -7 -5 -6 -5 -8 -4  0 -8 -7 -7 17  2 -5 -9 -7 -6 -10 
+Y -5 -5 -5 -7 -6 -4 -7 -8  1 -4 -4 -5 -5  4 -7 -5 -5  2 12 -5 -6 -6 -4 -10 
+V -2 -6 -7 -8 -3 -5 -5 -8 -7  4  0 -5  0 -3 -6 -4 -1 -5 -5  8 -7 -5 -3 -10 
+B -4 -4  5  6 -7 -2  0 -3 -2 -8 -8 -2 -7 -7 -5 -1 -2 -9 -6 -7  6  0 -4 -10 
+Z -2 -1 -2  0 -8  5  7 -5 -1 -7 -6  0 -4 -7 -4 -2 -3 -7 -6 -5  0  6 -2 -10 
+X -2 -3 -3 -4 -5 -2 -3 -4 -4 -3 -3 -3 -3 -4 -4 -2 -2 -6 -4 -3 -4 -2 -3 -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 
diff --git a/sources/PamBlosum/BLOSUM100.50 b/sources/PamBlosum/BLOSUM100.50
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUM100.50
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosum100_3.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/3 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 100
+#  Entropy =   1.4516, Expected =  -1.0948
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  8 -3 -4 -5 -2 -2 -3 -1 -4 -4 -4 -2 -3 -5 -2  1 -1 -6 -5 -2 -4 -2 -2 -10 
+R -3 10 -2 -5 -8  0 -2 -6 -1 -7 -6  3 -4 -6 -5 -3 -3 -7 -5 -6 -4 -1 -3 -10 
+N -4 -2 11  1 -5 -1 -2 -2  0 -7 -7 -1 -5 -7 -5  0 -1 -8 -5 -7  5 -2 -3 -10 
+D -5 -5  1 10 -8 -2  2 -4 -3 -8 -8 -3 -8 -8 -5 -2 -4 -10 -7 -8  6  0 -4 -10 
+C -2 -8 -5 -8 14 -7 -9 -7 -8 -3 -5 -8 -4 -4 -8 -3 -3 -7 -6 -3 -7 -8 -5 -10 
+Q -2  0 -1 -2 -7 11  2 -5  1 -6 -5  2 -2 -6 -4 -2 -3 -5 -4 -5 -2  5 -2 -10 
+E -3 -2 -2  2 -9  2 10 -6 -2 -7 -7  0 -5 -8 -4 -2 -3 -8 -7 -5  0  7 -3 -10 
+G -1 -6 -2 -4 -7 -5 -6  9 -6 -9 -8 -5 -7 -8 -6 -2 -5 -7 -8 -8 -3 -5 -4 -10 
+H -4 -1  0 -3 -8  1 -2 -6 13 -7 -6 -3 -5 -4 -5 -3 -4 -5  1 -7 -2 -1 -4 -10 
+I -4 -7 -7 -8 -3 -6 -7 -9 -7  8  2 -6  1 -2 -7 -5 -3 -6 -4  4 -8 -7 -3 -10 
+L -4 -6 -7 -8 -5 -5 -7 -8 -6  2  8 -6  3  0 -7 -6 -4 -5 -4  0 -8 -6 -3 -10 
+K -2  3 -1 -3 -8  2  0 -5 -3 -6 -6 10 -4 -6 -3 -2 -3 -8 -5 -5 -2  0 -3 -10 
+M -3 -4 -5 -8 -4 -2 -5 -7 -5  1  3 -4 12 -1 -5 -4 -2 -4 -5  0 -7 -4 -3 -10 
+F -5 -6 -7 -8 -4 -6 -8 -8 -4 -2  0 -6 -1 11 -7 -5 -5  0  4 -3 -7 -7 -4 -10 
+P -2 -5 -5 -5 -8 -4 -4 -6 -5 -7 -7 -3 -5 -7 12 -3 -4 -8 -7 -6 -5 -4 -4 -10 
+S  1 -3  0 -2 -3 -2 -2 -2 -3 -5 -6 -2 -4 -5 -3  9  2 -7 -5 -4 -1 -2 -2 -10 
+T -1 -3 -1 -4 -3 -3 -3 -5 -4 -3 -4 -3 -2 -5 -4  2  9 -7 -5 -1 -2 -3 -2 -10 
+W -6 -7 -8 -10 -7 -5 -8 -7 -5 -6 -5 -8 -4  0 -8 -7 -7 17  2 -5 -9 -7 -6 -10 
+Y -5 -5 -5 -7 -6 -4 -7 -8  1 -4 -4 -5 -5  4 -7 -5 -5  2 12 -5 -6 -6 -4 -10 
+V -2 -6 -7 -8 -3 -5 -5 -8 -7  4  0 -5  0 -3 -6 -4 -1 -5 -5  8 -7 -5 -3 -10 
+B -4 -4  5  6 -7 -2  0 -3 -2 -8 -8 -2 -7 -7 -5 -1 -2 -9 -6 -7  6  0 -4 -10 
+Z -2 -1 -2  0 -8  5  7 -5 -1 -7 -6  0 -4 -7 -4 -2 -3 -7 -6 -5  0  6 -2 -10 
+X -2 -3 -3 -4 -5 -2 -3 -4 -4 -3 -3 -3 -3 -4 -4 -2 -2 -6 -4 -3 -4 -2 -3 -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 
diff --git a/sources/PamBlosum/BLOSUM30 b/sources/PamBlosum/BLOSUM30
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUM30
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosum30.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/5 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 30
+#  Entropy =   0.1424, Expected =  -0.1074
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  4 -1  0  0 -3  1  0  0 -2  0 -1  0  1 -2 -1  1  1 -5 -4  1  0  0  0 -7 
+R -1  8 -2 -1 -2  3 -1 -2 -1 -3 -2  1  0 -1 -1 -1 -3  0  0 -1 -2  0 -1 -7 
+N  0 -2  8  1 -1 -1 -1  0 -1  0 -2  0  0 -1 -3  0  1 -7 -4 -2  4 -1  0 -7 
+D  0 -1  1  9 -3 -1  1 -1 -2 -4 -1  0 -3 -5 -1  0 -1 -4 -1 -2  5  0 -1 -7 
+C -3 -2 -1 -3 17 -2  1 -4 -5 -2  0 -3 -2 -3 -3 -2 -2 -2 -6 -2 -2  0 -2 -7 
+Q  1  3 -1 -1 -2  8  2 -2  0 -2 -2  0 -1 -3  0 -1  0 -1 -1 -3 -1  4  0 -7 
+E  0 -1 -1  1  1  2  6 -2  0 -3 -1  2 -1 -4  1  0 -2 -1 -2 -3  0  5 -1 -7 
+G  0 -2  0 -1 -4 -2 -2  8 -3 -1 -2 -1 -2 -3 -1  0 -2  1 -3 -3  0 -2 -1 -7 
+H -2 -1 -1 -2 -5  0  0 -3 14 -2 -1 -2  2 -3  1 -1 -2 -5  0 -3 -2  0 -1 -7 
+I  0 -3  0 -4 -2 -2 -3 -1 -2  6  2 -2  1  0 -3 -1  0 -3 -1  4 -2 -3  0 -7 
+L -1 -2 -2 -1  0 -2 -1 -2 -1  2  4 -2  2  2 -3 -2  0 -2  3  1 -1 -1  0 -7 
+K  0  1  0  0 -3  0  2 -1 -2 -2 -2  4  2 -1  1  0 -1 -2 -1 -2  0  1  0 -7 
+M  1  0  0 -3 -2 -1 -1 -2  2  1  2  2  6 -2 -4 -2  0 -3 -1  0 -2 -1  0 -7 
+F -2 -1 -1 -5 -3 -3 -4 -3 -3  0  2 -1 -2 10 -4 -1 -2  1  3  1 -3 -4 -1 -7 
+P -1 -1 -3 -1 -3  0  1 -1  1 -3 -3  1 -4 -4 11 -1  0 -3 -2 -4 -2  0 -1 -7 
+S  1 -1  0  0 -2 -1  0  0 -1 -1 -2  0 -2 -1 -1  4  2 -3 -2 -1  0 -1  0 -7 
+T  1 -3  1 -1 -2  0 -2 -2 -2  0  0 -1  0 -2  0  2  5 -5 -1  1  0 -1  0 -7 
+W -5  0 -7 -4 -2 -1 -1  1 -5 -3 -2 -2 -3  1 -3 -3 -5 20  5 -3 -5 -1 -2 -7 
+Y -4  0 -4 -1 -6 -1 -2 -3  0 -1  3 -1 -1  3 -2 -2 -1  5  9  1 -3 -2 -1 -7 
+V  1 -1 -2 -2 -2 -3 -3 -3 -3  4  1 -2  0  1 -4 -1  1 -3  1  5 -2 -3  0 -7 
+B  0 -2  4  5 -2 -1  0  0 -2 -2 -1  0 -2 -3 -2  0  0 -5 -3 -2  5  0 -1 -7 
+Z  0  0 -1  0  0  4  5 -2  0 -3 -1  1 -1 -4  0 -1 -1 -1 -2 -3  0  4  0 -7 
+X  0 -1  0 -1 -2  0 -1 -1 -1  0  0  0  0 -1 -1  0  0 -2 -1  0 -1  0 -1 -7 
+* -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7  1 
diff --git a/sources/PamBlosum/BLOSUM30.50 b/sources/PamBlosum/BLOSUM30.50
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUM30.50
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosum30.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/5 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 30
+#  Entropy =   0.1424, Expected =  -0.1074
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  4 -1  0  0 -3  1  0  0 -2  0 -1  0  1 -2 -1  1  1 -5 -4  1  0  0  0 -7 
+R -1  8 -2 -1 -2  3 -1 -2 -1 -3 -2  1  0 -1 -1 -1 -3  0  0 -1 -2  0 -1 -7 
+N  0 -2  8  1 -1 -1 -1  0 -1  0 -2  0  0 -1 -3  0  1 -7 -4 -2  4 -1  0 -7 
+D  0 -1  1  9 -3 -1  1 -1 -2 -4 -1  0 -3 -5 -1  0 -1 -4 -1 -2  5  0 -1 -7 
+C -3 -2 -1 -3 17 -2  1 -4 -5 -2  0 -3 -2 -3 -3 -2 -2 -2 -6 -2 -2  0 -2 -7 
+Q  1  3 -1 -1 -2  8  2 -2  0 -2 -2  0 -1 -3  0 -1  0 -1 -1 -3 -1  4  0 -7 
+E  0 -1 -1  1  1  2  6 -2  0 -3 -1  2 -1 -4  1  0 -2 -1 -2 -3  0  5 -1 -7 
+G  0 -2  0 -1 -4 -2 -2  8 -3 -1 -2 -1 -2 -3 -1  0 -2  1 -3 -3  0 -2 -1 -7 
+H -2 -1 -1 -2 -5  0  0 -3 14 -2 -1 -2  2 -3  1 -1 -2 -5  0 -3 -2  0 -1 -7 
+I  0 -3  0 -4 -2 -2 -3 -1 -2  6  2 -2  1  0 -3 -1  0 -3 -1  4 -2 -3  0 -7 
+L -1 -2 -2 -1  0 -2 -1 -2 -1  2  4 -2  2  2 -3 -2  0 -2  3  1 -1 -1  0 -7 
+K  0  1  0  0 -3  0  2 -1 -2 -2 -2  4  2 -1  1  0 -1 -2 -1 -2  0  1  0 -7 
+M  1  0  0 -3 -2 -1 -1 -2  2  1  2  2  6 -2 -4 -2  0 -3 -1  0 -2 -1  0 -7 
+F -2 -1 -1 -5 -3 -3 -4 -3 -3  0  2 -1 -2 10 -4 -1 -2  1  3  1 -3 -4 -1 -7 
+P -1 -1 -3 -1 -3  0  1 -1  1 -3 -3  1 -4 -4 11 -1  0 -3 -2 -4 -2  0 -1 -7 
+S  1 -1  0  0 -2 -1  0  0 -1 -1 -2  0 -2 -1 -1  4  2 -3 -2 -1  0 -1  0 -7 
+T  1 -3  1 -1 -2  0 -2 -2 -2  0  0 -1  0 -2  0  2  5 -5 -1  1  0 -1  0 -7 
+W -5  0 -7 -4 -2 -1 -1  1 -5 -3 -2 -2 -3  1 -3 -3 -5 20  5 -3 -5 -1 -2 -7 
+Y -4  0 -4 -1 -6 -1 -2 -3  0 -1  3 -1 -1  3 -2 -2 -1  5  9  1 -3 -2 -1 -7 
+V  1 -1 -2 -2 -2 -3 -3 -3 -3  4  1 -2  0  1 -4 -1  1 -3  1  5 -2 -3  0 -7 
+B  0 -2  4  5 -2 -1  0  0 -2 -2 -1  0 -2 -3 -2  0  0 -5 -3 -2  5  0 -1 -7 
+Z  0  0 -1  0  0  4  5 -2  0 -3 -1  1 -1 -4  0 -1 -1 -1 -2 -3  0  4  0 -7 
+X  0 -1  0 -1 -2  0 -1 -1 -1  0  0  0  0 -1 -1  0  0 -2 -1  0 -1  0 -1 -7 
+* -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7  1 
diff --git a/sources/PamBlosum/BLOSUM35 b/sources/PamBlosum/BLOSUM35
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUM35
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosum35.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/4 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 35
+#  Entropy =   0.2111, Expected =  -0.1550
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  5 -1 -1 -1 -2  0 -1  0 -2 -1 -2  0  0 -2 -2  1  0 -2 -1  0 -1 -1  0 -5 
+R -1  8 -1 -1 -3  2 -1 -2 -1 -3 -2  2  0 -1 -2 -1 -2  0  0 -1 -1  0 -1 -5 
+N -1 -1  7  1 -1  1 -1  1  1 -1 -2  0 -1 -1 -2  0  0 -2 -2 -2  4  0  0 -5 
+D -1 -1  1  8 -3 -1  2 -2  0 -3 -2 -1 -3 -3 -1 -1 -1 -3 -2 -2  5  1 -1 -5 
+C -2 -3 -1 -3 15 -3 -1 -3 -4 -4 -2 -2 -4 -4 -4 -3 -1 -5 -5 -2 -2 -2 -2 -5 
+Q  0  2  1 -1 -3  7  2 -2 -1 -2 -2  0 -1 -4  0  0  0 -1  0 -3  0  4 -1 -5 
+E -1 -1 -1  2 -1  2  6 -2 -1 -3 -1  1 -2 -3  0  0 -1 -1 -1 -2  0  5 -1 -5 
+G  0 -2  1 -2 -3 -2 -2  7 -2 -3 -3 -1 -1 -3 -2  1 -2 -1 -2 -3  0 -2 -1 -5 
+H -2 -1  1  0 -4 -1 -1 -2 12 -3 -2 -2  1 -3 -1 -1 -2 -4  0 -4  0 -1 -1 -5 
+I -1 -3 -1 -3 -4 -2 -3 -3 -3  5  2 -2  1  1 -1 -2 -1 -1  0  4 -2 -3  0 -5 
+L -2 -2 -2 -2 -2 -2 -1 -3 -2  2  5 -2  3  2 -3 -2  0  0  0  2 -2 -2  0 -5 
+K  0  2  0 -1 -2  0  1 -1 -2 -2 -2  5  0 -1  0  0  0  0 -1 -2  0  1  0 -5 
+M  0  0 -1 -3 -4 -1 -2 -1  1  1  3  0  6  0 -3 -1  0  1  0  1 -2 -2  0 -5 
+F -2 -1 -1 -3 -4 -4 -3 -3 -3  1  2 -1  0  8 -4 -1 -1  1  3  1 -2 -3 -1 -5 
+P -2 -2 -2 -1 -4  0  0 -2 -1 -1 -3  0 -3 -4 10 -2  0 -4 -3 -3 -1  0 -1 -5 
+S  1 -1  0 -1 -3  0  0  1 -1 -2 -2  0 -1 -1 -2  4  2 -2 -1 -1  0  0  0 -5 
+T  0 -2  0 -1 -1  0 -1 -2 -2 -1  0  0  0 -1  0  2  5 -2 -2  1 -1 -1  0 -5 
+W -2  0 -2 -3 -5 -1 -1 -1 -4 -1  0  0  1  1 -4 -2 -2 16  3 -2 -3 -1 -1 -5 
+Y -1  0 -2 -2 -5  0 -1 -2  0  0  0 -1  0  3 -3 -1 -2  3  8  0 -2 -1 -1 -5 
+V  0 -1 -2 -2 -2 -3 -2 -3 -4  4  2 -2  1  1 -3 -1  1 -2  0  5 -2 -2  0 -5 
+B -1 -1  4  5 -2  0  0  0  0 -2 -2  0 -2 -2 -1  0 -1 -3 -2 -2  5  0 -1 -5 
+Z -1  0  0  1 -2  4  5 -2 -1 -3 -2  1 -2 -3  0  0 -1 -1 -1 -2  0  4  0 -5 
+X  0 -1  0 -1 -2 -1 -1 -1 -1  0  0  0  0 -1 -1  0  0 -1 -1  0 -1  0 -1 -5 
+* -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5  1 
diff --git a/sources/PamBlosum/BLOSUM35.50 b/sources/PamBlosum/BLOSUM35.50
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUM35.50
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosum35.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/4 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 35
+#  Entropy =   0.2111, Expected =  -0.1550
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  5 -1 -1 -1 -2  0 -1  0 -2 -1 -2  0  0 -2 -2  1  0 -2 -1  0 -1 -1  0 -5 
+R -1  8 -1 -1 -3  2 -1 -2 -1 -3 -2  2  0 -1 -2 -1 -2  0  0 -1 -1  0 -1 -5 
+N -1 -1  7  1 -1  1 -1  1  1 -1 -2  0 -1 -1 -2  0  0 -2 -2 -2  4  0  0 -5 
+D -1 -1  1  8 -3 -1  2 -2  0 -3 -2 -1 -3 -3 -1 -1 -1 -3 -2 -2  5  1 -1 -5 
+C -2 -3 -1 -3 15 -3 -1 -3 -4 -4 -2 -2 -4 -4 -4 -3 -1 -5 -5 -2 -2 -2 -2 -5 
+Q  0  2  1 -1 -3  7  2 -2 -1 -2 -2  0 -1 -4  0  0  0 -1  0 -3  0  4 -1 -5 
+E -1 -1 -1  2 -1  2  6 -2 -1 -3 -1  1 -2 -3  0  0 -1 -1 -1 -2  0  5 -1 -5 
+G  0 -2  1 -2 -3 -2 -2  7 -2 -3 -3 -1 -1 -3 -2  1 -2 -1 -2 -3  0 -2 -1 -5 
+H -2 -1  1  0 -4 -1 -1 -2 12 -3 -2 -2  1 -3 -1 -1 -2 -4  0 -4  0 -1 -1 -5 
+I -1 -3 -1 -3 -4 -2 -3 -3 -3  5  2 -2  1  1 -1 -2 -1 -1  0  4 -2 -3  0 -5 
+L -2 -2 -2 -2 -2 -2 -1 -3 -2  2  5 -2  3  2 -3 -2  0  0  0  2 -2 -2  0 -5 
+K  0  2  0 -1 -2  0  1 -1 -2 -2 -2  5  0 -1  0  0  0  0 -1 -2  0  1  0 -5 
+M  0  0 -1 -3 -4 -1 -2 -1  1  1  3  0  6  0 -3 -1  0  1  0  1 -2 -2  0 -5 
+F -2 -1 -1 -3 -4 -4 -3 -3 -3  1  2 -1  0  8 -4 -1 -1  1  3  1 -2 -3 -1 -5 
+P -2 -2 -2 -1 -4  0  0 -2 -1 -1 -3  0 -3 -4 10 -2  0 -4 -3 -3 -1  0 -1 -5 
+S  1 -1  0 -1 -3  0  0  1 -1 -2 -2  0 -1 -1 -2  4  2 -2 -1 -1  0  0  0 -5 
+T  0 -2  0 -1 -1  0 -1 -2 -2 -1  0  0  0 -1  0  2  5 -2 -2  1 -1 -1  0 -5 
+W -2  0 -2 -3 -5 -1 -1 -1 -4 -1  0  0  1  1 -4 -2 -2 16  3 -2 -3 -1 -1 -5 
+Y -1  0 -2 -2 -5  0 -1 -2  0  0  0 -1  0  3 -3 -1 -2  3  8  0 -2 -1 -1 -5 
+V  0 -1 -2 -2 -2 -3 -2 -3 -4  4  2 -2  1  1 -3 -1  1 -2  0  5 -2 -2  0 -5 
+B -1 -1  4  5 -2  0  0  0  0 -2 -2  0 -2 -2 -1  0 -1 -3 -2 -2  5  0 -1 -5 
+Z -1  0  0  1 -2  4  5 -2 -1 -3 -2  1 -2 -3  0  0 -1 -1 -1 -2  0  4  0 -5 
+X  0 -1  0 -1 -2 -1 -1 -1 -1  0  0  0  0 -1 -1  0  0 -1 -1  0 -1  0 -1 -5 
+* -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5  1 
diff --git a/sources/PamBlosum/BLOSUM40 b/sources/PamBlosum/BLOSUM40
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUM40
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosum40.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/4 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 40
+#  Entropy =   0.2851, Expected =  -0.2090
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  5 -2 -1 -1 -2  0 -1  1 -2 -1 -2 -1 -1 -3 -2  1  0 -3 -2  0 -1 -1  0 -6 
+R -2  9  0 -1 -3  2 -1 -3  0 -3 -2  3 -1 -2 -3 -1 -2 -2 -1 -2 -1  0 -1 -6 
+N -1  0  8  2 -2  1 -1  0  1 -2 -3  0 -2 -3 -2  1  0 -4 -2 -3  4  0 -1 -6 
+D -1 -1  2  9 -2 -1  2 -2  0 -4 -3  0 -3 -4 -2  0 -1 -5 -3 -3  6  1 -1 -6 
+C -2 -3 -2 -2 16 -4 -2 -3 -4 -4 -2 -3 -3 -2 -5 -1 -1 -6 -4 -2 -2 -3 -2 -6 
+Q  0  2  1 -1 -4  8  2 -2  0 -3 -2  1 -1 -4 -2  1 -1 -1 -1 -3  0  4 -1 -6 
+E -1 -1 -1  2 -2  2  7 -3  0 -4 -2  1 -2 -3  0  0 -1 -2 -2 -3  1  5 -1 -6 
+G  1 -3  0 -2 -3 -2 -3  8 -2 -4 -4 -2 -2 -3 -1  0 -2 -2 -3 -4 -1 -2 -1 -6 
+H -2  0  1  0 -4  0  0 -2 13 -3 -2 -1  1 -2 -2 -1 -2 -5  2 -4  0  0 -1 -6 
+I -1 -3 -2 -4 -4 -3 -4 -4 -3  6  2 -3  1  1 -2 -2 -1 -3  0  4 -3 -4 -1 -6 
+L -2 -2 -3 -3 -2 -2 -2 -4 -2  2  6 -2  3  2 -4 -3 -1 -1  0  2 -3 -2 -1 -6 
+K -1  3  0  0 -3  1  1 -2 -1 -3 -2  6 -1 -3 -1  0  0 -2 -1 -2  0  1 -1 -6 
+M -1 -1 -2 -3 -3 -1 -2 -2  1  1  3 -1  7  0 -2 -2 -1 -2  1  1 -3 -2  0 -6 
+F -3 -2 -3 -4 -2 -4 -3 -3 -2  1  2 -3  0  9 -4 -2 -1  1  4  0 -3 -4 -1 -6 
+P -2 -3 -2 -2 -5 -2  0 -1 -2 -2 -4 -1 -2 -4 11 -1  0 -4 -3 -3 -2 -1 -2 -6 
+S  1 -1  1  0 -1  1  0  0 -1 -2 -3  0 -2 -2 -1  5  2 -5 -2 -1  0  0  0 -6 
+T  0 -2  0 -1 -1 -1 -1 -2 -2 -1 -1  0 -1 -1  0  2  6 -4 -1  1  0 -1  0 -6 
+W -3 -2 -4 -5 -6 -1 -2 -2 -5 -3 -1 -2 -2  1 -4 -5 -4 19  3 -3 -4 -2 -2 -6 
+Y -2 -1 -2 -3 -4 -1 -2 -3  2  0  0 -1  1  4 -3 -2 -1  3  9 -1 -3 -2 -1 -6 
+V  0 -2 -3 -3 -2 -3 -3 -4 -4  4  2 -2  1  0 -3 -1  1 -3 -1  5 -3 -3 -1 -6 
+B -1 -1  4  6 -2  0  1 -1  0 -3 -3  0 -3 -3 -2  0  0 -4 -3 -3  5  2 -1 -6 
+Z -1  0  0  1 -3  4  5 -2  0 -4 -2  1 -2 -4 -1  0 -1 -2 -2 -3  2  5 -1 -6 
+X  0 -1 -1 -1 -2 -1 -1 -1 -1 -1 -1 -1  0 -1 -2  0  0 -2 -1 -1 -1 -1 -1 -6 
+* -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6  1 
diff --git a/sources/PamBlosum/BLOSUM40.50 b/sources/PamBlosum/BLOSUM40.50
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUM40.50
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosum40.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/4 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 40
+#  Entropy =   0.2851, Expected =  -0.2090
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  5 -2 -1 -1 -2  0 -1  1 -2 -1 -2 -1 -1 -3 -2  1  0 -3 -2  0 -1 -1  0 -6 
+R -2  9  0 -1 -3  2 -1 -3  0 -3 -2  3 -1 -2 -3 -1 -2 -2 -1 -2 -1  0 -1 -6 
+N -1  0  8  2 -2  1 -1  0  1 -2 -3  0 -2 -3 -2  1  0 -4 -2 -3  4  0 -1 -6 
+D -1 -1  2  9 -2 -1  2 -2  0 -4 -3  0 -3 -4 -2  0 -1 -5 -3 -3  6  1 -1 -6 
+C -2 -3 -2 -2 16 -4 -2 -3 -4 -4 -2 -3 -3 -2 -5 -1 -1 -6 -4 -2 -2 -3 -2 -6 
+Q  0  2  1 -1 -4  8  2 -2  0 -3 -2  1 -1 -4 -2  1 -1 -1 -1 -3  0  4 -1 -6 
+E -1 -1 -1  2 -2  2  7 -3  0 -4 -2  1 -2 -3  0  0 -1 -2 -2 -3  1  5 -1 -6 
+G  1 -3  0 -2 -3 -2 -3  8 -2 -4 -4 -2 -2 -3 -1  0 -2 -2 -3 -4 -1 -2 -1 -6 
+H -2  0  1  0 -4  0  0 -2 13 -3 -2 -1  1 -2 -2 -1 -2 -5  2 -4  0  0 -1 -6 
+I -1 -3 -2 -4 -4 -3 -4 -4 -3  6  2 -3  1  1 -2 -2 -1 -3  0  4 -3 -4 -1 -6 
+L -2 -2 -3 -3 -2 -2 -2 -4 -2  2  6 -2  3  2 -4 -3 -1 -1  0  2 -3 -2 -1 -6 
+K -1  3  0  0 -3  1  1 -2 -1 -3 -2  6 -1 -3 -1  0  0 -2 -1 -2  0  1 -1 -6 
+M -1 -1 -2 -3 -3 -1 -2 -2  1  1  3 -1  7  0 -2 -2 -1 -2  1  1 -3 -2  0 -6 
+F -3 -2 -3 -4 -2 -4 -3 -3 -2  1  2 -3  0  9 -4 -2 -1  1  4  0 -3 -4 -1 -6 
+P -2 -3 -2 -2 -5 -2  0 -1 -2 -2 -4 -1 -2 -4 11 -1  0 -4 -3 -3 -2 -1 -2 -6 
+S  1 -1  1  0 -1  1  0  0 -1 -2 -3  0 -2 -2 -1  5  2 -5 -2 -1  0  0  0 -6 
+T  0 -2  0 -1 -1 -1 -1 -2 -2 -1 -1  0 -1 -1  0  2  6 -4 -1  1  0 -1  0 -6 
+W -3 -2 -4 -5 -6 -1 -2 -2 -5 -3 -1 -2 -2  1 -4 -5 -4 19  3 -3 -4 -2 -2 -6 
+Y -2 -1 -2 -3 -4 -1 -2 -3  2  0  0 -1  1  4 -3 -2 -1  3  9 -1 -3 -2 -1 -6 
+V  0 -2 -3 -3 -2 -3 -3 -4 -4  4  2 -2  1  0 -3 -1  1 -3 -1  5 -3 -3 -1 -6 
+B -1 -1  4  6 -2  0  1 -1  0 -3 -3  0 -3 -3 -2  0  0 -4 -3 -3  5  2 -1 -6 
+Z -1  0  0  1 -3  4  5 -2  0 -4 -2  1 -2 -4 -1  0 -1 -2 -2 -3  2  5 -1 -6 
+X  0 -1 -1 -1 -2 -1 -1 -1 -1 -1 -1 -1  0 -1 -2  0  0 -2 -1 -1 -1 -1 -1 -6 
+* -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6  1 
diff --git a/sources/PamBlosum/BLOSUM45 b/sources/PamBlosum/BLOSUM45
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUM45
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosum45.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/3 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 45
+#  Entropy =   0.3795, Expected =  -0.2789
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  5 -2 -1 -2 -1 -1 -1  0 -2 -1 -1 -1 -1 -2 -1  1  0 -2 -2  0 -1 -1  0 -5 
+R -2  7  0 -1 -3  1  0 -2  0 -3 -2  3 -1 -2 -2 -1 -1 -2 -1 -2 -1  0 -1 -5 
+N -1  0  6  2 -2  0  0  0  1 -2 -3  0 -2 -2 -2  1  0 -4 -2 -3  4  0 -1 -5 
+D -2 -1  2  7 -3  0  2 -1  0 -4 -3  0 -3 -4 -1  0 -1 -4 -2 -3  5  1 -1 -5 
+C -1 -3 -2 -3 12 -3 -3 -3 -3 -3 -2 -3 -2 -2 -4 -1 -1 -5 -3 -1 -2 -3 -2 -5 
+Q -1  1  0  0 -3  6  2 -2  1 -2 -2  1  0 -4 -1  0 -1 -2 -1 -3  0  4 -1 -5 
+E -1  0  0  2 -3  2  6 -2  0 -3 -2  1 -2 -3  0  0 -1 -3 -2 -3  1  4 -1 -5 
+G  0 -2  0 -1 -3 -2 -2  7 -2 -4 -3 -2 -2 -3 -2  0 -2 -2 -3 -3 -1 -2 -1 -5 
+H -2  0  1  0 -3  1  0 -2 10 -3 -2 -1  0 -2 -2 -1 -2 -3  2 -3  0  0 -1 -5 
+I -1 -3 -2 -4 -3 -2 -3 -4 -3  5  2 -3  2  0 -2 -2 -1 -2  0  3 -3 -3 -1 -5 
+L -1 -2 -3 -3 -2 -2 -2 -3 -2  2  5 -3  2  1 -3 -3 -1 -2  0  1 -3 -2 -1 -5 
+K -1  3  0  0 -3  1  1 -2 -1 -3 -3  5 -1 -3 -1 -1 -1 -2 -1 -2  0  1 -1 -5 
+M -1 -1 -2 -3 -2  0 -2 -2  0  2  2 -1  6  0 -2 -2 -1 -2  0  1 -2 -1 -1 -5 
+F -2 -2 -2 -4 -2 -4 -3 -3 -2  0  1 -3  0  8 -3 -2 -1  1  3  0 -3 -3 -1 -5 
+P -1 -2 -2 -1 -4 -1  0 -2 -2 -2 -3 -1 -2 -3  9 -1 -1 -3 -3 -3 -2 -1 -1 -5 
+S  1 -1  1  0 -1  0  0  0 -1 -2 -3 -1 -2 -2 -1  4  2 -4 -2 -1  0  0  0 -5 
+T  0 -1  0 -1 -1 -1 -1 -2 -2 -1 -1 -1 -1 -1 -1  2  5 -3 -1  0  0 -1  0 -5 
+W -2 -2 -4 -4 -5 -2 -3 -2 -3 -2 -2 -2 -2  1 -3 -4 -3 15  3 -3 -4 -2 -2 -5 
+Y -2 -1 -2 -2 -3 -1 -2 -3  2  0  0 -1  0  3 -3 -2 -1  3  8 -1 -2 -2 -1 -5 
+V  0 -2 -3 -3 -1 -3 -3 -3 -3  3  1 -2  1  0 -3 -1  0 -3 -1  5 -3 -3 -1 -5 
+B -1 -1  4  5 -2  0  1 -1  0 -3 -3  0 -2 -3 -2  0  0 -4 -2 -3  4  2 -1 -5 
+Z -1  0  0  1 -3  4  4 -2  0 -3 -2  1 -1 -3 -1  0 -1 -2 -2 -3  2  4 -1 -5 
+X  0 -1 -1 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1  0  0 -2 -1 -1 -1 -1 -1 -5 
+* -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5  1 
diff --git a/sources/PamBlosum/BLOSUM45.50 b/sources/PamBlosum/BLOSUM45.50
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUM45.50
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosum45.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/3 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 45
+#  Entropy =   0.3795, Expected =  -0.2789
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  5 -2 -1 -2 -1 -1 -1  0 -2 -1 -1 -1 -1 -2 -1  1  0 -2 -2  0 -1 -1  0 -5 
+R -2  7  0 -1 -3  1  0 -2  0 -3 -2  3 -1 -2 -2 -1 -1 -2 -1 -2 -1  0 -1 -5 
+N -1  0  6  2 -2  0  0  0  1 -2 -3  0 -2 -2 -2  1  0 -4 -2 -3  4  0 -1 -5 
+D -2 -1  2  7 -3  0  2 -1  0 -4 -3  0 -3 -4 -1  0 -1 -4 -2 -3  5  1 -1 -5 
+C -1 -3 -2 -3 12 -3 -3 -3 -3 -3 -2 -3 -2 -2 -4 -1 -1 -5 -3 -1 -2 -3 -2 -5 
+Q -1  1  0  0 -3  6  2 -2  1 -2 -2  1  0 -4 -1  0 -1 -2 -1 -3  0  4 -1 -5 
+E -1  0  0  2 -3  2  6 -2  0 -3 -2  1 -2 -3  0  0 -1 -3 -2 -3  1  4 -1 -5 
+G  0 -2  0 -1 -3 -2 -2  7 -2 -4 -3 -2 -2 -3 -2  0 -2 -2 -3 -3 -1 -2 -1 -5 
+H -2  0  1  0 -3  1  0 -2 10 -3 -2 -1  0 -2 -2 -1 -2 -3  2 -3  0  0 -1 -5 
+I -1 -3 -2 -4 -3 -2 -3 -4 -3  5  2 -3  2  0 -2 -2 -1 -2  0  3 -3 -3 -1 -5 
+L -1 -2 -3 -3 -2 -2 -2 -3 -2  2  5 -3  2  1 -3 -3 -1 -2  0  1 -3 -2 -1 -5 
+K -1  3  0  0 -3  1  1 -2 -1 -3 -3  5 -1 -3 -1 -1 -1 -2 -1 -2  0  1 -1 -5 
+M -1 -1 -2 -3 -2  0 -2 -2  0  2  2 -1  6  0 -2 -2 -1 -2  0  1 -2 -1 -1 -5 
+F -2 -2 -2 -4 -2 -4 -3 -3 -2  0  1 -3  0  8 -3 -2 -1  1  3  0 -3 -3 -1 -5 
+P -1 -2 -2 -1 -4 -1  0 -2 -2 -2 -3 -1 -2 -3  9 -1 -1 -3 -3 -3 -2 -1 -1 -5 
+S  1 -1  1  0 -1  0  0  0 -1 -2 -3 -1 -2 -2 -1  4  2 -4 -2 -1  0  0  0 -5 
+T  0 -1  0 -1 -1 -1 -1 -2 -2 -1 -1 -1 -1 -1 -1  2  5 -3 -1  0  0 -1  0 -5 
+W -2 -2 -4 -4 -5 -2 -3 -2 -3 -2 -2 -2 -2  1 -3 -4 -3 15  3 -3 -4 -2 -2 -5 
+Y -2 -1 -2 -2 -3 -1 -2 -3  2  0  0 -1  0  3 -3 -2 -1  3  8 -1 -2 -2 -1 -5 
+V  0 -2 -3 -3 -1 -3 -3 -3 -3  3  1 -2  1  0 -3 -1  0 -3 -1  5 -3 -3 -1 -5 
+B -1 -1  4  5 -2  0  1 -1  0 -3 -3  0 -2 -3 -2  0  0 -4 -2 -3  4  2 -1 -5 
+Z -1  0  0  1 -3  4  4 -2  0 -3 -2  1 -1 -3 -1  0 -1 -2 -2 -3  2  4 -1 -5 
+X  0 -1 -1 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1  0  0 -2 -1 -1 -1 -1 -1 -5 
+* -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5  1 
diff --git a/sources/PamBlosum/BLOSUM50 b/sources/PamBlosum/BLOSUM50
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUM50
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosum50.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/3 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 50
+#  Entropy =   0.4808, Expected =  -0.3573
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  5 -2 -1 -2 -1 -1 -1  0 -2 -1 -2 -1 -1 -3 -1  1  0 -3 -2  0 -2 -1 -1 -5 
+R -2  7 -1 -2 -4  1  0 -3  0 -4 -3  3 -2 -3 -3 -1 -1 -3 -1 -3 -1  0 -1 -5 
+N -1 -1  7  2 -2  0  0  0  1 -3 -4  0 -2 -4 -2  1  0 -4 -2 -3  4  0 -1 -5 
+D -2 -2  2  8 -4  0  2 -1 -1 -4 -4 -1 -4 -5 -1  0 -1 -5 -3 -4  5  1 -1 -5 
+C -1 -4 -2 -4 13 -3 -3 -3 -3 -2 -2 -3 -2 -2 -4 -1 -1 -5 -3 -1 -3 -3 -2 -5 
+Q -1  1  0  0 -3  7  2 -2  1 -3 -2  2  0 -4 -1  0 -1 -1 -1 -3  0  4 -1 -5 
+E -1  0  0  2 -3  2  6 -3  0 -4 -3  1 -2 -3 -1 -1 -1 -3 -2 -3  1  5 -1 -5 
+G  0 -3  0 -1 -3 -2 -3  8 -2 -4 -4 -2 -3 -4 -2  0 -2 -3 -3 -4 -1 -2 -2 -5 
+H -2  0  1 -1 -3  1  0 -2 10 -4 -3  0 -1 -1 -2 -1 -2 -3  2 -4  0  0 -1 -5 
+I -1 -4 -3 -4 -2 -3 -4 -4 -4  5  2 -3  2  0 -3 -3 -1 -3 -1  4 -4 -3 -1 -5 
+L -2 -3 -4 -4 -2 -2 -3 -4 -3  2  5 -3  3  1 -4 -3 -1 -2 -1  1 -4 -3 -1 -5 
+K -1  3  0 -1 -3  2  1 -2  0 -3 -3  6 -2 -4 -1  0 -1 -3 -2 -3  0  1 -1 -5 
+M -1 -2 -2 -4 -2  0 -2 -3 -1  2  3 -2  7  0 -3 -2 -1 -1  0  1 -3 -1 -1 -5 
+F -3 -3 -4 -5 -2 -4 -3 -4 -1  0  1 -4  0  8 -4 -3 -2  1  4 -1 -4 -4 -2 -5 
+P -1 -3 -2 -1 -4 -1 -1 -2 -2 -3 -4 -1 -3 -4 10 -1 -1 -4 -3 -3 -2 -1 -2 -5 
+S  1 -1  1  0 -1  0 -1  0 -1 -3 -3  0 -2 -3 -1  5  2 -4 -2 -2  0  0 -1 -5 
+T  0 -1  0 -1 -1 -1 -1 -2 -2 -1 -1 -1 -1 -2 -1  2  5 -3 -2  0  0 -1  0 -5 
+W -3 -3 -4 -5 -5 -1 -3 -3 -3 -3 -2 -3 -1  1 -4 -4 -3 15  2 -3 -5 -2 -3 -5 
+Y -2 -1 -2 -3 -3 -1 -2 -3  2 -1 -1 -2  0  4 -3 -2 -2  2  8 -1 -3 -2 -1 -5 
+V  0 -3 -3 -4 -1 -3 -3 -4 -4  4  1 -3  1 -1 -3 -2  0 -3 -1  5 -4 -3 -1 -5 
+B -2 -1  4  5 -3  0  1 -1  0 -4 -4  0 -3 -4 -2  0  0 -5 -3 -4  5  2 -1 -5 
+Z -1  0  0  1 -3  4  5 -2  0 -3 -3  1 -1 -4 -1  0 -1 -2 -2 -3  2  5 -1 -5 
+X -1 -1 -1 -1 -2 -1 -1 -2 -1 -1 -1 -1 -1 -2 -2 -1  0 -3 -1 -1 -1 -1 -1 -5 
+* -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5  1 
diff --git a/sources/PamBlosum/BLOSUM50.50 b/sources/PamBlosum/BLOSUM50.50
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUM50.50
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosum50.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/3 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 50
+#  Entropy =   0.4808, Expected =  -0.3573
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  5 -2 -1 -2 -1 -1 -1  0 -2 -1 -2 -1 -1 -3 -1  1  0 -3 -2  0 -2 -1 -1 -5 
+R -2  7 -1 -2 -4  1  0 -3  0 -4 -3  3 -2 -3 -3 -1 -1 -3 -1 -3 -1  0 -1 -5 
+N -1 -1  7  2 -2  0  0  0  1 -3 -4  0 -2 -4 -2  1  0 -4 -2 -3  4  0 -1 -5 
+D -2 -2  2  8 -4  0  2 -1 -1 -4 -4 -1 -4 -5 -1  0 -1 -5 -3 -4  5  1 -1 -5 
+C -1 -4 -2 -4 13 -3 -3 -3 -3 -2 -2 -3 -2 -2 -4 -1 -1 -5 -3 -1 -3 -3 -2 -5 
+Q -1  1  0  0 -3  7  2 -2  1 -3 -2  2  0 -4 -1  0 -1 -1 -1 -3  0  4 -1 -5 
+E -1  0  0  2 -3  2  6 -3  0 -4 -3  1 -2 -3 -1 -1 -1 -3 -2 -3  1  5 -1 -5 
+G  0 -3  0 -1 -3 -2 -3  8 -2 -4 -4 -2 -3 -4 -2  0 -2 -3 -3 -4 -1 -2 -2 -5 
+H -2  0  1 -1 -3  1  0 -2 10 -4 -3  0 -1 -1 -2 -1 -2 -3  2 -4  0  0 -1 -5 
+I -1 -4 -3 -4 -2 -3 -4 -4 -4  5  2 -3  2  0 -3 -3 -1 -3 -1  4 -4 -3 -1 -5 
+L -2 -3 -4 -4 -2 -2 -3 -4 -3  2  5 -3  3  1 -4 -3 -1 -2 -1  1 -4 -3 -1 -5 
+K -1  3  0 -1 -3  2  1 -2  0 -3 -3  6 -2 -4 -1  0 -1 -3 -2 -3  0  1 -1 -5 
+M -1 -2 -2 -4 -2  0 -2 -3 -1  2  3 -2  7  0 -3 -2 -1 -1  0  1 -3 -1 -1 -5 
+F -3 -3 -4 -5 -2 -4 -3 -4 -1  0  1 -4  0  8 -4 -3 -2  1  4 -1 -4 -4 -2 -5 
+P -1 -3 -2 -1 -4 -1 -1 -2 -2 -3 -4 -1 -3 -4 10 -1 -1 -4 -3 -3 -2 -1 -2 -5 
+S  1 -1  1  0 -1  0 -1  0 -1 -3 -3  0 -2 -3 -1  5  2 -4 -2 -2  0  0 -1 -5 
+T  0 -1  0 -1 -1 -1 -1 -2 -2 -1 -1 -1 -1 -2 -1  2  5 -3 -2  0  0 -1  0 -5 
+W -3 -3 -4 -5 -5 -1 -3 -3 -3 -3 -2 -3 -1  1 -4 -4 -3 15  2 -3 -5 -2 -3 -5 
+Y -2 -1 -2 -3 -3 -1 -2 -3  2 -1 -1 -2  0  4 -3 -2 -2  2  8 -1 -3 -2 -1 -5 
+V  0 -3 -3 -4 -1 -3 -3 -4 -4  4  1 -3  1 -1 -3 -2  0 -3 -1  5 -4 -3 -1 -5 
+B -2 -1  4  5 -3  0  1 -1  0 -4 -4  0 -3 -4 -2  0  0 -5 -3 -4  5  2 -1 -5 
+Z -1  0  0  1 -3  4  5 -2  0 -3 -3  1 -1 -4 -1  0 -1 -2 -2 -3  2  5 -1 -5 
+X -1 -1 -1 -1 -2 -1 -1 -2 -1 -1 -1 -1 -1 -2 -2 -1  0 -3 -1 -1 -1 -1 -1 -5 
+* -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5  1 
diff --git a/sources/PamBlosum/BLOSUM55 b/sources/PamBlosum/BLOSUM55
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUM55
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosum55.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/3 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 55
+#  Entropy =   0.5637, Expected =  -0.4179
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  5 -2 -2 -2  0 -1 -1  0 -2 -2 -2 -1 -1 -3 -1  2  0 -4 -2  0 -2 -1 -1 -5 
+R -2  8 -1 -2 -4  1  0 -3  0 -4 -3  3 -2 -3 -3 -1 -1 -3 -2 -3 -1  0 -1 -5 
+N -2 -1  8  2 -3  0  0  0  1 -4 -4  0 -3 -4 -2  1  0 -5 -2 -4  4  0 -1 -5 
+D -2 -2  2  8 -4  0  2 -2 -1 -4 -5 -1 -4 -5 -2  0 -1 -5 -3 -4  5  1 -2 -5 
+C  0 -4 -3 -4 13 -4 -4 -3 -4 -2 -2 -4 -2 -3 -3 -1 -1 -4 -3 -1 -4 -4 -2 -5 
+Q -1  1  0  0 -4  7  2 -2  1 -4 -3  2  0 -4 -1  0 -1 -2 -1 -3  0  4 -1 -5 
+E -1  0  0  2 -4  2  7 -3 -1 -4 -4  1 -3 -4 -1  0 -1 -3 -2 -3  1  5 -1 -5 
+G  0 -3  0 -2 -3 -2 -3  8 -2 -5 -5 -2 -3 -4 -3  0 -2 -3 -4 -4 -1 -3 -2 -5 
+H -2  0  1 -1 -4  1 -1 -2 11 -4 -3  0 -2 -1 -3 -1 -2 -3  2 -4  0  0 -1 -5 
+I -2 -4 -4 -4 -2 -4 -4 -5 -4  6  2 -4  2  0 -3 -3 -1 -3 -1  4 -4 -4 -1 -5 
+L -2 -3 -4 -5 -2 -3 -4 -5 -3  2  6 -3  3  1 -4 -3 -2 -3 -1  1 -4 -3 -1 -5 
+K -1  3  0 -1 -4  2  1 -2  0 -4 -3  6 -2 -4 -1  0 -1 -4 -2 -3  0  1 -1 -5 
+M -1 -2 -3 -4 -2  0 -3 -3 -2  2  3 -2  8  0 -3 -2 -1 -2 -1  1 -3 -2 -1 -5 
+F -3 -3 -4 -5 -3 -4 -4 -4 -1  0  1 -4  0  9 -5 -3 -3  2  4 -1 -5 -4 -2 -5 
+P -1 -3 -2 -2 -3 -1 -1 -3 -3 -3 -4 -1 -3 -5 10 -1 -1 -5 -4 -3 -2 -1 -2 -5 
+S  2 -1  1  0 -1  0  0  0 -1 -3 -3  0 -2 -3 -1  5  2 -4 -2 -2  0  0 -1 -5 
+T  0 -1  0 -1 -1 -1 -1 -2 -2 -1 -2 -1 -1 -3 -1  2  6 -3 -2  0 -1 -1 -1 -5 
+W -4 -3 -5 -5 -4 -2 -3 -3 -3 -3 -3 -4 -2  2 -5 -4 -3 15  3 -4 -5 -3 -3 -5 
+Y -2 -2 -2 -3 -3 -1 -2 -4  2 -1 -1 -2 -1  4 -4 -2 -2  3  9 -2 -3 -2 -1 -5 
+V  0 -3 -4 -4 -1 -3 -3 -4 -4  4  1 -3  1 -1 -3 -2  0 -4 -2  5 -4 -3 -1 -5 
+B -2 -1  4  5 -4  0  1 -1  0 -4 -4  0 -3 -5 -2  0 -1 -5 -3 -4  5  2 -1 -5 
+Z -1  0  0  1 -4  4  5 -3  0 -4 -3  1 -2 -4 -1  0 -1 -3 -2 -3  2  5 -1 -5 
+X -1 -1 -1 -2 -2 -1 -1 -2 -1 -1 -1 -1 -1 -2 -2 -1 -1 -3 -1 -1 -1 -1 -1 -5 
+* -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5  1 
diff --git a/sources/PamBlosum/BLOSUM55.50 b/sources/PamBlosum/BLOSUM55.50
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUM55.50
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosum55.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/3 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 55
+#  Entropy =   0.5637, Expected =  -0.4179
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  5 -2 -2 -2  0 -1 -1  0 -2 -2 -2 -1 -1 -3 -1  2  0 -4 -2  0 -2 -1 -1 -5 
+R -2  8 -1 -2 -4  1  0 -3  0 -4 -3  3 -2 -3 -3 -1 -1 -3 -2 -3 -1  0 -1 -5 
+N -2 -1  8  2 -3  0  0  0  1 -4 -4  0 -3 -4 -2  1  0 -5 -2 -4  4  0 -1 -5 
+D -2 -2  2  8 -4  0  2 -2 -1 -4 -5 -1 -4 -5 -2  0 -1 -5 -3 -4  5  1 -2 -5 
+C  0 -4 -3 -4 13 -4 -4 -3 -4 -2 -2 -4 -2 -3 -3 -1 -1 -4 -3 -1 -4 -4 -2 -5 
+Q -1  1  0  0 -4  7  2 -2  1 -4 -3  2  0 -4 -1  0 -1 -2 -1 -3  0  4 -1 -5 
+E -1  0  0  2 -4  2  7 -3 -1 -4 -4  1 -3 -4 -1  0 -1 -3 -2 -3  1  5 -1 -5 
+G  0 -3  0 -2 -3 -2 -3  8 -2 -5 -5 -2 -3 -4 -3  0 -2 -3 -4 -4 -1 -3 -2 -5 
+H -2  0  1 -1 -4  1 -1 -2 11 -4 -3  0 -2 -1 -3 -1 -2 -3  2 -4  0  0 -1 -5 
+I -2 -4 -4 -4 -2 -4 -4 -5 -4  6  2 -4  2  0 -3 -3 -1 -3 -1  4 -4 -4 -1 -5 
+L -2 -3 -4 -5 -2 -3 -4 -5 -3  2  6 -3  3  1 -4 -3 -2 -3 -1  1 -4 -3 -1 -5 
+K -1  3  0 -1 -4  2  1 -2  0 -4 -3  6 -2 -4 -1  0 -1 -4 -2 -3  0  1 -1 -5 
+M -1 -2 -3 -4 -2  0 -3 -3 -2  2  3 -2  8  0 -3 -2 -1 -2 -1  1 -3 -2 -1 -5 
+F -3 -3 -4 -5 -3 -4 -4 -4 -1  0  1 -4  0  9 -5 -3 -3  2  4 -1 -5 -4 -2 -5 
+P -1 -3 -2 -2 -3 -1 -1 -3 -3 -3 -4 -1 -3 -5 10 -1 -1 -5 -4 -3 -2 -1 -2 -5 
+S  2 -1  1  0 -1  0  0  0 -1 -3 -3  0 -2 -3 -1  5  2 -4 -2 -2  0  0 -1 -5 
+T  0 -1  0 -1 -1 -1 -1 -2 -2 -1 -2 -1 -1 -3 -1  2  6 -3 -2  0 -1 -1 -1 -5 
+W -4 -3 -5 -5 -4 -2 -3 -3 -3 -3 -3 -4 -2  2 -5 -4 -3 15  3 -4 -5 -3 -3 -5 
+Y -2 -2 -2 -3 -3 -1 -2 -4  2 -1 -1 -2 -1  4 -4 -2 -2  3  9 -2 -3 -2 -1 -5 
+V  0 -3 -4 -4 -1 -3 -3 -4 -4  4  1 -3  1 -1 -3 -2  0 -4 -2  5 -4 -3 -1 -5 
+B -2 -1  4  5 -4  0  1 -1  0 -4 -4  0 -3 -5 -2  0 -1 -5 -3 -4  5  2 -1 -5 
+Z -1  0  0  1 -4  4  5 -3  0 -4 -3  1 -2 -4 -1  0 -1 -3 -2 -3  2  5 -1 -5 
+X -1 -1 -1 -2 -2 -1 -1 -2 -1 -1 -1 -1 -1 -2 -2 -1 -1 -3 -1 -1 -1 -1 -1 -5 
+* -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5  1 
diff --git a/sources/PamBlosum/BLOSUM60 b/sources/PamBlosum/BLOSUM60
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUM60
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosum60.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/2 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 60
+#  Entropy =   0.6603, Expected =  -0.4917
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  4 -1 -1 -2  0 -1 -1  0 -2 -1 -1 -1 -1 -2 -1  1  0 -3 -2  0 -2 -1  0 -4 
+R -1  5  0 -1 -3  1  0 -2  0 -3 -2  2 -1 -3 -2 -1 -1 -3 -2 -2 -1  0 -1 -4 
+N -1  0  6  1 -2  0  0  0  1 -3 -3  0 -2 -3 -2  1  0 -4 -2 -3  3  0 -1 -4 
+D -2 -1  1  6 -3  0  2 -1 -1 -3 -3 -1 -3 -3 -1  0 -1 -4 -3 -3  4  1 -1 -4 
+C  0 -3 -2 -3  9 -3 -3 -2 -3 -1 -1 -3 -1 -2 -3 -1 -1 -2 -2 -1 -3 -3 -2 -4 
+Q -1  1  0  0 -3  5  2 -2  1 -3 -2  1  0 -3 -1  0 -1 -2 -1 -2  0  3 -1 -4 
+E -1  0  0  2 -3  2  5 -2  0 -3 -3  1 -2 -3 -1  0 -1 -3 -2 -2  1  4 -1 -4 
+G  0 -2  0 -1 -2 -2 -2  6 -2 -3 -4 -1 -2 -3 -2  0 -2 -2 -3 -3 -1 -2 -1 -4 
+H -2  0  1 -1 -3  1  0 -2  7 -3 -3 -1 -1 -1 -2 -1 -2 -2  2 -3  0  0 -1 -4 
+I -1 -3 -3 -3 -1 -3 -3 -3 -3  4  2 -3  1  0 -3 -2 -1 -2 -1  3 -3 -3 -1 -4 
+L -1 -2 -3 -3 -1 -2 -3 -4 -3  2  4 -2  2  0 -3 -2 -1 -2 -1  1 -3 -2 -1 -4 
+K -1  2  0 -1 -3  1  1 -1 -1 -3 -2  4 -1 -3 -1  0 -1 -3 -2 -2  0  1 -1 -4 
+M -1 -1 -2 -3 -1  0 -2 -2 -1  1  2 -1  5  0 -2 -1 -1 -1 -1  1 -3 -1 -1 -4 
+F -2 -3 -3 -3 -2 -3 -3 -3 -1  0  0 -3  0  6 -4 -2 -2  1  3 -1 -3 -3 -1 -4 
+P -1 -2 -2 -1 -3 -1 -1 -2 -2 -3 -3 -1 -2 -4  7 -1 -1 -4 -3 -2 -2 -1 -2 -4 
+S  1 -1  1  0 -1  0  0  0 -1 -2 -2  0 -1 -2 -1  4  1 -3 -2 -2  0  0  0 -4 
+T  0 -1  0 -1 -1 -1 -1 -2 -2 -1 -1 -1 -1 -2 -1  1  4 -2 -2  0  0 -1  0 -4 
+W -3 -3 -4 -4 -2 -2 -3 -2 -2 -2 -2 -3 -1  1 -4 -3 -2 10  2 -3 -4 -2 -2 -4 
+Y -2 -2 -2 -3 -2 -1 -2 -3  2 -1 -1 -2 -1  3 -3 -2 -2  2  6 -1 -2 -2 -1 -4 
+V  0 -2 -3 -3 -1 -2 -2 -3 -3  3  1 -2  1 -1 -2 -2  0 -3 -1  4 -3 -2 -1 -4 
+B -2 -1  3  4 -3  0  1 -1  0 -3 -3  0 -3 -3 -2  0  0 -4 -2 -3  4  1 -1 -4 
+Z -1  0  0  1 -3  3  4 -2  0 -3 -2  1 -1 -3 -1  0 -1 -2 -2 -2  1  3 -1 -4 
+X  0 -1 -1 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -2  0  0 -2 -1 -1 -1 -1 -1 -4 
+* -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4  1 
diff --git a/sources/PamBlosum/BLOSUM60.50 b/sources/PamBlosum/BLOSUM60.50
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUM60.50
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosum60.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/2 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 60
+#  Entropy =   0.6603, Expected =  -0.4917
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  4 -1 -1 -2  0 -1 -1  0 -2 -1 -1 -1 -1 -2 -1  1  0 -3 -2  0 -2 -1  0 -4 
+R -1  5  0 -1 -3  1  0 -2  0 -3 -2  2 -1 -3 -2 -1 -1 -3 -2 -2 -1  0 -1 -4 
+N -1  0  6  1 -2  0  0  0  1 -3 -3  0 -2 -3 -2  1  0 -4 -2 -3  3  0 -1 -4 
+D -2 -1  1  6 -3  0  2 -1 -1 -3 -3 -1 -3 -3 -1  0 -1 -4 -3 -3  4  1 -1 -4 
+C  0 -3 -2 -3  9 -3 -3 -2 -3 -1 -1 -3 -1 -2 -3 -1 -1 -2 -2 -1 -3 -3 -2 -4 
+Q -1  1  0  0 -3  5  2 -2  1 -3 -2  1  0 -3 -1  0 -1 -2 -1 -2  0  3 -1 -4 
+E -1  0  0  2 -3  2  5 -2  0 -3 -3  1 -2 -3 -1  0 -1 -3 -2 -2  1  4 -1 -4 
+G  0 -2  0 -1 -2 -2 -2  6 -2 -3 -4 -1 -2 -3 -2  0 -2 -2 -3 -3 -1 -2 -1 -4 
+H -2  0  1 -1 -3  1  0 -2  7 -3 -3 -1 -1 -1 -2 -1 -2 -2  2 -3  0  0 -1 -4 
+I -1 -3 -3 -3 -1 -3 -3 -3 -3  4  2 -3  1  0 -3 -2 -1 -2 -1  3 -3 -3 -1 -4 
+L -1 -2 -3 -3 -1 -2 -3 -4 -3  2  4 -2  2  0 -3 -2 -1 -2 -1  1 -3 -2 -1 -4 
+K -1  2  0 -1 -3  1  1 -1 -1 -3 -2  4 -1 -3 -1  0 -1 -3 -2 -2  0  1 -1 -4 
+M -1 -1 -2 -3 -1  0 -2 -2 -1  1  2 -1  5  0 -2 -1 -1 -1 -1  1 -3 -1 -1 -4 
+F -2 -3 -3 -3 -2 -3 -3 -3 -1  0  0 -3  0  6 -4 -2 -2  1  3 -1 -3 -3 -1 -4 
+P -1 -2 -2 -1 -3 -1 -1 -2 -2 -3 -3 -1 -2 -4  7 -1 -1 -4 -3 -2 -2 -1 -2 -4 
+S  1 -1  1  0 -1  0  0  0 -1 -2 -2  0 -1 -2 -1  4  1 -3 -2 -2  0  0  0 -4 
+T  0 -1  0 -1 -1 -1 -1 -2 -2 -1 -1 -1 -1 -2 -1  1  4 -2 -2  0  0 -1  0 -4 
+W -3 -3 -4 -4 -2 -2 -3 -2 -2 -2 -2 -3 -1  1 -4 -3 -2 10  2 -3 -4 -2 -2 -4 
+Y -2 -2 -2 -3 -2 -1 -2 -3  2 -1 -1 -2 -1  3 -3 -2 -2  2  6 -1 -2 -2 -1 -4 
+V  0 -2 -3 -3 -1 -2 -2 -3 -3  3  1 -2  1 -1 -2 -2  0 -3 -1  4 -3 -2 -1 -4 
+B -2 -1  3  4 -3  0  1 -1  0 -3 -3  0 -3 -3 -2  0  0 -4 -2 -3  4  1 -1 -4 
+Z -1  0  0  1 -3  3  4 -2  0 -3 -2  1 -1 -3 -1  0 -1 -2 -2 -2  1  3 -1 -4 
+X  0 -1 -1 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -2  0  0 -2 -1 -1 -1 -1 -1 -4 
+* -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4  1 
diff --git a/sources/PamBlosum/BLOSUM62 b/sources/PamBlosum/BLOSUM62
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUM62
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosum62.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/2 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 62
+#  Entropy =   0.6979, Expected =  -0.5209
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  4 -1 -2 -2  0 -1 -1  0 -2 -1 -1 -1 -1 -2 -1  1  0 -3 -2  0 -2 -1  0 -4 
+R -1  5  0 -2 -3  1  0 -2  0 -3 -2  2 -1 -3 -2 -1 -1 -3 -2 -3 -1  0 -1 -4 
+N -2  0  6  1 -3  0  0  0  1 -3 -3  0 -2 -3 -2  1  0 -4 -2 -3  3  0 -1 -4 
+D -2 -2  1  6 -3  0  2 -1 -1 -3 -4 -1 -3 -3 -1  0 -1 -4 -3 -3  4  1 -1 -4 
+C  0 -3 -3 -3  9 -3 -4 -3 -3 -1 -1 -3 -1 -2 -3 -1 -1 -2 -2 -1 -3 -3 -2 -4 
+Q -1  1  0  0 -3  5  2 -2  0 -3 -2  1  0 -3 -1  0 -1 -2 -1 -2  0  3 -1 -4 
+E -1  0  0  2 -4  2  5 -2  0 -3 -3  1 -2 -3 -1  0 -1 -3 -2 -2  1  4 -1 -4 
+G  0 -2  0 -1 -3 -2 -2  6 -2 -4 -4 -2 -3 -3 -2  0 -2 -2 -3 -3 -1 -2 -1 -4 
+H -2  0  1 -1 -3  0  0 -2  8 -3 -3 -1 -2 -1 -2 -1 -2 -2  2 -3  0  0 -1 -4 
+I -1 -3 -3 -3 -1 -3 -3 -4 -3  4  2 -3  1  0 -3 -2 -1 -3 -1  3 -3 -3 -1 -4 
+L -1 -2 -3 -4 -1 -2 -3 -4 -3  2  4 -2  2  0 -3 -2 -1 -2 -1  1 -4 -3 -1 -4 
+K -1  2  0 -1 -3  1  1 -2 -1 -3 -2  5 -1 -3 -1  0 -1 -3 -2 -2  0  1 -1 -4 
+M -1 -1 -2 -3 -1  0 -2 -3 -2  1  2 -1  5  0 -2 -1 -1 -1 -1  1 -3 -1 -1 -4 
+F -2 -3 -3 -3 -2 -3 -3 -3 -1  0  0 -3  0  6 -4 -2 -2  1  3 -1 -3 -3 -1 -4 
+P -1 -2 -2 -1 -3 -1 -1 -2 -2 -3 -3 -1 -2 -4  7 -1 -1 -4 -3 -2 -2 -1 -2 -4 
+S  1 -1  1  0 -1  0  0  0 -1 -2 -2  0 -1 -2 -1  4  1 -3 -2 -2  0  0  0 -4 
+T  0 -1  0 -1 -1 -1 -1 -2 -2 -1 -1 -1 -1 -2 -1  1  5 -2 -2  0 -1 -1  0 -4 
+W -3 -3 -4 -4 -2 -2 -3 -2 -2 -3 -2 -3 -1  1 -4 -3 -2 11  2 -3 -4 -3 -2 -4 
+Y -2 -2 -2 -3 -2 -1 -2 -3  2 -1 -1 -2 -1  3 -3 -2 -2  2  7 -1 -3 -2 -1 -4 
+V  0 -3 -3 -3 -1 -2 -2 -3 -3  3  1 -2  1 -1 -2 -2  0 -3 -1  4 -3 -2 -1 -4 
+B -2 -1  3  4 -3  0  1 -1  0 -3 -4  0 -3 -3 -2  0 -1 -4 -3 -3  4  1 -1 -4 
+Z -1  0  0  1 -3  3  4 -2  0 -3 -3  1 -1 -3 -1  0 -1 -3 -2 -2  1  4 -1 -4 
+X  0 -1 -1 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -2  0  0 -2 -1 -1 -1 -1 -1 -4 
+* -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4  1 
diff --git a/sources/PamBlosum/BLOSUM62.50 b/sources/PamBlosum/BLOSUM62.50
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUM62.50
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosum62.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/2 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 62
+#  Entropy =   0.6979, Expected =  -0.5209
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  4 -1 -2 -2  0 -1 -1  0 -2 -1 -1 -1 -1 -2 -1  1  0 -3 -2  0 -2 -1  0 -4 
+R -1  5  0 -2 -3  1  0 -2  0 -3 -2  2 -1 -3 -2 -1 -1 -3 -2 -3 -1  0 -1 -4 
+N -2  0  6  1 -3  0  0  0  1 -3 -3  0 -2 -3 -2  1  0 -4 -2 -3  3  0 -1 -4 
+D -2 -2  1  6 -3  0  2 -1 -1 -3 -4 -1 -3 -3 -1  0 -1 -4 -3 -3  4  1 -1 -4 
+C  0 -3 -3 -3  9 -3 -4 -3 -3 -1 -1 -3 -1 -2 -3 -1 -1 -2 -2 -1 -3 -3 -2 -4 
+Q -1  1  0  0 -3  5  2 -2  0 -3 -2  1  0 -3 -1  0 -1 -2 -1 -2  0  3 -1 -4 
+E -1  0  0  2 -4  2  5 -2  0 -3 -3  1 -2 -3 -1  0 -1 -3 -2 -2  1  4 -1 -4 
+G  0 -2  0 -1 -3 -2 -2  6 -2 -4 -4 -2 -3 -3 -2  0 -2 -2 -3 -3 -1 -2 -1 -4 
+H -2  0  1 -1 -3  0  0 -2  8 -3 -3 -1 -2 -1 -2 -1 -2 -2  2 -3  0  0 -1 -4 
+I -1 -3 -3 -3 -1 -3 -3 -4 -3  4  2 -3  1  0 -3 -2 -1 -3 -1  3 -3 -3 -1 -4 
+L -1 -2 -3 -4 -1 -2 -3 -4 -3  2  4 -2  2  0 -3 -2 -1 -2 -1  1 -4 -3 -1 -4 
+K -1  2  0 -1 -3  1  1 -2 -1 -3 -2  5 -1 -3 -1  0 -1 -3 -2 -2  0  1 -1 -4 
+M -1 -1 -2 -3 -1  0 -2 -3 -2  1  2 -1  5  0 -2 -1 -1 -1 -1  1 -3 -1 -1 -4 
+F -2 -3 -3 -3 -2 -3 -3 -3 -1  0  0 -3  0  6 -4 -2 -2  1  3 -1 -3 -3 -1 -4 
+P -1 -2 -2 -1 -3 -1 -1 -2 -2 -3 -3 -1 -2 -4  7 -1 -1 -4 -3 -2 -2 -1 -2 -4 
+S  1 -1  1  0 -1  0  0  0 -1 -2 -2  0 -1 -2 -1  4  1 -3 -2 -2  0  0  0 -4 
+T  0 -1  0 -1 -1 -1 -1 -2 -2 -1 -1 -1 -1 -2 -1  1  5 -2 -2  0 -1 -1  0 -4 
+W -3 -3 -4 -4 -2 -2 -3 -2 -2 -3 -2 -3 -1  1 -4 -3 -2 11  2 -3 -4 -3 -2 -4 
+Y -2 -2 -2 -3 -2 -1 -2 -3  2 -1 -1 -2 -1  3 -3 -2 -2  2  7 -1 -3 -2 -1 -4 
+V  0 -3 -3 -3 -1 -2 -2 -3 -3  3  1 -2  1 -1 -2 -2  0 -3 -1  4 -3 -2 -1 -4 
+B -2 -1  3  4 -3  0  1 -1  0 -3 -4  0 -3 -3 -2  0 -1 -4 -3 -3  4  1 -1 -4 
+Z -1  0  0  1 -3  3  4 -2  0 -3 -3  1 -1 -3 -1  0 -1 -3 -2 -2  1  4 -1 -4 
+X  0 -1 -1 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -2  0  0 -2 -1 -1 -1 -1 -1 -4 
+* -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4  1 
diff --git a/sources/PamBlosum/BLOSUM65 b/sources/PamBlosum/BLOSUM65
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUM65
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosum65.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/2 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 65
+#  Entropy =   0.7576, Expected =  -0.5675
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  4 -1 -2 -2  0 -1 -1  0 -2 -1 -2 -1 -1 -2 -1  1  0 -3 -2  0 -2 -1 -1 -5 
+R -1  6  0 -2 -4  1  0 -2  0 -3 -2  2 -2 -3 -2 -1 -1 -3 -2 -3 -1  0 -1 -5 
+N -2  0  6  1 -3  0  0 -1  1 -3 -4  0 -2 -3 -2  1  0 -4 -2 -3  3  0 -1 -5 
+D -2 -2  1  6 -4  0  2 -1 -1 -3 -4 -1 -3 -4 -2  0 -1 -5 -3 -3  4  1 -1 -5 
+C  0 -4 -3 -4  9 -3 -4 -3 -3 -1 -1 -3 -2 -2 -3 -1 -1 -2 -2 -1 -3 -4 -2 -5 
+Q -1  1  0  0 -3  6  2 -2  1 -3 -2  1  0 -3 -1  0 -1 -2 -2 -2  0  3 -1 -5 
+E -1  0  0  2 -4  2  5 -2  0 -3 -3  1 -2 -3 -1  0 -1 -3 -2 -3  1  4 -1 -5 
+G  0 -2 -1 -1 -3 -2 -2  6 -2 -4 -4 -2 -3 -3 -2  0 -2 -3 -3 -3 -1 -2 -2 -5 
+H -2  0  1 -1 -3  1  0 -2  8 -3 -3 -1 -2 -1 -2 -1 -2 -2  2 -3  0  0 -1 -5 
+I -1 -3 -3 -3 -1 -3 -3 -4 -3  4  2 -3  1  0 -3 -2 -1 -2 -1  3 -3 -3 -1 -5 
+L -2 -2 -4 -4 -1 -2 -3 -4 -3  2  4 -3  2  0 -3 -3 -1 -2 -1  1 -4 -3 -1 -5 
+K -1  2  0 -1 -3  1  1 -2 -1 -3 -3  5 -2 -3 -1  0 -1 -3 -2 -2  0  1 -1 -5 
+M -1 -2 -2 -3 -2  0 -2 -3 -2  1  2 -2  6  0 -3 -2 -1 -2 -1  1 -3 -2 -1 -5 
+F -2 -3 -3 -4 -2 -3 -3 -3 -1  0  0 -3  0  6 -4 -2 -2  1  3 -1 -3 -3 -2 -5 
+P -1 -2 -2 -2 -3 -1 -1 -2 -2 -3 -3 -1 -3 -4  8 -1 -1 -4 -3 -2 -2 -1 -2 -5 
+S  1 -1  1  0 -1  0  0  0 -1 -2 -3  0 -2 -2 -1  4  1 -3 -2 -2  0  0 -1 -5 
+T  0 -1  0 -1 -1 -1 -1 -2 -2 -1 -1 -1 -1 -2 -1  1  5 -3 -2  0 -1 -1 -1 -5 
+W -3 -3 -4 -5 -2 -2 -3 -3 -2 -2 -2 -3 -2  1 -4 -3 -3 10  2 -3 -4 -3 -2 -5 
+Y -2 -2 -2 -3 -2 -2 -2 -3  2 -1 -1 -2 -1  3 -3 -2 -2  2  7 -1 -3 -2 -1 -5 
+V  0 -3 -3 -3 -1 -2 -3 -3 -3  3  1 -2  1 -1 -2 -2  0 -3 -1  4 -3 -2 -1 -5 
+B -2 -1  3  4 -3  0  1 -1  0 -3 -4  0 -3 -3 -2  0 -1 -4 -3 -3  4  1 -1 -5 
+Z -1  0  0  1 -4  3  4 -2  0 -3 -3  1 -2 -3 -1  0 -1 -3 -2 -2  1  4 -1 -5 
+X -1 -1 -1 -1 -2 -1 -1 -2 -1 -1 -1 -1 -1 -2 -2 -1 -1 -2 -1 -1 -1 -1 -1 -5 
+* -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5  1 
diff --git a/sources/PamBlosum/BLOSUM65.50 b/sources/PamBlosum/BLOSUM65.50
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUM65.50
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosum65.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/2 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 65
+#  Entropy =   0.7576, Expected =  -0.5675
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  4 -1 -2 -2  0 -1 -1  0 -2 -1 -2 -1 -1 -2 -1  1  0 -3 -2  0 -2 -1 -1 -5 
+R -1  6  0 -2 -4  1  0 -2  0 -3 -2  2 -2 -3 -2 -1 -1 -3 -2 -3 -1  0 -1 -5 
+N -2  0  6  1 -3  0  0 -1  1 -3 -4  0 -2 -3 -2  1  0 -4 -2 -3  3  0 -1 -5 
+D -2 -2  1  6 -4  0  2 -1 -1 -3 -4 -1 -3 -4 -2  0 -1 -5 -3 -3  4  1 -1 -5 
+C  0 -4 -3 -4  9 -3 -4 -3 -3 -1 -1 -3 -2 -2 -3 -1 -1 -2 -2 -1 -3 -4 -2 -5 
+Q -1  1  0  0 -3  6  2 -2  1 -3 -2  1  0 -3 -1  0 -1 -2 -2 -2  0  3 -1 -5 
+E -1  0  0  2 -4  2  5 -2  0 -3 -3  1 -2 -3 -1  0 -1 -3 -2 -3  1  4 -1 -5 
+G  0 -2 -1 -1 -3 -2 -2  6 -2 -4 -4 -2 -3 -3 -2  0 -2 -3 -3 -3 -1 -2 -2 -5 
+H -2  0  1 -1 -3  1  0 -2  8 -3 -3 -1 -2 -1 -2 -1 -2 -2  2 -3  0  0 -1 -5 
+I -1 -3 -3 -3 -1 -3 -3 -4 -3  4  2 -3  1  0 -3 -2 -1 -2 -1  3 -3 -3 -1 -5 
+L -2 -2 -4 -4 -1 -2 -3 -4 -3  2  4 -3  2  0 -3 -3 -1 -2 -1  1 -4 -3 -1 -5 
+K -1  2  0 -1 -3  1  1 -2 -1 -3 -3  5 -2 -3 -1  0 -1 -3 -2 -2  0  1 -1 -5 
+M -1 -2 -2 -3 -2  0 -2 -3 -2  1  2 -2  6  0 -3 -2 -1 -2 -1  1 -3 -2 -1 -5 
+F -2 -3 -3 -4 -2 -3 -3 -3 -1  0  0 -3  0  6 -4 -2 -2  1  3 -1 -3 -3 -2 -5 
+P -1 -2 -2 -2 -3 -1 -1 -2 -2 -3 -3 -1 -3 -4  8 -1 -1 -4 -3 -2 -2 -1 -2 -5 
+S  1 -1  1  0 -1  0  0  0 -1 -2 -3  0 -2 -2 -1  4  1 -3 -2 -2  0  0 -1 -5 
+T  0 -1  0 -1 -1 -1 -1 -2 -2 -1 -1 -1 -1 -2 -1  1  5 -3 -2  0 -1 -1 -1 -5 
+W -3 -3 -4 -5 -2 -2 -3 -3 -2 -2 -2 -3 -2  1 -4 -3 -3 10  2 -3 -4 -3 -2 -5 
+Y -2 -2 -2 -3 -2 -2 -2 -3  2 -1 -1 -2 -1  3 -3 -2 -2  2  7 -1 -3 -2 -1 -5 
+V  0 -3 -3 -3 -1 -2 -3 -3 -3  3  1 -2  1 -1 -2 -2  0 -3 -1  4 -3 -2 -1 -5 
+B -2 -1  3  4 -3  0  1 -1  0 -3 -4  0 -3 -3 -2  0 -1 -4 -3 -3  4  1 -1 -5 
+Z -1  0  0  1 -4  3  4 -2  0 -3 -3  1 -2 -3 -1  0 -1 -3 -2 -2  1  4 -1 -5 
+X -1 -1 -1 -1 -2 -1 -1 -2 -1 -1 -1 -1 -1 -2 -2 -1 -1 -2 -1 -1 -1 -1 -1 -5 
+* -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5  1 
diff --git a/sources/PamBlosum/BLOSUM70 b/sources/PamBlosum/BLOSUM70
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUM70
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosum70.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/2 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 70
+#  Entropy =   0.8391, Expected =  -0.6313
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  4 -2 -2 -2 -1 -1 -1  0 -2 -2 -2 -1 -1 -2 -1  1  0 -3 -2  0 -2 -1 -1 -5 
+R -2  6 -1 -2 -4  1  0 -3  0 -3 -3  2 -2 -3 -2 -1 -1 -3 -2 -3 -1  0 -1 -5 
+N -2 -1  6  1 -3  0  0 -1  0 -4 -4  0 -2 -3 -2  0  0 -4 -2 -3  3  0 -1 -5 
+D -2 -2  1  6 -4 -1  1 -2 -1 -4 -4 -1 -3 -4 -2  0 -1 -5 -4 -4  4  1 -2 -5 
+C -1 -4 -3 -4  9 -3 -4 -3 -4 -1 -2 -4 -2 -2 -3 -1 -1 -3 -3 -1 -4 -4 -2 -5 
+Q -1  1  0 -1 -3  6  2 -2  1 -3 -2  1  0 -3 -2  0 -1 -2 -2 -2  0  3 -1 -5 
+E -1  0  0  1 -4  2  5 -2  0 -4 -3  1 -2 -4 -1  0 -1 -4 -3 -3  1  4 -1 -5 
+G  0 -3 -1 -2 -3 -2 -2  6 -2 -4 -4 -2 -3 -4 -3 -1 -2 -3 -4 -4 -1 -2 -2 -5 
+H -2  0  0 -1 -4  1  0 -2  8 -4 -3 -1 -2 -1 -2 -1 -2 -2  2 -3 -1  0 -1 -5 
+I -2 -3 -4 -4 -1 -3 -4 -4 -4  4  2 -3  1  0 -3 -3 -1 -3 -1  3 -4 -3 -1 -5 
+L -2 -3 -4 -4 -2 -2 -3 -4 -3  2  4 -3  2  0 -3 -3 -2 -2 -1  1 -4 -3 -1 -5 
+K -1  2  0 -1 -4  1  1 -2 -1 -3 -3  5 -2 -3 -1  0 -1 -3 -2 -3 -1  1 -1 -5 
+M -1 -2 -2 -3 -2  0 -2 -3 -2  1  2 -2  6  0 -3 -2 -1 -2 -1  1 -3 -2 -1 -5 
+F -2 -3 -3 -4 -2 -3 -4 -4 -1  0  0 -3  0  6 -4 -3 -2  1  3 -1 -4 -4 -2 -5 
+P -1 -2 -2 -2 -3 -2 -1 -3 -2 -3 -3 -1 -3 -4  8 -1 -1 -4 -3 -3 -2 -1 -2 -5 
+S  1 -1  0  0 -1  0  0 -1 -1 -3 -3  0 -2 -3 -1  4  1 -3 -2 -2  0  0 -1 -5 
+T  0 -1  0 -1 -1 -1 -1 -2 -2 -1 -2 -1 -1 -2 -1  1  5 -3 -2  0 -1 -1 -1 -5 
+W -3 -3 -4 -5 -3 -2 -4 -3 -2 -3 -2 -3 -2  1 -4 -3 -3 11  2 -3 -4 -3 -3 -5 
+Y -2 -2 -2 -4 -3 -2 -3 -4  2 -1 -1 -2 -1  3 -3 -2 -2  2  7 -2 -3 -2 -2 -5 
+V  0 -3 -3 -4 -1 -2 -3 -4 -3  3  1 -3  1 -1 -3 -2  0 -3 -2  4 -3 -3 -1 -5 
+B -2 -1  3  4 -4  0  1 -1 -1 -4 -4 -1 -3 -4 -2  0 -1 -4 -3 -3  4  0 -1 -5 
+Z -1  0  0  1 -4  3  4 -2  0 -3 -3  1 -2 -4 -1  0 -1 -3 -2 -3  0  4 -1 -5 
+X -1 -1 -1 -2 -2 -1 -1 -2 -1 -1 -1 -1 -1 -2 -2 -1 -1 -3 -2 -1 -1 -1 -1 -5 
+* -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5  1 
diff --git a/sources/PamBlosum/BLOSUM70.50 b/sources/PamBlosum/BLOSUM70.50
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUM70.50
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosum70.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/2 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 70
+#  Entropy =   0.8391, Expected =  -0.6313
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  4 -2 -2 -2 -1 -1 -1  0 -2 -2 -2 -1 -1 -2 -1  1  0 -3 -2  0 -2 -1 -1 -5 
+R -2  6 -1 -2 -4  1  0 -3  0 -3 -3  2 -2 -3 -2 -1 -1 -3 -2 -3 -1  0 -1 -5 
+N -2 -1  6  1 -3  0  0 -1  0 -4 -4  0 -2 -3 -2  0  0 -4 -2 -3  3  0 -1 -5 
+D -2 -2  1  6 -4 -1  1 -2 -1 -4 -4 -1 -3 -4 -2  0 -1 -5 -4 -4  4  1 -2 -5 
+C -1 -4 -3 -4  9 -3 -4 -3 -4 -1 -2 -4 -2 -2 -3 -1 -1 -3 -3 -1 -4 -4 -2 -5 
+Q -1  1  0 -1 -3  6  2 -2  1 -3 -2  1  0 -3 -2  0 -1 -2 -2 -2  0  3 -1 -5 
+E -1  0  0  1 -4  2  5 -2  0 -4 -3  1 -2 -4 -1  0 -1 -4 -3 -3  1  4 -1 -5 
+G  0 -3 -1 -2 -3 -2 -2  6 -2 -4 -4 -2 -3 -4 -3 -1 -2 -3 -4 -4 -1 -2 -2 -5 
+H -2  0  0 -1 -4  1  0 -2  8 -4 -3 -1 -2 -1 -2 -1 -2 -2  2 -3 -1  0 -1 -5 
+I -2 -3 -4 -4 -1 -3 -4 -4 -4  4  2 -3  1  0 -3 -3 -1 -3 -1  3 -4 -3 -1 -5 
+L -2 -3 -4 -4 -2 -2 -3 -4 -3  2  4 -3  2  0 -3 -3 -2 -2 -1  1 -4 -3 -1 -5 
+K -1  2  0 -1 -4  1  1 -2 -1 -3 -3  5 -2 -3 -1  0 -1 -3 -2 -3 -1  1 -1 -5 
+M -1 -2 -2 -3 -2  0 -2 -3 -2  1  2 -2  6  0 -3 -2 -1 -2 -1  1 -3 -2 -1 -5 
+F -2 -3 -3 -4 -2 -3 -4 -4 -1  0  0 -3  0  6 -4 -3 -2  1  3 -1 -4 -4 -2 -5 
+P -1 -2 -2 -2 -3 -2 -1 -3 -2 -3 -3 -1 -3 -4  8 -1 -1 -4 -3 -3 -2 -1 -2 -5 
+S  1 -1  0  0 -1  0  0 -1 -1 -3 -3  0 -2 -3 -1  4  1 -3 -2 -2  0  0 -1 -5 
+T  0 -1  0 -1 -1 -1 -1 -2 -2 -1 -2 -1 -1 -2 -1  1  5 -3 -2  0 -1 -1 -1 -5 
+W -3 -3 -4 -5 -3 -2 -4 -3 -2 -3 -2 -3 -2  1 -4 -3 -3 11  2 -3 -4 -3 -3 -5 
+Y -2 -2 -2 -4 -3 -2 -3 -4  2 -1 -1 -2 -1  3 -3 -2 -2  2  7 -2 -3 -2 -2 -5 
+V  0 -3 -3 -4 -1 -2 -3 -4 -3  3  1 -3  1 -1 -3 -2  0 -3 -2  4 -3 -3 -1 -5 
+B -2 -1  3  4 -4  0  1 -1 -1 -4 -4 -1 -3 -4 -2  0 -1 -4 -3 -3  4  0 -1 -5 
+Z -1  0  0  1 -4  3  4 -2  0 -3 -3  1 -2 -4 -1  0 -1 -3 -2 -3  0  4 -1 -5 
+X -1 -1 -1 -2 -2 -1 -1 -2 -1 -1 -1 -1 -1 -2 -2 -1 -1 -3 -2 -1 -1 -1 -1 -5 
+* -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5  1 
diff --git a/sources/PamBlosum/BLOSUM75 b/sources/PamBlosum/BLOSUM75
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUM75
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosum75.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/2 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 75
+#  Entropy =   0.9077, Expected =  -0.6845
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  4 -2 -2 -2 -1 -1 -1  0 -2 -2 -2 -1 -1 -3 -1  1  0 -3 -2  0 -2 -1 -1 -5 
+R -2  6 -1 -2 -4  1  0 -3  0 -3 -3  2 -2 -3 -2 -1 -1 -3 -2 -3 -1  0 -1 -5 
+N -2 -1  6  1 -3  0 -1 -1  0 -4 -4  0 -3 -4 -3  0  0 -4 -3 -3  3  0 -1 -5 
+D -2 -2  1  6 -4 -1  1 -2 -1 -4 -4 -1 -4 -4 -2 -1 -1 -5 -4 -4  4  1 -2 -5 
+C -1 -4 -3 -4  9 -3 -5 -3 -4 -1 -2 -4 -2 -2 -4 -1 -1 -3 -3 -1 -4 -4 -2 -5 
+Q -1  1  0 -1 -3  6  2 -2  1 -3 -3  1  0 -4 -2  0 -1 -2 -2 -2  0  3 -1 -5 
+E -1  0 -1  1 -5  2  5 -3  0 -4 -4  1 -2 -4 -1  0 -1 -4 -3 -3  1  4 -1 -5 
+G  0 -3 -1 -2 -3 -2 -3  6 -2 -5 -4 -2 -3 -4 -3 -1 -2 -3 -4 -4 -1 -2 -2 -5 
+H -2  0  0 -1 -4  1  0 -2  8 -4 -3 -1 -2 -2 -2 -1 -2 -2  2 -4 -1  0 -1 -5 
+I -2 -3 -4 -4 -1 -3 -4 -5 -4  4  1 -3  1  0 -3 -3 -1 -3 -2  3 -4 -4 -2 -5 
+L -2 -3 -4 -4 -2 -3 -4 -4 -3  1  4 -3  2  0 -3 -3 -2 -2 -1  1 -4 -3 -1 -5 
+K -1  2  0 -1 -4  1  1 -2 -1 -3 -3  5 -2 -4 -1  0 -1 -4 -2 -3 -1  1 -1 -5 
+M -1 -2 -3 -4 -2  0 -2 -3 -2  1  2 -2  6  0 -3 -2 -1 -2 -2  1 -3 -2 -1 -5 
+F -3 -3 -4 -4 -2 -4 -4 -4 -2  0  0 -4  0  6 -4 -3 -2  1  3 -1 -4 -4 -2 -5 
+P -1 -2 -3 -2 -4 -2 -1 -3 -2 -3 -3 -1 -3 -4  8 -1 -1 -5 -4 -3 -2 -2 -2 -5 
+S  1 -1  0 -1 -1  0  0 -1 -1 -3 -3  0 -2 -3 -1  5  1 -3 -2 -2  0  0 -1 -5 
+T  0 -1  0 -1 -1 -1 -1 -2 -2 -1 -2 -1 -1 -2 -1  1  5 -3 -2  0 -1 -1 -1 -5 
+W -3 -3 -4 -5 -3 -2 -4 -3 -2 -3 -2 -4 -2  1 -5 -3 -3 11  2 -3 -5 -3 -3 -5 
+Y -2 -2 -3 -4 -3 -2 -3 -4  2 -2 -1 -2 -2  3 -4 -2 -2  2  7 -2 -3 -3 -2 -5 
+V  0 -3 -3 -4 -1 -2 -3 -4 -4  3  1 -3  1 -1 -3 -2  0 -3 -2  4 -4 -3 -1 -5 
+B -2 -1  3  4 -4  0  1 -1 -1 -4 -4 -1 -3 -4 -2  0 -1 -5 -3 -4  4  0 -2 -5 
+Z -1  0  0  1 -4  3  4 -2  0 -4 -3  1 -2 -4 -2  0 -1 -3 -3 -3  0  4 -1 -5 
+X -1 -1 -1 -2 -2 -1 -1 -2 -1 -2 -1 -1 -1 -2 -2 -1 -1 -3 -2 -1 -2 -1 -1 -5 
+* -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5  1 
diff --git a/sources/PamBlosum/BLOSUM75.50 b/sources/PamBlosum/BLOSUM75.50
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUM75.50
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosum75.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/2 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 75
+#  Entropy =   0.9077, Expected =  -0.6845
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  4 -2 -2 -2 -1 -1 -1  0 -2 -2 -2 -1 -1 -3 -1  1  0 -3 -2  0 -2 -1 -1 -5 
+R -2  6 -1 -2 -4  1  0 -3  0 -3 -3  2 -2 -3 -2 -1 -1 -3 -2 -3 -1  0 -1 -5 
+N -2 -1  6  1 -3  0 -1 -1  0 -4 -4  0 -3 -4 -3  0  0 -4 -3 -3  3  0 -1 -5 
+D -2 -2  1  6 -4 -1  1 -2 -1 -4 -4 -1 -4 -4 -2 -1 -1 -5 -4 -4  4  1 -2 -5 
+C -1 -4 -3 -4  9 -3 -5 -3 -4 -1 -2 -4 -2 -2 -4 -1 -1 -3 -3 -1 -4 -4 -2 -5 
+Q -1  1  0 -1 -3  6  2 -2  1 -3 -3  1  0 -4 -2  0 -1 -2 -2 -2  0  3 -1 -5 
+E -1  0 -1  1 -5  2  5 -3  0 -4 -4  1 -2 -4 -1  0 -1 -4 -3 -3  1  4 -1 -5 
+G  0 -3 -1 -2 -3 -2 -3  6 -2 -5 -4 -2 -3 -4 -3 -1 -2 -3 -4 -4 -1 -2 -2 -5 
+H -2  0  0 -1 -4  1  0 -2  8 -4 -3 -1 -2 -2 -2 -1 -2 -2  2 -4 -1  0 -1 -5 
+I -2 -3 -4 -4 -1 -3 -4 -5 -4  4  1 -3  1  0 -3 -3 -1 -3 -2  3 -4 -4 -2 -5 
+L -2 -3 -4 -4 -2 -3 -4 -4 -3  1  4 -3  2  0 -3 -3 -2 -2 -1  1 -4 -3 -1 -5 
+K -1  2  0 -1 -4  1  1 -2 -1 -3 -3  5 -2 -4 -1  0 -1 -4 -2 -3 -1  1 -1 -5 
+M -1 -2 -3 -4 -2  0 -2 -3 -2  1  2 -2  6  0 -3 -2 -1 -2 -2  1 -3 -2 -1 -5 
+F -3 -3 -4 -4 -2 -4 -4 -4 -2  0  0 -4  0  6 -4 -3 -2  1  3 -1 -4 -4 -2 -5 
+P -1 -2 -3 -2 -4 -2 -1 -3 -2 -3 -3 -1 -3 -4  8 -1 -1 -5 -4 -3 -2 -2 -2 -5 
+S  1 -1  0 -1 -1  0  0 -1 -1 -3 -3  0 -2 -3 -1  5  1 -3 -2 -2  0  0 -1 -5 
+T  0 -1  0 -1 -1 -1 -1 -2 -2 -1 -2 -1 -1 -2 -1  1  5 -3 -2  0 -1 -1 -1 -5 
+W -3 -3 -4 -5 -3 -2 -4 -3 -2 -3 -2 -4 -2  1 -5 -3 -3 11  2 -3 -5 -3 -3 -5 
+Y -2 -2 -3 -4 -3 -2 -3 -4  2 -2 -1 -2 -2  3 -4 -2 -2  2  7 -2 -3 -3 -2 -5 
+V  0 -3 -3 -4 -1 -2 -3 -4 -4  3  1 -3  1 -1 -3 -2  0 -3 -2  4 -4 -3 -1 -5 
+B -2 -1  3  4 -4  0  1 -1 -1 -4 -4 -1 -3 -4 -2  0 -1 -5 -3 -4  4  0 -2 -5 
+Z -1  0  0  1 -4  3  4 -2  0 -4 -3  1 -2 -4 -2  0 -1 -3 -3 -3  0  4 -1 -5 
+X -1 -1 -1 -2 -2 -1 -1 -2 -1 -2 -1 -1 -1 -2 -2 -1 -1 -3 -2 -1 -2 -1 -1 -5 
+* -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5  1 
diff --git a/sources/PamBlosum/BLOSUM80 b/sources/PamBlosum/BLOSUM80
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUM80
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosum80_3.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/3 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 80
+#  Entropy =   0.9868, Expected =  -0.7442
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  7 -3 -3 -3 -1 -2 -2  0 -3 -3 -3 -1 -2 -4 -1  2  0 -5 -4 -1 -3 -2 -1 -8 
+R -3  9 -1 -3 -6  1 -1 -4  0 -5 -4  3 -3 -5 -3 -2 -2 -5 -4 -4 -2  0 -2 -8 
+N -3 -1  9  2 -5  0 -1 -1  1 -6 -6  0 -4 -6 -4  1  0 -7 -4 -5  5 -1 -2 -8 
+D -3 -3  2 10 -7 -1  2 -3 -2 -7 -7 -2 -6 -6 -3 -1 -2 -8 -6 -6  6  1 -3 -8 
+C -1 -6 -5 -7 13 -5 -7 -6 -7 -2 -3 -6 -3 -4 -6 -2 -2 -5 -5 -2 -6 -7 -4 -8 
+Q -2  1  0 -1 -5  9  3 -4  1 -5 -4  2 -1 -5 -3 -1 -1 -4 -3 -4 -1  5 -2 -8 
+E -2 -1 -1  2 -7  3  8 -4  0 -6 -6  1 -4 -6 -2 -1 -2 -6 -5 -4  1  6 -2 -8 
+G  0 -4 -1 -3 -6 -4 -4  9 -4 -7 -7 -3 -5 -6 -5 -1 -3 -6 -6 -6 -2 -4 -3 -8 
+H -3  0  1 -2 -7  1  0 -4 12 -6 -5 -1 -4 -2 -4 -2 -3 -4  3 -5 -1  0 -2 -8 
+I -3 -5 -6 -7 -2 -5 -6 -7 -6  7  2 -5  2 -1 -5 -4 -2 -5 -3  4 -6 -6 -2 -8 
+L -3 -4 -6 -7 -3 -4 -6 -7 -5  2  6 -4  3  0 -5 -4 -3 -4 -2  1 -7 -5 -2 -8 
+K -1  3  0 -2 -6  2  1 -3 -1 -5 -4  8 -3 -5 -2 -1 -1 -6 -4 -4 -1  1 -2 -8 
+M -2 -3 -4 -6 -3 -1 -4 -5 -4  2  3 -3  9  0 -4 -3 -1 -3 -3  1 -5 -3 -2 -8 
+F -4 -5 -6 -6 -4 -5 -6 -6 -2 -1  0 -5  0 10 -6 -4 -4  0  4 -2 -6 -6 -3 -8 
+P -1 -3 -4 -3 -6 -3 -2 -5 -4 -5 -5 -2 -4 -6 12 -2 -3 -7 -6 -4 -4 -2 -3 -8 
+S  2 -2  1 -1 -2 -1 -1 -1 -2 -4 -4 -1 -3 -4 -2  7  2 -6 -3 -3  0 -1 -1 -8 
+T  0 -2  0 -2 -2 -1 -2 -3 -3 -2 -3 -1 -1 -4 -3  2  8 -5 -3  0 -1 -2 -1 -8 
+W -5 -5 -7 -8 -5 -4 -6 -6 -4 -5 -4 -6 -3  0 -7 -6 -5 16  3 -5 -8 -5 -5 -8 
+Y -4 -4 -4 -6 -5 -3 -5 -6  3 -3 -2 -4 -3  4 -6 -3 -3  3 11 -3 -5 -4 -3 -8 
+V -1 -4 -5 -6 -2 -4 -4 -6 -5  4  1 -4  1 -2 -4 -3  0 -5 -3  7 -6 -4 -2 -8 
+B -3 -2  5  6 -6 -1  1 -2 -1 -6 -7 -1 -5 -6 -4  0 -1 -8 -5 -6  6  0 -3 -8 
+Z -2  0 -1  1 -7  5  6 -4  0 -6 -5  1 -3 -6 -2 -1 -2 -5 -4 -4  0  6 -1 -8 
+X -1 -2 -2 -3 -4 -2 -2 -3 -2 -2 -2 -2 -2 -3 -3 -1 -1 -5 -3 -2 -3 -1 -2 -8 
+* -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8  1 
diff --git a/sources/PamBlosum/BLOSUM80.50 b/sources/PamBlosum/BLOSUM80.50
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUM80.50
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosum80_3.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/3 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 80
+#  Entropy =   0.9868, Expected =  -0.7442
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  7 -3 -3 -3 -1 -2 -2  0 -3 -3 -3 -1 -2 -4 -1  2  0 -5 -4 -1 -3 -2 -1 -8 
+R -3  9 -1 -3 -6  1 -1 -4  0 -5 -4  3 -3 -5 -3 -2 -2 -5 -4 -4 -2  0 -2 -8 
+N -3 -1  9  2 -5  0 -1 -1  1 -6 -6  0 -4 -6 -4  1  0 -7 -4 -5  5 -1 -2 -8 
+D -3 -3  2 10 -7 -1  2 -3 -2 -7 -7 -2 -6 -6 -3 -1 -2 -8 -6 -6  6  1 -3 -8 
+C -1 -6 -5 -7 13 -5 -7 -6 -7 -2 -3 -6 -3 -4 -6 -2 -2 -5 -5 -2 -6 -7 -4 -8 
+Q -2  1  0 -1 -5  9  3 -4  1 -5 -4  2 -1 -5 -3 -1 -1 -4 -3 -4 -1  5 -2 -8 
+E -2 -1 -1  2 -7  3  8 -4  0 -6 -6  1 -4 -6 -2 -1 -2 -6 -5 -4  1  6 -2 -8 
+G  0 -4 -1 -3 -6 -4 -4  9 -4 -7 -7 -3 -5 -6 -5 -1 -3 -6 -6 -6 -2 -4 -3 -8 
+H -3  0  1 -2 -7  1  0 -4 12 -6 -5 -1 -4 -2 -4 -2 -3 -4  3 -5 -1  0 -2 -8 
+I -3 -5 -6 -7 -2 -5 -6 -7 -6  7  2 -5  2 -1 -5 -4 -2 -5 -3  4 -6 -6 -2 -8 
+L -3 -4 -6 -7 -3 -4 -6 -7 -5  2  6 -4  3  0 -5 -4 -3 -4 -2  1 -7 -5 -2 -8 
+K -1  3  0 -2 -6  2  1 -3 -1 -5 -4  8 -3 -5 -2 -1 -1 -6 -4 -4 -1  1 -2 -8 
+M -2 -3 -4 -6 -3 -1 -4 -5 -4  2  3 -3  9  0 -4 -3 -1 -3 -3  1 -5 -3 -2 -8 
+F -4 -5 -6 -6 -4 -5 -6 -6 -2 -1  0 -5  0 10 -6 -4 -4  0  4 -2 -6 -6 -3 -8 
+P -1 -3 -4 -3 -6 -3 -2 -5 -4 -5 -5 -2 -4 -6 12 -2 -3 -7 -6 -4 -4 -2 -3 -8 
+S  2 -2  1 -1 -2 -1 -1 -1 -2 -4 -4 -1 -3 -4 -2  7  2 -6 -3 -3  0 -1 -1 -8 
+T  0 -2  0 -2 -2 -1 -2 -3 -3 -2 -3 -1 -1 -4 -3  2  8 -5 -3  0 -1 -2 -1 -8 
+W -5 -5 -7 -8 -5 -4 -6 -6 -4 -5 -4 -6 -3  0 -7 -6 -5 16  3 -5 -8 -5 -5 -8 
+Y -4 -4 -4 -6 -5 -3 -5 -6  3 -3 -2 -4 -3  4 -6 -3 -3  3 11 -3 -5 -4 -3 -8 
+V -1 -4 -5 -6 -2 -4 -4 -6 -5  4  1 -4  1 -2 -4 -3  0 -5 -3  7 -6 -4 -2 -8 
+B -3 -2  5  6 -6 -1  1 -2 -1 -6 -7 -1 -5 -6 -4  0 -1 -8 -5 -6  6  0 -3 -8 
+Z -2  0 -1  1 -7  5  6 -4  0 -6 -5  1 -3 -6 -2 -1 -2 -5 -4 -4  0  6 -1 -8 
+X -1 -2 -2 -3 -4 -2 -2 -3 -2 -2 -2 -2 -2 -3 -3 -1 -1 -5 -3 -2 -3 -1 -2 -8 
+* -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8  1 
diff --git a/sources/PamBlosum/BLOSUM85 b/sources/PamBlosum/BLOSUM85
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUM85
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosum85.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/2 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 85
+#  Entropy =   1.0805, Expected =  -0.8153
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  5 -2 -2 -2 -1 -1 -1  0 -2 -2 -2 -1 -2 -3 -1  1  0 -3 -3 -1 -2 -1 -1 -6 
+R -2  6 -1 -2 -4  1 -1 -3  0 -4 -3  2 -2 -4 -2 -1 -2 -4 -3 -3 -2  0 -2 -6 
+N -2 -1  7  1 -4  0 -1 -1  0 -4 -4  0 -3 -4 -3  0  0 -5 -3 -4  4 -1 -2 -6 
+D -2 -2  1  7 -5 -1  1 -2 -2 -5 -5 -1 -4 -4 -2 -1 -2 -6 -4 -4  4  1 -2 -6 
+C -1 -4 -4 -5  9 -4 -5 -4 -5 -2 -2 -4 -2 -3 -4 -2 -2 -4 -3 -1 -4 -5 -3 -6 
+Q -1  1  0 -1 -4  6  2 -3  1 -4 -3  1  0 -4 -2 -1 -1 -3 -2 -3 -1  4 -1 -6 
+E -1 -1 -1  1 -5  2  6 -3 -1 -4 -4  0 -3 -4 -2 -1 -1 -4 -4 -3  0  4 -1 -6 
+G  0 -3 -1 -2 -4 -3 -3  6 -3 -5 -5 -2 -4 -4 -3 -1 -2 -4 -5 -4 -1 -3 -2 -6 
+H -2  0  0 -2 -5  1 -1 -3  8 -4 -3 -1 -3 -2 -3 -1 -2 -3  2 -4 -1  0 -2 -6 
+I -2 -4 -4 -5 -2 -4 -4 -5 -4  5  1 -3  1 -1 -4 -3 -1 -3 -2  3 -5 -4 -2 -6 
+L -2 -3 -4 -5 -2 -3 -4 -5 -3  1  4 -3  2  0 -4 -3 -2 -3 -2  0 -5 -4 -2 -6 
+K -1  2  0 -1 -4  1  0 -2 -1 -3 -3  6 -2 -4 -2 -1 -1 -5 -3 -3 -1  1 -1 -6 
+M -2 -2 -3 -4 -2  0 -3 -4 -3  1  2 -2  7 -1 -3 -2 -1 -2 -2  0 -4 -2 -1 -6 
+F -3 -4 -4 -4 -3 -4 -4 -4 -2 -1  0 -4 -1  7 -4 -3 -3  0  3 -1 -4 -4 -2 -6 
+P -1 -2 -3 -2 -4 -2 -2 -3 -3 -4 -4 -2 -3 -4  8 -1 -2 -5 -4 -3 -3 -2 -2 -6 
+S  1 -1  0 -1 -2 -1 -1 -1 -1 -3 -3 -1 -2 -3 -1  5  1 -4 -2 -2  0 -1 -1 -6 
+T  0 -2  0 -2 -2 -1 -1 -2 -2 -1 -2 -1 -1 -3 -2  1  5 -4 -2  0 -1 -1 -1 -6 
+W -3 -4 -5 -6 -4 -3 -4 -4 -3 -3 -3 -5 -2  0 -5 -4 -4 11  2 -3 -5 -4 -3 -6 
+Y -3 -3 -3 -4 -3 -2 -4 -5  2 -2 -2 -3 -2  3 -4 -2 -2  2  7 -2 -4 -3 -2 -6 
+V -1 -3 -4 -4 -1 -3 -3 -4 -4  3  0 -3  0 -1 -3 -2  0 -3 -2  5 -4 -3 -1 -6 
+B -2 -2  4  4 -4 -1  0 -1 -1 -5 -5 -1 -4 -4 -3  0 -1 -5 -4 -4  4  0 -2 -6 
+Z -1  0 -1  1 -5  4  4 -3  0 -4 -4  1 -2 -4 -2 -1 -1 -4 -3 -3  0  4 -1 -6 
+X -1 -2 -2 -2 -3 -1 -1 -2 -2 -2 -2 -1 -1 -2 -2 -1 -1 -3 -2 -1 -2 -1 -2 -6 
+* -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6  1 
diff --git a/sources/PamBlosum/BLOSUM85.50 b/sources/PamBlosum/BLOSUM85.50
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUM85.50
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosum85.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/2 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 85
+#  Entropy =   1.0805, Expected =  -0.8153
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  5 -2 -2 -2 -1 -1 -1  0 -2 -2 -2 -1 -2 -3 -1  1  0 -3 -3 -1 -2 -1 -1 -6 
+R -2  6 -1 -2 -4  1 -1 -3  0 -4 -3  2 -2 -4 -2 -1 -2 -4 -3 -3 -2  0 -2 -6 
+N -2 -1  7  1 -4  0 -1 -1  0 -4 -4  0 -3 -4 -3  0  0 -5 -3 -4  4 -1 -2 -6 
+D -2 -2  1  7 -5 -1  1 -2 -2 -5 -5 -1 -4 -4 -2 -1 -2 -6 -4 -4  4  1 -2 -6 
+C -1 -4 -4 -5  9 -4 -5 -4 -5 -2 -2 -4 -2 -3 -4 -2 -2 -4 -3 -1 -4 -5 -3 -6 
+Q -1  1  0 -1 -4  6  2 -3  1 -4 -3  1  0 -4 -2 -1 -1 -3 -2 -3 -1  4 -1 -6 
+E -1 -1 -1  1 -5  2  6 -3 -1 -4 -4  0 -3 -4 -2 -1 -1 -4 -4 -3  0  4 -1 -6 
+G  0 -3 -1 -2 -4 -3 -3  6 -3 -5 -5 -2 -4 -4 -3 -1 -2 -4 -5 -4 -1 -3 -2 -6 
+H -2  0  0 -2 -5  1 -1 -3  8 -4 -3 -1 -3 -2 -3 -1 -2 -3  2 -4 -1  0 -2 -6 
+I -2 -4 -4 -5 -2 -4 -4 -5 -4  5  1 -3  1 -1 -4 -3 -1 -3 -2  3 -5 -4 -2 -6 
+L -2 -3 -4 -5 -2 -3 -4 -5 -3  1  4 -3  2  0 -4 -3 -2 -3 -2  0 -5 -4 -2 -6 
+K -1  2  0 -1 -4  1  0 -2 -1 -3 -3  6 -2 -4 -2 -1 -1 -5 -3 -3 -1  1 -1 -6 
+M -2 -2 -3 -4 -2  0 -3 -4 -3  1  2 -2  7 -1 -3 -2 -1 -2 -2  0 -4 -2 -1 -6 
+F -3 -4 -4 -4 -3 -4 -4 -4 -2 -1  0 -4 -1  7 -4 -3 -3  0  3 -1 -4 -4 -2 -6 
+P -1 -2 -3 -2 -4 -2 -2 -3 -3 -4 -4 -2 -3 -4  8 -1 -2 -5 -4 -3 -3 -2 -2 -6 
+S  1 -1  0 -1 -2 -1 -1 -1 -1 -3 -3 -1 -2 -3 -1  5  1 -4 -2 -2  0 -1 -1 -6 
+T  0 -2  0 -2 -2 -1 -1 -2 -2 -1 -2 -1 -1 -3 -2  1  5 -4 -2  0 -1 -1 -1 -6 
+W -3 -4 -5 -6 -4 -3 -4 -4 -3 -3 -3 -5 -2  0 -5 -4 -4 11  2 -3 -5 -4 -3 -6 
+Y -3 -3 -3 -4 -3 -2 -4 -5  2 -2 -2 -3 -2  3 -4 -2 -2  2  7 -2 -4 -3 -2 -6 
+V -1 -3 -4 -4 -1 -3 -3 -4 -4  3  0 -3  0 -1 -3 -2  0 -3 -2  5 -4 -3 -1 -6 
+B -2 -2  4  4 -4 -1  0 -1 -1 -5 -5 -1 -4 -4 -3  0 -1 -5 -4 -4  4  0 -2 -6 
+Z -1  0 -1  1 -5  4  4 -3  0 -4 -4  1 -2 -4 -2 -1 -1 -4 -3 -3  0  4 -1 -6 
+X -1 -2 -2 -2 -3 -1 -1 -2 -2 -2 -2 -1 -1 -2 -2 -1 -1 -3 -2 -1 -2 -1 -2 -6 
+* -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6  1 
diff --git a/sources/PamBlosum/BLOSUM90 b/sources/PamBlosum/BLOSUM90
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUM90
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosum90.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/2 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 90
+#  Entropy =   1.1806, Expected =  -0.8887
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  5 -2 -2 -3 -1 -1 -1  0 -2 -2 -2 -1 -2 -3 -1  1  0 -4 -3 -1 -2 -1 -1 -6 
+R -2  6 -1 -3 -5  1 -1 -3  0 -4 -3  2 -2 -4 -3 -1 -2 -4 -3 -3 -2  0 -2 -6 
+N -2 -1  7  1 -4  0 -1 -1  0 -4 -4  0 -3 -4 -3  0  0 -5 -3 -4  4 -1 -2 -6 
+D -3 -3  1  7 -5 -1  1 -2 -2 -5 -5 -1 -4 -5 -3 -1 -2 -6 -4 -5  4  0 -2 -6 
+C -1 -5 -4 -5  9 -4 -6 -4 -5 -2 -2 -4 -2 -3 -4 -2 -2 -4 -4 -2 -4 -5 -3 -6 
+Q -1  1  0 -1 -4  7  2 -3  1 -4 -3  1  0 -4 -2 -1 -1 -3 -3 -3 -1  4 -1 -6 
+E -1 -1 -1  1 -6  2  6 -3 -1 -4 -4  0 -3 -5 -2 -1 -1 -5 -4 -3  0  4 -2 -6 
+G  0 -3 -1 -2 -4 -3 -3  6 -3 -5 -5 -2 -4 -5 -3 -1 -3 -4 -5 -5 -2 -3 -2 -6 
+H -2  0  0 -2 -5  1 -1 -3  8 -4 -4 -1 -3 -2 -3 -2 -2 -3  1 -4 -1  0 -2 -6 
+I -2 -4 -4 -5 -2 -4 -4 -5 -4  5  1 -4  1 -1 -4 -3 -1 -4 -2  3 -5 -4 -2 -6 
+L -2 -3 -4 -5 -2 -3 -4 -5 -4  1  5 -3  2  0 -4 -3 -2 -3 -2  0 -5 -4 -2 -6 
+K -1  2  0 -1 -4  1  0 -2 -1 -4 -3  6 -2 -4 -2 -1 -1 -5 -3 -3 -1  1 -1 -6 
+M -2 -2 -3 -4 -2  0 -3 -4 -3  1  2 -2  7 -1 -3 -2 -1 -2 -2  0 -4 -2 -1 -6 
+F -3 -4 -4 -5 -3 -4 -5 -5 -2 -1  0 -4 -1  7 -4 -3 -3  0  3 -2 -4 -4 -2 -6 
+P -1 -3 -3 -3 -4 -2 -2 -3 -3 -4 -4 -2 -3 -4  8 -2 -2 -5 -4 -3 -3 -2 -2 -6 
+S  1 -1  0 -1 -2 -1 -1 -1 -2 -3 -3 -1 -2 -3 -2  5  1 -4 -3 -2  0 -1 -1 -6 
+T  0 -2  0 -2 -2 -1 -1 -3 -2 -1 -2 -1 -1 -3 -2  1  6 -4 -2 -1 -1 -1 -1 -6 
+W -4 -4 -5 -6 -4 -3 -5 -4 -3 -4 -3 -5 -2  0 -5 -4 -4 11  2 -3 -6 -4 -3 -6 
+Y -3 -3 -3 -4 -4 -3 -4 -5  1 -2 -2 -3 -2  3 -4 -3 -2  2  8 -3 -4 -3 -2 -6 
+V -1 -3 -4 -5 -2 -3 -3 -5 -4  3  0 -3  0 -2 -3 -2 -1 -3 -3  5 -4 -3 -2 -6 
+B -2 -2  4  4 -4 -1  0 -2 -1 -5 -5 -1 -4 -4 -3  0 -1 -6 -4 -4  4  0 -2 -6 
+Z -1  0 -1  0 -5  4  4 -3  0 -4 -4  1 -2 -4 -2 -1 -1 -4 -3 -3  0  4 -1 -6 
+X -1 -2 -2 -2 -3 -1 -2 -2 -2 -2 -2 -1 -1 -2 -2 -1 -1 -3 -2 -2 -2 -1 -2 -6 
+* -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6  1 
diff --git a/sources/PamBlosum/BLOSUM90.50 b/sources/PamBlosum/BLOSUM90.50
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUM90.50
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosum90.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/2 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 90
+#  Entropy =   1.1806, Expected =  -0.8887
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  5 -2 -2 -3 -1 -1 -1  0 -2 -2 -2 -1 -2 -3 -1  1  0 -4 -3 -1 -2 -1 -1 -6 
+R -2  6 -1 -3 -5  1 -1 -3  0 -4 -3  2 -2 -4 -3 -1 -2 -4 -3 -3 -2  0 -2 -6 
+N -2 -1  7  1 -4  0 -1 -1  0 -4 -4  0 -3 -4 -3  0  0 -5 -3 -4  4 -1 -2 -6 
+D -3 -3  1  7 -5 -1  1 -2 -2 -5 -5 -1 -4 -5 -3 -1 -2 -6 -4 -5  4  0 -2 -6 
+C -1 -5 -4 -5  9 -4 -6 -4 -5 -2 -2 -4 -2 -3 -4 -2 -2 -4 -4 -2 -4 -5 -3 -6 
+Q -1  1  0 -1 -4  7  2 -3  1 -4 -3  1  0 -4 -2 -1 -1 -3 -3 -3 -1  4 -1 -6 
+E -1 -1 -1  1 -6  2  6 -3 -1 -4 -4  0 -3 -5 -2 -1 -1 -5 -4 -3  0  4 -2 -6 
+G  0 -3 -1 -2 -4 -3 -3  6 -3 -5 -5 -2 -4 -5 -3 -1 -3 -4 -5 -5 -2 -3 -2 -6 
+H -2  0  0 -2 -5  1 -1 -3  8 -4 -4 -1 -3 -2 -3 -2 -2 -3  1 -4 -1  0 -2 -6 
+I -2 -4 -4 -5 -2 -4 -4 -5 -4  5  1 -4  1 -1 -4 -3 -1 -4 -2  3 -5 -4 -2 -6 
+L -2 -3 -4 -5 -2 -3 -4 -5 -4  1  5 -3  2  0 -4 -3 -2 -3 -2  0 -5 -4 -2 -6 
+K -1  2  0 -1 -4  1  0 -2 -1 -4 -3  6 -2 -4 -2 -1 -1 -5 -3 -3 -1  1 -1 -6 
+M -2 -2 -3 -4 -2  0 -3 -4 -3  1  2 -2  7 -1 -3 -2 -1 -2 -2  0 -4 -2 -1 -6 
+F -3 -4 -4 -5 -3 -4 -5 -5 -2 -1  0 -4 -1  7 -4 -3 -3  0  3 -2 -4 -4 -2 -6 
+P -1 -3 -3 -3 -4 -2 -2 -3 -3 -4 -4 -2 -3 -4  8 -2 -2 -5 -4 -3 -3 -2 -2 -6 
+S  1 -1  0 -1 -2 -1 -1 -1 -2 -3 -3 -1 -2 -3 -2  5  1 -4 -3 -2  0 -1 -1 -6 
+T  0 -2  0 -2 -2 -1 -1 -3 -2 -1 -2 -1 -1 -3 -2  1  6 -4 -2 -1 -1 -1 -1 -6 
+W -4 -4 -5 -6 -4 -3 -5 -4 -3 -4 -3 -5 -2  0 -5 -4 -4 11  2 -3 -6 -4 -3 -6 
+Y -3 -3 -3 -4 -4 -3 -4 -5  1 -2 -2 -3 -2  3 -4 -3 -2  2  8 -3 -4 -3 -2 -6 
+V -1 -3 -4 -5 -2 -3 -3 -5 -4  3  0 -3  0 -2 -3 -2 -1 -3 -3  5 -4 -3 -2 -6 
+B -2 -2  4  4 -4 -1  0 -2 -1 -5 -5 -1 -4 -4 -3  0 -1 -6 -4 -4  4  0 -2 -6 
+Z -1  0 -1  0 -5  4  4 -3  0 -4 -4  1 -2 -4 -2 -1 -1 -4 -3 -3  0  4 -1 -6 
+X -1 -2 -2 -2 -3 -1 -2 -2 -2 -2 -2 -1 -1 -2 -2 -1 -1 -3 -2 -2 -2 -1 -2 -6 
+* -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6  1 
diff --git a/sources/PamBlosum/BLOSUMN b/sources/PamBlosum/BLOSUMN
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUMN
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosumn.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/2 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= -2
+#  Entropy =   1.5172, Expected =  -1.1484
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  6 -2 -2 -3 -2 -1 -2 -1 -3 -3 -3 -2 -2 -4 -1  1 -1 -4 -4 -1 -3 -2 -1 -7 
+R -2  7 -1 -3 -6  0 -2 -4 -1 -5 -4  2 -3 -4 -3 -2 -2 -5 -4 -4 -2 -1 -2 -7 
+N -2 -1  7  1 -4 -1 -1 -2  0 -5 -5 -1 -4 -5 -4  0 -1 -6 -4 -4  4 -1 -2 -7 
+D -3 -3  1  7 -6 -2  1 -3 -2 -6 -6 -2 -5 -5 -3 -2 -2 -7 -5 -5  4  0 -3 -7 
+C -2 -6 -4 -6  9 -5 -7 -5 -6 -2 -3 -5 -3 -3 -5 -2 -2 -5 -4 -2 -5 -6 -4 -7 
+Q -1  0 -1 -2 -5  7  1 -4  0 -4 -3  1 -1 -4 -2 -1 -2 -4 -3 -4 -1  4 -2 -7 
+E -2 -2 -1  1 -7  1  6 -4 -1 -5 -5  0 -4 -5 -3 -1 -2 -5 -4 -4  0  5 -2 -7 
+G -1 -4 -2 -3 -5 -4 -4  6 -4 -6 -6 -3 -5 -5 -4 -1 -3 -5 -6 -5 -2 -4 -3 -7 
+H -3 -1  0 -2 -6  0 -1 -4  9 -5 -4 -2 -3 -3 -4 -2 -3 -4  1 -5 -1 -1 -3 -7 
+I -3 -5 -5 -6 -2 -4 -5 -6 -5  6  1 -4  1 -1 -5 -4 -2 -4 -3  2 -5 -5 -2 -7 
+L -3 -4 -5 -6 -3 -3 -5 -6 -4  1  5 -4  2  0 -5 -4 -3 -4 -3  0 -5 -4 -2 -7 
+K -2  2 -1 -2 -5  1  0 -3 -2 -4 -4  6 -2 -4 -2 -1 -2 -6 -4 -4 -1  0 -2 -7 
+M -2 -3 -4 -5 -3 -1 -4 -5 -3  1  2 -2  8 -1 -4 -3 -2 -2 -3  0 -5 -3 -2 -7 
+F -4 -4 -5 -5 -3 -4 -5 -5 -3 -1  0 -4 -1  7 -5 -4 -3  0  3 -2 -5 -5 -3 -7 
+P -1 -3 -4 -3 -5 -2 -3 -4 -4 -5 -5 -2 -4 -5  8 -2 -3 -5 -5 -4 -4 -3 -3 -7 
+S  1 -2  0 -2 -2 -1 -1 -1 -2 -4 -4 -1 -3 -4 -2  6  1 -4 -3 -3 -1 -1 -1 -7 
+T -1 -2 -1 -2 -2 -2 -2 -3 -3 -2 -3 -2 -2 -3 -3  1  6 -5 -3 -1 -2 -2 -1 -7 
+W -4 -5 -6 -7 -5 -4 -5 -5 -4 -4 -4 -6 -2  0 -5 -4 -5 11  1 -3 -6 -4 -4 -7 
+Y -4 -4 -4 -5 -4 -3 -4 -6  1 -3 -3 -4 -3  3 -5 -3 -3  1  8 -3 -4 -4 -3 -7 
+V -1 -4 -4 -5 -2 -4 -4 -5 -5  2  0 -4  0 -2 -4 -3 -1 -3 -3  5 -5 -4 -2 -7 
+B -3 -2  4  4 -5 -1  0 -2 -1 -5 -5 -1 -5 -5 -4 -1 -2 -6 -4 -5  4  1 -2 -7 
+Z -2 -1 -1  0 -6  4  5 -4 -1 -5 -4  0 -3 -5 -3 -1 -2 -4 -4 -4  1  4 -2 -7 
+X -1 -2 -2 -3 -4 -2 -2 -3 -3 -2 -2 -2 -2 -3 -3 -1 -1 -4 -3 -2 -2 -2 -2 -7 
+* -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7  1 
diff --git a/sources/PamBlosum/BLOSUMN.50 b/sources/PamBlosum/BLOSUMN.50
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/BLOSUMN.50
@@ -0,0 +1,31 @@
+#  Matrix made by matblas from blosumn.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/2 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= -2
+#  Entropy =   1.5172, Expected =  -1.1484
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  6 -2 -2 -3 -2 -1 -2 -1 -3 -3 -3 -2 -2 -4 -1  1 -1 -4 -4 -1 -3 -2 -1 -7 
+R -2  7 -1 -3 -6  0 -2 -4 -1 -5 -4  2 -3 -4 -3 -2 -2 -5 -4 -4 -2 -1 -2 -7 
+N -2 -1  7  1 -4 -1 -1 -2  0 -5 -5 -1 -4 -5 -4  0 -1 -6 -4 -4  4 -1 -2 -7 
+D -3 -3  1  7 -6 -2  1 -3 -2 -6 -6 -2 -5 -5 -3 -2 -2 -7 -5 -5  4  0 -3 -7 
+C -2 -6 -4 -6  9 -5 -7 -5 -6 -2 -3 -5 -3 -3 -5 -2 -2 -5 -4 -2 -5 -6 -4 -7 
+Q -1  0 -1 -2 -5  7  1 -4  0 -4 -3  1 -1 -4 -2 -1 -2 -4 -3 -4 -1  4 -2 -7 
+E -2 -2 -1  1 -7  1  6 -4 -1 -5 -5  0 -4 -5 -3 -1 -2 -5 -4 -4  0  5 -2 -7 
+G -1 -4 -2 -3 -5 -4 -4  6 -4 -6 -6 -3 -5 -5 -4 -1 -3 -5 -6 -5 -2 -4 -3 -7 
+H -3 -1  0 -2 -6  0 -1 -4  9 -5 -4 -2 -3 -3 -4 -2 -3 -4  1 -5 -1 -1 -3 -7 
+I -3 -5 -5 -6 -2 -4 -5 -6 -5  6  1 -4  1 -1 -5 -4 -2 -4 -3  2 -5 -5 -2 -7 
+L -3 -4 -5 -6 -3 -3 -5 -6 -4  1  5 -4  2  0 -5 -4 -3 -4 -3  0 -5 -4 -2 -7 
+K -2  2 -1 -2 -5  1  0 -3 -2 -4 -4  6 -2 -4 -2 -1 -2 -6 -4 -4 -1  0 -2 -7 
+M -2 -3 -4 -5 -3 -1 -4 -5 -3  1  2 -2  8 -1 -4 -3 -2 -2 -3  0 -5 -3 -2 -7 
+F -4 -4 -5 -5 -3 -4 -5 -5 -3 -1  0 -4 -1  7 -5 -4 -3  0  3 -2 -5 -5 -3 -7 
+P -1 -3 -4 -3 -5 -2 -3 -4 -4 -5 -5 -2 -4 -5  8 -2 -3 -5 -5 -4 -4 -3 -3 -7 
+S  1 -2  0 -2 -2 -1 -1 -1 -2 -4 -4 -1 -3 -4 -2  6  1 -4 -3 -3 -1 -1 -1 -7 
+T -1 -2 -1 -2 -2 -2 -2 -3 -3 -2 -3 -2 -2 -3 -3  1  6 -5 -3 -1 -2 -2 -1 -7 
+W -4 -5 -6 -7 -5 -4 -5 -5 -4 -4 -4 -6 -2  0 -5 -4 -5 11  1 -3 -6 -4 -4 -7 
+Y -4 -4 -4 -5 -4 -3 -4 -6  1 -3 -3 -4 -3  3 -5 -3 -3  1  8 -3 -4 -4 -3 -7 
+V -1 -4 -4 -5 -2 -4 -4 -5 -5  2  0 -4  0 -2 -4 -3 -1 -3 -3  5 -5 -4 -2 -7 
+B -3 -2  4  4 -5 -1  0 -2 -1 -5 -5 -1 -5 -5 -4 -1 -2 -6 -4 -5  4  1 -2 -7 
+Z -2 -1 -1  0 -6  4  5 -4 -1 -5 -4  0 -3 -5 -3 -1 -2 -4 -4 -4  1  4 -2 -7 
+X -1 -2 -2 -3 -4 -2 -2 -3 -3 -2 -2 -2 -2 -3 -3 -1 -1 -4 -3 -2 -2 -2 -2 -7 
+* -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7  1 
diff --git a/sources/PamBlosum/DAYHOFF b/sources/PamBlosum/DAYHOFF
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/DAYHOFF
@@ -0,0 +1,32 @@
+#Date: Wed, 18 Sep 91 17:36:51 EDT
+#From: altschul@ray.nlm.nih.gov (Stephen Altschul)
+#To: gish@ray.nlm.nih.gov
+#Subject: Vanilla-flavored PAM-250
+#
+# substitution scores for B, Z, X, and * were obtained with "pam" version 1.0.5
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  2 -2  0  0 -2  0  0  1 -1 -1 -2 -1 -1 -4  1  1  1 -6 -3  0  0  0  0 -8
+R -2  6  0 -1 -4  1 -1 -3  2 -2 -3  3  0 -4  0  0 -1  2 -4 -2 -1  0 -1 -8
+N  0  0  2  2 -4  1  1  0  2 -2 -3  1 -2 -4 -1  1  0 -4 -2 -2  2  1  0 -8
+D  0 -1  2  4 -5  2  3  1  1 -2 -4  0 -3 -6 -1  0  0 -7 -4 -2  3  3 -1 -8
+C -2 -4 -4 -5 12 -5 -5 -3 -3 -2 -6 -5 -5 -4 -3  0 -2 -8  0 -2 -4 -5 -3 -8
+Q  0  1  1  2 -5  4  2 -1  3 -2 -2  1 -1 -5  0 -1 -1 -5 -4 -2  1  3 -1 -8
+E  0 -1  1  3 -5  2  4  0  1 -2 -3  0 -2 -5 -1  0  0 -7 -4 -2  3  3 -1 -8
+G  1 -3  0  1 -3 -1  0  5 -2 -3 -4 -2 -3 -5 -1  1  0 -7 -5 -1  0  0 -1 -8
+H -1  2  2  1 -3  3  1 -2  6 -2 -2  0 -2 -2  0 -1 -1 -3  0 -2  1  2 -1 -8
+I -1 -2 -2 -2 -2 -2 -2 -3 -2  5  2 -2  2  1 -2 -1  0 -5 -1  4 -2 -2 -1 -8
+L -2 -3 -3 -4 -6 -2 -3 -4 -2  2  6 -3  4  2 -3 -3 -2 -2 -1  2 -3 -3 -1 -8
+K -1  3  1  0 -5  1  0 -2  0 -2 -3  5  0 -5 -1  0  0 -3 -4 -2  1  0 -1 -8
+M -1  0 -2 -3 -5 -1 -2 -3 -2  2  4  0  6  0 -2 -2 -1 -4 -2  2 -2 -2 -1 -8
+F -4 -4 -4 -6 -4 -5 -5 -5 -2  1  2 -5  0  9 -5 -3 -3  0  7 -1 -4 -5 -2 -8
+P  1  0 -1 -1 -3  0 -1 -1  0 -2 -3 -1 -2 -5  6  1  0 -6 -5 -1 -1  0 -1 -8
+S  1  0  1  0  0 -1  0  1 -1 -1 -3  0 -2 -3  1  2  1 -2 -3 -1  0  0  0 -8
+T  1 -1  0  0 -2 -1  0  0 -1  0 -2  0 -1 -3  0  1  3 -5 -3  0  0 -1  0 -8
+W -6  2 -4 -7 -8 -5 -7 -7 -3 -5 -2 -3 -4  0 -6 -2 -5 17  0 -6 -5 -6 -4 -8
+Y -3 -4 -2 -4  0 -4 -4 -5  0 -1 -1 -4 -2  7 -5 -3 -3  0 10 -2 -3 -4 -2 -8
+V  0 -2 -2 -2 -2 -2 -2 -1 -2  4  2 -2  2 -1 -1 -1  0 -6 -2  4 -2 -2 -1 -8
+B  0 -1  2  3 -4  1  3  0  1 -2 -3  1 -2 -4 -1  0  0 -5 -3 -2  3  2 -1 -8
+Z  0  0  1  3 -5  3  3  0  2 -2 -3  0 -2 -5  0  0 -1 -6 -4 -2  2  3 -1 -8
+X  0 -1  0 -1 -3 -1 -1 -1 -1 -1 -1 -1 -1 -2 -1  0  0 -4 -2 -1 -1 -1 -1 -8
+* -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8  1
diff --git a/sources/PamBlosum/GONNET b/sources/PamBlosum/GONNET
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/GONNET
@@ -0,0 +1,26 @@
+# PAM 250 matrix recommended by Gonnet, Cohen & Benner
+# Science June 5, 1992.
+# Values rounded to nearest integer
+   C  S  T  P  A  G  N  D  E  Q  H  R  K  M  I  L  V  F  Y  W  X  *
+C 12  0  0 -3  0 -2 -2 -3 -3 -2 -1 -2 -3 -1 -1 -2  0 -1  0 -1 -3 -8
+S  0  2  2  0  1  0  1  0  0  0  0  0  0 -1 -2 -2 -1 -3 -2 -3  0 -8
+T  0  2  2  0  1 -1  0  0  0  0  0  0  0 -1 -1 -1  0 -2 -2 -4  0 -8
+P -3  0  0  8  0 -2 -1 -1  0  0 -1 -1 -1 -2 -3 -2 -2 -4 -3 -5 -1 -8
+A  0  1  1  0  2  0  0  0  0  0 -1 -1  0 -1 -1 -1  0 -2 -2 -4  0 -8
+G -2  0 -1 -2  0  7  0  0 -1 -1 -1 -1 -1 -4 -4 -4 -3 -5 -4 -4 -1 -8
+N -2  1  0 -1  0  0  4  2  1  1  1  0  1 -2 -3 -3 -2 -3 -1 -4  0 -8
+D -3  0  0 -1  0  0  2  5  3  1  0  0  0 -3 -4 -4 -3 -4 -3 -5 -1 -8
+E -3  0  0  0  0 -1  1  3  4  2  0  0  1 -2 -3 -3 -2 -4 -3 -4 -1 -8
+Q -2  0  0  0  0 -1  1  1  2  3  1  2  2 -1 -2 -2 -2 -3 -2 -3 -1 -8
+H -1  0  0 -1 -1 -1  1  0  0  1  6  1  1 -1 -2 -2 -2  0  2 -1 -1 -8
+R -2  0  0 -1 -1 -1  0  0  0  2  1  5  3 -2 -2 -2 -2 -3 -2 -2 -1 -8
+K -3  0  0 -1  0 -1  1  0  1  2  1  3  3 -1 -2 -2 -2 -3 -2 -4 -1 -8
+M -1 -1 -1 -2 -1 -4 -2 -3 -2 -1 -1 -2 -1  4  2  3  2  2  0 -1 -1 -8
+I -1 -2 -1 -3 -1 -4 -3 -4 -3 -2 -2 -2 -2  2  4  3  3  1 -1 -2 -1 -8
+L -2 -2 -1 -2 -1 -4 -3 -4 -3 -2 -2 -2 -2  3  3  4  2  2  0 -1 -1 -8
+V  0 -1  0 -2  0 -3 -2 -3 -2 -2 -2 -2 -2  2  3  2  3  0 -1 -3 -1 -8
+F -1 -3 -2 -4 -2 -5 -3 -4 -4 -3  0 -3 -3  2  1  2  0  7  5  4 -2 -8
+Y  0 -2 -2 -3 -2 -4 -1 -3 -3 -2  2 -2 -2  0 -1  0 -1  5  8  4 -2 -8
+W -1 -3 -4 -5 -4 -4 -4 -5 -4 -3 -1 -2 -4 -1 -2 -1 -3  4  4 14 -4 -8
+X -3  0  0 -1  0 -1  0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -2 -2 -4 -1 -8
+* -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8  1
diff --git a/sources/PamBlosum/IDENTITY b/sources/PamBlosum/IDENTITY
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/IDENTITY
@@ -0,0 +1,25 @@
+  A  R  N  B  D  C  Q  Z  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  X  *
+A  1 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000
+R -10000  1 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000
+N -10000 -10000  1 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000
+B -10000 -10000 -10000  1 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000
+D -10000 -10000 -10000 -10000  1 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000
+C -10000 -10000 -10000 -10000 -10000  1 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000
+Q -10000 -10000 -10000 -10000 -10000 -10000  1 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000
+Z -10000 -10000 -10000 -10000 -10000 -10000 -10000  1 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000
+E -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000  1 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000
+G -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000  1 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000
+H -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000  1 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000
+I -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000  1 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000
+L -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000  1 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000
+K -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000  1 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000
+M -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000  1 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000
+F -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000  1 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000
+P -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000  1 -10000 -10000 -10000 -10000 -10000 -10000 -10000
+S -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000  1 -10000 -10000 -10000 -10000 -10000 -10000
+T -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000  1 -10000 -10000 -10000 -10000 -10000
+W -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000  1 -10000 -10000 -10000 -10000
+Y -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000  1 -10000 -10000 -10000
+V -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000  1 -10000 -10000
+X -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000  0 -10000
+* -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000  0
diff --git a/sources/PamBlosum/MATCH b/sources/PamBlosum/MATCH
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/MATCH
@@ -0,0 +1,25 @@
+   A  R  N  B  D  C  Q  Z  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  X  *
+A  1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
+R -1  1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
+N -1 -1  1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
+B -1 -1 -1  1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
+D -1 -1 -1 -1  1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
+C -1 -1 -1 -1 -1  1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
+Q -1 -1 -1 -1 -1 -1  1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
+Z -1 -1 -1 -1 -1 -1 -1  1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
+E -1 -1 -1 -1 -1 -1 -1 -1  1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
+G -1 -1 -1 -1 -1 -1 -1 -1 -1  1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
+H -1 -1 -1 -1 -1 -1 -1 -1 -1 -1  1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
+I -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1  1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
+L -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1  1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
+K -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1  1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
+M -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1  1 -1 -1 -1 -1 -1 -1 -1 -1 -1
+F -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1  1 -1 -1 -1 -1 -1 -1 -1 -1
+P -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1  1 -1 -1 -1 -1 -1 -1 -1
+S -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1  1 -1 -1 -1 -1 -1 -1
+T -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1  1 -1 -1 -1 -1 -1
+W -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1  1 -1 -1 -1 -1
+Y -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1  1 -1 -1 -1
+V -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1  1 -1 -1
+X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1  0 -1
+* -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1  0
diff --git a/sources/PamBlosum/NUC.4.2 b/sources/PamBlosum/NUC.4.2
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/NUC.4.2
@@ -0,0 +1,25 @@
+#
+# This matrix was created by Todd Lowe   12/10/92
+#
+# Uses ambiguous nucleotide codes, probabilities rounded to
+#  nearest integer
+#
+# Lowest score = -4, Highest score = 5
+#
+    A   T   G   C  
+A   5  -4  -4  -4 
+T  -4   5  -4  -4 
+G  -4  -4   5  -4 
+C  -4  -4  -4   5 
+S  -4  -4   1   1 
+W   1   1  -4  -4 
+R   1  -4   1  -4 
+Y  -4   1  -4   1 
+K  -4   1   1  -4 
+M   1  -4  -4   1 
+B  -4  -1  -1  -1 
+V  -1  -4  -1  -1 
+H  -1  -1  -4  -1 
+D  -1  -1  -1  -4 
+N  -2  -2  -2  -2 
+
diff --git a/sources/PamBlosum/NUC.4.4 b/sources/PamBlosum/NUC.4.4
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/NUC.4.4
@@ -0,0 +1,25 @@
+#
+# This matrix was created by Todd Lowe   12/10/92
+#
+# Uses ambiguous nucleotide codes, probabilities rounded to
+#  nearest integer
+#
+# Lowest score = -4, Highest score = 5
+#
+    A   T   G   C   S   W   R   Y   K   M   B   V   H   D   N
+A   5  -4  -4  -4  -4   1   1  -4  -4   1  -4  -1  -1  -1  -2
+T  -4   5  -4  -4  -4   1  -4   1   1  -4  -1  -4  -1  -1  -2
+G  -4  -4   5  -4   1  -4   1  -4   1  -4  -1  -1  -4  -1  -2
+C  -4  -4  -4   5   1  -4  -4   1  -4   1  -1  -1  -1  -4  -2
+S  -4  -4   1   1  -1  -4  -2  -2  -2  -2  -1  -1  -3  -3  -1
+W   1   1  -4  -4  -4  -1  -2  -2  -2  -2  -3  -3  -1  -1  -1
+R   1  -4   1  -4  -2  -2  -1  -4  -2  -2  -3  -1  -3  -1  -1
+Y  -4   1  -4   1  -2  -2  -4  -1  -2  -2  -1  -3  -1  -3  -1
+K  -4   1   1  -4  -2  -2  -2  -2  -1  -4  -1  -3  -3  -1  -1
+M   1  -4  -4   1  -2  -2  -2  -2  -4  -1  -3  -1  -1  -3  -1
+B  -4  -1  -1  -1  -1  -3  -3  -1  -1  -3  -1  -2  -2  -2  -1
+V  -1  -4  -1  -1  -1  -3  -1  -3  -3  -1  -2  -1  -2  -2  -1
+H  -1  -1  -4  -1  -3  -1  -3  -1  -3  -1  -2  -2  -1  -2  -1  
+D  -1  -1  -1  -4  -3  -1  -1  -3  -1  -3  -2  -2  -2  -1  -1
+N  -2  -2  -2  -2  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1
+
diff --git a/sources/PamBlosum/PAM10 b/sources/PamBlosum/PAM10
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM10
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 10 substitution matrix, scale = ln(2)/2 = 0.346574
+#
+# Expected score = -8.27, Entropy = 3.43 bits
+#
+# Lowest score = -23, Highest score = 13
+#
+    A   R   N   D   C   Q   E   G   H   I   L   K   M   F   P   S   T   W   Y   V   B   Z   X   *
+A   7 -10  -7  -6 -10  -7  -5  -4 -11  -8  -9 -10  -8 -12  -4  -3  -3 -20 -11  -5  -6  -6  -6 -23
+R -10   9  -9 -17 -11  -4 -15 -13  -4  -8 -12  -2  -7 -12  -7  -6 -10  -5 -14 -11 -11  -7  -9 -23
+N  -7  -9   9  -1 -17  -7  -5  -6  -2  -8 -10  -4 -15 -12  -9  -2  -5 -11  -7 -12   7  -6  -6 -23
+D  -6 -17  -1   8 -21  -6   0  -6  -7 -11 -19  -8 -17 -21 -12  -7  -8 -21 -17 -11   7  -1  -9 -23
+C -10 -11 -17 -21  10 -20 -20 -13 -10  -9 -21 -20 -20 -19 -11  -6 -11 -22  -7  -9 -18 -20 -13 -23
+Q  -7  -4  -7  -6 -20   9  -1 -10  -2 -11  -8  -6  -7 -19  -6  -8  -9 -19 -18 -10  -6   7  -8 -23
+E  -5 -15  -5   0 -20  -1   8  -7  -9  -8 -13  -7 -10 -20  -9  -7  -9 -23 -11 -10  -1   7  -8 -23
+G  -4 -13  -6  -6 -13 -10  -7   7 -13 -17 -14 -10 -12 -12 -10  -4 -10 -21 -20  -9  -6  -8  -8 -23
+H -11  -4  -2  -7 -10  -2  -9 -13  10 -13  -9 -10 -17  -9  -7  -9 -11 -10  -6  -9  -4  -4  -8 -23
+I  -8  -8  -8 -11  -9 -11  -8 -17 -13   9  -4  -9  -3  -5 -12 -10  -5 -20  -9  -1  -9  -9  -8 -23
+L  -9 -12 -10 -19 -21  -8 -13 -14  -9  -4   7 -11  -2  -5 -10 -12 -10  -9 -10  -5 -12 -10  -9 -23
+K -10  -2  -4  -8 -20  -6  -7 -10 -10  -9 -11   7  -4 -20 -10  -7  -6 -18 -12 -13  -5  -6  -8 -23
+M  -8  -7 -15 -17 -20  -7 -10 -12 -17  -3  -2  -4  12  -7 -11  -8  -7 -19 -17  -4 -16  -8  -9 -23
+F -12 -12 -12 -21 -19 -19 -20 -12  -9  -5  -5 -20  -7   9 -13  -9 -12  -7  -1 -12 -14 -20 -12 -23
+P  -4  -7  -9 -12 -11  -6  -9 -10  -7 -12 -10 -10 -11 -13   8  -4  -7 -20 -20  -9 -10  -7  -8 -23
+S  -3  -6  -2  -7  -6  -8  -7  -4  -9 -10 -12  -7  -8  -9  -4   7  -2  -8 -10 -10  -4  -8  -6 -23
+T  -3 -10  -5  -8 -11  -9  -9 -10 -11  -5 -10  -6  -7 -12  -7  -2   8 -19  -9  -6  -6  -9  -7 -23
+W -20  -5 -11 -21 -22 -19 -23 -21 -10 -20  -9 -18 -19  -7 -20  -8 -19  13  -8 -22 -13 -21 -16 -23
+Y -11 -14  -7 -17  -7 -18 -11 -20  -6  -9 -10 -12 -17  -1 -20 -10  -9  -8  10 -10  -9 -13 -11 -23
+V  -5 -11 -12 -11  -9 -10 -10  -9  -9  -1  -5 -13  -4 -12  -9 -10  -6 -22 -10   8 -11 -10  -8 -23
+B  -6 -11   7   7 -18  -6  -1  -6  -4  -9 -12  -5 -16 -14 -10  -4  -6 -13  -9 -11   7  -3  -8 -23
+Z  -6  -7  -6  -1 -20   7   7  -8  -4  -9 -10  -6  -8 -20  -7  -8  -9 -21 -13 -10  -3   7  -8 -23
+X  -6  -9  -6  -9 -13  -8  -8  -8  -8  -8  -9  -8  -9 -12  -8  -6  -7 -16 -11  -8  -8  -8  -8 -23
+* -23 -23 -23 -23 -23 -23 -23 -23 -23 -23 -23 -23 -23 -23 -23 -23 -23 -23 -23 -23 -23 -23 -23   1
diff --git a/sources/PamBlosum/PAM100 b/sources/PamBlosum/PAM100
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM100
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 100 substitution matrix, scale = ln(2)/2 = 0.346574
+#
+# Expected score = -1.99, Entropy = 1.18 bits
+#
+# Lowest score = -9, Highest score = 12
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  4 -3 -1 -1 -3 -2  0  1 -3 -2 -3 -3 -2 -5  1  1  1 -7 -4  0 -1 -1 -1 -9
+R -3  7 -2 -4 -5  1 -3 -5  1 -3 -5  2 -1 -6 -1 -1 -3  1 -6 -4 -3 -1 -2 -9
+N -1 -2  5  3 -5 -1  1 -1  2 -3 -4  1 -4 -5 -2  1  0 -5 -2 -3  4  0 -1 -9
+D -1 -4  3  5 -7  0  4 -1 -1 -4 -6 -1 -5 -8 -3 -1 -2 -9 -6 -4  4  3 -2 -9
+C -3 -5 -5 -7  9 -8 -8 -5 -4 -3 -8 -8 -7 -7 -4 -1 -4 -9 -1 -3 -6 -8 -5 -9
+Q -2  1 -1  0 -8  6  2 -3  3 -4 -2  0 -2 -7 -1 -2 -2 -7 -6 -3  0  5 -2 -9
+E  0 -3  1  4 -8  2  5 -1 -1 -3 -5 -1 -4 -8 -2 -1 -2 -9 -5 -3  3  4 -2 -9
+G  1 -5 -1 -1 -5 -3 -1  5 -4 -5 -6 -3 -4 -6 -2  0 -2 -9 -7 -3 -1 -2 -2 -9
+H -3  1  2 -1 -4  3 -1 -4  7 -4 -3 -2 -4 -3 -1 -2 -3 -4 -1 -3  1  1 -2 -9
+I -2 -3 -3 -4 -3 -4 -3 -5 -4  6  1 -3  1  0 -4 -3  0 -7 -3  3 -3 -3 -2 -9
+L -3 -5 -4 -6 -8 -2 -5 -6 -3  1  6 -4  3  0 -4 -4 -3 -3 -3  0 -5 -4 -3 -9
+K -3  2  1 -1 -8  0 -1 -3 -2 -3 -4  5  0 -7 -3 -1 -1 -6 -6 -4  0 -1 -2 -9
+M -2 -1 -4 -5 -7 -2 -4 -4 -4  1  3  0  9 -1 -4 -3 -1 -6 -5  1 -4 -2 -2 -9
+F -5 -6 -5 -8 -7 -7 -8 -6 -3  0  0 -7 -1  8 -6 -4 -5 -1  4 -3 -6 -7 -4 -9
+P  1 -1 -2 -3 -4 -1 -2 -2 -1 -4 -4 -3 -4 -6  7  0 -1 -7 -7 -3 -3 -1 -2 -9
+S  1 -1  1 -1 -1 -2 -1  0 -2 -3 -4 -1 -3 -4  0  4  2 -3 -4 -2  0 -2 -1 -9
+T  1 -3  0 -2 -4 -2 -2 -2 -3  0 -3 -1 -1 -5 -1  2  5 -7 -4  0 -1 -2 -1 -9
+W -7  1 -5 -9 -9 -7 -9 -9 -4 -7 -3 -6 -6 -1 -7 -3 -7 12 -2 -9 -6 -8 -6 -9
+Y -4 -6 -2 -6 -1 -6 -5 -7 -1 -3 -3 -6 -5  4 -7 -4 -4 -2  9 -4 -4 -6 -4 -9
+V  0 -4 -3 -4 -3 -3 -3 -3 -3  3  0 -4  1 -3 -3 -2  0 -9 -4  5 -4 -3 -2 -9
+B -1 -3  4  4 -6  0  3 -1  1 -3 -5  0 -4 -6 -3  0 -1 -6 -4 -4  4  2 -2 -9
+Z -1 -1  0  3 -8  5  4 -2  1 -3 -4 -1 -2 -7 -1 -2 -2 -8 -6 -3  2  5 -2 -9
+X -1 -2 -1 -2 -5 -2 -2 -2 -2 -2 -3 -2 -2 -4 -2 -1 -1 -6 -4 -2 -2 -2 -2 -9
+* -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9  1
diff --git a/sources/PamBlosum/PAM110 b/sources/PamBlosum/PAM110
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM110
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 110 substitution matrix, scale = ln(2)/2 = 0.346574
+#
+# Expected score = -1.81, Entropy = 1.07 bits
+#
+# Lowest score = -9, Highest score = 12
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  3 -3 -1 -1 -3 -1  0  1 -3 -1 -3 -3 -2 -4  1  1  1 -7 -4  0 -1 -1 -1 -9
+R -3  7 -1 -4 -4  1 -3 -4  1 -3 -4  2 -1 -5 -1 -1 -2  1 -5 -4 -2 -1 -2 -9
+N -1 -1  4  2 -5  0  1  0  2 -2 -4  1 -3 -4 -2  1  0 -5 -2 -3  3  0 -1 -9
+D -1 -4  2  5 -7  1  4  0  0 -3 -6 -1 -5 -7 -3 -1 -1 -8 -5 -4  4  3 -2 -9
+C -3 -4 -5 -7  9 -7 -7 -5 -4 -3 -8 -7 -7 -6 -4 -1 -3 -9 -1 -3 -6 -7 -4 -9
+Q -1  1  0  1 -7  6  2 -3  3 -3 -2  0 -1 -6  0 -2 -2 -6 -6 -3  0  4 -1 -9
+E  0 -3  1  4 -7  2  5 -1 -1 -3 -5 -1 -3 -7 -2 -1 -2 -9 -5 -3  3  4 -2 -9
+G  1 -4  0  0 -5 -3 -1  5 -4 -4 -6 -3 -4 -5 -2  0 -2 -8 -7 -2  0 -2 -2 -9
+H -3  1  2  0 -4  3 -1 -4  7 -4 -3 -2 -4 -3 -1 -2 -3 -4 -1 -3  1  1 -2 -9
+I -1 -3 -2 -3 -3 -3 -3 -4 -4  6  1 -3  1  0 -4 -3  0 -7 -2  3 -3 -3 -2 -9
+L -3 -4 -4 -6 -8 -2 -5 -6 -3  1  6 -4  3  0 -4 -4 -3 -3 -3  1 -5 -3 -2 -9
+K -3  2  1 -1 -7  0 -1 -3 -2 -3 -4  5  0 -7 -3 -1 -1 -5 -5 -4  0 -1 -2 -9
+M -2 -1 -3 -5 -7 -1 -3 -4 -4  1  3  0  8 -1 -4 -2 -1 -6 -5  1 -4 -2 -2 -9
+F -4 -5 -4 -7 -6 -6 -7 -5 -3  0  0 -7 -1  8 -6 -4 -4 -1  4 -3 -6 -7 -4 -9
+P  1 -1 -2 -3 -4  0 -2 -2 -1 -4 -4 -3 -4 -6  6  0 -1 -7 -7 -2 -2 -1 -2 -9
+S  1 -1  1 -1 -1 -2 -1  0 -2 -3 -4 -1 -2 -4  0  3  2 -3 -3 -2  0 -1 -1 -9
+T  1 -2  0 -1 -3 -2 -2 -2 -3  0 -3 -1 -1 -4 -1  2  5 -6 -3  0 -1 -2 -1 -9
+W -7  1 -5 -8 -9 -6 -9 -8 -4 -7 -3 -5 -6 -1 -7 -3 -6 12 -2 -8 -6 -7 -5 -9
+Y -4 -5 -2 -5 -1 -6 -5 -7 -1 -2 -3 -5 -5  4 -7 -3 -3 -2  8 -4 -3 -5 -3 -9
+V  0 -4 -3 -4 -3 -3 -3 -2 -3  3  1 -4  1 -3 -2 -2  0 -8 -4  5 -3 -3 -2 -9
+B -1 -2  3  4 -6  0  3  0  1 -3 -5  0 -4 -6 -2  0 -1 -6 -3 -3  4  2 -1 -9
+Z -1 -1  0  3 -7  4  4 -2  1 -3 -3 -1 -2 -7 -1 -1 -2 -7 -5 -3  2  4 -2 -9
+X -1 -2 -1 -2 -4 -1 -2 -2 -2 -2 -2 -2 -2 -4 -2 -1 -1 -5 -3 -2 -1 -2 -2 -9
+* -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9  1
diff --git a/sources/PamBlosum/PAM120 b/sources/PamBlosum/PAM120
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM120
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 120 substitution matrix, scale = ln(2)/2 = 0.346574
+#
+# Expected score = -1.64, Entropy = 0.979 bits
+#
+# Lowest score = -8, Highest score = 12
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  3 -3 -1  0 -3 -1  0  1 -3 -1 -3 -2 -2 -4  1  1  1 -7 -4  0  0 -1 -1 -8
+R -3  6 -1 -3 -4  1 -3 -4  1 -2 -4  2 -1 -5 -1 -1 -2  1 -5 -3 -2 -1 -2 -8
+N -1 -1  4  2 -5  0  1  0  2 -2 -4  1 -3 -4 -2  1  0 -4 -2 -3  3  0 -1 -8
+D  0 -3  2  5 -7  1  3  0  0 -3 -5 -1 -4 -7 -3  0 -1 -8 -5 -3  4  3 -2 -8
+C -3 -4 -5 -7  9 -7 -7 -4 -4 -3 -7 -7 -6 -6 -4  0 -3 -8 -1 -3 -6 -7 -4 -8
+Q -1  1  0  1 -7  6  2 -3  3 -3 -2  0 -1 -6  0 -2 -2 -6 -5 -3  0  4 -1 -8
+E  0 -3  1  3 -7  2  5 -1 -1 -3 -4 -1 -3 -7 -2 -1 -2 -8 -5 -3  3  4 -1 -8
+G  1 -4  0  0 -4 -3 -1  5 -4 -4 -5 -3 -4 -5 -2  1 -1 -8 -6 -2  0 -2 -2 -8
+H -3  1  2  0 -4  3 -1 -4  7 -4 -3 -2 -4 -3 -1 -2 -3 -3 -1 -3  1  1 -2 -8
+I -1 -2 -2 -3 -3 -3 -3 -4 -4  6  1 -3  1  0 -3 -2  0 -6 -2  3 -3 -3 -1 -8
+L -3 -4 -4 -5 -7 -2 -4 -5 -3  1  5 -4  3  0 -3 -4 -3 -3 -2  1 -4 -3 -2 -8
+K -2  2  1 -1 -7  0 -1 -3 -2 -3 -4  5  0 -7 -2 -1 -1 -5 -5 -4  0 -1 -2 -8
+M -2 -1 -3 -4 -6 -1 -3 -4 -4  1  3  0  8 -1 -3 -2 -1 -6 -4  1 -4 -2 -2 -8
+F -4 -5 -4 -7 -6 -6 -7 -5 -3  0  0 -7 -1  8 -5 -3 -4 -1  4 -3 -5 -6 -3 -8
+P  1 -1 -2 -3 -4  0 -2 -2 -1 -3 -3 -2 -3 -5  6  1 -1 -7 -6 -2 -2 -1 -2 -8
+S  1 -1  1  0  0 -2 -1  1 -2 -2 -4 -1 -2 -3  1  3  2 -2 -3 -2  0 -1 -1 -8
+T  1 -2  0 -1 -3 -2 -2 -1 -3  0 -3 -1 -1 -4 -1  2  4 -6 -3  0  0 -2 -1 -8
+W -7  1 -4 -8 -8 -6 -8 -8 -3 -6 -3 -5 -6 -1 -7 -2 -6 12 -2 -8 -6 -7 -5 -8
+Y -4 -5 -2 -5 -1 -5 -5 -6 -1 -2 -2 -5 -4  4 -6 -3 -3 -2  8 -3 -3 -5 -3 -8
+V  0 -3 -3 -3 -3 -3 -3 -2 -3  3  1 -4  1 -3 -2 -2  0 -8 -3  5 -3 -3 -1 -8
+B  0 -2  3  4 -6  0  3  0  1 -3 -4  0 -4 -5 -2  0  0 -6 -3 -3  4  2 -1 -8
+Z -1 -1  0  3 -7  4  4 -2  1 -3 -3 -1 -2 -6 -1 -1 -2 -7 -5 -3  2  4 -1 -8
+X -1 -2 -1 -2 -4 -1 -1 -2 -2 -1 -2 -2 -2 -3 -2 -1 -1 -5 -3 -1 -1 -1 -2 -8
+* -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8  1
diff --git a/sources/PamBlosum/PAM120.cdi b/sources/PamBlosum/PAM120.cdi
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM120.cdi
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 120 substitution matrix, scale = 0.0693200
+#
+# Expected score = -8.22, Entropy = 0.979 bits
+#
+# Lowest score = -42, Highest score = 62
+#
+    A   R   N   D   C   Q   E   G   H   I   L   K   M   F   P   S   T   W   Y   V   B   Z   X   *
+A  16 -14  -3  -2 -14  -6  -1   3 -13  -6 -14 -12  -9 -21   3   6   6 -33 -20   0  -2  -3  -4 -42
+R -14  32  -6 -16 -20   3 -14 -20   4 -12 -20  12  -5 -25  -4  -4 -10   4 -26 -17 -11  -4  -9 -42
+N  -3  -6  20  12 -23  -1   4  -2   8 -12 -18   4 -15 -21  -8   5   1 -22 -10 -15  16   2  -4 -42
+D  -2 -16  12  25 -33   4  17  -2  -2 -16 -27  -5 -21 -35 -13  -2  -6 -39 -26 -17  20  13  -8 -42
+C -14 -20 -23 -33  44 -33 -33 -22 -20 -14 -37 -34 -32 -29 -18  -2 -16 -42  -4 -13 -28 -33 -20 -42
+Q  -6   3  -1   4 -33  28  12 -13  13 -16 -11   0  -7 -30  -2  -8  -9 -30 -26 -14   2  21  -6 -42
+E  -1 -14   4  17 -33  12  24  -4  -3 -13 -22  -5 -15 -34  -9  -5  -8 -42 -24 -13  13  20  -7 -42
+G   3 -20  -2  -2 -22 -13  -4  25 -18 -20 -26 -15 -19 -26  -9   3  -7 -39 -32 -11  -2  -8  -9 -42
+H -13   4   8  -2 -20  13  -3 -18  35 -19 -13  -8 -19 -13  -5  -9 -13 -17  -3 -15   4   6  -8 -42
+I  -6 -12 -12 -16 -14 -16 -13 -20 -19  28   6 -13   7   1 -17 -12  -1 -32 -11  17 -14 -14  -7 -42
+L -14 -20 -18 -27 -37 -11 -22 -26 -13   6  27 -19  13   2 -17 -19 -13 -13 -12   3 -22 -16 -11 -42
+K -12  12   4  -5 -34   0  -5 -15  -8 -13 -19  25   2 -33 -12  -4  -3 -24 -25 -19   0  -3  -8 -42
+M  -9  -5 -15 -21 -32  -7 -15 -19 -19   7  13   2  40  -4 -16 -11  -6 -28 -21   5 -18 -11  -8 -42
+F -21 -25 -21 -35 -29 -30 -34 -26 -13   1   2 -33  -4  38 -26 -17 -20  -5  22 -13 -27 -32 -17 -42
+P   3  -4  -8 -13 -18  -2  -9  -9  -5 -17 -17 -12 -16 -26  31   3  -3 -33 -31 -11 -11  -5  -8 -42
+S   6  -4   5  -2  -2  -8  -5   3  -9 -12 -19  -4 -11 -17   3  16   8 -12 -16 -10   1  -6  -3 -42
+T   6 -10   1  -6 -16  -9  -8  -7 -13  -1 -13  -3  -6 -20  -3   8  21 -30 -16  -1  -2  -9  -4 -42
+W -33   4 -22 -39 -42 -30 -42 -39 -17 -32 -13 -24 -28  -5 -33 -12 -30  62  -8 -38 -29 -35 -25 -42
+Y -20 -26 -10 -26  -4 -26 -24 -32  -3 -11 -12 -25 -21  22 -31 -16 -16  -8  42 -17 -16 -25 -16 -42
+V   0 -17 -15 -17 -13 -14 -13 -11 -15  17   3 -19   5 -13 -11 -10  -1 -38 -17  25 -16 -14  -7 -42
+B  -2 -11  16  20 -28   2  13  -2   4 -14 -22   0 -18 -27 -11   1  -2 -29 -16 -16  18   9  -6 -42
+Z  -3  -4   2  13 -33  21  20  -8   6 -14 -16  -3 -11 -32  -5  -6  -9 -35 -25 -14   9  21  -7 -42
+X  -4  -9  -4  -8 -20  -6  -7  -9  -8  -7 -11  -8  -8 -17  -8  -3  -4 -25 -16  -7  -6  -7  -8 -42
+* -42 -42 -42 -42 -42 -42 -42 -42 -42 -42 -42 -42 -42 -42 -42 -42 -42 -42 -42 -42 -42 -42 -42   1
diff --git a/sources/PamBlosum/PAM130 b/sources/PamBlosum/PAM130
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM130
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 130 substitution matrix, scale = ln(2)/2 = 0.346574
+#
+# Expected score = -1.48, Entropy = 0.895 bits
+#
+# Lowest score = -8, Highest score = 12
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  3 -3  0  0 -3 -1  0  1 -2 -1 -3 -2 -2 -4  1  1  1 -6 -4  0  0  0 -1 -8
+R -3  6 -1 -3 -4  1 -3 -4  1 -2 -4  2 -1 -5 -1 -1 -2  1 -5 -3 -2 -1 -2 -8
+N  0 -1  4  2 -4  0  1  0  2 -2 -3  1 -3 -4 -1  1  0 -4 -2 -3  3  0 -1 -8
+D  0 -3  2  5 -6  1  3  0  0 -3 -5 -1 -4 -7 -2  0 -1 -7 -5 -3  4  3 -1 -8
+C -3 -4 -4 -6  9 -6 -6 -4 -4 -3 -7 -6 -6 -5 -3  0 -3 -8 -1 -2 -5 -6 -4 -8
+Q -1  1  0  1 -6  5  2 -2  3 -3 -2  0 -1 -6  0 -1 -2 -6 -5 -3  0  4 -1 -8
+E  0 -3  1  3 -6  2  5 -1  0 -2 -4 -1 -3 -6 -2 -1 -1 -8 -5 -3  2  4 -1 -8
+G  1 -4  0  0 -4 -2 -1  5 -3 -4 -5 -3 -4 -5 -2  1 -1 -7 -6 -2  0 -1 -2 -8
+H -2  1  2  0 -4  3  0 -3  7 -3 -3 -1 -3 -2 -1 -2 -2 -3  0 -3  1  1 -1 -8
+I -1 -2 -2 -3 -3 -3 -2 -4 -3  5  1 -2  2  0 -3 -2  0 -6 -2  3 -3 -3 -1 -8
+L -3 -4 -3 -5 -7 -2 -4 -5 -3  1  5 -4  3  1 -3 -4 -2 -2 -2  1 -4 -3 -2 -8
+K -2  2  1 -1 -6  0 -1 -3 -1 -2 -4  5  0 -6 -2 -1  0 -5 -5 -4  0  0 -1 -8
+M -2 -1 -3 -4 -6 -1 -3 -4 -3  2  3  0  8 -1 -3 -2 -1 -5 -4  1 -3 -2 -1 -8
+F -4 -5 -4 -7 -5 -6 -6 -5 -2  0  1 -6 -1  7 -5 -3 -4 -1  4 -2 -5 -6 -3 -8
+P  1 -1 -1 -2 -3  0 -2 -2 -1 -3 -3 -2 -3 -5  6  1 -1 -6 -6 -2 -2 -1 -1 -8
+S  1 -1  1  0  0 -1 -1  1 -2 -2 -4 -1 -2 -3  1  3  2 -2 -3 -2  0 -1 -1 -8
+T  1 -2  0 -1 -3 -2 -1 -1 -2  0 -2  0 -1 -4 -1  2  4 -6 -3  0  0 -2 -1 -8
+W -6  1 -4 -7 -8 -6 -8 -7 -3 -6 -2 -5 -5 -1 -6 -2 -6 12 -1 -7 -5 -7 -5 -8
+Y -4 -5 -2 -5 -1 -5 -5 -6  0 -2 -2 -5 -4  4 -6 -3 -3 -1  8 -3 -3 -5 -3 -8
+V  0 -3 -3 -3 -2 -3 -3 -2 -3  3  1 -4  1 -2 -2 -2  0 -7 -3  5 -3 -3 -1 -8
+B  0 -2  3  4 -5  0  2  0  1 -3 -4  0 -3 -5 -2  0  0 -5 -3 -3  3  2 -1 -8
+Z  0 -1  0  3 -6  4  4 -1  1 -3 -3  0 -2 -6 -1 -1 -2 -7 -5 -3  2  4 -1 -8
+X -1 -2 -1 -1 -4 -1 -1 -2 -1 -1 -2 -1 -1 -3 -1 -1 -1 -5 -3 -1 -1 -1 -1 -8
+* -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8  1
diff --git a/sources/PamBlosum/PAM140 b/sources/PamBlosum/PAM140
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM140
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 140 substitution matrix, scale = ln(2)/2 = 0.346574
+#
+# Expected score = -1.35, Entropy = 0.820 bits
+#
+# Lowest score = -8, Highest score = 12
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  3 -2  0  0 -2 -1  0  1 -2 -1 -2 -2 -2 -4  1  1  1 -6 -4  0  0  0 -1 -8
+R -2  6 -1 -3 -4  1 -2 -4  1 -2 -4  3 -1 -5 -1 -1 -2  1 -5 -3 -2 -1 -1 -8
+N  0 -1  3  2 -4  0  1  0  2 -2 -3  1 -2 -4 -1  1  0 -4 -2 -2  3  1 -1 -8
+D  0 -3  2  4 -6  1  3  0  0 -3 -5 -1 -4 -6 -2  0 -1 -7 -5 -3  4  3 -1 -8
+C -2 -4 -4 -6  9 -6 -6 -4 -4 -3 -7 -6 -6 -5 -3  0 -3 -8 -1 -2 -5 -6 -4 -8
+Q -1  1  0  1 -6  5  2 -2  3 -3 -2  0 -1 -5  0 -1 -2 -5 -5 -2  1  4 -1 -8
+E  0 -2  1  3 -6  2  4 -1  0 -2 -4 -1 -3 -6 -1 -1 -1 -8 -4 -2  2  4 -1 -8
+G  1 -4  0  0 -4 -2 -1  5 -3 -4 -5 -3 -3 -5 -1  1 -1 -7 -6 -2  0 -1 -1 -8
+H -2  1  2  0 -4  3  0 -3  6 -3 -2 -1 -3 -2 -1 -1 -2 -3  0 -3  1  1 -1 -8
+I -1 -2 -2 -3 -3 -3 -2 -4 -3  5  1 -2  2  0 -3 -2  0 -6 -2  3 -2 -2 -1 -8
+L -2 -4 -3 -5 -7 -2 -4 -5 -2  1  5 -3  3  1 -3 -3 -2 -2 -2  1 -4 -3 -2 -8
+K -2  3  1 -1 -6  0 -1 -3 -1 -2 -3  5  0 -6 -2 -1  0 -4 -5 -3  0  0 -1 -8
+M -2 -1 -2 -4 -6 -1 -3 -3 -3  2  3  0  7 -1 -3 -2 -1 -5 -4  1 -3 -2 -1 -8
+F -4 -5 -4 -6 -5 -5 -6 -5 -2  0  1 -6 -1  7 -5 -3 -4 -1  4 -2 -5 -6 -3 -8
+P  1 -1 -1 -2 -3  0 -1 -1 -1 -3 -3 -2 -3 -5  6  1  0 -6 -6 -2 -2 -1 -1 -8
+S  1 -1  1  0  0 -1 -1  1 -1 -2 -3 -1 -2 -3  1  3  2 -2 -3 -2  0 -1  0 -8
+T  1 -2  0 -1 -3 -2 -1 -1 -2  0 -2  0 -1 -4  0  2  4 -5 -3  0  0 -1 -1 -8
+W -6  1 -4 -7 -8 -5 -8 -7 -3 -6 -2 -4 -5 -1 -6 -2 -5 12 -1 -7 -5 -6 -5 -8
+Y -4 -5 -2 -5 -1 -5 -4 -6  0 -2 -2 -5 -4  4 -6 -3 -3 -1  8 -3 -3 -4 -3 -8
+V  0 -3 -2 -3 -2 -2 -2 -2 -3  3  1 -3  1 -2 -2 -2  0 -7 -3  5 -3 -2 -1 -8
+B  0 -2  3  4 -5  1  2  0  1 -2 -4  0 -3 -5 -2  0  0 -5 -3 -3  3  2 -1 -8
+Z  0 -1  1  3 -6  4  4 -1  1 -2 -3  0 -2 -6 -1 -1 -1 -6 -4 -2  2  4 -1 -8
+X -1 -1 -1 -1 -4 -1 -1 -1 -1 -1 -2 -1 -1 -3 -1  0 -1 -5 -3 -1 -1 -1 -1 -8
+* -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8  1
diff --git a/sources/PamBlosum/PAM150 b/sources/PamBlosum/PAM150
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM150
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 150 substitution matrix, scale = ln(2)/2 = 0.346574
+#
+# Expected score = -1.25, Entropy = 0.754 bits
+#
+# Lowest score = -7, Highest score = 12
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  3 -2  0  0 -2 -1  0  1 -2 -1 -2 -2 -1 -4  1  1  1 -6 -3  0  0  0 -1 -7
+R -2  6 -1 -2 -4  1 -2 -3  1 -2 -3  3 -1 -4 -1 -1 -2  1 -4 -3 -2  0 -1 -7
+N  0 -1  3  2 -4  0  1  0  2 -2 -3  1 -2 -4 -1  1  0 -4 -2 -2  3  1 -1 -7
+D  0 -2  2  4 -6  1  3  0  0 -3 -5 -1 -3 -6 -2  0 -1 -7 -4 -3  3  2 -1 -7
+C -2 -4 -4 -6  9 -6 -6 -4 -3 -2 -6 -6 -5 -5 -3  0 -3 -7  0 -2 -5 -6 -3 -7
+Q -1  1  0  1 -6  5  2 -2  3 -3 -2  0 -1 -5  0 -1 -1 -5 -4 -2  1  4 -1 -7
+E  0 -2  1  3 -6  2  4 -1  0 -2 -4 -1 -2 -6 -1 -1 -1 -7 -4 -2  2  4 -1 -7
+G  1 -3  0  0 -4 -2 -1  4 -3 -3 -4 -2 -3 -5 -1  1 -1 -7 -5 -2  0 -1 -1 -7
+H -2  1  2  0 -3  3  0 -3  6 -3 -2 -1 -3 -2 -1 -1 -2 -3  0 -3  1  1 -1 -7
+I -1 -2 -2 -3 -2 -3 -2 -3 -3  5  1 -2  2  0 -3 -2  0 -5 -2  3 -2 -2 -1 -7
+L -2 -3 -3 -5 -6 -2 -4 -4 -2  1  5 -3  3  1 -3 -3 -2 -2 -2  1 -4 -3 -2 -7
+K -2  3  1 -1 -6  0 -1 -2 -1 -2 -3  4  0 -6 -2 -1  0 -4 -4 -3  0  0 -1 -7
+M -1 -1 -2 -3 -5 -1 -2 -3 -3  2  3  0  7 -1 -3 -2 -1 -5 -3  1 -3 -2 -1 -7
+F -4 -4 -4 -6 -5 -5 -6 -5 -2  0  1 -6 -1  7 -5 -3 -3 -1  5 -2 -5 -5 -3 -7
+P  1 -1 -1 -2 -3  0 -1 -1 -1 -3 -3 -2 -3 -5  6  1  0 -6 -5 -2 -2 -1 -1 -7
+S  1 -1  1  0  0 -1 -1  1 -1 -2 -3 -1 -2 -3  1  2  1 -2 -3 -1  0 -1  0 -7
+T  1 -2  0 -1 -3 -1 -1 -1 -2  0 -2  0 -1 -3  0  1  4 -5 -3  0  0 -1 -1 -7
+W -6  1 -4 -7 -7 -5 -7 -7 -3 -5 -2 -4 -5 -1 -6 -2 -5 12 -1 -6 -5 -6 -4 -7
+Y -3 -4 -2 -4  0 -4 -4 -5  0 -2 -2 -4 -3  5 -5 -3 -3 -1  8 -3 -3 -4 -3 -7
+V  0 -3 -2 -3 -2 -2 -2 -2 -3  3  1 -3  1 -2 -2 -1  0 -6 -3  4 -2 -2 -1 -7
+B  0 -2  3  3 -5  1  2  0  1 -2 -4  0 -3 -5 -2  0  0 -5 -3 -2  3  2 -1 -7
+Z  0  0  1  2 -6  4  4 -1  1 -2 -3  0 -2 -5 -1 -1 -1 -6 -4 -2  2  4 -1 -7
+X -1 -1 -1 -1 -3 -1 -1 -1 -1 -1 -2 -1 -1 -3 -1  0 -1 -4 -3 -1 -1 -1 -1 -7
+* -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7  1
diff --git a/sources/PamBlosum/PAM160 b/sources/PamBlosum/PAM160
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM160
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 160 substitution matrix, scale = ln(2)/2 = 0.346574
+#
+# Expected score = -1.14, Entropy = 0.694 bits
+#
+# Lowest score = -7, Highest score = 12
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  2 -2  0  0 -2 -1  0  1 -2 -1 -2 -2 -1 -3  1  1  1 -5 -3  0  0  0  0 -7
+R -2  6 -1 -2 -3  1 -2 -3  1 -2 -3  3 -1 -4 -1 -1 -1  1 -4 -3 -1  0 -1 -7
+N  0 -1  3  2 -4  0  1  0  2 -2 -3  1 -2 -3 -1  1  0 -4 -2 -2  2  1  0 -7
+D  0 -2  2  4 -5  1  3  0  0 -3 -4  0 -3 -6 -2  0 -1 -6 -4 -3  3  2 -1 -7
+C -2 -3 -4 -5  9 -5 -5 -3 -3 -2 -6 -5 -5 -5 -3  0 -2 -7  0 -2 -4 -5 -3 -7
+Q -1  1  0  1 -5  5  2 -2  2 -2 -2  0 -1 -5  0 -1 -1 -5 -4 -2  1  3 -1 -7
+E  0 -2  1  3 -5  2  4  0  0 -2 -3 -1 -2 -5 -1  0 -1 -7 -4 -2  2  3 -1 -7
+G  1 -3  0  0 -3 -2  0  4 -3 -3 -4 -2 -3 -4 -1  1 -1 -7 -5 -2  0 -1 -1 -7
+H -2  1  2  0 -3  2  0 -3  6 -3 -2 -1 -3 -2 -1 -1 -2 -3  0 -2  1  1 -1 -7
+I -1 -2 -2 -3 -2 -2 -2 -3 -3  5  2 -2  2  0 -2 -2  0 -5 -2  3 -2 -2 -1 -7
+L -2 -3 -3 -4 -6 -2 -3 -4 -2  2  5 -3  3  1 -3 -3 -2 -2 -2  1 -4 -3 -2 -7
+K -2  3  1  0 -5  0 -1 -2 -1 -2 -3  4  0 -5 -2 -1  0 -4 -4 -3  0  0 -1 -7
+M -1 -1 -2 -3 -5 -1 -2 -3 -3  2  3  0  7  0 -2 -2 -1 -4 -3  1 -3 -2 -1 -7
+F -3 -4 -3 -6 -5 -5 -5 -4 -2  0  1 -5  0  7 -4 -3 -3 -1  5 -2 -4 -5 -3 -7
+P  1 -1 -1 -2 -3  0 -1 -1 -1 -2 -3 -2 -2 -4  5  1  0 -5 -5 -2 -1 -1 -1 -7
+S  1 -1  1  0  0 -1  0  1 -1 -2 -3 -1 -2 -3  1  2  1 -2 -3 -1  0 -1  0 -7
+T  1 -1  0 -1 -2 -1 -1 -1 -2  0 -2  0 -1 -3  0  1  3 -5 -3  0  0 -1  0 -7
+W -5  1 -4 -6 -7 -5 -7 -7 -3 -5 -2 -4 -4 -1 -5 -2 -5 12 -1 -6 -5 -6 -4 -7
+Y -3 -4 -2 -4  0 -4 -4 -5  0 -2 -2 -4 -3  5 -5 -3 -3 -1  8 -3 -3 -4 -3 -7
+V  0 -3 -2 -3 -2 -2 -2 -2 -2  3  1 -3  1 -2 -2 -1  0 -6 -3  4 -2 -2 -1 -7
+B  0 -1  2  3 -4  1  2  0  1 -2 -4  0 -3 -4 -1  0  0 -5 -3 -2  3  2 -1 -7
+Z  0  0  1  2 -5  3  3 -1  1 -2 -3  0 -2 -5 -1 -1 -1 -6 -4 -2  2  3 -1 -7
+X  0 -1  0 -1 -3 -1 -1 -1 -1 -1 -2 -1 -1 -3 -1  0  0 -4 -3 -1 -1 -1 -1 -7
+* -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7  1
diff --git a/sources/PamBlosum/PAM160.cdi b/sources/PamBlosum/PAM160.cdi
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM160.cdi
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 160 substitution matrix, scale = 0.0693200
+#
+# Expected score = -5.73, Entropy = 0.694 bits
+#
+# Lowest score = -35, Highest score = 60
+#
+    A   R   N   D   C   Q   E   G   H   I   L   K   M   F   P   S   T   W   Y   V   B   Z   X   *
+A  12 -10  -1  -1 -11  -4   0   4  -9  -4 -10  -8  -7 -17   4   5   6 -27 -17   0  -1  -1  -2 -35
+R -10  28  -3 -11 -17   4  -9 -15   5 -10 -16  13  -3 -21  -3  -3  -7   6 -21 -14  -7  -2  -6 -35
+N  -1  -3  14  10 -18   1   5   0   8  -9 -15   4 -11 -17  -5   4   2 -19  -9 -11  12   3  -2 -35
+D  -1 -11  10  20 -26   5  16   0   1 -13 -21  -2 -15 -28  -8  -1  -3 -32 -21 -13  16  12  -5 -35
+C -11 -17 -18 -26  43 -27 -27 -17 -16 -11 -30 -27 -26 -23 -15  -1 -12 -35  -2 -10 -22 -27 -16 -35
+Q  -4   4   1   5 -27  23  11  -9  12 -12  -8   1  -5 -24   0  -5  -6 -24 -21 -11   3  17  -4 -35
+E   0  -9   5  16 -27  11  20  -2   0 -10 -17  -3 -12 -27  -6  -2  -5 -34 -20 -10  12  17  -5 -35
+G   4 -15   0   0 -17  -9  -2  22 -13 -15 -21 -11 -15 -22  -6   3  -3 -33 -26  -8   0  -5  -6 -35
+H  -9   5   8   1 -16  12   0 -13  30 -14 -11  -4 -14 -10  -3  -6  -9 -14  -1 -12   4   7  -5 -35
+I  -4 -10  -9 -13 -11 -12 -10 -15 -14  23   8 -10   8   2 -12  -9   0 -26  -8  16 -11 -11  -5 -35
+L -10 -16 -15 -21 -30  -8 -17 -21 -11   8  25 -15  14   4 -13 -15 -10 -10  -8   5 -18 -13  -8 -35
+K  -8  13   4  -2 -27   1  -3 -11  -4 -10 -15  22   2 -26  -8  -3  -1 -19 -21 -14   1  -1  -6 -35
+M  -7  -3 -11 -15 -26  -5 -12 -15 -14   8  14   2  34  -2 -12  -9  -4 -22 -16   6 -13  -8  -5 -35
+F -17 -21 -17 -28 -23 -24 -27 -22 -10   2   4 -26  -2  35 -22 -15 -16  -3  23  -9 -22 -26 -13 -35
+P   4  -3  -5  -8 -15   0  -6  -6  -3 -12 -13  -8 -12 -22  27   3  -1 -27 -25  -8  -7  -3  -5 -35
+S   5  -3   4  -1  -1  -5  -2   3  -6  -9 -15  -3  -9 -15   3  11   7 -11 -13  -7   2  -4  -2 -35
+T   6  -7   2  -3 -12  -6  -5  -3  -9   0 -10  -1  -4 -16  -1   7  16 -25 -13   0  -1  -6  -2 -35
+W -27   6 -19 -32 -35 -24 -34 -33 -14 -26 -10 -19 -22  -3 -27 -11 -25  60  -5 -31 -24 -29 -20 -35
+Y -17 -21  -9 -21  -2 -21 -20 -26  -1  -8  -8 -21 -16  23 -25 -13 -13  -5  39 -14 -14 -20 -13 -35
+V   0 -14 -11 -13 -10 -11 -10  -8 -12  16   5 -14   6  -9  -8  -7   0 -31 -14  21 -12 -10  -5 -35
+B  -1  -7  12  16 -22   3  12   0   4 -11 -18   1 -13 -22  -7   2  -1 -24 -14 -12  15   9  -4 -35
+Z  -1  -2   3  12 -27  17  17  -5   7 -11 -13  -1  -8 -26  -3  -4  -6 -29 -20 -10   9  17  -4 -35
+X  -2  -6  -2  -5 -16  -4  -5  -6  -5  -5  -8  -6  -5 -13  -5  -2  -2 -20 -13  -5  -4  -4  -6 -35
+* -35 -35 -35 -35 -35 -35 -35 -35 -35 -35 -35 -35 -35 -35 -35 -35 -35 -35 -35 -35 -35 -35 -35   1
diff --git a/sources/PamBlosum/PAM170 b/sources/PamBlosum/PAM170
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM170
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 170 substitution matrix, scale = ln(2)/3 = 0.231049
+#
+# Expected score = -1.57, Entropy = 0.640 bits
+#
+# Lowest score = -10, Highest score = 18
+#
+    A   R   N   D   C   Q   E   G   H   I   L   K   M   F   P   S   T   W   Y   V   B   Z   X   *
+A   3  -3   0   0  -3  -1   0   1  -3  -1  -3  -2  -2  -5   1   2   2  -8  -5   0   0   0  -1 -10
+R  -3   8  -1  -3  -5   1  -2  -4   2  -3  -4   4  -1  -6  -1  -1  -2   2  -6  -4  -2   0  -2 -10
+N   0  -1   4   3  -5   0   2   0   2  -3  -4   1  -3  -5  -1   1   0  -5  -3  -3   3   1  -1 -10
+D   0  -3   3   6  -7   2   5   0   0  -4  -6  -1  -4  -8  -2   0  -1  -9  -6  -4   5   4  -1 -10
+C  -3  -5  -5  -7  13  -8  -8  -5  -5  -3  -9  -8  -7  -6  -4   0  -3 -10   0  -3  -6  -8  -4 -10
+Q  -1   1   0   2  -8   6   3  -2   4  -3  -2   0  -1  -7   0  -1  -2  -7  -6  -3   1   5  -1 -10
+E   0  -2   2   5  -8   3   6   0   0  -3  -5  -1  -3  -8  -1  -1  -1 -10  -6  -3   3   5  -1 -10
+G   1  -4   0   0  -5  -2   0   6  -4  -4  -6  -3  -4  -6  -2   1  -1  -9  -7  -2   0  -1  -2 -10
+H  -3   2   2   0  -5   4   0  -4   9  -4  -3  -1  -4  -3  -1  -2  -2  -4   0  -3   1   2  -1 -10
+I  -1  -3  -3  -4  -3  -3  -3  -4  -4   7   2  -3   2   1  -3  -2   0  -7  -2   5  -3  -3  -1 -10
+L  -3  -4  -4  -6  -9  -2  -5  -6  -3   2   7  -4   4   1  -4  -4  -3  -3  -2   2  -5  -4  -2 -10
+K  -2   4   1  -1  -8   0  -1  -3  -1  -3  -4   6   1  -8  -2  -1   0  -5  -6  -4   0   0  -2 -10
+M  -2  -1  -3  -4  -7  -1  -3  -4  -4   2   4   1  10   0  -3  -2  -1  -6  -4   2  -4  -2  -1 -10
+F  -5  -6  -5  -8  -6  -7  -8  -6  -3   1   1  -8   0  10  -6  -4  -5  -1   7  -2  -6  -7  -4 -10
+P   1  -1  -1  -2  -4   0  -1  -2  -1  -3  -4  -2  -3  -6   8   1   0  -8  -7  -2  -2  -1  -1 -10
+S   2  -1   1   0   0  -1  -1   1  -2  -2  -4  -1  -2  -4   1   3   2  -3  -4  -2   1  -1   0 -10
+T   2  -2   0  -1  -3  -2  -1  -1  -2   0  -3   0  -1  -5   0   2   5  -7  -4   0   0  -1  -1 -10
+W  -8   2  -5  -9 -10  -7 -10  -9  -4  -7  -3  -5  -6  -1  -8  -3  -7  18  -1  -9  -7  -8  -6 -10
+Y  -5  -6  -3  -6   0  -6  -6  -7   0  -2  -2  -6  -4   7  -7  -4  -4  -1  12  -4  -4  -6  -4 -10
+V   0  -4  -3  -4  -3  -3  -3  -2  -3   5   2  -4   2  -2  -2  -2   0  -9  -4   6  -3  -3  -1 -10
+B   0  -2   3   5  -6   1   3   0   1  -3  -5   0  -4  -6  -2   1   0  -7  -4  -3   4   3  -1 -10
+Z   0   0   1   4  -8   5   5  -1   2  -3  -4   0  -2  -7  -1  -1  -1  -8  -6  -3   3   5  -1 -10
+X  -1  -2  -1  -1  -4  -1  -1  -2  -1  -1  -2  -2  -1  -4  -1   0  -1  -6  -4  -1  -1  -1  -2 -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
diff --git a/sources/PamBlosum/PAM180 b/sources/PamBlosum/PAM180
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM180
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 180 substitution matrix, scale = ln(2)/3 = 0.231049
+#
+# Expected score = -1.51, Entropy = 0.591 bits
+#
+# Lowest score = -10, Highest score = 18
+#
+    A   R   N   D   C   Q   E   G   H   I   L   K   M   F   P   S   T   W   Y   V   B   Z   X   *
+A   3  -3   0   0  -3  -1   0   1  -2  -1  -3  -2  -2  -5   1   1   2  -8  -5   0   0   0  -1 -10
+R  -3   8  -1  -3  -5   1  -2  -4   2  -3  -4   4  -1  -6  -1  -1  -2   2  -6  -4  -2   0  -2 -10
+N   0  -1   4   3  -5   0   2   0   2  -3  -4   1  -3  -5  -1   1   0  -5  -2  -3   3   1  -1 -10
+D   0  -3   3   5  -7   2   4   0   0  -3  -6   0  -4  -8  -2   0  -1  -9  -6  -3   4   3  -1 -10
+C  -3  -5  -5  -7  13  -7  -7  -5  -4  -3  -8  -7  -7  -6  -4   0  -3 -10   0  -3  -6  -7  -4 -10
+Q  -1   1   0   2  -7   6   3  -2   4  -3  -2   0  -1  -6   0  -1  -2  -6  -6  -3   1   5  -1 -10
+E   0  -2   2   4  -7   3   5   0   0  -3  -5  -1  -3  -7  -1  -1  -1  -9  -6  -3   3   5  -1 -10
+G   1  -4   0   0  -5  -2   0   6  -3  -4  -6  -3  -4  -6  -1   1  -1  -9  -7  -2   0  -1  -2 -10
+H  -2   2   2   0  -4   4   0  -3   8  -4  -3  -1  -3  -3  -1  -2  -2  -4   0  -3   1   2  -1 -10
+I  -1  -3  -3  -3  -3  -3  -3  -4  -4   6   2  -3   2   1  -3  -2   0  -7  -2   5  -3  -3  -1 -10
+L  -3  -4  -4  -6  -8  -2  -5  -6  -3   2   7  -4   4   1  -4  -4  -3  -3  -2   2  -5  -3  -2 -10
+K  -2   4   1   0  -7   0  -1  -3  -1  -3  -4   6   1  -7  -2  -1   0  -5  -6  -4   0   0  -1 -10
+M  -2  -1  -3  -4  -7  -1  -3  -4  -3   2   4   1   9   0  -3  -2  -1  -6  -4   2  -3  -2  -1 -10
+F  -5  -6  -5  -8  -6  -6  -7  -6  -3   1   1  -7   0  10  -6  -4  -4   0   7  -2  -6  -7  -3 -10
+P   1  -1  -1  -2  -4   0  -1  -1  -1  -3  -4  -2  -3  -6   8   1   0  -7  -7  -2  -2  -1  -1 -10
+S   1  -1   1   0   0  -1  -1   1  -2  -2  -4  -1  -2  -4   1   3   2  -3  -4  -2   1  -1   0 -10
+T   2  -2   0  -1  -3  -2  -1  -1  -2   0  -3   0  -1  -4   0   2   4  -7  -4   0   0  -1  -1 -10
+W  -8   2  -5  -9 -10  -6  -9  -9  -4  -7  -3  -5  -6   0  -7  -3  -7  18  -1  -8  -7  -8  -6 -10
+Y  -5  -6  -2  -6   0  -6  -6  -7   0  -2  -2  -6  -4   7  -7  -4  -4  -1  11  -4  -4  -6  -3 -10
+V   0  -4  -3  -3  -3  -3  -3  -2  -3   5   2  -4   2  -2  -2  -2   0  -8  -4   6  -3  -3  -1 -10
+B   0  -2   3   4  -6   1   3   0   1  -3  -5   0  -3  -6  -2   1   0  -7  -4  -3   4   3  -1 -10
+Z   0   0   1   3  -7   5   5  -1   2  -3  -3   0  -2  -7  -1  -1  -1  -8  -6  -3   3   5  -1 -10
+X  -1  -2  -1  -1  -4  -1  -1  -2  -1  -1  -2  -1  -1  -3  -1   0  -1  -6  -3  -1  -1  -1  -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
diff --git a/sources/PamBlosum/PAM190 b/sources/PamBlosum/PAM190
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM190
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 190 substitution matrix, scale = ln(2)/3 = 0.231049
+#
+# Expected score = -1.35, Entropy = 0.547 bits
+#
+# Lowest score = -9, Highest score = 18
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  3 -2  0  0 -3 -1  0  1 -2 -1 -3 -2 -2 -5  1  1  2 -7 -4  0  0  0  0 -9
+R -2  8 -1 -2 -5  1 -2 -4  2 -3 -4  4 -1 -6  0 -1 -2  2 -5 -3 -1  0 -1 -9
+N  0 -1  3  3 -5  1  2  0  2 -2 -4  1 -3 -4 -1  1  0 -5 -2 -3  3  1 -1 -9
+D  0 -2  3  5 -7  2  4  0  0 -3 -5  0 -4 -7 -2  0 -1 -8 -5 -3  4  3 -1 -9
+C -3 -5 -5 -7 13 -7 -7 -4 -4 -3 -8 -7 -7 -6 -4  0 -3 -9  0 -3 -6 -7 -4 -9
+Q -1  1  1  2 -7  6  3 -2  3 -3 -2  1 -1 -6  0 -1 -1 -6 -5 -3  1  4 -1 -9
+E  0 -2  2  4 -7  3  5  0  0 -3 -4 -1 -3 -7 -1  0 -1 -9 -5 -3  3  4 -1 -9
+G  1 -4  0  0 -4 -2  0  6 -3 -4 -5 -3 -4 -6 -1  1 -1 -9 -7 -2  0 -1 -1 -9
+H -2  2  2  0 -4  3  0 -3  8 -3 -3 -1 -3 -2 -1 -1 -2 -3  0 -3  1  2 -1 -9
+I -1 -3 -2 -3 -3 -3 -3 -4 -3  6  2 -3  2  1 -3 -2  0 -7 -2  4 -3 -3 -1 -9
+L -3 -4 -4 -5 -8 -2 -4 -5 -3  2  7 -4  4  2 -3 -4 -2 -3 -2  2 -5 -3 -2 -9
+K -2  4  1  0 -7  1 -1 -3 -1 -3 -4  6  1 -7 -2  0  0 -5 -6 -3  0  0 -1 -9
+M -2 -1 -3 -4 -7 -1 -3 -4 -3  2  4  1  9  0 -3 -2 -1 -6 -4  2 -3 -2 -1 -9
+F -5 -6 -4 -7 -6 -6 -7 -6 -2  1  2 -7  0 10 -6 -4 -4  0  7 -2 -6 -7 -3 -9
+P  1  0 -1 -2 -4  0 -1 -1 -1 -3 -3 -2 -3 -6  7  1  0 -7 -6 -2 -1 -1 -1 -9
+S  1 -1  1  0  0 -1  0  1 -1 -2 -4  0 -2 -4  1  3  2 -3 -4 -2  1 -1  0 -9
+T  2 -2  0 -1 -3 -1 -1 -1 -2  0 -2  0 -1 -4  0  2  4 -6 -3  0  0 -1  0 -9
+W -7  2 -5 -8 -9 -6 -9 -9 -3 -7 -3 -5 -6  0 -7 -3 -6 18 -1 -8 -6 -7 -5 -9
+Y -4 -5 -2 -5  0 -5 -5 -7  0 -2 -2 -6 -4  7 -6 -4 -3 -1 11 -3 -4 -5 -3 -9
+V  0 -3 -3 -3 -3 -3 -3 -2 -3  4  2 -3  2 -2 -2 -2  0 -8 -3  6 -3 -3 -1 -9
+B  0 -1  3  4 -6  1  3  0  1 -3 -5  0 -3 -6 -1  1  0 -6 -4 -3  4  2 -1 -9
+Z  0  0  1  3 -7  4  4 -1  2 -3 -3  0 -2 -7 -1 -1 -1 -7 -5 -3  2  4 -1 -9
+X  0 -1 -1 -1 -4 -1 -1 -1 -1 -1 -2 -1 -1 -3 -1  0  0 -5 -3 -1 -1 -1 -1 -9
+* -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9  1
diff --git a/sources/PamBlosum/PAM20 b/sources/PamBlosum/PAM20
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM20
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 20 substitution matrix, scale = ln(2)/2 = 0.346574
+#
+# Expected score = -6.18, Entropy = 2.95 bits
+#
+# Lowest score = -19, Highest score = 13
+#
+    A   R   N   D   C   Q   E   G   H   I   L   K   M   F   P   S   T   W   Y   V   B   Z   X   *
+A   6  -8  -5  -4  -8  -5  -3  -3  -8  -6  -7  -8  -6  -9  -2  -1  -1 -16  -9  -3  -5  -4  -4 -19
+R  -8   9  -7 -12  -9  -2 -11 -11  -3  -6 -10  -1  -5 -10  -5  -4  -8  -3 -11  -9  -9  -5  -7 -19
+N  -5  -7   8   1 -13  -5  -3  -4  -1  -6  -8  -2 -11 -10  -7  -1  -3  -9  -5  -9   6  -4  -4 -19
+D  -4 -12   1   8 -16  -4   2  -4  -5  -9 -15  -6 -13 -17  -9  -5  -6 -17 -13  -9   6   0  -7 -19
+C  -8  -9 -13 -16  10 -16 -16 -11  -8  -7 -17 -16 -16 -15  -9  -4  -9 -18  -5  -7 -14 -16 -11 -19
+Q  -5  -2  -5  -4 -16   9   0  -8   0  -9  -6  -4  -5 -15  -4  -6  -7 -15 -14  -8  -4   7  -6 -19
+E  -3 -11  -3   2 -16   0   8  -5  -6  -6 -10  -5  -8 -16  -7  -5  -7 -19  -9  -8   0   6  -6 -19
+G  -3 -11  -4  -4 -11  -8  -5   7 -10 -13 -12  -8 -10 -10  -7  -3  -7 -17 -16  -7  -4  -6  -6 -19
+H  -8  -3  -1  -5  -8   0  -6 -10   9 -11  -7  -8 -13  -7  -5  -7  -8  -8  -4  -7  -2  -2  -6 -19
+I  -6  -6  -6  -9  -7  -9  -6 -13 -11   9  -2  -7  -2  -3 -10  -8  -3 -16  -7   1  -7  -7  -6 -19
+L  -7 -10  -8 -15 -17  -6 -10 -12  -7  -2   7  -9   0  -4  -8  -9  -8  -7  -8  -3 -10  -8  -7 -19
+K  -8  -1  -2  -6 -16  -4  -5  -8  -8  -7  -9   7  -3 -16  -8  -5  -4 -14 -10 -10  -3  -5  -6 -19
+M  -6  -5 -11 -13 -16  -5  -8 -10 -13  -2   0  -3  11  -5  -9  -6  -5 -15 -13  -2 -12  -6  -6 -19
+F  -9 -10 -10 -17 -15 -15 -16 -10  -7  -3  -4 -16  -5   9 -11  -7 -10  -6   1  -9 -12 -16  -9 -19
+P  -2  -5  -7  -9  -9  -4  -7  -7  -5 -10  -8  -8  -9 -11   8  -3  -5 -16 -16  -7  -8  -5  -6 -19
+S  -1  -4  -1  -5  -4  -6  -5  -3  -7  -8  -9  -5  -6  -7  -3   7   0  -6  -8  -8  -2  -6  -4 -19
+T  -1  -8  -3  -6  -9  -7  -7  -7  -8  -3  -8  -4  -5 -10  -5   0   7 -15  -7  -4  -4  -7  -5 -19
+W -16  -3  -9 -17 -18 -15 -19 -17  -8 -16  -7 -14 -15  -6 -16  -6 -15  13  -6 -18 -11 -17 -13 -19
+Y  -9 -11  -5 -13  -5 -14  -9 -16  -4  -7  -8 -10 -13   1 -16  -8  -7  -6  10  -8  -7 -11  -9 -19
+V  -3  -9  -9  -9  -7  -8  -8  -7  -7   1  -3 -10  -2  -9  -7  -8  -4 -18  -8   7  -9  -8  -6 -19
+B  -5  -9   6   6 -14  -4   0  -4  -2  -7 -10  -3 -12 -12  -8  -2  -4 -11  -7  -9   6  -1  -6 -19
+Z  -4  -5  -4   0 -16   7   6  -6  -2  -7  -8  -5  -6 -16  -5  -6  -7 -17 -11  -8  -1   6  -6 -19
+X  -4  -7  -4  -7 -11  -6  -6  -6  -6  -6  -7  -6  -6  -9  -6  -4  -5 -13  -9  -6  -6  -6  -6 -19
+* -19 -19 -19 -19 -19 -19 -19 -19 -19 -19 -19 -19 -19 -19 -19 -19 -19 -19 -19 -19 -19 -19 -19   1
diff --git a/sources/PamBlosum/PAM200 b/sources/PamBlosum/PAM200
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM200
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 200 substitution matrix, scale = ln(2)/3 = 0.231049
+#
+# Expected score = -1.23, Entropy = 0.507 bits
+#
+# Lowest score = -9, Highest score = 18
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  3 -2  0  0 -3 -1  0  1 -2 -1 -2 -2 -2 -4  1  1  1 -7 -4  0  0  0  0 -9
+R -2  7  0 -2 -4  1 -2 -4  2 -2 -4  4 -1 -5  0 -1 -1  2 -5 -3 -1  0 -1 -9
+N  0  0  3  3 -5  1  2  0  2 -2 -4  1 -2 -4 -1  1  0 -5 -2 -2  3  1  0 -9
+D  0 -2  3  5 -6  2  4  0  0 -3 -5  0 -4 -7 -2  0  0 -8 -5 -3  4  3 -1 -9
+C -3 -4 -5 -6 12 -7 -7 -4 -4 -3 -7 -7 -6 -6 -4  0 -3 -9  0 -2 -5 -7 -4 -9
+Q -1  1  1  2 -7  5  3 -2  3 -3 -2  1 -1 -6  0 -1 -1 -6 -5 -3  1  4 -1 -9
+E  0 -2  2  4 -7  3  5  0  0 -3 -4  0 -3 -7 -1  0 -1 -9 -5 -2  3  4 -1 -9
+G  1 -4  0  0 -4 -2  0  6 -3 -3 -5 -2 -4 -6 -1  1  0 -8 -6 -2  0 -1 -1 -9
+H -2  2  2  0 -4  3  0 -3  8 -3 -3 -1 -3 -2 -1 -1 -2 -3  0 -3  1  2 -1 -9
+I -1 -2 -2 -3 -3 -3 -3 -3 -3  6  2 -2  2  1 -3 -2  0 -6 -2  4 -3 -3 -1 -9
+L -2 -4 -4 -5 -7 -2 -4 -5 -3  2  7 -4  4  2 -3 -4 -2 -2 -2  2 -4 -3 -2 -9
+K -2  4  1  0 -7  1  0 -2 -1 -2 -4  6  1 -7 -2  0  0 -4 -5 -3  0  0 -1 -9
+M -2 -1 -2 -4 -6 -1 -3 -4 -3  2  4  1  8  0 -3 -2 -1 -5 -3  2 -3 -2 -1 -9
+F -4 -5 -4 -7 -6 -6 -7 -6 -2  1  2 -7  0 10 -6 -4 -4  0  7 -2 -6 -6 -3 -9
+P  1  0 -1 -2 -4  0 -1 -1 -1 -3 -3 -2 -3 -6  7  1  0 -7 -6 -2 -1 -1 -1 -9
+S  1 -1  1  0  0 -1  0  1 -1 -2 -4  0 -2 -4  1  2  2 -3 -3 -1  1 -1  0 -9
+T  1 -1  0  0 -3 -1 -1  0 -2  0 -2  0 -1 -4  0  2  4 -6 -3  0  0 -1  0 -9
+W -7  2 -5 -8 -9 -6 -9 -8 -3 -6 -2 -4 -5  0 -7 -3 -6 18 -1 -8 -6 -7 -5 -9
+Y -4 -5 -2 -5  0 -5 -5 -6  0 -2 -2 -5 -3  7 -6 -3 -3 -1 11 -3 -4 -5 -3 -9
+V  0 -3 -2 -3 -2 -3 -2 -2 -3  4  2 -3  2 -2 -2 -1  0 -8 -3  5 -3 -2 -1 -9
+B  0 -1  3  4 -5  1  3  0  1 -3 -4  0 -3 -6 -1  1  0 -6 -4 -3  3  2 -1 -9
+Z  0  0  1  3 -7  4  4 -1  2 -3 -3  0 -2 -6 -1 -1 -1 -7 -5 -2  2  4 -1 -9
+X  0 -1  0 -1 -4 -1 -1 -1 -1 -1 -2 -1 -1 -3 -1  0  0 -5 -3 -1 -1 -1 -1 -9
+* -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9  1
diff --git a/sources/PamBlosum/PAM200.cdi b/sources/PamBlosum/PAM200.cdi
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM200.cdi
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 200 substitution matrix, scale = 0.0693200
+#
+# Expected score = -4.12, Entropy = 0.507 bits
+#
+# Lowest score = -30, Highest score = 59
+#
+    A   R   N   D   C   Q   E   G   H   I   L   K   M   F   P   S   T   W   Y   V   B   Z   X   *
+A   9  -7   0   0  -9  -3   1   4  -7  -3  -8  -6  -5 -14   4   5   5 -23 -14   1   0  -1  -1 -30
+R  -7  24  -1  -7 -15   4  -6 -12   5  -8 -13  12  -2 -18  -1  -2  -5   7 -17 -11  -4  -1  -4 -30
+N   0  -1  10   9 -15   2   5   1   7  -8 -12   4  -8 -14  -3   3   2 -16  -8  -8   9   4  -2 -30
+D   0  -7   9  16 -21   6  14   1   2 -10 -17  -1 -12 -23  -5   0  -2 -27 -17 -10  13  11  -4 -30
+C  -9 -15 -15 -21  41 -22 -22 -14 -14  -9 -25 -22 -22 -18 -12  -1 -10 -30   0  -8 -18 -22 -13 -30
+Q  -3   4   2   6 -22  18  10  -6  11  -9  -7   2  -4 -19   0  -3  -4 -20 -17  -8   4  14  -3 -30
+E   1  -6   5  14 -22  10  16   0   1  -9 -14  -1  -9 -22  -4  -1  -3 -28 -17  -8  10  14  -3 -30
+G   4 -12   1   1 -14  -6   0  19 -10 -12 -17  -8 -12 -19  -3   4  -1 -28 -22  -6   1  -3  -4 -30
+H  -7   5   7   2 -14  11   1 -10  26 -11  -9  -2 -10  -8  -2  -4  -6 -11  -1 -10   4   7  -3 -30
+I  -3  -8  -8 -10  -9  -9  -9 -12 -11  19   8  -8   8   3  -9  -6   0 -21  -5  14  -9  -9  -3 -30
+L  -8 -13 -12 -17 -25  -7 -14 -17  -9   8  22 -12  13   5 -11 -12  -8  -8  -5   6 -15 -11  -6 -30
+K  -6  12   4  -1 -22   2  -1  -8  -2  -8 -12  19   2 -22  -6  -1  -1 -15 -18 -11   1   0  -4 -30
+M  -5  -2  -8 -12 -22  -4  -9 -12 -10   8  13   2  28  -1  -9  -7  -3 -18 -12   6 -10  -7  -3 -30
+F -14 -18 -14 -23 -18 -19 -22 -19  -8   3   5 -22  -1  33 -18 -13 -13  -1  23  -6 -18 -21 -10 -30
+P   4  -1  -3  -5 -12   0  -4  -3  -2  -9 -11  -6  -9 -18  23   3   0 -23 -20  -6  -4  -2  -3 -30
+S   5  -2   3   0  -1  -3  -1   4  -4  -6 -12  -1  -7 -13   3   8   6  -9 -11  -5   2  -2  -1 -30
+T   5  -5   2  -2 -10  -4  -3  -1  -6   0  -8  -1  -3 -13   0   6  12 -21 -11   1   0  -3  -1 -30
+W -23   7 -16 -27 -30 -20 -28 -28 -11 -21  -8 -15 -18  -1 -23  -9 -21  59  -2 -26 -21 -24 -17 -30
+Y -14 -17  -8 -17   0 -17 -17 -22  -1  -5  -5 -18 -12  23 -20 -11 -11  -2  37 -11 -12 -17 -10 -30
+V   1 -11  -8 -10  -8  -8  -8  -6 -10  14   6 -11   6  -6  -6  -5   1 -26 -11  18  -9  -8  -3 -30
+B   0  -4   9  13 -18   4  10   1   4  -9 -15   1 -10 -18  -4   2   0 -21 -12  -9  12   8  -3 -30
+Z  -1  -1   4  11 -22  14  14  -3   7  -9 -11   0  -7 -21  -2  -2  -3 -24 -17  -8   8  14  -3 -30
+X  -1  -4  -2  -4 -13  -3  -3  -4  -3  -3  -6  -4  -3 -10  -3  -1  -1 -17 -10  -3  -3  -3  -4 -30
+* -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30 -30   1
diff --git a/sources/PamBlosum/PAM210 b/sources/PamBlosum/PAM210
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM210
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 210 substitution matrix, scale = ln(2)/3 = 0.231049
+#
+# Expected score = -1.12, Entropy = 0.470 bits
+#
+# Lowest score = -9, Highest score = 18
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  2 -2  0  0 -2 -1  0  1 -2 -1 -2 -2 -1 -4  1  1  1 -7 -4  0  0  0  0 -9
+R -2  7  0 -2 -4  1 -2 -3  2 -2 -4  4 -1 -5  0  0 -1  2 -5 -3 -1  0 -1 -9
+N  0  0  3  2 -4  1  2  0  2 -2 -3  1 -2 -4 -1  1  0 -5 -2 -2  3  1  0 -9
+D  0 -2  2  5 -6  2  4  0  1 -3 -5  0 -3 -7 -1  0  0 -8 -5 -3  4  3 -1 -9
+C -2 -4 -4 -6 12 -6 -6 -4 -4 -3 -7 -6 -6 -5 -3  0 -3 -9  0 -2 -5 -6 -4 -9
+Q -1  1  1  2 -6  5  3 -2  3 -3 -2  1 -1 -6  0 -1 -1 -6 -5 -2  1  4 -1 -9
+E  0 -2  2  4 -6  3  5  0  0 -2 -4  0 -3 -6 -1  0 -1 -8 -5 -2  3  4 -1 -9
+G  1 -3  0  0 -4 -2  0  5 -3 -3 -5 -2 -3 -5 -1  1  0 -8 -6 -2  0 -1 -1 -9
+H -2  2  2  1 -4  3  0 -3  8 -3 -2  0 -3 -2  0 -1 -2 -3  0 -3  1  2 -1 -9
+I -1 -2 -2 -3 -3 -3 -2 -3 -3  5  2 -2  2  1 -3 -2  0 -6 -1  4 -3 -3 -1 -9
+L -2 -4 -3 -5 -7 -2 -4 -5 -2  2  7 -3  4  2 -3 -3 -2 -2 -1  2 -4 -3 -2 -9
+K -2  4  1  0 -6  1  0 -2  0 -2 -3  5  1 -6 -2  0  0 -4 -5 -3  0  0 -1 -9
+M -1 -1 -2 -3 -6 -1 -3 -3 -3  2  4  1  8  0 -3 -2 -1 -5 -3  2 -3 -2 -1 -9
+F -4 -5 -4 -7 -5 -6 -6 -5 -2  1  2 -6  0 10 -5 -4 -4  0  7 -2 -5 -6 -3 -9
+P  1  0 -1 -1 -3  0 -1 -1  0 -3 -3 -2 -3 -5  7  1  0 -7 -6 -2 -1  0 -1 -9
+S  1  0  1  0  0 -1  0  1 -1 -2 -3  0 -2 -4  1  2  2 -3 -3 -1  1  0  0 -9
+T  1 -1  0  0 -3 -1 -1  0 -2  0 -2  0 -1 -4  0  2  3 -6 -3  0  0 -1  0 -9
+W -7  2 -5 -8 -9 -6 -8 -8 -3 -6 -2 -4 -5  0 -7 -3 -6 18 -1 -7 -6 -7 -5 -9
+Y -4 -5 -2 -5  0 -5 -5 -6  0 -1 -1 -5 -3  7 -6 -3 -3 -1 11 -3 -4 -5 -3 -9
+V  0 -3 -2 -3 -2 -2 -2 -2 -3  4  2 -3  2 -2 -2 -1  0 -7 -3  5 -2 -2 -1 -9
+B  0 -1  3  4 -5  1  3  0  1 -3 -4  0 -3 -5 -1  1  0 -6 -4 -2  3  2 -1 -9
+Z  0  0  1  3 -6  4  4 -1  2 -3 -3  0 -2 -6  0  0 -1 -7 -5 -2  2  4 -1 -9
+X  0 -1  0 -1 -4 -1 -1 -1 -1 -1 -2 -1 -1 -3 -1  0  0 -5 -3 -1 -1 -1 -1 -9
+* -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9  1
diff --git a/sources/PamBlosum/PAM220 b/sources/PamBlosum/PAM220
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM220
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 220 substitution matrix, scale = ln(2)/3 = 0.231049
+#
+# Expected score = -1.06, Entropy = 0.437 bits
+#
+# Lowest score = -8, Highest score = 17
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  2 -2  0  0 -2 -1  0  1 -2 -1 -2 -1 -1 -4  1  1  1 -6 -4  0  0  0  0 -8
+R -2  7  0 -2 -4  1 -1 -3  2 -2 -3  4 -1 -5  0  0 -1  2 -5 -3 -1  0 -1 -8
+N  0  0  3  2 -4  1  2  0  2 -2 -3  1 -2 -4 -1  1  0 -4 -2 -2  2  1  0 -8
+D  0 -2  2  4 -6  2  4  0  1 -3 -5  0 -3 -6 -1  0  0 -8 -5 -3  4  3 -1 -8
+C -2 -4 -4 -6 12 -6 -6 -4 -4 -3 -7 -6 -6 -5 -3  0 -3 -8  0 -2 -5 -6 -3 -8
+Q -1  1  1  2 -6  5  3 -2  3 -2 -2  1 -1 -5  0 -1 -1 -5 -5 -2  1  4 -1 -8
+E  0 -1  2  4 -6  3  4  0  1 -2 -4  0 -2 -6 -1  0 -1 -8 -5 -2  3  4 -1 -8
+G  1 -3  0  0 -4 -2  0  5 -3 -3 -5 -2 -3 -5 -1  1  0 -8 -6 -2  0 -1 -1 -8
+H -2  2  2  1 -4  3  1 -3  7 -3 -2  0 -3 -2  0 -1 -2 -3  0 -3  1  2 -1 -8
+I -1 -2 -2 -3 -3 -2 -2 -3 -3  5  2 -2  2  1 -2 -2  0 -6 -1  4 -2 -2 -1 -8
+L -2 -3 -3 -5 -7 -2 -4 -5 -2  2  6 -3  4  2 -3 -3 -2 -2 -1  2 -4 -3 -2 -8
+K -1  4  1  0 -6  1  0 -2  0 -2 -3  5  1 -6 -1  0  0 -4 -5 -3  0  0 -1 -8
+M -1 -1 -2 -3 -6 -1 -2 -3 -3  2  4  1  8  0 -2 -2 -1 -5 -3  2 -3 -2 -1 -8
+F -4 -5 -4 -6 -5 -5 -6 -5 -2  1  2 -6  0 10 -5 -4 -4  0  7 -2 -5 -6 -3 -8
+P  1  0 -1 -1 -3  0 -1 -1  0 -2 -3 -1 -2 -5  7  1  0 -6 -6 -1 -1  0 -1 -8
+S  1  0  1  0  0 -1  0  1 -1 -2 -3  0 -2 -4  1  2  2 -3 -3 -1  0  0  0 -8
+T  1 -1  0  0 -3 -1 -1  0 -2  0 -2  0 -1 -4  0  2  3 -6 -3  0  0 -1  0 -8
+W -6  2 -4 -8 -8 -5 -8 -8 -3 -6 -2 -4 -5  0 -6 -3 -6 17  0 -7 -6 -7 -5 -8
+Y -4 -5 -2 -5  0 -5 -5 -6  0 -1 -1 -5 -3  7 -6 -3 -3  0 11 -3 -3 -5 -3 -8
+V  0 -3 -2 -3 -2 -2 -2 -2 -3  4  2 -3  2 -2 -1 -1  0 -7 -3  5 -2 -2 -1 -8
+B  0 -1  2  4 -5  1  3  0  1 -2 -4  0 -3 -5 -1  0  0 -6 -3 -2  3  2 -1 -8
+Z  0  0  1  3 -6  4  4 -1  2 -2 -3  0 -2 -6  0  0 -1 -7 -5 -2  2  4 -1 -8
+X  0 -1  0 -1 -3 -1 -1 -1 -1 -1 -2 -1 -1 -3 -1  0  0 -5 -3 -1 -1 -1 -1 -8
+* -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8  1
diff --git a/sources/PamBlosum/PAM230 b/sources/PamBlosum/PAM230
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM230
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 230 substitution matrix, scale = ln(2)/3 = 0.231049
+#
+# Expected score = -0.991, Entropy = 0.407 bits
+#
+# Lowest score = -8, Highest score = 17
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  2 -2  0  0 -2 -1  0  1 -2 -1 -2 -1 -1 -4  1  1  1 -6 -4  0  0  0  0 -8
+R -2  7  0 -2 -4  1 -1 -3  2 -2 -3  4 -1 -5  0  0 -1  2 -5 -3 -1  0 -1 -8
+N  0  0  2  2 -4  1  1  0  2 -2 -3  1 -2 -4 -1  1  0 -4 -2 -2  2  1  0 -8
+D  0 -2  2  4 -6  2  4  1  1 -3 -4  0 -3 -6 -1  0  0 -7 -5 -2  3  3 -1 -8
+C -2 -4 -4 -6 12 -6 -6 -4 -4 -2 -7 -6 -6 -5 -3  0 -2 -8  0 -2 -5 -6 -3 -8
+Q -1  1  1  2 -6  5  3 -1  3 -2 -2  1 -1 -5  0 -1 -1 -5 -4 -2  1  4 -1 -8
+E  0 -1  1  4 -6  3  4  0  1 -2 -4  0 -2 -6 -1  0 -1 -8 -5 -2  3  4 -1 -8
+G  1 -3  0  1 -4 -1  0  5 -2 -3 -4 -2 -3 -5 -1  1  0 -7 -6 -2  0 -1 -1 -8
+H -2  2  2  1 -4  3  1 -2  7 -3 -2  0 -2 -2  0 -1 -2 -3  0 -2  1  2 -1 -8
+I -1 -2 -2 -3 -2 -2 -2 -3 -3  5  2 -2  2  1 -2 -2  0 -6 -1  4 -2 -2 -1 -8
+L -2 -3 -3 -4 -7 -2 -4 -4 -2  2  6 -3  4  2 -3 -3 -2 -2 -1  2 -4 -3 -2 -8
+K -1  4  1  0 -6  1  0 -2  0 -2 -3  5  0 -6 -1  0  0 -4 -5 -3  1  0 -1 -8
+M -1 -1 -2 -3 -6 -1 -2 -3 -2  2  4  0  7  0 -2 -2 -1 -5 -3  2 -2 -2 -1 -8
+F -4 -5 -4 -6 -5 -5 -6 -5 -2  1  2 -6  0  9 -5 -3 -3  0  7 -1 -5 -6 -3 -8
+P  1  0 -1 -1 -3  0 -1 -1  0 -2 -3 -1 -2 -5  6  1  0 -6 -5 -1 -1  0 -1 -8
+S  1  0  1  0  0 -1  0  1 -1 -2 -3  0 -2 -3  1  2  2 -3 -3 -1  0  0  0 -8
+T  1 -1  0  0 -2 -1 -1  0 -2  0 -2  0 -1 -3  0  2  3 -6 -3  0  0 -1  0 -8
+W -6  2 -4 -7 -8 -5 -8 -7 -3 -6 -2 -4 -5  0 -6 -3 -6 17  0 -7 -6 -6 -4 -8
+Y -4 -5 -2 -5  0 -4 -5 -6  0 -1 -1 -5 -3  7 -5 -3 -3  0 10 -3 -3 -5 -3 -8
+V  0 -3 -2 -2 -2 -2 -2 -2 -2  4  2 -3  2 -1 -1 -1  0 -7 -3  5 -2 -2 -1 -8
+B  0 -1  2  3 -5  1  3  0  1 -2 -4  1 -2 -5 -1  0  0 -6 -3 -2  3  2 -1 -8
+Z  0  0  1  3 -6  4  4 -1  2 -2 -3  0 -2 -6  0  0 -1 -6 -5 -2  2  4 -1 -8
+X  0 -1  0 -1 -3 -1 -1 -1 -1 -1 -2 -1 -1 -3 -1  0  0 -4 -3 -1 -1 -1 -1 -8
+* -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8  1
diff --git a/sources/PamBlosum/PAM240 b/sources/PamBlosum/PAM240
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM240
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 240 substitution matrix, scale = ln(2)/3 = 0.231049
+#
+# Expected score = -0.923, Entropy = 0.379 bits
+#
+# Lowest score = -8, Highest score = 17
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  2 -2  0  0 -2  0  0  1 -1 -1 -2 -1 -1 -4  1  1  1 -6 -4  0  0  0  0 -8
+R -2  6  0 -1 -4  1 -1 -3  2 -2 -3  3  0 -5  0  0 -1  2 -4 -3 -1  0 -1 -8
+N  0  0  2  2 -4  1  1  0  2 -2 -3  1 -2 -4 -1  1  0 -4 -2 -2  2  1  0 -8
+D  0 -1  2  4 -5  2  4  1  1 -2 -4  0 -3 -6 -1  0  0 -7 -4 -2  3  3 -1 -8
+C -2 -4 -4 -5 12 -6 -6 -4 -4 -2 -6 -6 -5 -5 -3  0 -2 -8  0 -2 -5 -6 -3 -8
+Q  0  1  1  2 -6  4  3 -1  3 -2 -2  1 -1 -5  0 -1 -1 -5 -4 -2  1  3 -1 -8
+E  0 -1  1  4 -6  3  4  0  1 -2 -3  0 -2 -6 -1  0  0 -7 -4 -2  3  3 -1 -8
+G  1 -3  0  1 -4 -1  0  5 -2 -3 -4 -2 -3 -5 -1  1  0 -7 -5 -1  0  0 -1 -8
+H -1  2  2  1 -4  3  1 -2  7 -3 -2  0 -2 -2  0 -1 -1 -3  0 -2  1  2 -1 -8
+I -1 -2 -2 -2 -2 -2 -2 -3 -3  5  2 -2  2  1 -2 -1  0 -5 -1  4 -2 -2 -1 -8
+L -2 -3 -3 -4 -6 -2 -3 -4 -2  2  6 -3  4  2 -3 -3 -2 -2 -1  2 -4 -3 -1 -8
+K -1  3  1  0 -6  1  0 -2  0 -2 -3  5  0 -5 -1  0  0 -4 -5 -3  1  0 -1 -8
+M -1  0 -2 -3 -5 -1 -2 -3 -2  2  4  0  7  0 -2 -2 -1 -4 -3  2 -2 -2 -1 -8
+F -4 -5 -4 -6 -5 -5 -6 -5 -2  1  2 -5  0  9 -5 -3 -3  0  7 -1 -5 -5 -2 -8
+P  1  0 -1 -1 -3  0 -1 -1  0 -2 -3 -1 -2 -5  6  1  0 -6 -5 -1 -1  0 -1 -8
+S  1  0  1  0  0 -1  0  1 -1 -1 -3  0 -2 -3  1  2  1 -3 -3 -1  0  0  0 -8
+T  1 -1  0  0 -2 -1  0  0 -1  0 -2  0 -1 -3  0  1  3 -5 -3  0  0 -1  0 -8
+W -6  2 -4 -7 -8 -5 -7 -7 -3 -5 -2 -4 -4  0 -6 -3 -5 17  0 -6 -5 -6 -4 -8
+Y -4 -4 -2 -4  0 -4 -4 -5  0 -1 -1 -5 -3  7 -5 -3 -3  0 10 -3 -3 -4 -2 -8
+V  0 -3 -2 -2 -2 -2 -2 -1 -2  4  2 -3  2 -1 -1 -1  0 -6 -3  4 -2 -2 -1 -8
+B  0 -1  2  3 -5  1  3  0  1 -2 -4  1 -2 -5 -1  0  0 -5 -3 -2  3  2 -1 -8
+Z  0  0  1  3 -6  3  3  0  2 -2 -3  0 -2 -5  0  0 -1 -6 -4 -2  2  3 -1 -8
+X  0 -1  0 -1 -3 -1 -1 -1 -1 -1 -1 -1 -1 -2 -1  0  0 -4 -2 -1 -1 -1 -1 -8
+* -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8  1
diff --git a/sources/PamBlosum/PAM250 b/sources/PamBlosum/PAM250
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM250
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 250 substitution matrix, scale = ln(2)/3 = 0.231049
+#
+# Expected score = -0.844, Entropy = 0.354 bits
+#
+# Lowest score = -8, Highest score = 17
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  2 -2  0  0 -2  0  0  1 -1 -1 -2 -1 -1 -3  1  1  1 -6 -3  0  0  0  0 -8
+R -2  6  0 -1 -4  1 -1 -3  2 -2 -3  3  0 -4  0  0 -1  2 -4 -2 -1  0 -1 -8
+N  0  0  2  2 -4  1  1  0  2 -2 -3  1 -2 -3  0  1  0 -4 -2 -2  2  1  0 -8
+D  0 -1  2  4 -5  2  3  1  1 -2 -4  0 -3 -6 -1  0  0 -7 -4 -2  3  3 -1 -8
+C -2 -4 -4 -5 12 -5 -5 -3 -3 -2 -6 -5 -5 -4 -3  0 -2 -8  0 -2 -4 -5 -3 -8
+Q  0  1  1  2 -5  4  2 -1  3 -2 -2  1 -1 -5  0 -1 -1 -5 -4 -2  1  3 -1 -8
+E  0 -1  1  3 -5  2  4  0  1 -2 -3  0 -2 -5 -1  0  0 -7 -4 -2  3  3 -1 -8
+G  1 -3  0  1 -3 -1  0  5 -2 -3 -4 -2 -3 -5  0  1  0 -7 -5 -1  0  0 -1 -8
+H -1  2  2  1 -3  3  1 -2  6 -2 -2  0 -2 -2  0 -1 -1 -3  0 -2  1  2 -1 -8
+I -1 -2 -2 -2 -2 -2 -2 -3 -2  5  2 -2  2  1 -2 -1  0 -5 -1  4 -2 -2 -1 -8
+L -2 -3 -3 -4 -6 -2 -3 -4 -2  2  6 -3  4  2 -3 -3 -2 -2 -1  2 -3 -3 -1 -8
+K -1  3  1  0 -5  1  0 -2  0 -2 -3  5  0 -5 -1  0  0 -3 -4 -2  1  0 -1 -8
+M -1  0 -2 -3 -5 -1 -2 -3 -2  2  4  0  6  0 -2 -2 -1 -4 -2  2 -2 -2 -1 -8
+F -3 -4 -3 -6 -4 -5 -5 -5 -2  1  2 -5  0  9 -5 -3 -3  0  7 -1 -4 -5 -2 -8
+P  1  0  0 -1 -3  0 -1  0  0 -2 -3 -1 -2 -5  6  1  0 -6 -5 -1 -1  0 -1 -8
+S  1  0  1  0  0 -1  0  1 -1 -1 -3  0 -2 -3  1  2  1 -2 -3 -1  0  0  0 -8
+T  1 -1  0  0 -2 -1  0  0 -1  0 -2  0 -1 -3  0  1  3 -5 -3  0  0 -1  0 -8
+W -6  2 -4 -7 -8 -5 -7 -7 -3 -5 -2 -3 -4  0 -6 -2 -5 17  0 -6 -5 -6 -4 -8
+Y -3 -4 -2 -4  0 -4 -4 -5  0 -1 -1 -4 -2  7 -5 -3 -3  0 10 -2 -3 -4 -2 -8
+V  0 -2 -2 -2 -2 -2 -2 -1 -2  4  2 -2  2 -1 -1 -1  0 -6 -2  4 -2 -2 -1 -8
+B  0 -1  2  3 -4  1  3  0  1 -2 -3  1 -2 -4 -1  0  0 -5 -3 -2  3  2 -1 -8
+Z  0  0  1  3 -5  3  3  0  2 -2 -3  0 -2 -5  0  0 -1 -6 -4 -2  2  3 -1 -8
+X  0 -1  0 -1 -3 -1 -1 -1 -1 -1 -1 -1 -1 -2 -1  0  0 -4 -2 -1 -1 -1 -1 -8
+* -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8  1
diff --git a/sources/PamBlosum/PAM250.cdi b/sources/PamBlosum/PAM250.cdi
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM250.cdi
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 250 substitution matrix, scale = 0.0693200
+#
+# Expected score = -2.81, Entropy = 0.354 bits
+#
+# Lowest score = -26, Highest score = 57
+#
+    A   R   N   D   C   Q   E   G   H   I   L   K   M   F   P   S   T   W   Y   V   B   Z   X   *
+A   6  -5   1   1  -7  -1   1   4  -4  -2  -6  -4  -4 -12   4   4   4 -19 -12   1   1   0  -1 -26
+R  -5  20   0  -4 -12   4  -4  -8   5  -7 -10  11  -1 -15  -1  -1  -3   7 -14  -8  -2   0  -3 -26
+N   1   0   7   7 -12   3   5   1   5  -6 -10   3  -6 -12  -2   2   1 -13  -7  -6   7   4  -1 -26
+D   1  -4   7  13 -17   5  11   2   2  -8 -13   0  -9 -19  -3   1   0 -22 -14  -7  10   9  -2 -26
+C  -7 -12 -12 -17  40 -18 -18 -11 -11  -8 -20 -18 -17 -14  -9   0  -7 -26   1  -6 -15 -18 -10 -26
+Q  -1   4   3   5 -18  13   8  -4  10  -7  -6   2  -3 -15   1  -2  -3 -16 -13  -6   4  11  -2 -26
+E   1  -4   5  11 -18   8  13   1   2  -7 -11   0  -7 -18  -2   0  -1 -23 -14  -6   9  11  -2 -26
+G   4  -8   1   2 -11  -4   1  16  -7  -8 -13  -6  -9 -16  -2   4   0 -23 -17  -4   2  -1  -3 -26
+H  -4   5   5   2 -11  10   2  -7  22  -8  -7   0  -7  -6  -1  -3  -4  -9   0  -7   4   6  -2 -26
+I  -2  -7  -6  -8  -8  -7  -7  -8  -8  15   8  -6   7   3  -7  -5   0 -17  -3  12  -7  -7  -2 -26
+L  -6 -10 -10 -13 -20  -6 -11 -13  -7   8  20  -9  12   6  -8  -9  -6  -6  -3   6 -11  -9  -4 -26
+K  -4  11   3   0 -18   2   0  -6   0  -6  -9  15   1 -17  -4  -1   0 -12 -15  -8   2   1  -3 -26
+M  -4  -1  -6  -9 -17  -3  -7  -9  -7   7  12   1  21   1  -7  -5  -2 -14  -8   6  -7  -5  -2 -26
+F -12 -15 -12 -19 -14 -15 -18 -16  -6   3   6 -17   1  30 -15 -11 -10   1  23  -4 -15 -17  -8 -26
+P   4  -1  -2  -3  -9   1  -2  -2  -1  -7  -8  -4  -7 -15  19   3   1 -19 -16  -4  -2  -1  -2 -26
+S   4  -1   2   1   0  -2   0   4  -3  -5  -9  -1  -5 -11   3   5   4  -8  -9  -3   2  -1  -1 -26
+T   4  -3   1   0  -7  -3  -1   0  -4   0  -6   0  -2 -10   1   4   9 -17  -9   1   0  -2  -1 -26
+W -19   7 -13 -22 -26 -16 -23 -23  -9 -17  -6 -12 -14   1 -19  -8 -17  57   0 -21 -18 -19 -13 -26
+Y -12 -14  -7 -14   1 -13 -14 -17   0  -3  -3 -15  -8  23 -16  -9  -9   0  34  -8 -10 -14  -8 -26
+V   1  -8  -6  -7  -6  -6  -6  -4  -7  12   6  -8   6  -4  -4  -3   1 -21  -8  14  -6  -6  -2 -26
+B   1  -2   7  10 -15   4   9   2   4  -7 -11   2  -7 -15  -2   2   0 -18 -10  -6   9   7  -2 -26
+Z   0   0   4   9 -18  11  11  -1   6  -7  -9   1  -5 -17  -1  -1  -2 -19 -14  -6   7  11  -2 -26
+X  -1  -3  -1  -2 -10  -2  -2  -3  -2  -2  -4  -3  -2  -8  -2  -1  -1 -13  -8  -2  -2  -2  -3 -26
+* -26 -26 -26 -26 -26 -26 -26 -26 -26 -26 -26 -26 -26 -26 -26 -26 -26 -26 -26 -26 -26 -26 -26   1
diff --git a/sources/PamBlosum/PAM260 b/sources/PamBlosum/PAM260
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM260
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 260 substitution matrix, scale = ln(2)/3 = 0.231049
+#
+# Expected score = -0.794, Entropy = 0.330 bits
+#
+# Lowest score = -7, Highest score = 17
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  2 -1  0  0 -2  0  0  1 -1  0 -2 -1 -1 -3  1  1  1 -6 -3  0  0  0  0 -7
+R -1  6  0 -1 -4  1 -1 -2  2 -2 -3  3  0 -4  0  0 -1  2 -4 -2 -1  0 -1 -7
+N  0  0  2  2 -3  1  1  0  2 -2 -3  1 -2 -3  0  1  0 -4 -2 -2  2  1  0 -7
+D  0 -1  2  4 -5  2  3  1  1 -2 -4  0 -2 -5 -1  0  0 -6 -4 -2  3  3 -1 -7
+C -2 -4 -3 -5 12 -5 -5 -3 -3 -2 -6 -5 -5 -4 -3  0 -2 -7  0 -2 -4 -5 -3 -7
+Q  0  1  1  2 -5  4  2 -1  3 -2 -2  1 -1 -4  0  0 -1 -5 -4 -2  1  3  0 -7
+E  0 -1  1  3 -5  2  4  0  1 -2 -3  0 -2 -5  0  0  0 -7 -4 -2  3  3 -1 -7
+G  1 -2  0  1 -3 -1  0  5 -2 -2 -4 -2 -3 -5  0  1  0 -7 -5 -1  1  0 -1 -7
+H -1  2  2  1 -3  3  1 -2  6 -2 -2  0 -2 -2  0 -1 -1 -3  0 -2  1  2 -1 -7
+I  0 -2 -2 -2 -2 -2 -2 -2 -2  4  2 -2  2  1 -2 -1  0 -5 -1  4 -2 -2 -1 -7
+L -2 -3 -3 -4 -6 -2 -3 -4 -2  2  6 -3  4  2 -2 -3 -2 -2 -1  2 -3 -2 -1 -7
+K -1  3  1  0 -5  1  0 -2  0 -2 -3  4  0 -5 -1  0  0 -3 -4 -2  1  0 -1 -7
+M -1  0 -2 -2 -5 -1 -2 -3 -2  2  4  0  6  0 -2 -1 -1 -4 -2  2 -2 -2 -1 -7
+F -3 -4 -3 -5 -4 -4 -5 -5 -2  1  2 -5  0  9 -4 -3 -3  0  7 -1 -4 -5 -2 -7
+P  1  0  0 -1 -3  0  0  0  0 -2 -2 -1 -2 -4  6  1  0 -5 -5 -1 -1  0 -1 -7
+S  1  0  1  0  0  0  0  1 -1 -1 -3  0 -1 -3  1  1  1 -2 -3 -1  0  0  0 -7
+T  1 -1  0  0 -2 -1  0  0 -1  0 -2  0 -1 -3  0  1  2 -5 -3  0  0  0  0 -7
+W -6  2 -4 -6 -7 -5 -7 -7 -3 -5 -2 -3 -4  0 -5 -2 -5 17  0 -6 -5 -6 -4 -7
+Y -3 -4 -2 -4  0 -4 -4 -5  0 -1 -1 -4 -2  7 -5 -3 -3  0 10 -2 -3 -4 -2 -7
+V  0 -2 -2 -2 -2 -2 -2 -1 -2  4  2 -2  2 -1 -1 -1  0 -6 -2  4 -2 -2 -1 -7
+B  0 -1  2  3 -4  1  3  1  1 -2 -3  1 -2 -4 -1  0  0 -5 -3 -2  3  2  0 -7
+Z  0  0  1  3 -5  3  3  0  2 -2 -2  0 -2 -5  0  0  0 -6 -4 -2  2  3 -1 -7
+X  0 -1  0 -1 -3  0 -1 -1 -1 -1 -1 -1 -1 -2 -1  0  0 -4 -2 -1  0 -1 -1 -7
+* -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7  1
diff --git a/sources/PamBlosum/PAM270 b/sources/PamBlosum/PAM270
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM270
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 270 substitution matrix, scale = ln(2)/4 = 0.173287
+#
+# Expected score = -0.969, Entropy = 0.309 bits
+#
+# Lowest score = -10, Highest score = 23
+#
+    A   R   N   D   C   Q   E   G   H   I   L   K   M   F   P   S   T   W   Y   V   B   Z   X   *
+A   2  -2   0   0  -2   0   0   2  -2  -1  -2  -1  -1  -4   1   1   1  -7  -4   0   0   0   0 -10
+R  -2   8   0  -1  -5   2  -1  -3   2  -2  -4   4  -1  -5   0   0  -1   3  -5  -3  -1   0  -1 -10
+N   0   0   2   2  -4   1   2   1   2  -2  -3   1  -2  -4   0   1   1  -5  -3  -2   2   2   0 -10
+D   0  -1   2   5  -6   2   4   1   1  -3  -5   0  -3  -7  -1   0   0  -8  -5  -3   4   3  -1 -10
+C  -2  -5  -4  -6  16  -7  -6  -4  -4  -3  -7  -7  -6  -5  -3   0  -3 -10   1  -2  -5  -7  -4 -10
+Q   0   2   1   2  -7   5   3  -1   4  -2  -2   1  -1  -6   0  -1  -1  -6  -5  -2   2   4  -1 -10
+E   0  -1   2   4  -6   3   5   0   1  -2  -4   0  -3  -7  -1   0   0  -9  -5  -2   3   4  -1 -10
+G   2  -3   1   1  -4  -1   0   6  -2  -3  -5  -2  -3  -6   0   1   0  -9  -6  -2   1   0  -1 -10
+H  -2   2   2   1  -4   4   1  -2   8  -3  -3   0  -3  -2   0  -1  -1  -3   0  -3   1   2  -1 -10
+I  -1  -2  -2  -3  -3  -2  -2  -3  -3   5   3  -2   3   1  -2  -2   0  -6  -1   5  -3  -2  -1 -10
+L  -2  -4  -3  -5  -7  -2  -4  -5  -3   3   8  -3   5   2  -3  -3  -2  -2  -1   2  -4  -3  -2 -10
+K  -1   4   1   0  -7   1   0  -2   0  -2  -3   6   0  -6  -1   0   0  -4  -5  -3   1   0  -1 -10
+M  -1  -1  -2  -3  -6  -1  -3  -3  -3   3   5   0   8   0  -2  -2  -1  -5  -3   2  -3  -2  -1 -10
+F  -4  -5  -4  -7  -5  -6  -7  -6  -2   1   2  -6   0  12  -6  -4  -4   1   9  -1  -6  -6  -3 -10
+P   1   0   0  -1  -3   0  -1   0   0  -2  -3  -1  -2  -6   7   1   0  -7  -6  -1  -1   0  -1 -10
+S   1   0   1   0   0  -1   0   1  -1  -2  -3   0  -2  -4   1   2   2  -3  -4  -1   1   0   0 -10
+T   1  -1   1   0  -3  -1   0   0  -1   0  -2   0  -1  -4   0   2   3  -6  -3   0   0  -1   0 -10
+W  -7   3  -5  -8 -10  -6  -9  -9  -3  -6  -2  -4  -5   1  -7  -3  -6  23   0  -8  -7  -7  -5 -10
+Y  -4  -5  -3  -5   1  -5  -5  -6   0  -1  -1  -5  -3   9  -6  -4  -3   0  13  -3  -4  -5  -3 -10
+V   0  -3  -2  -3  -2  -2  -2  -2  -3   5   2  -3   2  -1  -1  -1   0  -8  -3   5  -2  -2  -1 -10
+B   0  -1   2   4  -5   2   3   1   1  -3  -4   1  -3  -6  -1   1   0  -7  -4  -2   3   3  -1 -10
+Z   0   0   2   3  -7   4   4   0   2  -2  -3   0  -2  -6   0   0  -1  -7  -5  -2   3   4  -1 -10
+X   0  -1   0  -1  -4  -1  -1  -1  -1  -1  -2  -1  -1  -3  -1   0   0  -5  -3  -1  -1  -1  -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
diff --git a/sources/PamBlosum/PAM280 b/sources/PamBlosum/PAM280
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM280
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 280 substitution matrix, scale = ln(2)/4 = 0.173287
+#
+# Expected score = -0.916, Entropy = 0.289 bits
+#
+# Lowest score = -9, Highest score = 22
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  2 -2  0  0 -2  0  0  2 -1 -1 -2 -1 -1 -4  1  1  1 -7 -4  0  0  0  0 -9
+R -2  7  0 -1 -4  2 -1 -3  2 -2 -3  4  0 -5  0  0 -1  3 -5 -3 -1  0 -1 -9
+N  0  0  2  2 -4  1  2  1  2 -2 -3  1 -2 -4  0  1  1 -5 -3 -2  2  1  0 -9
+D  0 -1  2  4 -6  2  4  1  1 -3 -5  0 -3 -7 -1  0  0 -8 -5 -2  4  3 -1 -9
+C -2 -4 -4 -6 15 -6 -6 -4 -4 -3 -7 -6 -6 -5 -3  0 -3 -9  1 -2 -5 -6 -3 -9
+Q  0  2  1  2 -6  4  3 -1  3 -2 -2  1 -1 -5  0  0 -1 -6 -5 -2  2  4 -1 -9
+E  0 -1  2  4 -6  3  4  0  1 -2 -4  0 -2 -6  0  0  0 -8 -5 -2  3  4 -1 -9
+G  2 -3  1  1 -4 -1  0  6 -2 -3 -5 -2 -3 -6  0  1  0 -8 -6 -1  1  0 -1 -9
+H -1  2  2  1 -4  3  1 -2  8 -3 -2  0 -2 -2  0 -1 -1 -3  0 -3  1  2 -1 -9
+I -1 -2 -2 -3 -3 -2 -2 -3 -3  5  3 -2  3  1 -2 -2  0 -6 -1  4 -2 -2 -1 -9
+L -2 -3 -3 -5 -7 -2 -4 -5 -2  3  7 -3  5  2 -3 -3 -2 -2 -1  2 -4 -3 -1 -9
+K -1  4  1  0 -6  1  0 -2  0 -2 -3  6  0 -6 -1  0  0 -4 -5 -3  1  1 -1 -9
+M -1  0 -2 -3 -6 -1 -2 -3 -2  3  5  0  7  0 -2 -2 -1 -5 -3  2 -2 -2 -1 -9
+F -4 -5 -4 -7 -5 -5 -6 -6 -2  1  2 -6  0 11 -5 -4 -4  1  9 -1 -5 -6 -3 -9
+P  1  0  0 -1 -3  0  0  0  0 -2 -3 -1 -2 -5  7  1  1 -7 -6 -1 -1  0 -1 -9
+S  1  0  1  0  0  0  0  1 -1 -2 -3  0 -2 -4  1  2  1 -3 -3 -1  1  0  0 -9
+T  1 -1  1  0 -3 -1  0  0 -1  0 -2  0 -1 -4  1  1  3 -6 -3  0  0  0  0 -9
+W -7  3 -5 -8 -9 -6 -8 -8 -3 -6 -2 -4 -5  1 -7 -3 -6 22  0 -7 -6 -7 -5 -9
+Y -4 -5 -3 -5  1 -5 -5 -6  0 -1 -1 -5 -3  9 -6 -3 -3  0 13 -3 -4 -5 -3 -9
+V  0 -3 -2 -2 -2 -2 -2 -1 -3  4  2 -3  2 -1 -1 -1  0 -7 -3  5 -2 -2 -1 -9
+B  0 -1  2  4 -5  2  3  1  1 -2 -4  1 -2 -5 -1  1  0 -6 -4 -2  3  2 -1 -9
+Z  0  0  1  3 -6  4  4  0  2 -2 -3  1 -2 -6  0  0  0 -7 -5 -2  2  4 -1 -9
+X  0 -1  0 -1 -3 -1 -1 -1 -1 -1 -1 -1 -1 -3 -1  0  0 -5 -3 -1 -1 -1 -1 -9
+* -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9  1
diff --git a/sources/PamBlosum/PAM290 b/sources/PamBlosum/PAM290
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM290
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 290 substitution matrix, scale = ln(2)/4 = 0.173287
+#
+# Expected score = -0.877, Entropy = 0.271 bits
+#
+# Lowest score = -9, Highest score = 22
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  2 -2  0  0 -2  0  0  2 -1 -1 -2 -1 -1 -4  1  1  1 -7 -4  0  0  0  0 -9
+R -2  7  0 -1 -4  2 -1 -3  2 -2 -3  4  0 -5  0  0 -1  3 -5 -3  0  0 -1 -9
+N  0  0  2  2 -4  1  2  1  2 -2 -3  1 -2 -4  0  1  1 -5 -3 -2  2  1  0 -9
+D  0 -1  2  4 -6  2  4  1  1 -3 -4  0 -3 -6 -1  0  0 -8 -5 -2  3  3 -1 -9
+C -2 -4 -4 -6 15 -6 -6 -4 -4 -3 -7 -6 -6 -5 -3  0 -2 -9  1 -2 -5 -6 -3 -9
+Q  0  2  1  2 -6  4  3 -1  3 -2 -2  1 -1 -5  0  0 -1 -5 -5 -2  2  3  0 -9
+E  0 -1  2  4 -6  3  4  0  1 -2 -4  0 -2 -6  0  0  0 -8 -5 -2  3  4 -1 -9
+G  2 -3  1  1 -4 -1  0  5 -2 -3 -4 -2 -3 -6  0  1  0 -8 -6 -1  1  0 -1 -9
+H -1  2  2  1 -4  3  1 -2  7 -3 -2  0 -2 -2  0 -1 -1 -3  0 -2  1  2 -1 -9
+I -1 -2 -2 -3 -3 -2 -2 -3 -3  5  3 -2  3  1 -2 -1  0 -6 -1  4 -2 -2 -1 -9
+L -2 -3 -3 -4 -7 -2 -4 -4 -2  3  7 -3  5  3 -3 -3 -2 -2 -1  2 -4 -3 -1 -9
+K -1  4  1  0 -6  1  0 -2  0 -2 -3  5  0 -6 -1  0  0 -4 -5 -3  1  1 -1 -9
+M -1  0 -2 -3 -6 -1 -2 -3 -2  3  5  0  7  0 -2 -2 -1 -5 -2  2 -2 -2 -1 -9
+F -4 -5 -4 -6 -5 -5 -6 -6 -2  1  3 -6  0 11 -5 -4 -3  1  9 -1 -5 -6 -3 -9
+P  1  0  0 -1 -3  0  0  0  0 -2 -3 -1 -2 -5  7  1  1 -6 -6 -1 -1  0 -1 -9
+S  1  0  1  0  0  0  0  1 -1 -1 -3  0 -2 -4  1  2  1 -3 -3 -1  1  0  0 -9
+T  1 -1  1  0 -2 -1  0  0 -1  0 -2  0 -1 -3  1  1  3 -6 -3  0  0  0  0 -9
+W -7  3 -5 -8 -9 -5 -8 -8 -3 -6 -2 -4 -5  1 -6 -3 -6 22  0 -7 -6 -7 -5 -9
+Y -4 -5 -3 -5  1 -5 -5 -6  0 -1 -1 -5 -2  9 -6 -3 -3  0 13 -3 -4 -5 -2 -9
+V  0 -3 -2 -2 -2 -2 -2 -1 -2  4  2 -3  2 -1 -1 -1  0 -7 -3  5 -2 -2 -1 -9
+B  0  0  2  3 -5  2  3  1  1 -2 -4  1 -2 -5 -1  1  0 -6 -4 -2  3  2  0 -9
+Z  0  0  1  3 -6  3  4  0  2 -2 -3  1 -2 -6  0  0  0 -7 -5 -2  2  4 -1 -9
+X  0 -1  0 -1 -3  0 -1 -1 -1 -1 -1 -1 -1 -3 -1  0  0 -5 -2 -1  0 -1 -1 -9
+* -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9  1
diff --git a/sources/PamBlosum/PAM30 b/sources/PamBlosum/PAM30
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM30
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 30 substitution matrix, scale = ln(2)/2 = 0.346574
+#
+# Expected score = -5.06, Entropy = 2.57 bits
+#
+# Lowest score = -17, Highest score = 13
+#
+    A   R   N   D   C   Q   E   G   H   I   L   K   M   F   P   S   T   W   Y   V   B   Z   X   *
+A   6  -7  -4  -3  -6  -4  -2  -2  -7  -5  -6  -7  -5  -8  -2   0  -1 -13  -8  -2  -3  -3  -3 -17
+R  -7   8  -6 -10  -8  -2  -9  -9  -2  -5  -8   0  -4  -9  -4  -3  -6  -2 -10  -8  -7  -4  -6 -17
+N  -4  -6   8   2 -11  -3  -2  -3   0  -5  -7  -1  -9  -9  -6   0  -2  -8  -4  -8   6  -3  -3 -17
+D  -3 -10   2   8 -14  -2   2  -3  -4  -7 -12  -4 -11 -15  -8  -4  -5 -15 -11  -8   6   1  -5 -17
+C  -6  -8 -11 -14  10 -14 -14  -9  -7  -6 -15 -14 -13 -13  -8  -3  -8 -15  -4  -6 -12 -14  -9 -17
+Q  -4  -2  -3  -2 -14   8   1  -7   1  -8  -5  -3  -4 -13  -3  -5  -5 -13 -12  -7  -3   6  -5 -17
+E  -2  -9  -2   2 -14   1   8  -4  -5  -5  -9  -4  -7 -14  -5  -4  -6 -17  -8  -6   1   6  -5 -17
+G  -2  -9  -3  -3  -9  -7  -4   6  -9 -11 -10  -7  -8  -9  -6  -2  -6 -15 -14  -5  -3  -5  -5 -17
+H  -7  -2   0  -4  -7   1  -5  -9   9  -9  -6  -6 -10  -6  -4  -6  -7  -7  -3  -6  -1  -1  -5 -17
+I  -5  -5  -5  -7  -6  -8  -5 -11  -9   8  -1  -6  -1  -2  -8  -7  -2 -14  -6   2  -6  -6  -5 -17
+L  -6  -8  -7 -12 -15  -5  -9 -10  -6  -1   7  -8   1  -3  -7  -8  -7  -6  -7  -2  -9  -7  -6 -17
+K  -7   0  -1  -4 -14  -3  -4  -7  -6  -6  -8   7  -2 -14  -6  -4  -3 -12  -9  -9  -2  -4  -5 -17
+M  -5  -4  -9 -11 -13  -4  -7  -8 -10  -1   1  -2  11  -4  -8  -5  -4 -13 -11  -1 -10  -5  -5 -17
+F  -8  -9  -9 -15 -13 -13 -14  -9  -6  -2  -3 -14  -4   9 -10  -6  -9  -4   2  -8 -10 -13  -8 -17
+P  -2  -4  -6  -8  -8  -3  -5  -6  -4  -8  -7  -6  -8 -10   8  -2  -4 -14 -13  -6  -7  -4  -5 -17
+S   0  -3   0  -4  -3  -5  -4  -2  -6  -7  -8  -4  -5  -6  -2   6   0  -5  -7  -6  -1  -5  -3 -17
+T  -1  -6  -2  -5  -8  -5  -6  -6  -7  -2  -7  -3  -4  -9  -4   0   7 -13  -6  -3  -3  -6  -4 -17
+W -13  -2  -8 -15 -15 -13 -17 -15  -7 -14  -6 -12 -13  -4 -14  -5 -13  13  -5 -15 -10 -14 -11 -17
+Y  -8 -10  -4 -11  -4 -12  -8 -14  -3  -6  -7  -9 -11   2 -13  -7  -6  -5  10  -7  -6  -9  -7 -17
+V  -2  -8  -8  -8  -6  -7  -6  -5  -6   2  -2  -9  -1  -8  -6  -6  -3 -15  -7   7  -8  -6  -5 -17
+B  -3  -7   6   6 -12  -3   1  -3  -1  -6  -9  -2 -10 -10  -7  -1  -3 -10  -6  -8   6   0  -5 -17
+Z  -3  -4  -3   1 -14   6   6  -5  -1  -6  -7  -4  -5 -13  -4  -5  -6 -14  -9  -6   0   6  -5 -17
+X  -3  -6  -3  -5  -9  -5  -5  -5  -5  -5  -6  -5  -5  -8  -5  -3  -4 -11  -7  -5  -5  -5  -5 -17
+* -17 -17 -17 -17 -17 -17 -17 -17 -17 -17 -17 -17 -17 -17 -17 -17 -17 -17 -17 -17 -17 -17 -17   1
diff --git a/sources/PamBlosum/PAM300 b/sources/PamBlosum/PAM300
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM300
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 300 substitution matrix, scale = ln(2)/4 = 0.173287
+#
+# Expected score = -0.835, Entropy = 0.254 bits
+#
+# Lowest score = -9, Highest score = 22
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  2 -1  0  0 -2  0  0  2 -1  0 -2 -1 -1 -4  1  1  1 -6 -4  0  0  0  0 -9
+R -1  7  0 -1 -4  2 -1 -2  2 -2 -3  4  0 -5  0  0 -1  3 -5 -3  0  0 -1 -9
+N  0  0  2  2 -4  1  2  1  2 -2 -3  1 -2 -4  0  1  0 -5 -2 -2  2  1  0 -9
+D  0 -1  2  4 -6  2  4  1  1 -2 -4  0 -3 -6 -1  0  0 -7 -5 -2  3  3 -1 -9
+C -2 -4 -4 -6 15 -6 -6 -4 -4 -3 -7 -6 -6 -5 -3  0 -2 -9  1 -2 -5 -6 -3 -9
+Q  0  2  1  2 -6  4  3 -1  3 -2 -2  1 -1 -5  0  0 -1 -5 -4 -2  2  3  0 -9
+E  0 -1  2  4 -6  3  4  0  1 -2 -4  0 -2 -6  0  0  0 -8 -5 -2  3  3 -1 -9
+G  2 -2  1  1 -4 -1  0  5 -2 -3 -4 -2 -3 -5  0  1  0 -8 -6 -1  1  0 -1 -9
+H -1  2  2  1 -4  3  1 -2  7 -2 -2  0 -2 -2  0 -1 -1 -3  0 -2  1  2  0 -9
+I  0 -2 -2 -2 -3 -2 -2 -3 -2  5  3 -2  3  1 -2 -1  0 -6 -1  4 -2 -2 -1 -9
+L -2 -3 -3 -4 -7 -2 -4 -4 -2  3  7 -3  4  3 -3 -3 -2 -2  0  2 -4 -3 -1 -9
+K -1  4  1  0 -6  1  0 -2  0 -2 -3  5  0 -6 -1  0  0 -4 -5 -2  1  1 -1 -9
+M -1  0 -2 -3 -6 -1 -2 -3 -2  3  4  0  6  1 -2 -2 -1 -5 -2  2 -2 -2 -1 -9
+F -4 -5 -4 -6 -5 -5 -6 -5 -2  1  3 -6  1 11 -5 -4 -3  1  9 -1 -5 -5 -2 -9
+P  1  0  0 -1 -3  0  0  0  0 -2 -3 -1 -2 -5  6  1  1 -6 -5 -1  0  0 -1 -9
+S  1  0  1  0  0  0  0  1 -1 -1 -3  0 -2 -4  1  1  1 -3 -3 -1  1  0  0 -9
+T  1 -1  0  0 -2 -1  0  0 -1  0 -2  0 -1 -3  1  1  2 -6 -3  0  0  0  0 -9
+W -6  3 -5 -7 -9 -5 -8 -8 -3 -6 -2 -4 -5  1 -6 -3 -6 22  0 -7 -6 -6 -4 -9
+Y -4 -5 -2 -5  1 -4 -5 -6  0 -1  0 -5 -2  9 -5 -3 -3  0 12 -3 -4 -5 -2 -9
+V  0 -3 -2 -2 -2 -2 -2 -1 -2  4  2 -2  2 -1 -1 -1  0 -7 -3  5 -2 -2  0 -9
+B  0  0  2  3 -5  2  3  1  1 -2 -4  1 -2 -5  0  1  0 -6 -4 -2  3  2  0 -9
+Z  0  0  1  3 -6  3  3  0  2 -2 -3  1 -2 -5  0  0  0 -6 -5 -2  2  3 -1 -9
+X  0 -1  0 -1 -3  0 -1 -1  0 -1 -1 -1 -1 -2 -1  0  0 -4 -2  0  0 -1 -1 -9
+* -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9  1
diff --git a/sources/PamBlosum/PAM310 b/sources/PamBlosum/PAM310
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM310
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 310 substitution matrix, scale = ln(2)/4 = 0.173287
+#
+# Expected score = -0.779, Entropy = 0.238 bits
+#
+# Lowest score = -9, Highest score = 22
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  2 -1  0  0 -2  0  0  1 -1  0 -2 -1 -1 -4  1  1  1 -6 -4  0  0  0  0 -9
+R -1  6  0 -1 -4  1 -1 -2  2 -2 -3  4  0 -5  0  0 -1  3 -4 -2  0  0 -1 -9
+N  0  0  2  2 -4  1  2  1  2 -2 -3  1 -2 -4  0  1  0 -4 -2 -2  2  1  0 -9
+D  0 -1  2  4 -5  2  4  1  1 -2 -4  0 -2 -6 -1  0  0 -7 -5 -2  3  3 -1 -9
+C -2 -4 -4 -5 15 -6 -6 -3 -4 -2 -6 -6 -6 -4 -3  0 -2 -9  1 -2 -5 -6 -3 -9
+Q  0  1  1  2 -6  4  3 -1  3 -2 -2  1 -1 -5  0  0 -1 -5 -4 -2  2  3  0 -9
+E  0 -1  2  4 -6  3  4  1  1 -2 -3  0 -2 -6  0  0  0 -7 -5 -2  3  3 -1 -9
+G  1 -2  1  1 -3 -1  1  5 -2 -2 -4 -1 -3 -5  0  1  0 -8 -6 -1  1  0 -1 -9
+H -1  2  2  1 -4  3  1 -2  7 -2 -2  0 -2 -2  0 -1 -1 -3  0 -2  1  2  0 -9
+I  0 -2 -2 -2 -2 -2 -2 -2 -2  4  3 -2  3  1 -2 -1  0 -5 -1  4 -2 -2 -1 -9
+L -2 -3 -3 -4 -6 -2 -3 -4 -2  3  7 -3  4  3 -3 -3 -2 -2  0  2 -3 -3 -1 -9
+K -1  4  1  0 -6  1  0 -1  0 -2 -3  5  0 -5 -1  0  0 -3 -5 -2  1  1 -1 -9
+M -1  0 -2 -2 -6 -1 -2 -3 -2  3  4  0  6  1 -2 -2 -1 -4 -2  2 -2 -2 -1 -9
+F -4 -5 -4 -6 -4 -5 -6 -5 -2  1  3 -5  1 11 -5 -4 -3  1  9 -1 -5 -5 -2 -9
+P  1  0  0 -1 -3  0  0  0  0 -2 -3 -1 -2 -5  6  1  1 -6 -5 -1  0  0  0 -9
+S  1  0  1  0  0  0  0  1 -1 -1 -3  0 -2 -4  1  1  1 -3 -3 -1  1  0  0 -9
+T  1 -1  0  0 -2 -1  0  0 -1  0 -2  0 -1 -3  1  1  2 -6 -3  0  0  0  0 -9
+W -6  3 -4 -7 -9 -5 -7 -8 -3 -5 -2 -3 -4  1 -6 -3 -6 22  0 -7 -6 -6 -4 -9
+Y -4 -4 -2 -5  1 -4 -5 -6  0 -1  0 -5 -2  9 -5 -3 -3  0 12 -2 -4 -4 -2 -9
+V  0 -2 -2 -2 -2 -2 -2 -1 -2  4  2 -2  2 -1 -1 -1  0 -7 -2  4 -2 -2  0 -9
+B  0  0  2  3 -5  2  3  1  1 -2 -3  1 -2 -5  0  1  0 -6 -4 -2  3  2  0 -9
+Z  0  0  1  3 -6  3  3  0  2 -2 -3  1 -2 -5  0  0  0 -6 -4 -2  2  3  0 -9
+X  0 -1  0 -1 -3  0 -1 -1  0 -1 -1 -1 -1 -2  0  0  0 -4 -2  0  0  0 -1 -9
+* -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9  1
diff --git a/sources/PamBlosum/PAM320 b/sources/PamBlosum/PAM320
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM320
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 320 substitution matrix, scale = ln(2)/4 = 0.173287
+#
+# Expected score = -0.741, Entropy = 0.224 bits
+#
+# Lowest score = -8, Highest score = 22
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  1 -1  0  1 -2  0  0  1 -1  0 -2 -1 -1 -4  1  1  1 -6 -4  0  0  0  0 -8
+R -1  6  0 -1 -4  1 -1 -2  2 -2 -3  4  0 -5  0  0 -1  3 -4 -2  0  0 -1 -8
+N  0  0  2  2 -4  1  2  1  2 -2 -3  1 -2 -4  0  1  0 -4 -2 -2  2  1  0 -8
+D  1 -1  2  4 -5  2  3  1  1 -2 -4  0 -2 -6  0  0  0 -7 -5 -2  3  3 -1 -8
+C -2 -4 -4 -5 15 -5 -5 -3 -4 -2 -6 -6 -5 -4 -3  0 -2 -8  1 -2 -4 -5 -3 -8
+Q  0  1  1  2 -5  4  2 -1  3 -2 -2  1 -1 -5  0  0  0 -5 -4 -2  2  3  0 -8
+E  0 -1  2  3 -5  2  4  1  1 -2 -3  0 -2 -5  0  0  0 -7 -5 -2  3  3  0 -8
+G  1 -2  1  1 -3 -1  1  5 -2 -2 -4 -1 -3 -5  0  1  0 -7 -5 -1  1  0 -1 -8
+H -1  2  2  1 -4  3  1 -2  6 -2 -2  0 -2 -2  0 -1 -1 -3  0 -2  1  2  0 -8
+I  0 -2 -2 -2 -2 -2 -2 -2 -2  4  3 -2  2  1 -2 -1  0 -5 -1  4 -2 -2  0 -8
+L -2 -3 -3 -4 -6 -2 -3 -4 -2  3  7 -3  4  3 -2 -3 -2 -2  0  2 -3 -3 -1 -8
+K -1  4  1  0 -6  1  0 -1  0 -2 -3  5  0 -5 -1  0  0 -3 -5 -2  1  1 -1 -8
+M -1  0 -2 -2 -5 -1 -2 -3 -2  2  4  0  6  1 -2 -1 -1 -4 -2  2 -2 -2  0 -8
+F -4 -5 -4 -6 -4 -5 -5 -5 -2  1  3 -5  1 11 -5 -3 -3  1  9 -1 -5 -5 -2 -8
+P  1  0  0  0 -3  0  0  0  0 -2 -2 -1 -2 -5  6  1  1 -6 -5 -1  0  0  0 -8
+S  1  0  1  0  0  0  0  1 -1 -1 -3  0 -1 -3  1  1  1 -3 -3 -1  1  0  0 -8
+T  1 -1  0  0 -2  0  0  0 -1  0 -2  0 -1 -3  1  1  2 -5 -3  0  0  0  0 -8
+W -6  3 -4 -7 -8 -5 -7 -7 -3 -5 -2 -3 -4  1 -6 -3 -5 22  1 -6 -6 -6 -4 -8
+Y -4 -4 -2 -5  1 -4 -5 -5  0 -1  0 -5 -2  9 -5 -3 -3  1 12 -2 -3 -4 -2 -8
+V  0 -2 -2 -2 -2 -2 -2 -1 -2  4  2 -2  2 -1 -1 -1  0 -6 -2  4 -2 -2  0 -8
+B  0  0  2  3 -4  2  3  1  1 -2 -3  1 -2 -5  0  1  0 -6 -3 -2  2  2  0 -8
+Z  0  0  1  3 -5  3  3  0  2 -2 -3  1 -2 -5  0  0  0 -6 -4 -2  2  3  0 -8
+X  0 -1  0 -1 -3  0  0 -1  0  0 -1 -1  0 -2  0  0  0 -4 -2  0  0  0 -1 -8
+* -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8  1
diff --git a/sources/PamBlosum/PAM330 b/sources/PamBlosum/PAM330
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM330
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 330 substitution matrix, scale = ln(2)/4 = 0.173287
+#
+# Expected score = -0.693, Entropy = 0.210 bits
+#
+# Lowest score = -8, Highest score = 22
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  1 -1  0  1 -2  0  0  1 -1  0 -2 -1 -1 -3  1  1  1 -6 -3  0  0  0  0 -8
+R -1  6  0 -1 -4  1 -1 -2  2 -2 -3  4  0 -4  0  0 -1  3 -4 -2  0  0 -1 -8
+N  0  0  2  2 -4  1  2  1  1 -2 -3  1 -1 -3  0  1  0 -4 -2 -1  2  1  0 -8
+D  1 -1  2  3 -5  2  3  1  1 -2 -4  0 -2 -5  0  0  0 -7 -4 -2  3  3  0 -8
+C -2 -4 -4 -5 15 -5 -5 -3 -3 -2 -6 -5 -5 -4 -3  0 -2 -8  1 -2 -4 -5 -3 -8
+Q  0  1  1  2 -5  3  2 -1  3 -2 -2  1 -1 -4  0  0  0 -5 -4 -2  1  3  0 -8
+E  0 -1  2  3 -5  2  3  1  1 -2 -3  0 -2 -5  0  0  0 -7 -4 -2  2  3  0 -8
+G  1 -2  1  1 -3 -1  1  5 -2 -2 -4 -1 -2 -5  0  1  0 -7 -5 -1  1  0 -1 -8
+H -1  2  1  1 -3  3  1 -2  6 -2 -2  0 -2 -2  0 -1 -1 -3  0 -2  1  2  0 -8
+I  0 -2 -2 -2 -2 -2 -2 -2 -2  4  3 -2  2  1 -2 -1  0 -5  0  4 -2 -2  0 -8
+L -2 -3 -3 -4 -6 -2 -3 -4 -2  3  6 -3  4  3 -2 -3 -1 -2  0  2 -3 -2 -1 -8
+K -1  4  1  0 -5  1  0 -1  0 -2 -3  5  0 -5 -1  0  0 -3 -4 -2  1  1 -1 -8
+M -1  0 -1 -2 -5 -1 -2 -2 -2  2  4  0  5  1 -2 -1  0 -4 -2  2 -2 -1  0 -8
+F -3 -4 -3 -5 -4 -4 -5 -5 -2  1  3 -5  1 10 -5 -3 -3  1  9 -1 -4 -5 -2 -8
+P  1  0  0  0 -3  0  0  0  0 -2 -2 -1 -2 -5  6  1  1 -6 -5 -1  0  0  0 -8
+S  1  0  1  0  0  0  0  1 -1 -1 -3  0 -1 -3  1  1  1 -3 -3 -1  1  0  0 -8
+T  1 -1  0  0 -2  0  0  0 -1  0 -1  0  0 -3  1  1  2 -5 -3  0  0  0  0 -8
+W -6  3 -4 -7 -8 -5 -7 -7 -3 -5 -2 -3 -4  1 -6 -3 -5 22  1 -6 -5 -6 -4 -8
+Y -3 -4 -2 -4  1 -4 -4 -5  0  0  0 -4 -2  9 -5 -3 -3  1 12 -2 -3 -4 -2 -8
+V  0 -2 -1 -2 -2 -2 -2 -1 -2  4  2 -2  2 -1 -1 -1  0 -6 -2  4 -2 -2  0 -8
+B  0  0  2  3 -4  1  2  1  1 -2 -3  1 -2 -4  0  1  0 -5 -3 -2  2  2  0 -8
+Z  0  0  1  3 -5  3  3  0  2 -2 -2  1 -1 -5  0  0  0 -6 -4 -2  2  3  0 -8
+X  0 -1  0  0 -3  0  0 -1  0  0 -1 -1  0 -2  0  0  0 -4 -2  0  0  0 -1 -8
+* -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8  1
diff --git a/sources/PamBlosum/PAM340 b/sources/PamBlosum/PAM340
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM340
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 340 substitution matrix, scale = ln(2)/4 = 0.173287
+#
+# Expected score = -0.680, Entropy = 0.198 bits
+#
+# Lowest score = -8, Highest score = 22
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  1 -1  0  1 -2  0  0  1 -1  0 -2 -1 -1 -3  1  1  1 -6 -3  0  0  0  0 -8
+R -1  6  0 -1 -4  1  0 -2  2 -2 -3  4  0 -4  0  0  0  3 -4 -2  0  0 -1 -8
+N  0  0  1  2 -3  1  1  1  1 -2 -3  1 -1 -3  0  1  0 -4 -2 -1  2  1  0 -8
+D  1 -1  2  3 -5  2  3  1  1 -2 -4  0 -2 -5  0  0  0 -7 -4 -2  3  3  0 -8
+C -2 -4 -3 -5 15 -5 -5 -3 -3 -2 -6 -5 -5 -4 -3  0 -2 -8  1 -2 -4 -5 -3 -8
+Q  0  1  1  2 -5  3  2 -1  3 -2 -2  1 -1 -4  0  0  0 -5 -4 -2  1  3  0 -8
+E  0  0  1  3 -5  2  3  1  1 -2 -3  0 -2 -5  0  0  0 -7 -4 -1  2  3  0 -8
+G  1 -2  1  1 -3 -1  1  4 -2 -2 -4 -1 -2 -5  0  1  0 -7 -5 -1  1  0 -1 -8
+H -1  2  1  1 -3  3  1 -2  6 -2 -2  0 -2 -2  0  0 -1 -2  0 -2  1  2  0 -8
+I  0 -2 -2 -2 -2 -2 -2 -2 -2  4  3 -2  2  1 -2 -1  0 -5  0  3 -2 -2  0 -8
+L -2 -3 -3 -4 -6 -2 -3 -4 -2  3  6 -3  4  3 -2 -2 -1 -2  0  2 -3 -2 -1 -8
+K -1  4  1  0 -5  1  0 -1  0 -2 -3  4  0 -5 -1  0  0 -3 -4 -2  1  1  0 -8
+M -1  0 -1 -2 -5 -1 -2 -2 -2  2  4  0  5  1 -2 -1  0 -4 -2  2 -2 -1  0 -8
+F -3 -4 -3 -5 -4 -4 -5 -5 -2  1  3 -5  1 10 -4 -3 -3  1  9 -1 -4 -5 -2 -8
+P  1  0  0  0 -3  0  0  0  0 -2 -2 -1 -2 -4  5  1  1 -5 -5 -1  0  0  0 -8
+S  1  0  1  0  0  0  0  1  0 -1 -2  0 -1 -3  1  1  1 -3 -3 -1  1  0  0 -8
+T  1  0  0  0 -2  0  0  0 -1  0 -1  0  0 -3  1  1  2 -5 -3  0  0  0  0 -8
+W -6  3 -4 -7 -8 -5 -7 -7 -2 -5 -2 -3 -4  1 -5 -3 -5 22  1 -6 -5 -6 -4 -8
+Y -3 -4 -2 -4  1 -4 -4 -5  0  0  0 -4 -2  9 -5 -3 -3  1 12 -2 -3 -4 -2 -8
+V  0 -2 -1 -2 -2 -2 -1 -1 -2  3  2 -2  2 -1 -1 -1  0 -6 -2  4 -2 -2  0 -8
+B  0  0  2  3 -4  1  2  1  1 -2 -3  1 -2 -4  0  1  0 -5 -3 -2  2  2  0 -8
+Z  0  0  1  3 -5  3  3  0  2 -2 -2  1 -1 -5  0  0  0 -6 -4 -2  2  3  0 -8
+X  0 -1  0  0 -3  0  0 -1  0  0 -1  0  0 -2  0  0  0 -4 -2  0  0  0 -1 -8
+* -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8  1
diff --git a/sources/PamBlosum/PAM350 b/sources/PamBlosum/PAM350
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM350
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 350 substitution matrix, scale = ln(2)/5 = 0.138629
+#
+# Expected score = -0.701, Entropy = 0.186 bits
+#
+# Lowest score = -10, Highest score = 27
+#
+    A   R   N   D   C   Q   E   G   H   I   L   K   M   F   P   S   T   W   Y   V   B   Z   X   *
+A   2  -1   0   1  -2   0   1   2  -1   0  -2  -1  -1  -4   1   1   1  -7  -4   0   1   0   0 -10
+R  -1   7   1  -1  -4   2   0  -2   2  -2  -3   4   0  -5   0   0  -1   4  -5  -3   0   1  -1 -10
+N   0   1   2   2  -4   1   2   1   2  -2  -3   1  -2  -4   0   1   1  -5  -3  -2   2   2   0 -10
+D   1  -1   2   4  -6   2   4   1   1  -2  -4   1  -3  -6   0   1   0  -8  -5  -2   3   3  -1 -10
+C  -2  -4  -4  -6  18  -6  -6  -4  -4  -3  -7  -6  -6  -5  -3   0  -2 -10   1  -2  -5  -6  -3 -10
+Q   0   2   1   2  -6   4   3  -1   3  -2  -2   1  -1  -5   1   0   0  -5  -5  -2   2   3   0 -10
+E   1   0   2   4  -6   3   4   1   1  -2  -4   0  -2  -6   0   0   0  -8  -5  -2   3   3   0 -10
+G   2  -2   1   1  -4  -1   1   5  -2  -2  -4  -1  -3  -6   0   1   1  -8  -6  -1   1   0  -1 -10
+H  -1   2   2   1  -4   3   1  -2   7  -2  -2   1  -2  -2   0  -1  -1  -3   0  -2   1   2   0 -10
+I   0  -2  -2  -2  -3  -2  -2  -2  -2   5   4  -2   3   2  -2  -1   0  -6   0   4  -2  -2   0 -10
+L  -2  -3  -3  -4  -7  -2  -4  -4  -2   4   8  -3   5   3  -3  -3  -2  -2   0   3  -4  -3  -1 -10
+K  -1   4   1   1  -6   1   0  -1   1  -2  -3   5   0  -6  -1   0   0  -4  -5  -2   1   1  -1 -10
+M  -1   0  -2  -3  -6  -1  -2  -3  -2   3   5   0   6   1  -2  -2  -1  -5  -2   2  -2  -2   0 -10
+F  -4  -5  -4  -6  -5  -5  -6  -6  -2   2   3  -6   1  13  -5  -4  -3   1  11  -1  -5  -6  -2 -10
+P   1   0   0   0  -3   1   0   0   0  -2  -3  -1  -2  -5   6   1   1  -7  -6  -1   0   0   0 -10
+S   1   0   1   1   0   0   0   1  -1  -1  -3   0  -2  -4   1   1   1  -3  -3  -1   1   0   0 -10
+T   1  -1   1   0  -2   0   0   1  -1   0  -2   0  -1  -3   1   1   2  -6  -3   0   0   0   0 -10
+W  -7   4  -5  -8 -10  -5  -8  -8  -3  -6  -2  -4  -5   1  -7  -3  -6  27   1  -7  -6  -7  -5 -10
+Y  -4  -5  -3  -5   1  -5  -5  -6   0   0   0  -5  -2  11  -6  -3  -3   1  14  -2  -4  -5  -2 -10
+V   0  -3  -2  -2  -2  -2  -2  -1  -2   4   3  -2   2  -1  -1  -1   0  -7  -2   5  -2  -2   0 -10
+B   1   0   2   3  -5   2   3   1   1  -2  -4   1  -2  -5   0   1   0  -6  -4  -2   3   2   0 -10
+Z   0   1   2   3  -6   3   3   0   2  -2  -3   1  -2  -6   0   0   0  -7  -5  -2   2   3   0 -10
+X   0  -1   0  -1  -3   0   0  -1   0   0  -1  -1   0  -2   0   0   0  -5  -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
diff --git a/sources/PamBlosum/PAM360 b/sources/PamBlosum/PAM360
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM360
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 360 substitution matrix, scale = ln(2)/5 = 0.138629
+#
+# Expected score = -0.697, Entropy = 0.175 bits
+#
+# Lowest score = -9, Highest score = 27
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  1 -1  0  1 -2  0  1  2 -1  0 -2 -1 -1 -4  1  1  1 -7 -4  0  1  0  0 -9
+R -1  6  1 -1 -4  2  0 -2  2 -2 -3  4  0 -5  0  0  0  4 -5 -2  0  1 -1 -9
+N  0  1  2  2 -4  1  2  1  2 -2 -3  1 -2 -4  0  1  1 -5 -3 -2  2  2  0 -9
+D  1 -1  2  4 -6  2  4  1  1 -2 -4  1 -2 -6  0  1  0 -8 -5 -2  3  3  0 -9
+C -2 -4 -4 -6 18 -6 -6 -4 -4 -3 -7 -6 -6 -4 -3  0 -2 -9  1 -2 -5 -6 -3 -9
+Q  0  2  1  2 -6  3  3 -1  3 -2 -2  1 -1 -5  1  0  0 -5 -4 -2  2  3  0 -9
+E  1  0  2  4 -6  3  4  1  1 -2 -3  0 -2 -6  0  0  0 -8 -5 -2  3  3  0 -9
+G  2 -2  1  1 -4 -1  1  5 -2 -2 -4 -1 -3 -6  0  1  1 -8 -6 -1  1  0 -1 -9
+H -1  2  2  1 -4  3  1 -2  7 -2 -2  1 -2 -2  0  0 -1 -3  0 -2  1  2  0 -9
+I  0 -2 -2 -2 -3 -2 -2 -2 -2  4  3 -2  3  2 -2 -1  0 -6  0  4 -2 -2  0 -9
+L -2 -3 -3 -4 -7 -2 -3 -4 -2  3  7 -3  5  3 -3 -3 -2 -2  0  3 -4 -3 -1 -9
+K -1  4  1  1 -6  1  0 -1  1 -2 -3  5  0 -6 -1  0  0 -4 -5 -2  1  1 -1 -9
+M -1  0 -2 -2 -6 -1 -2 -3 -2  3  5  0  6  1 -2 -2 -1 -4 -2  2 -2 -2  0 -9
+F -4 -5 -4 -6 -4 -5 -6 -6 -2  2  3 -6  1 12 -5 -4 -3  2 11 -1 -5 -5 -2 -9
+P  1  0  0  0 -3  1  0  0  0 -2 -3 -1 -2 -5  6  1  1 -6 -5 -1  0  0  0 -9
+S  1  0  1  1  0  0  0  1  0 -1 -3  0 -2 -4  1  1  1 -3 -3 -1  1  0  0 -9
+T  1  0  1  0 -2  0  0  1 -1  0 -2  0 -1 -3  1  1  2 -6 -3  0  0  0  0 -9
+W -7  4 -5 -8 -9 -5 -8 -8 -3 -6 -2 -4 -4  2 -6 -3 -6 27  1 -7 -6 -7 -4 -9
+Y -4 -5 -3 -5  1 -4 -5 -6  0  0  0 -5 -2 11 -5 -3 -3  1 14 -2 -4 -5 -2 -9
+V  0 -2 -2 -2 -2 -2 -2 -1 -2  4  3 -2  2 -1 -1 -1  0 -7 -2  4 -2 -2  0 -9
+B  1  0  2  3 -5  2  3  1  1 -2 -4  1 -2 -5  0  1  0 -6 -4 -2  2  2  0 -9
+Z  0  1  2  3 -6  3  3  0  2 -2 -3  1 -2 -5  0  0  0 -7 -5 -2  2  3  0 -9
+X  0 -1  0  0 -3  0  0 -1  0  0 -1 -1  0 -2  0  0  0 -4 -2  0  0  0 -1 -9
+* -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9  1
diff --git a/sources/PamBlosum/PAM370 b/sources/PamBlosum/PAM370
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM370
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 370 substitution matrix, scale = ln(2)/5 = 0.138629
+#
+# Expected score = -0.649, Entropy = 0.165 bits
+#
+# Lowest score = -9, Highest score = 27
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  1 -1  0  1 -2  0  1  2 -1  0 -2 -1 -1 -4  1  1  1 -7 -4  0  1  0  0 -9
+R -1  6  1  0 -4  2  0 -2  2 -2 -3  4  0 -5  0  0  0  3 -4 -2  0  1 -1 -9
+N  0  1  2  2 -4  1  2  1  2 -2 -3  1 -2 -4  0  1  0 -5 -3 -1  2  1  0 -9
+D  1  0  2  4 -5  2  3  1  1 -2 -4  1 -2 -6  0  1  0 -7 -5 -2  3  3  0 -9
+C -2 -4 -4 -5 18 -6 -6 -3 -4 -2 -6 -6 -6 -4 -3  0 -2 -9  1 -2 -5 -6 -3 -9
+Q  0  2  1  2 -6  3  2 -1  3 -2 -2  1 -1 -5  1  0  0 -5 -4 -2  2  3  0 -9
+E  1  0  2  3 -6  2  3  1  1 -2 -3  1 -2 -6  0  0  0 -8 -5 -2  3  3  0 -9
+G  2 -2  1  1 -3 -1  1  5 -2 -2 -4 -1 -3 -5  0  1  1 -8 -6 -1  1  0 -1 -9
+H -1  2  2  1 -4  3  1 -2  6 -2 -2  1 -2 -2  0  0 -1 -3  0 -2  1  2  0 -9
+I  0 -2 -2 -2 -2 -2 -2 -2 -2  4  3 -2  3  2 -2 -1  0 -5  0  4 -2 -2  0 -9
+L -2 -3 -3 -4 -6 -2 -3 -4 -2  3  7 -3  5  3 -3 -3 -1 -2  0  3 -3 -3 -1 -9
+K -1  4  1  1 -6  1  1 -1  1 -2 -3  5  0 -6 -1  0  0 -3 -5 -2  1  1  0 -9
+M -1  0 -2 -2 -6 -1 -2 -3 -2  3  5  0  5  1 -2 -1  0 -4 -2  2 -2 -2  0 -9
+F -4 -5 -4 -6 -4 -5 -6 -5 -2  2  3 -6  1 12 -5 -4 -3  2 11  0 -5 -5 -2 -9
+P  1  0  0  0 -3  1  0  0  0 -2 -3 -1 -2 -5  6  1  1 -6 -5 -1  0  0  0 -9
+S  1  0  1  1  0  0  0  1  0 -1 -3  0 -1 -4  1  1  1 -3 -3 -1  1  0  0 -9
+T  1  0  0  0 -2  0  0  1 -1  0 -1  0  0 -3  1  1  2 -6 -3  0  0  0  0 -9
+W -7  3 -5 -7 -9 -5 -8 -8 -3 -5 -2 -3 -4  2 -6 -3 -6 27  1 -7 -6 -6 -4 -9
+Y -4 -4 -3 -5  1 -4 -5 -6  0  0  0 -5 -2 11 -5 -3 -3  1 14 -2 -4 -5 -2 -9
+V  0 -2 -1 -2 -2 -2 -2 -1 -2  4  3 -2  2  0 -1 -1  0 -7 -2  4 -2 -2  0 -9
+B  1  0  2  3 -5  2  3  1  1 -2 -3  1 -2 -5  0  1  0 -6 -4 -2  2  2  0 -9
+Z  0  1  1  3 -6  3  3  0  2 -2 -3  1 -2 -5  0  0  0 -6 -5 -2  2  3  0 -9
+X  0 -1  0  0 -3  0  0 -1  0  0 -1  0  0 -2  0  0  0 -4 -2  0  0  0 -1 -9
+* -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9  1
diff --git a/sources/PamBlosum/PAM380 b/sources/PamBlosum/PAM380
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM380
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 380 substitution matrix, scale = ln(2)/5 = 0.138629
+#
+# Expected score = -0.612, Entropy = 0.156 bits
+#
+# Lowest score = -9, Highest score = 26
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  1 -1  0  1 -2  0  1  2 -1  0 -2 -1 -1 -4  1  1  1 -6 -4  0  1  0  0 -9
+R -1  6  1  0 -4  2  0 -2  2 -2 -3  4  0 -5  0  0  0  3 -4 -2  0  1  0 -9
+N  0  1  1  2 -4  1  2  1  1 -2 -3  1 -1 -4  0  1  0 -5 -3 -1  2  1  0 -9
+D  1  0  2  3 -5  2  3  1  1 -2 -4  1 -2 -6  0  1  0 -7 -5 -2  3  3  0 -9
+C -2 -4 -4 -5 17 -5 -5 -3 -4 -2 -6 -6 -5 -4 -3  0 -2 -9  1 -2 -4 -5 -3 -9
+Q  0  2  1  2 -5  3  2 -1  3 -2 -2  1 -1 -5  1  0  0 -5 -4 -2  2  3  0 -9
+E  1  0  2  3 -5  2  3  1  1 -2 -3  1 -2 -5  0  0  0 -7 -5 -2  3  3  0 -9
+G  2 -2  1  1 -3 -1  1  5 -1 -2 -4 -1 -2 -5  0  1  1 -8 -5 -1  1  0  0 -9
+H -1  2  1  1 -4  3  1 -1  6 -2 -2  1 -2 -2  0  0 -1 -3  0 -2  1  2  0 -9
+I  0 -2 -2 -2 -2 -2 -2 -2 -2  4  3 -2  3  2 -2 -1  0 -5  0  4 -2 -2  0 -9
+L -2 -3 -3 -4 -6 -2 -3 -4 -2  3  7 -3  4  3 -2 -3 -1 -2  0  3 -3 -3 -1 -9
+K -1  4  1  1 -6  1  1 -1  1 -2 -3  5  0 -5  0  0  0 -3 -5 -2  1  1  0 -9
+M -1  0 -1 -2 -5 -1 -2 -2 -2  3  4  0  5  1 -2 -1  0 -4 -2  2 -2 -1  0 -9
+F -4 -5 -4 -6 -4 -5 -5 -5 -2  2  3 -5  1 12 -5 -4 -3  2 10  0 -5 -5 -2 -9
+P  1  0  0  0 -3  1  0  0  0 -2 -2  0 -2 -5  5  1  1 -6 -5 -1  0  0  0 -9
+S  1  0  1  1  0  0  0  1  0 -1 -3  0 -1 -4  1  1  1 -3 -3 -1  1  0  0 -9
+T  1  0  0  0 -2  0  0  1 -1  0 -1  0  0 -3  1  1  2 -6 -3  0  0  0  0 -9
+W -6  3 -5 -7 -9 -5 -7 -8 -3 -5 -2 -3 -4  2 -6 -3 -6 26  1 -6 -6 -6 -4 -9
+Y -4 -4 -3 -5  1 -4 -5 -5  0  0  0 -5 -2 10 -5 -3 -3  1 13 -2 -4 -4 -2 -9
+V  0 -2 -1 -2 -2 -2 -2 -1 -2  4  3 -2  2  0 -1 -1  0 -6 -2  4 -2 -2  0 -9
+B  1  0  2  3 -4  2  3  1  1 -2 -3  1 -2 -5  0  1  0 -6 -4 -2  2  2  0 -9
+Z  0  1  1  3 -5  3  3  0  2 -2 -3  1 -1 -5  0  0  0 -6 -4 -2  2  3  0 -9
+X  0  0  0  0 -3  0  0  0  0  0 -1  0  0 -2  0  0  0 -4 -2  0  0  0 -1 -9
+* -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9  1
diff --git a/sources/PamBlosum/PAM390 b/sources/PamBlosum/PAM390
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM390
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 390 substitution matrix, scale = ln(2)/5 = 0.138629
+#
+# Expected score = -0.581, Entropy = 0.147 bits
+#
+# Lowest score = -9, Highest score = 26
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  1 -1  0  1 -2  0  1  1 -1  0 -2 -1 -1 -3  1  1  1 -6 -4  0  1  0  0 -9
+R -1  6  1  0 -4  1  0 -2  2 -2 -3  4  0 -5  0  0  0  3 -4 -2  0  1  0 -9
+N  0  1  1  2 -4  1  2  1  1 -2 -3  1 -1 -4  0  1  0 -4 -3 -1  2  1  0 -9
+D  1  0  2  3 -5  2  3  1  1 -2 -4  1 -2 -5  0  1  0 -7 -5 -2  3  3  0 -9
+C -2 -4 -4 -5 17 -5 -5 -3 -4 -2 -6 -5 -5 -4 -3  0 -2 -9  1 -2 -4 -5 -3 -9
+Q  0  1  1  2 -5  3  2  0  3 -2 -2  1 -1 -4  0  0  0 -5 -4 -1  2  3  0 -9
+E  1  0  2  3 -5  2  3  1  1 -2 -3  1 -2 -5  0  0  0 -7 -5 -1  2  3  0 -9
+G  1 -2  1  1 -3  0  1  5 -1 -2 -4 -1 -2 -5  0  1  1 -7 -5 -1  1  0  0 -9
+H -1  2  1  1 -4  3  1 -1  6 -2 -2  1 -2 -2  0  0 -1 -3  0 -2  1  2  0 -9
+I  0 -2 -2 -2 -2 -2 -2 -2 -2  4  3 -2  3  2 -1 -1  0 -5  0  4 -2 -2  0 -9
+L -2 -3 -3 -4 -6 -2 -3 -4 -2  3  7 -3  4  3 -2 -2 -1 -2  0  3 -3 -2 -1 -9
+K -1  4  1  1 -5  1  1 -1  1 -2 -3  4  0 -5  0  0  0 -3 -5 -2  1  1  0 -9
+M -1  0 -1 -2 -5 -1 -2 -2 -2  3  4  0  5  1 -2 -1  0 -4 -1  2 -2 -1  0 -9
+F -3 -5 -4 -5 -4 -4 -5 -5 -2  2  3 -5  1 12 -5 -3 -3  2 10  0 -5 -5 -2 -9
+P  1  0  0  0 -3  0  0  0  0 -1 -2  0 -2 -5  5  1  1 -6 -5 -1  0  0  0 -9
+S  1  0  1  1  0  0  0  1  0 -1 -2  0 -1 -3  1  1  1 -3 -3 -1  1  0  0 -9
+T  1  0  0  0 -2  0  0  1 -1  0 -1  0  0 -3  1  1  1 -5 -3  0  0  0  0 -9
+W -6  3 -4 -7 -9 -5 -7 -7 -3 -5 -2 -3 -4  2 -6 -3 -5 26  1 -6 -6 -6 -4 -9
+Y -4 -4 -3 -5  1 -4 -5 -5  0  0  0 -5 -1 10 -5 -3 -3  1 13 -2 -4 -4 -2 -9
+V  0 -2 -1 -2 -2 -1 -1 -1 -2  4  3 -2  2  0 -1 -1  0 -6 -2  4 -2 -1  0 -9
+B  1  0  2  3 -4  2  2  1  1 -2 -3  1 -2 -5  0  1  0 -6 -4 -2  2  2  0 -9
+Z  0  1  1  3 -5  3  3  0  2 -2 -2  1 -1 -5  0  0  0 -6 -4 -1  2  3  0 -9
+X  0  0  0  0 -3  0  0  0  0  0 -1  0  0 -2  0  0  0 -4 -2  0  0  0 -1 -9
+* -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9  1
diff --git a/sources/PamBlosum/PAM40 b/sources/PamBlosum/PAM40
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM40
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 40 substitution matrix, scale = ln(2)/2 = 0.346574
+#
+# Expected score = -4.27, Entropy = 2.26 bits
+#
+# Lowest score = -15, Highest score = 13
+#
+    A   R   N   D   C   Q   E   G   H   I   L   K   M   F   P   S   T   W   Y   V   B   Z   X   *
+A   6  -6  -3  -3  -6  -3  -2  -1  -6  -4  -5  -6  -4  -7  -1   0   0 -12  -7  -2  -3  -2  -3 -15
+R  -6   8  -5  -9  -7  -1  -8  -8  -1  -5  -8   1  -3  -8  -3  -2  -5  -1  -9  -7  -6  -3  -5 -15
+N  -3  -5   7   2  -9  -3  -1  -2   1  -4  -6   0  -7  -8  -5   0  -1  -7  -4  -7   6  -2  -3 -15
+D  -3  -9   2   7 -12  -2   3  -3  -3  -6 -11  -4  -9 -13  -7  -3  -4 -13 -10  -7   6   2  -5 -15
+C  -6  -7  -9 -12   9 -12 -12  -8  -7  -5 -13 -12 -12 -11  -7  -2  -7 -14  -3  -5 -11 -12  -8 -15
+Q  -3  -1  -3  -2 -12   8   2  -6   1  -7  -4  -2  -3 -11  -2  -4  -5 -11 -10  -6  -2   6  -4 -15
+E  -2  -8  -1   3 -12   2   7  -3  -4  -5  -8  -4  -6 -12  -5  -4  -5 -15  -8  -6   2   6  -4 -15
+G  -1  -8  -2  -3  -8  -6  -3   6  -8  -9  -9  -6  -7  -8  -5  -1  -5 -13 -12  -5  -2  -4  -4 -15
+H  -6  -1   1  -3  -7   1  -4  -8   9  -8  -5  -5  -9  -5  -3  -5  -6  -6  -3  -6  -1   0  -4 -15
+I  -4  -5  -4  -6  -5  -7  -5  -9  -8   8  -1  -5   0  -2  -7  -6  -2 -12  -5   2  -5  -5  -4 -15
+L  -5  -8  -6 -11 -13  -4  -8  -9  -5  -1   7  -7   1  -2  -6  -7  -6  -5  -6  -2  -8  -6  -5 -15
+K  -6   1   0  -4 -12  -2  -4  -6  -5  -5  -7   6  -1 -12  -6  -3  -2 -10  -8  -8  -2  -3  -4 -15
+M  -4  -3  -7  -9 -12  -3  -6  -7  -9   0   1  -1  11  -3  -7  -5  -3 -11 -10  -1  -8  -4  -4 -15
+F  -7  -8  -8 -13 -11 -11 -12  -8  -5  -2  -2 -12  -3   9  -9  -6  -8  -4   2  -7  -9 -12  -7 -15
+P  -1  -3  -5  -7  -7  -2  -5  -5  -3  -7  -6  -6  -7  -9   8  -1  -3 -12 -12  -5  -6  -3  -4 -15
+S   0  -2   0  -3  -2  -4  -4  -1  -5  -6  -7  -3  -5  -6  -1   6   1  -4  -6  -5  -1  -4  -2 -15
+T   0  -5  -1  -4  -7  -5  -5  -5  -6  -2  -6  -2  -3  -8  -3   1   7 -11  -6  -2  -2  -5  -3 -15
+W -12  -1  -7 -13 -14 -11 -15 -13  -6 -12  -5 -10 -11  -4 -12  -4 -11  13  -4 -14  -9 -13  -9 -15
+Y  -7  -9  -4 -10  -3 -10  -8 -12  -3  -5  -6  -8 -10   2 -12  -6  -6  -4  10  -6  -6  -8  -7 -15
+V  -2  -7  -7  -7  -5  -6  -6  -5  -6   2  -2  -8  -1  -7  -5  -5  -2 -14  -6   7  -7  -6  -4 -15
+B  -3  -6   6   6 -11  -2   2  -2  -1  -5  -8  -2  -8  -9  -6  -1  -2  -9  -6  -7   6   1  -4 -15
+Z  -2  -3  -2   2 -12   6   6  -4   0  -5  -6  -3  -4 -12  -3  -4  -5 -13  -8  -6   1   6  -4 -15
+X  -3  -5  -3  -5  -8  -4  -4  -4  -4  -4  -5  -4  -4  -7  -4  -2  -3  -9  -7  -4  -4  -4  -4 -15
+* -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15   1
diff --git a/sources/PamBlosum/PAM40.cdi b/sources/PamBlosum/PAM40.cdi
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM40.cdi
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 40 substitution matrix, scale = 0.0693200
+#
+# Expected score = -21.3, Entropy = 2.26 bits
+#
+# Lowest score = -74, Highest score = 64
+#
+    A   R   N   D   C   Q   E   G   H   I   L   K   M   F   P   S   T   W   Y   V   B   Z   X   *
+A  28 -30 -14 -13 -28 -17  -8  -5 -31 -19 -27 -29 -20 -37  -4   1   0 -59 -34  -8 -14 -12 -13 -74
+R -30  41 -23 -43 -35  -5 -38 -41  -4 -23 -38   5 -17 -42 -15 -12 -27  -6 -45 -33 -30 -15 -23 -74
+N -14 -23  36  10 -47 -14  -7 -12   4 -22 -31  -2 -37 -38 -24   2  -6 -36 -19 -33  28 -10 -14 -74
+D -13 -43  10  37 -62  -8  15 -13 -15 -32 -54 -18 -47 -64 -33 -14 -19 -67 -49 -35  29   8 -23 -74
+C -28 -35 -47 -62  47 -61 -62 -41 -33 -27 -66 -62 -59 -56 -35 -11 -34 -70 -16 -25 -53 -62 -39 -74
+Q -17  -5 -14  -8 -61  40   8 -30   7 -33 -21 -10 -16 -57 -11 -22 -23 -56 -51 -29 -10  30 -19 -74
+E  -8 -38  -7  15 -62   8  36 -17 -20 -24 -41 -18 -30 -62 -23 -18 -25 -74 -38 -28   8  29 -20 -74
+G  -5 -41 -12 -13 -41 -30 -17  31 -38 -46 -47 -31 -37 -41 -26  -5 -24 -67 -60 -24 -12 -21 -22 -74
+H -31  -4   4 -15 -33   7 -20 -38  44 -39 -26 -25 -44 -25 -17 -25 -31 -32 -13 -28  -3  -2 -21 -74
+I -19 -23 -22 -32 -27 -33 -24 -46 -39  40  -3 -26   0  -8 -37 -29  -9 -60 -26  12 -26 -27 -20 -74
+L -27 -38 -31 -54 -66 -21 -41 -47 -26  -3  33 -36   6  -9 -31 -36 -29 -26 -29  -8 -39 -29 -26 -74
+K -29   5  -2 -18 -62 -10 -18 -31 -25 -26 -36  32  -5 -61 -28 -16 -12 -51 -42 -39  -9 -14 -22 -74
+M -20 -17 -37 -47 -59 -16 -30 -37 -44   0   6  -5  54 -16 -35 -23 -16 -55 -48  -3 -41 -22 -21 -74
+F -37 -42 -38 -64 -56 -57 -62 -41 -25  -8  -9 -61 -16  43 -44 -28 -38 -18  12 -33 -47 -60 -34 -74
+P  -4 -15 -24 -33 -35 -11 -23 -26 -17 -37 -31 -28 -35 -44  39  -5 -17 -60 -59 -24 -28 -16 -21 -74
+S   1 -12   2 -14 -11 -22 -18  -5 -25 -29 -36 -16 -23 -28  -5  30   4 -22 -30 -26  -5 -19 -12 -74
+T   0 -27  -6 -19 -34 -23 -25 -24 -31  -9 -29 -12 -16 -38 -17   4  34 -56 -28 -10 -12 -24 -15 -74
+W -59  -6 -36 -67 -70 -56 -74 -67 -32 -60 -26 -51 -55 -18 -60 -22 -56  64 -21 -68 -45 -63 -47 -74
+Y -34 -45 -19 -49 -16 -51 -38 -60 -13 -26 -29 -42 -48  12 -59 -30 -28 -21  48 -32 -28 -42 -33 -74
+V  -8 -33 -33 -35 -25 -29 -28 -24 -28  12  -8 -39  -3 -33 -24 -26 -10 -68 -32  34 -34 -28 -19 -74
+B -14 -30  28  29 -53 -10   8 -12  -3 -26 -39  -9 -41 -47 -28  -5 -12 -45 -28 -34  29   3 -19 -74
+Z -12 -15 -10   8 -62  30  29 -21  -2 -27 -29 -14 -22 -60 -16 -19 -24 -63 -42 -28   3  30 -20 -74
+X -13 -23 -14 -23 -39 -19 -20 -22 -21 -20 -26 -22 -21 -34 -21 -12 -15 -47 -33 -19 -19 -20 -21 -74
+* -74 -74 -74 -74 -74 -74 -74 -74 -74 -74 -74 -74 -74 -74 -74 -74 -74 -74 -74 -74 -74 -74 -74   1
diff --git a/sources/PamBlosum/PAM400 b/sources/PamBlosum/PAM400
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM400
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 400 substitution matrix, scale = ln(2)/5 = 0.138629
+#
+# Expected score = -0.521, Entropy = 0.139 bits
+#
+# Lowest score = -8, Highest score = 26
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  1 -1  0  1 -2  0  1  1 -1  0 -2 -1 -1 -3  1  1  1 -6 -3  0  1  0  0 -8
+R -1  5  1  0 -4  1  0 -2  2 -2 -3  4  0 -4  0  0  0  3 -4 -2  0  1  0 -8
+N  0  1  1  2 -3  1  2  1  1 -1 -3  1 -1 -3  0  1  0 -4 -3 -1  2  1  0 -8
+D  1  0  2  3 -5  2  3  1  1 -2 -3  1 -2 -5  0  1  0 -7 -4 -2  2  2  0 -8
+C -2 -4 -3 -5 17 -5 -5 -3 -3 -2 -6 -5 -5 -4 -2  0 -2 -8  1 -2 -4 -5 -3 -8
+Q  0  1  1  2 -5  3  2  0  3 -2 -2  1 -1 -4  0  0  0 -5 -4 -1  2  2  0 -8
+E  1  0  2  3 -5  2  3  1  1 -2 -3  1 -2 -5  0  0  0 -7 -4 -1  2  3  0 -8
+G  1 -2  1  1 -3  0  1  4 -1 -2 -3 -1 -2 -5  0  1  1 -7 -5 -1  1  0  0 -8
+H -1  2  1  1 -3  3  1 -1  5 -2 -2  1 -1 -2  0  0 -1 -2  0 -2  1  2  0 -8
+I  0 -2 -1 -2 -2 -2 -2 -2 -2  4  3 -2  2  2 -1 -1  0 -5  0  3 -2 -2  0 -8
+L -2 -3 -3 -3 -6 -2 -3 -3 -2  3  7 -2  4  3 -2 -2 -1 -2  0  3 -3 -2 -1 -8
+K -1  4  1  1 -5  1  1 -1  1 -2 -2  4  0 -5  0  0  0 -3 -4 -2  1  1  0 -8
+M -1  0 -1 -2 -5 -1 -2 -2 -1  2  4  0  5  1 -1 -1  0 -4 -1  2 -2 -1  0 -8
+F -3 -4 -3 -5 -4 -4 -5 -5 -2  2  3 -5  1 11 -4 -3 -3  2 10  0 -4 -5 -2 -8
+P  1  0  0  0 -2  0  0  0  0 -1 -2  0 -1 -4  5  1  1 -6 -5 -1  0  0  0 -8
+S  1  0  1  1  0  0  0  1  0 -1 -2  0 -1 -3  1  1  1 -3 -3 -1  1  0  0 -8
+T  1  0  0  0 -2  0  0  1 -1  0 -1  0  0 -3  1  1  1 -5 -3  0  0  0  0 -8
+W -6  3 -4 -7 -8 -5 -7 -7 -2 -5 -2 -3 -4  2 -6 -3 -5 26  1 -6 -5 -6 -4 -8
+Y -3 -4 -3 -4  1 -4 -4 -5  0  0  0 -4 -1 10 -5 -3 -3  1 13 -2 -3 -4 -2 -8
+V  0 -2 -1 -2 -2 -1 -1 -1 -2  3  3 -2  2  0 -1 -1  0 -6 -2  4 -1 -1  0 -8
+B  1  0  2  2 -4  2  2  1  1 -2 -3  1 -2 -4  0  1  0 -5 -3 -1  2  2  0 -8
+Z  0  1  1  2 -5  2  3  0  2 -2 -2  1 -1 -5  0  0  0 -6 -4 -1  2  3  0 -8
+X  0  0  0  0 -3  0  0  0  0  0 -1  0  0 -2  0  0  0 -4 -2  0  0  0 -1 -8
+* -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8  1
diff --git a/sources/PamBlosum/PAM410 b/sources/PamBlosum/PAM410
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM410
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 410 substitution matrix, scale = ln(2)/6 = 0.115525
+#
+# Expected score = -0.617, Entropy = 0.131 bits
+#
+# Lowest score = -10, Highest score = 31
+#
+    A   R   N   D   C   Q   E   G   H   I   L   K   M   F   P   S   T   W   Y   V   B   Z   X   *
+A   1  -1   0   1  -2   0   1   2  -1   0  -2  -1  -1  -4   1   1   1  -7  -4   0   1   0   0 -10
+R  -1   6   1   0  -4   2   0  -2   2  -2  -3   4   0  -5   0   0   0   4  -5  -2   0   1   0 -10
+N   0   1   1   2  -4   1   2   1   1  -2  -3   1  -2  -4   0   1   1  -5  -3  -1   2   2   0 -10
+D   1   0   2   3  -6   2   3   1   1  -2  -4   1  -2  -6   0   1   0  -8  -5  -2   3   3   0 -10
+C  -2  -4  -4  -6  20  -6  -6  -4  -4  -3  -7  -6  -6  -4  -3   0  -2 -10   1  -2  -5  -6  -3 -10
+Q   0   2   1   2  -6   3   2   0   3  -2  -2   1  -1  -5   1   0   0  -5  -4  -2   2   3   0 -10
+E   1   0   2   3  -6   2   3   1   1  -2  -3   1  -2  -6   0   1   0  -8  -5  -2   3   3   0 -10
+G   2  -2   1   1  -4   0   1   5  -1  -2  -4  -1  -3  -6   0   1   1  -8  -6  -1   1   0   0 -10
+H  -1   2   1   1  -4   3   1  -1   6  -2  -2   1  -2  -2   0   0  -1  -3   0  -2   1   2   0 -10
+I   0  -2  -2  -2  -3  -2  -2  -2  -2   4   4  -2   3   2  -2  -1   0  -6   0   4  -2  -2   0 -10
+L  -2  -3  -3  -4  -7  -2  -3  -4  -2   4   8  -3   5   4  -3  -3  -1  -2   1   3  -3  -3  -1 -10
+K  -1   4   1   1  -6   1   1  -1   1  -2  -3   5   0  -6   0   0   0  -3  -5  -2   1   1   0 -10
+M  -1   0  -2  -2  -6  -1  -2  -3  -2   3   5   0   5   1  -2  -1   0  -4  -2   2  -2  -2   0 -10
+F  -4  -5  -4  -6  -4  -5  -6  -6  -2   2   4  -6   1  14  -5  -4  -3   2  12   0  -5  -5  -2 -10
+P   1   0   0   0  -3   1   0   0   0  -2  -3   0  -2  -5   6   1   1  -7  -5  -1   0   0   0 -10
+S   1   0   1   1   0   0   1   1   0  -1  -3   0  -1  -4   1   1   1  -3  -3  -1   1   0   0 -10
+T   1   0   1   0  -2   0   0   1  -1   0  -1   0   0  -3   1   1   2  -6  -3   0   0   0   0 -10
+W  -7   4  -5  -8 -10  -5  -8  -8  -3  -6  -2  -3  -4   2  -7  -3  -6  31   2  -7  -6  -7  -4 -10
+Y  -4  -5  -3  -5   1  -4  -5  -6   0   0   1  -5  -2  12  -5  -3  -3   2  15  -2  -4  -5  -2 -10
+V   0  -2  -1  -2  -2  -2  -2  -1  -2   4   3  -2   2   0  -1  -1   0  -7  -2   4  -2  -2   0 -10
+B   1   0   2   3  -5   2   3   1   1  -2  -3   1  -2  -5   0   1   0  -6  -4  -2   2   2   0 -10
+Z   0   1   2   3  -6   3   3   0   2  -2  -3   1  -2  -5   0   0   0  -7  -5  -2   2   3   0 -10
+X   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
diff --git a/sources/PamBlosum/PAM420 b/sources/PamBlosum/PAM420
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM420
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 420 substitution matrix, scale = ln(2)/6 = 0.115525
+#
+# Expected score = -0.599, Entropy = 0.124 bits
+#
+# Lowest score = -10, Highest score = 31
+#
+    A   R   N   D   C   Q   E   G   H   I   L   K   M   F   P   S   T   W   Y   V   B   Z   X   *
+A   1  -1   0   1  -2   0   1   2  -1   0  -2   0  -1  -4   1   1   1  -7  -4   0   1   0   0 -10
+R  -1   6   1   0  -4   2   0  -2   2  -2  -3   4   0  -5   0   0   0   4  -5  -2   0   1   0 -10
+N   0   1   1   2  -4   1   2   1   1  -2  -3   1  -1  -4   0   1   0  -5  -3  -1   2   2   0 -10
+D   1   0   2   3  -5   2   3   1   1  -2  -4   1  -2  -6   0   1   0  -8  -5  -2   3   3   0 -10
+C  -2  -4  -4  -5  20  -6  -6  -3  -4  -3  -7  -6  -6  -4  -3   0  -2 -10   1  -2  -5  -6  -3 -10
+Q   0   2   1   2  -6   3   2   0   3  -2  -2   1  -1  -5   1   0   0  -5  -4  -2   2   3   0 -10
+E   1   0   2   3  -6   2   3   1   1  -2  -3   1  -2  -6   0   1   0  -8  -5  -2   3   3   0 -10
+G   2  -2   1   1  -3   0   1   5  -1  -2  -4  -1  -2  -6   0   1   1  -8  -6  -1   1   0   0 -10
+H  -1   2   1   1  -4   3   1  -1   6  -2  -2   1  -2  -2   0   0  -1  -3   0  -2   1   2   0 -10
+I   0  -2  -2  -2  -3  -2  -2  -2  -2   4   4  -2   3   2  -2  -1   0  -6   0   4  -2  -2   0 -10
+L  -2  -3  -3  -4  -7  -2  -3  -4  -2   4   7  -3   5   4  -2  -3  -1  -2   1   3  -3  -3  -1 -10
+K   0   4   1   1  -6   1   1  -1   1  -2  -3   5   0  -6   0   0   0  -3  -5  -2   1   1   0 -10
+M  -1   0  -1  -2  -6  -1  -2  -2  -2   3   5   0   5   1  -2  -1   0  -4  -1   2  -2  -1   0 -10
+F  -4  -5  -4  -6  -4  -5  -6  -6  -2   2   4  -6   1  13  -5  -4  -3   2  12   0  -5  -5  -2 -10
+P   1   0   0   0  -3   1   0   0   0  -2  -2   0  -2  -5   5   1   1  -6  -5  -1   0   0   0 -10
+S   1   0   1   1   0   0   1   1   0  -1  -3   0  -1  -4   1   1   1  -3  -3  -1   1   0   0 -10
+T   1   0   0   0  -2   0   0   1  -1   0  -1   0   0  -3   1   1   1  -6  -3   0   0   0   0 -10
+W  -7   4  -5  -8 -10  -5  -8  -8  -3  -6  -2  -3  -4   2  -6  -3  -6  31   2  -7  -6  -7  -4 -10
+Y  -4  -5  -3  -5   1  -4  -5  -6   0   0   1  -5  -1  12  -5  -3  -3   2  15  -2  -4  -5  -2 -10
+V   0  -2  -1  -2  -2  -2  -2  -1  -2   4   3  -2   2   0  -1  -1   0  -7  -2   4  -2  -2   0 -10
+B   1   0   2   3  -5   2   3   1   1  -2  -3   1  -2  -5   0   1   0  -6  -4  -2   2   2   0 -10
+Z   0   1   2   3  -6   3   3   0   2  -2  -3   1  -1  -5   0   0   0  -7  -5  -2   2   3   0 -10
+X   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
diff --git a/sources/PamBlosum/PAM430 b/sources/PamBlosum/PAM430
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM430
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 430 substitution matrix, scale = ln(2)/6 = 0.115525
+#
+# Expected score = -0.543, Entropy = 0.117 bits
+#
+# Lowest score = -9, Highest score = 31
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  1 -1  0  1 -2  0  1  2 -1  0 -2  0 -1 -4  1  1  1 -7 -4  0  1  0  0 -9
+R -1  6  1  0 -4  2  0 -2  2 -2 -3  4  0 -5  0  0  0  4 -4 -2  0  1  0 -9
+N  0  1  1  2 -4  1  2  1  1 -2 -3  1 -1 -4  0  1  0 -5 -3 -1  2  1  0 -9
+D  1  0  2  3 -5  2  3  1  1 -2 -4  1 -2 -6  0  1  0 -7 -5 -2  3  3  0 -9
+C -2 -4 -4 -5 20 -6 -5 -3 -4 -2 -6 -6 -5 -4 -3  0 -2 -9  1 -2 -4 -5 -3 -9
+Q  0  2  1  2 -6  3  2  0  3 -2 -2  1 -1 -5  1  0  0 -5 -4 -1  2  3  0 -9
+E  1  0  2  3 -5  2  3  1  1 -2 -3  1 -2 -6  0  1  0 -8 -5 -1  2  3  0 -9
+G  2 -2  1  1 -3  0  1  5 -1 -2 -4 -1 -2 -5  0  1  1 -8 -5 -1  1  0  0 -9
+H -1  2  1  1 -4  3  1 -1  5 -2 -2  1 -1 -2  0  0 -1 -3  0 -2  1  2  0 -9
+I  0 -2 -2 -2 -2 -2 -2 -2 -2  4  4 -2  3  2 -1 -1  0 -5  0  4 -2 -2  0 -9
+L -2 -3 -3 -4 -6 -2 -3 -4 -2  4  7 -3  5  4 -2 -2 -1 -2  1  3 -3 -3 -1 -9
+K  0  4  1  1 -6  1  1 -1  1 -2 -3  4  0 -5  0  0  0 -3 -5 -2  1  1  0 -9
+M -1  0 -1 -2 -5 -1 -2 -2 -1  3  5  0  5  1 -2 -1  0 -4 -1  2 -2 -1  0 -9
+F -4 -5 -4 -6 -4 -5 -6 -5 -2  2  4 -5  1 13 -5 -4 -3  2 12  0 -5 -5 -2 -9
+P  1  0  0  0 -3  1  0  0  0 -1 -2  0 -2 -5  5  1  1 -6 -5 -1  0  0  0 -9
+S  1  0  1  1  0  0  1  1  0 -1 -2  0 -1 -4  1  1  1 -3 -3 -1  1  0  0 -9
+T  1  0  0  0 -2  0  0  1 -1  0 -1  0  0 -3  1  1  1 -6 -3  0  0  0  0 -9
+W -7  4 -5 -7 -9 -5 -8 -8 -3 -5 -2 -3 -4  2 -6 -3 -6 31  2 -7 -6 -6 -4 -9
+Y -4 -4 -3 -5  1 -4 -5 -5  0  0  1 -5 -1 12 -5 -3 -3  2 15 -2 -4 -5 -2 -9
+V  0 -2 -1 -2 -2 -1 -1 -1 -2  4  3 -2  2  0 -1 -1  0 -7 -2  4 -1 -1  0 -9
+B  1  0  2  3 -4  2  2  1  1 -2 -3  1 -2 -5  0  1  0 -6 -4 -1  2  2  0 -9
+Z  0  1  1  3 -5  3  3  0  2 -2 -3  1 -1 -5  0  0  0 -6 -5 -1  2  3  0 -9
+X  0  0  0  0 -3  0  0  0  0  0 -1  0  0 -2  0  0  0 -4 -2  0  0  0 -1 -9
+* -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9  1
diff --git a/sources/PamBlosum/PAM440 b/sources/PamBlosum/PAM440
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM440
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 440 substitution matrix, scale = ln(2)/6 = 0.115525
+#
+# Expected score = -0.529, Entropy = 0.111 bits
+#
+# Lowest score = -9, Highest score = 30
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  1 -1  0  1 -2  0  1  2 -1  0 -2  0 -1 -4  1  1  1 -6 -4  0  1  0  0 -9
+R -1  5  1  0 -4  2  0 -2  2 -2 -3  4  0 -5  0  0  0  4 -4 -2  0  1  0 -9
+N  0  1  1  2 -4  1  2  1  1 -2 -3  1 -1 -4  0  1  0 -5 -3 -1  2  1  0 -9
+D  1  0  2  3 -5  2  3  1  1 -2 -3  1 -2 -6  0  1  0 -7 -5 -2  2  2  0 -9
+C -2 -4 -4 -5 20 -5 -5 -3 -4 -2 -6 -5 -5 -4 -3  0 -2 -9  1 -2 -4 -5 -3 -9
+Q  0  2  1  2 -5  3  2  0  3 -2 -2  1 -1 -4  1  0  0 -5 -4 -1  2  2  0 -9
+E  1  0  2  3 -5  2  3  1  1 -2 -3  1 -2 -5  0  1  0 -7 -5 -1  2  3  0 -9
+G  2 -2  1  1 -3  0  1  4 -1 -2 -4 -1 -2 -5  0  1  1 -8 -5 -1  1  0  0 -9
+H -1  2  1  1 -4  3  1 -1  5 -2 -2  1 -1 -2  0  0 -1 -3  0 -2  1  2  0 -9
+I  0 -2 -2 -2 -2 -2 -2 -2 -2  4  4 -2  3  2 -1 -1  0 -5  0  3 -2 -2  0 -9
+L -2 -3 -3 -3 -6 -2 -3 -4 -2  4  7 -3  5  4 -2 -2 -1 -2  1  3 -3 -2 -1 -9
+K  0  4  1  1 -5  1  1 -1  1 -2 -3  4  0 -5  0  0  0 -3 -5 -2  1  1  0 -9
+M -1  0 -1 -2 -5 -1 -2 -2 -1  3  5  0  4  1 -1 -1  0 -4 -1  2 -2 -1  0 -9
+F -4 -5 -4 -6 -4 -4 -5 -5 -2  2  4 -5  1 13 -5 -4 -3  2 12  0 -5 -5 -2 -9
+P  1  0  0  0 -3  1  0  0  0 -1 -2  0 -1 -5  5  1  1 -6 -5 -1  0  0  0 -9
+S  1  0  1  1  0  0  1  1  0 -1 -2  0 -1 -4  1  1  1 -3 -3 -1  1  0  0 -9
+T  1  0  0  0 -2  0  0  1 -1  0 -1  0  0 -3  1  1  1 -6 -3  0  0  0  0 -9
+W -6  4 -5 -7 -9 -5 -7 -8 -3 -5 -2 -3 -4  2 -6 -3 -6 30  2 -6 -6 -6 -4 -9
+Y -4 -4 -3 -5  1 -4 -5 -5  0  0  1 -5 -1 12 -5 -3 -3  2 15 -2 -4 -4 -2 -9
+V  0 -2 -1 -2 -2 -1 -1 -1 -2  3  3 -2  2  0 -1 -1  0 -6 -2  4 -1 -1  0 -9
+B  1  0  2  2 -4  2  2  1  1 -2 -3  1 -2 -5  0  1  0 -6 -4 -1  2  2  0 -9
+Z  0  1  1  2 -5  2  3  0  2 -2 -2  1 -1 -5  0  0  0 -6 -4 -1  2  3  0 -9
+X  0  0  0  0 -3  0  0  0  0  0 -1  0  0 -2  0  0  0 -4 -2  0  0  0 -1 -9
+* -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9  1
diff --git a/sources/PamBlosum/PAM450 b/sources/PamBlosum/PAM450
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM450
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 450 substitution matrix, scale = ln(2)/6 = 0.115525
+#
+# Expected score = -0.476, Entropy = 0.105 bits
+#
+# Lowest score = -9, Highest score = 30
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  1 -1  0  1 -2  0  1  1 -1  0 -2  0 -1 -3  1  1  1 -6 -4  0  1  0  0 -9
+R -1  5  1  0 -4  2  0 -1  2 -2 -3  4  0 -4  0  0  0  4 -4 -2  0  1  0 -9
+N  0  1  1  2 -4  1  2  1  1 -1 -2  1 -1 -4  0  1  0 -4 -3 -1  1  1  0 -9
+D  1  0  2  3 -5  2  3  1  1 -2 -3  1 -2 -5  0  1  0 -7 -5 -1  2  2  0 -9
+C -2 -4 -4 -5 20 -5 -5 -3 -4 -2 -6 -5 -5 -4 -2  0 -2 -9  1 -2 -4 -5 -2 -9
+Q  0  2  1  2 -5  3  2  0  3 -1 -2  1 -1 -4  1  0  0 -5 -4 -1  2  2  0 -9
+E  1  0  2  3 -5  2  3  1  1 -2 -3  1 -2 -5  0  1  0 -7 -5 -1  2  3  0 -9
+G  1 -1  1  1 -3  0  1  4 -1 -2 -3 -1 -2 -5  0  1  1 -8 -5 -1  1  0  0 -9
+H -1  2  1  1 -4  3  1 -1  5 -2 -2  1 -1 -2  0  0 -1 -2  0 -2  1  2  0 -9
+I  0 -2 -1 -2 -2 -1 -2 -2 -2  4  3 -2  3  2 -1 -1  0 -5  0  3 -2 -2  0 -9
+L -2 -3 -2 -3 -6 -2 -3 -3 -2  3  7 -2  4  4 -2 -2 -1 -1  1  3 -3 -2 -1 -9
+K  0  4  1  1 -5  1  1 -1  1 -2 -2  4  0 -5  0  0  0 -3 -5 -2  1  1  0 -9
+M -1  0 -1 -2 -5 -1 -2 -2 -1  3  4  0  4  1 -1 -1  0 -4 -1  2 -2 -1  0 -9
+F -3 -4 -4 -5 -4 -4 -5 -5 -2  2  4 -5  1 13 -5 -3 -3  2 12  0 -4 -5 -2 -9
+P  1  0  0  0 -2  1  0  0  0 -1 -2  0 -1 -5  5  1  1 -6 -5 -1  0  0  0 -9
+S  1  0  1  1  0  0  1  1  0 -1 -2  0 -1 -3  1  1  1 -3 -3 -1  1  0  0 -9
+T  1  0  0  0 -2  0  0  1 -1  0 -1  0  0 -3  1  1  1 -5 -3  0  0  0  0 -9
+W -6  4 -4 -7 -9 -5 -7 -8 -2 -5 -1 -3 -4  2 -6 -3 -5 30  2 -6 -6 -6 -4 -9
+Y -4 -4 -3 -5  1 -4 -5 -5  0  0  1 -5 -1 12 -5 -3 -3  2 14 -2 -4 -4 -2 -9
+V  0 -2 -1 -1 -2 -1 -1 -1 -2  3  3 -2  2  0 -1 -1  0 -6 -2  3 -1 -1  0 -9
+B  1  0  1  2 -4  2  2  1  1 -2 -3  1 -2 -4  0  1  0 -6 -4 -1  2  2  0 -9
+Z  0  1  1  2 -5  2  3  0  2 -2 -2  1 -1 -5  0  0  0 -6 -4 -1  2  2  0 -9
+X  0  0  0  0 -2  0  0  0  0  0 -1  0  0 -2  0  0  0 -4 -2  0  0  0  0 -9
+* -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9  1
diff --git a/sources/PamBlosum/PAM460 b/sources/PamBlosum/PAM460
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM460
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 460 substitution matrix, scale = ln(2)/6 = 0.115525
+#
+# Expected score = -0.429, Entropy = 0.0994 bits
+#
+# Lowest score = -9, Highest score = 30
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  1 -1  0  1 -2  0  1  1  0  0 -1  0 -1 -3  1  1  1 -6 -3  0  1  0  0 -9
+R -1  5  1  0 -4  1  0 -1  2 -2 -2  4  0 -4  0  0  0  4 -4 -2  0  1  0 -9
+N  0  1  1  2 -3  1  1  1  1 -1 -2  1 -1 -3  0  1  0 -4 -3 -1  1  1  0 -9
+D  1  0  2  3 -5  2  3  1  1 -2 -3  1 -2 -5  0  1  0 -7 -4 -1  2  2  0 -9
+C -2 -4 -3 -5 19 -5 -5 -3 -3 -2 -6 -5 -5 -3 -2  0 -2 -9  2 -2 -4 -5 -2 -9
+Q  0  1  1  2 -5  2  2  0  2 -1 -2  1 -1 -4  1  0  0 -5 -4 -1  1  2  0 -9
+E  1  0  1  3 -5  2  3  1  1 -2 -3  1 -2 -5  0  1  0 -7 -4 -1  2  2  0 -9
+G  1 -1  1  1 -3  0  1  4 -1 -2 -3 -1 -2 -5  1  1  1 -7 -5 -1  1  0  0 -9
+H  0  2  1  1 -3  2  1 -1  5 -2 -2  1 -1 -2  0  0  0 -2  0 -2  1  2  0 -9
+I  0 -2 -1 -2 -2 -1 -2 -2 -2  3  3 -2  2  2 -1 -1  0 -5  0  3 -2 -2  0 -9
+L -1 -2 -2 -3 -6 -2 -3 -3 -2  3  7 -2  4  3 -2 -2 -1 -1  1  3 -3 -2 -1 -9
+K  0  4  1  1 -5  1  1 -1  1 -2 -2  4  0 -5  0  0  0 -3 -4 -2  1  1  0 -9
+M -1  0 -1 -2 -5 -1 -2 -2 -1  2  4  0  4  1 -1 -1  0 -4 -1  2 -2 -1  0 -9
+F -3 -4 -3 -5 -3 -4 -5 -5 -2  2  3 -5  1 12 -4 -3 -3  2 11  0 -4 -5 -2 -9
+P  1  0  0  0 -2  1  0  1  0 -1 -2  0 -1 -4  4  1  1 -6 -5 -1  0  0  0 -9
+S  1  0  1  1  0  0  1  1  0 -1 -2  0 -1 -3  1  1  1 -3 -3 -1  1  0  0 -9
+T  1  0  0  0 -2  0  0  1  0  0 -1  0  0 -3  1  1  1 -5 -3  0  0  0  0 -9
+W -6  4 -4 -7 -9 -5 -7 -7 -2 -5 -1 -3 -4  2 -6 -3 -5 30  2 -6 -6 -6 -4 -9
+Y -3 -4 -3 -4  2 -4 -4 -5  0  0  1 -4 -1 11 -5 -3 -3  2 14 -2 -4 -4 -2 -9
+V  0 -2 -1 -1 -2 -1 -1 -1 -2  3  3 -2  2  0 -1 -1  0 -6 -2  3 -1 -1  0 -9
+B  1  0  1  2 -4  1  2  1  1 -2 -3  1 -2 -4  0  1  0 -6 -4 -1  2  2  0 -9
+Z  0  1  1  2 -5  2  2  0  2 -2 -2  1 -1 -5  0  0  0 -6 -4 -1  2  2  0 -9
+X  0  0  0  0 -2  0  0  0  0  0 -1  0  0 -2  0  0  0 -4 -2  0  0  0  0 -9
+* -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9  1
diff --git a/sources/PamBlosum/PAM470 b/sources/PamBlosum/PAM470
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM470
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 470 substitution matrix, scale = ln(2)/7 = 0.0990210
+#
+# Expected score = -0.520, Entropy = 0.0942 bits
+#
+# Lowest score = -10, Highest score = 35
+#
+    A   R   N   D   C   Q   E   G   H   I   L   K   M   F   P   S   T   W   Y   V   B   Z   X   *
+A   1  -1   1   1  -2   0   1   2  -1   0  -2   0  -1  -4   1   1   1  -7  -4   0   1   0   0 -10
+R  -1   6   1   0  -4   2   0  -1   2  -2  -3   4   0  -5   0   0   0   4  -5  -2   0   1   0 -10
+N   1   1   1   2  -4   1   2   1   1  -2  -3   1  -1  -4   0   1   0  -5  -3  -1   2   1   0 -10
+D   1   0   2   3  -5   2   3   1   1  -2  -4   1  -2  -6   0   1   0  -8  -5  -2   3   3   0 -10
+C  -2  -4  -4  -5  22  -6  -5  -3  -4  -2  -6  -6  -6  -4  -3   0  -2 -10   2  -2  -5  -6  -3 -10
+Q   0   2   1   2  -6   3   2   0   3  -2  -2   1  -1  -5   1   0   0  -5  -4  -1   2   2   0 -10
+E   1   0   2   3  -5   2   3   1   1  -2  -3   1  -2  -6   0   1   0  -8  -5  -1   2   3   0 -10
+G   2  -1   1   1  -3   0   1   5  -1  -2  -4  -1  -2  -6   1   1   1  -8  -6  -1   1   1   0 -10
+H  -1   2   1   1  -4   3   1  -1   5  -2  -2   1  -1  -2   0   0   0  -3   0  -2   1   2   0 -10
+I   0  -2  -2  -2  -2  -2  -2  -2  -2   4   4  -2   3   2  -1  -1   0  -5   0   3  -2  -2   0 -10
+L  -2  -3  -3  -4  -6  -2  -3  -4  -2   4   8  -3   5   4  -2  -2  -1  -2   1   3  -3  -3  -1 -10
+K   0   4   1   1  -6   1   1  -1   1  -2  -3   4   0  -5   0   0   0  -3  -5  -2   1   1   0 -10
+M  -1   0  -1  -2  -6  -1  -2  -2  -1   3   5   0   4   1  -1  -1   0  -4  -1   2  -2  -1   0 -10
+F  -4  -5  -4  -6  -4  -5  -6  -6  -2   2   4  -5   1  14  -5  -4  -3   3  13   0  -5  -5  -2 -10
+P   1   0   0   0  -3   1   0   1   0  -1  -2   0  -1  -5   5   1   1  -6  -5  -1   0   1   0 -10
+S   1   0   1   1   0   0   1   1   0  -1  -2   0  -1  -4   1   1   1  -4  -3  -1   1   0   0 -10
+T   1   0   0   0  -2   0   0   1   0   0  -1   0   0  -3   1   1   1  -6  -3   0   0   0   0 -10
+W  -7   4  -5  -8 -10  -5  -8  -8  -3  -5  -2  -3  -4   3  -6  -4  -6  35   2  -7  -6  -7  -4 -10
+Y  -4  -5  -3  -5   2  -4  -5  -6   0   0   1  -5  -1  13  -5  -3  -3   2  16  -2  -4  -5  -2 -10
+V   0  -2  -1  -2  -2  -1  -1  -1  -2   3   3  -2   2   0  -1  -1   0  -7  -2   4  -1  -1   0 -10
+B   1   0   2   3  -5   2   2   1   1  -2  -3   1  -2  -5   0   1   0  -6  -4  -1   2   2   0 -10
+Z   0   1   1   3  -6   2   3   1   2  -2  -3   1  -1  -5   1   0   0  -7  -5  -1   2   3   0 -10
+X   0   0   0   0  -3   0   0   0   0   0  -1   0   0  -2   0   0   0  -4  -2   0   0   0   0 -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
diff --git a/sources/PamBlosum/PAM480 b/sources/PamBlosum/PAM480
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM480
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 480 substitution matrix, scale = ln(2)/7 = 0.0990210
+#
+# Expected score = -0.494, Entropy = 0.0893 bits
+#
+# Lowest score = -10, Highest score = 35
+#
+    A   R   N   D   C   Q   E   G   H   I   L   K   M   F   P   S   T   W   Y   V   B   Z   X   *
+A   1  -1   1   1  -2   0   1   2   0   0  -2   0  -1  -4   1   1   1  -7  -4   0   1   0   0 -10
+R  -1   5   1   0  -4   2   0  -1   2  -2  -3   4   0  -5   0   0   0   4  -4  -2   0   1   0 -10
+N   1   1   1   2  -4   1   2   1   1  -1  -3   1  -1  -4   0   1   0  -5  -3  -1   2   1   0 -10
+D   1   0   2   3  -5   2   3   1   1  -2  -3   1  -2  -6   0   1   0  -7  -5  -1   2   2   0 -10
+C  -2  -4  -4  -5  22  -5  -5  -3  -4  -2  -6  -6  -5  -4  -3   0  -2 -10   2  -2  -4  -5  -3 -10
+Q   0   2   1   2  -5   3   2   0   3  -2  -2   1  -1  -5   1   0   0  -5  -4  -1   2   2   0 -10
+E   1   0   2   3  -5   2   3   1   1  -2  -3   1  -2  -5   0   1   0  -8  -5  -1   2   3   0 -10
+G   2  -1   1   1  -3   0   1   4  -1  -2  -4  -1  -2  -5   1   1   1  -8  -5  -1   1   1   0 -10
+H   0   2   1   1  -4   3   1  -1   5  -2  -2   1  -1  -2   0   0   0  -3   0  -2   1   2   0 -10
+I   0  -2  -1  -2  -2  -2  -2  -2  -2   4   4  -2   3   2  -1  -1   0  -5   0   3  -2  -2   0 -10
+L  -2  -3  -3  -3  -6  -2  -3  -4  -2   4   7  -3   5   4  -2  -2  -1  -2   1   3  -3  -3  -1 -10
+K   0   4   1   1  -6   1   1  -1   1  -2  -3   4   0  -5   0   0   0  -3  -5  -2   1   1   0 -10
+M  -1   0  -1  -2  -5  -1  -2  -2  -1   3   5   0   4   1  -1  -1   0  -4  -1   2  -2  -1   0 -10
+F  -4  -5  -4  -6  -4  -5  -5  -5  -2   2   4  -5   1  14  -5  -4  -3   3  13   0  -5  -5  -2 -10
+P   1   0   0   0  -3   1   0   1   0  -1  -2   0  -1  -5   5   1   1  -6  -5  -1   0   1   0 -10
+S   1   0   1   1   0   0   1   1   0  -1  -2   0  -1  -4   1   1   1  -3  -3  -1   1   0   0 -10
+T   1   0   0   0  -2   0   0   1   0   0  -1   0   0  -3   1   1   1  -6  -3   0   0   0   0 -10
+W  -7   4  -5  -7 -10  -5  -8  -8  -3  -5  -2  -3  -4   3  -6  -3  -6  35   2  -7  -6  -6  -4 -10
+Y  -4  -4  -3  -5   2  -4  -5  -5   0   0   1  -5  -1  13  -5  -3  -3   2  16  -2  -4  -5  -2 -10
+V   0  -2  -1  -1  -2  -1  -1  -1  -2   3   3  -2   2   0  -1  -1   0  -7  -2   3  -1  -1   0 -10
+B   1   0   2   2  -4   2   2   1   1  -2  -3   1  -2  -5   0   1   0  -6  -4  -1   2   2   0 -10
+Z   0   1   1   2  -5   2   3   1   2  -2  -3   1  -1  -5   1   0   0  -6  -5  -1   2   2   0 -10
+X   0   0   0   0  -3   0   0   0   0   0  -1   0   0  -2   0   0   0  -4  -2   0   0   0   0 -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
diff --git a/sources/PamBlosum/PAM490 b/sources/PamBlosum/PAM490
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM490
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 490 substitution matrix, scale = ln(2)/7 = 0.0990210
+#
+# Expected score = -0.431, Entropy = 0.0847 bits
+#
+# Lowest score = -9, Highest score = 34
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  1 -1  0  1 -2  0  1  2  0  0 -1  0 -1 -3  1  1  1 -6 -4  0  1  0  0 -9
+R -1  5  1  0 -4  2  0 -1  2 -2 -3  4  0 -5  0  0  0  4 -4 -2  0  1  0 -9
+N  0  1  1  2 -4  1  2  1  1 -1 -2  1 -1 -4  0  1  0 -5 -3 -1  1  1  0 -9
+D  1  0  2  3 -5  2  3  1  1 -2 -3  1 -2 -5  0  1  0 -7 -5 -1  2  2  0 -9
+C -2 -4 -4 -5 22 -5 -5 -3 -4 -2 -6 -5 -5 -4 -3  0 -2 -9  2 -2 -4 -5 -2 -9
+Q  0  2  1  2 -5  2  2  0  2 -1 -2  1 -1 -4  1  0  0 -5 -4 -1  2  2  0 -9
+E  1  0  2  3 -5  2  3  1  1 -2 -3  1 -2 -5  0  1  0 -7 -5 -1  2  2  0 -9
+G  2 -1  1  1 -3  0  1  4 -1 -2 -3 -1 -2 -5  1  1  1 -8 -5 -1  1  1  0 -9
+H  0  2  1  1 -4  2  1 -1  5 -2 -2  1 -1 -2  0  0  0 -3  0 -2  1  2  0 -9
+I  0 -2 -1 -2 -2 -1 -2 -2 -2  3  4 -2  3  2 -1 -1  0 -5  0  3 -2 -2  0 -9
+L -1 -3 -2 -3 -6 -2 -3 -3 -2  4  7 -2  5  4 -2 -2 -1 -1  1  3 -3 -2 -1 -9
+K  0  4  1  1 -5  1  1 -1  1 -2 -2  4  0 -5  0  0  0 -3 -5 -2  1  1  0 -9
+M -1  0 -1 -2 -5 -1 -2 -2 -1  3  5  0  4  1 -1 -1  0 -4 -1  2 -2 -1  0 -9
+F -3 -5 -4 -5 -4 -4 -5 -5 -2  2  4 -5  1 14 -5 -4 -3  3 13  0 -5 -5 -2 -9
+P  1  0  0  0 -3  1  0  1  0 -1 -2  0 -1 -5  4  1  1 -6 -5 -1  0  1  0 -9
+S  1  0  1  1  0  0  1  1  0 -1 -2  0 -1 -4  1  1  1 -3 -3 -1  1  0  0 -9
+T  1  0  0  0 -2  0  0  1  0  0 -1  0  0 -3  1  1  1 -6 -3  0  0  0  0 -9
+W -6  4 -5 -7 -9 -5 -7 -8 -3 -5 -1 -3 -4  3 -6 -3 -6 34  2 -6 -6 -6 -4 -9
+Y -4 -4 -3 -5  2 -4 -5 -5  0  0  1 -5 -1 13 -5 -3 -3  2 15 -2 -4 -4 -2 -9
+V  0 -2 -1 -1 -2 -1 -1 -1 -2  3  3 -2  2  0 -1 -1  0 -6 -2  3 -1 -1  0 -9
+B  1  0  1  2 -4  2  2  1  1 -2 -3  1 -2 -5  0  1  0 -6 -4 -1  2  2  0 -9
+Z  0  1  1  2 -5  2  2  1  2 -2 -2  1 -1 -5  1  0  0 -6 -4 -1  2  2  0 -9
+X  0  0  0  0 -2  0  0  0  0  0 -1  0  0 -2  0  0  0 -4 -2  0  0  0  0 -9
+* -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9  1
diff --git a/sources/PamBlosum/PAM50 b/sources/PamBlosum/PAM50
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM50
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 50 substitution matrix, scale = ln(2)/2 = 0.346574
+#
+# Expected score = -3.70, Entropy = 2.00 bits
+#
+# Lowest score = -13, Highest score = 13
+#
+    A   R   N   D   C   Q   E   G   H   I   L   K   M   F   P   S   T   W   Y   V   B   Z   X   *
+A   5  -5  -2  -2  -5  -3  -1  -1  -5  -3  -5  -5  -4  -7   0   0   0 -11  -6  -1  -2  -2  -2 -13
+R  -5   8  -4  -7  -6   0  -7  -7   0  -4  -7   1  -3  -8  -3  -2  -5  -1  -8  -6  -5  -2  -4 -13
+N  -2  -4   7   2  -8  -2  -1  -2   1  -4  -6   0  -6  -7  -4   1  -1  -7  -3  -6   5  -1  -2 -13
+D  -2  -7   2   7 -11  -1   3  -2  -2  -6 -10  -3  -8 -12  -6  -2  -3 -12  -9  -6   6   2  -4 -13
+C  -5  -6  -8 -11   9 -11 -11  -7  -6  -5 -12 -11 -11 -10  -6  -2  -6 -13  -3  -5  -9 -11  -7 -13
+Q  -3   0  -2  -1 -11   8   2  -5   2  -6  -4  -2  -3 -10  -2  -4  -4 -10  -9  -5  -2   6  -3 -13
+E  -1  -7  -1   3 -11   2   7  -3  -3  -4  -7  -3  -5 -11  -4  -3  -4 -13  -7  -5   2   6  -3 -13
+G  -1  -7  -2  -2  -7  -5  -3   6  -7  -8  -9  -6  -7  -8  -4  -1  -4 -12 -11  -4  -2  -4  -4 -13
+H  -5   0   1  -2  -6   2  -3  -7   9  -7  -5  -4  -8  -5  -3  -4  -5  -6  -2  -5   0   0  -4 -13
+I  -3  -4  -4  -6  -5  -6  -4  -8  -7   8   0  -5   0  -1  -7  -5  -1 -11  -5   3  -5  -5  -3 -13
+L  -5  -7  -6 -10 -12  -4  -7  -9  -5   0   6  -6   2  -1  -6  -7  -5  -5  -5  -1  -7  -5  -5 -13
+K  -5   1   0  -3 -11  -2  -3  -6  -4  -5  -6   6  -1 -11  -5  -3  -2  -9  -8  -7  -1  -2  -4 -13
+M  -4  -3  -6  -8 -11  -3  -5  -7  -8   0   2  -1  10  -3  -6  -4  -3 -10  -8   0  -7  -4  -4 -13
+F  -7  -8  -7 -12 -10 -10 -11  -8  -5  -1  -1 -11  -3   9  -8  -5  -7  -3   3  -6  -9 -11  -6 -13
+P   0  -3  -4  -6  -6  -2  -4  -4  -3  -7  -6  -5  -6  -8   8  -1  -3 -11 -11  -4  -5  -3  -4 -13
+S   0  -2   1  -2  -2  -4  -3  -1  -4  -5  -7  -3  -4  -5  -1   6   1  -4  -5  -4  -1  -3  -2 -13
+T   0  -5  -1  -3  -6  -4  -4  -4  -5  -1  -5  -2  -3  -7  -3   1   6 -10  -5  -2  -2  -4  -2 -13
+W -11  -1  -7 -12 -13 -10 -13 -12  -6 -11  -5  -9 -10  -3 -11  -4 -10  13  -4 -12  -8 -11  -9 -13
+Y  -6  -8  -3  -9  -3  -9  -7 -11  -2  -5  -5  -8  -8   3 -11  -5  -5  -4   9  -6  -5  -8  -6 -13
+V  -1  -6  -6  -6  -5  -5  -5  -4  -5   3  -1  -7   0  -6  -4  -4  -2 -12  -6   7  -6  -5  -3 -13
+B  -2  -5   5   6  -9  -2   2  -2   0  -5  -7  -1  -7  -9  -5  -1  -2  -8  -5  -6   5   1  -3 -13
+Z  -2  -2  -1   2 -11   6   6  -4   0  -5  -5  -2  -4 -11  -3  -3  -4 -11  -8  -5   1   6  -3 -13
+X  -2  -4  -2  -4  -7  -3  -3  -4  -4  -3  -5  -4  -4  -6  -4  -2  -2  -9  -6  -3  -3  -3  -4 -13
+* -13 -13 -13 -13 -13 -13 -13 -13 -13 -13 -13 -13 -13 -13 -13 -13 -13 -13 -13 -13 -13 -13 -13   1
diff --git a/sources/PamBlosum/PAM500 b/sources/PamBlosum/PAM500
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM500
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 500 substitution matrix, scale = ln(2)/7 = 0.0990210
+#
+# Expected score = -0.401, Entropy = 0.0803 bits
+#
+# Lowest score = -9, Highest score = 34
+#
+   A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
+A  1 -1  0  1 -2  0  1  1  0  0 -1  0 -1 -3  1  1  1 -6 -3  0  1  0  0 -9
+R -1  5  1  0 -4  2  0 -1  2 -2 -2  4  0 -4  0  0  0  4 -4 -2  0  1  0 -9
+N  0  1  1  2 -3  1  1  1  1 -1 -2  1 -1 -4  0  1  0 -5 -3 -1  1  1  0 -9
+D  1  0  2  3 -5  2  3  1  1 -2 -3  1 -2 -5  0  1  0 -7 -5 -1  2  2  0 -9
+C -2 -4 -3 -5 22 -5 -5 -3 -4 -2 -6 -5 -5 -3 -2  0 -2 -9  2 -2 -4 -5 -2 -9
+Q  0  2  1  2 -5  2  2  0  2 -1 -2  1 -1 -4  1  0  0 -5 -4 -1  2  2  0 -9
+E  1  0  1  3 -5  2  3  1  1 -2 -3  1 -1 -5  0  1  0 -7 -5 -1  2  2  0 -9
+G  1 -1  1  1 -3  0  1  4 -1 -2 -3  0 -2 -5  1  1  1 -8 -5 -1  1  1  0 -9
+H  0  2  1  1 -4  2  1 -1  4 -2 -2  1 -1 -2  0  0  0 -2  0 -2  1  2  0 -9
+I  0 -2 -1 -2 -2 -1 -2 -2 -2  3  4 -2  3  2 -1 -1  0 -5  0  3 -2 -2  0 -9
+L -1 -2 -2 -3 -6 -2 -3 -3 -2  4  7 -2  4  4 -2 -2 -1 -1  1  3 -3 -2 -1 -9
+K  0  4  1  1 -5  1  1  0  1 -2 -2  4  0 -5  0  0  0 -3 -5 -2  1  1  0 -9
+M -1  0 -1 -2 -5 -1 -1 -2 -1  3  4  0  4  1 -1 -1  0 -4 -1  2 -1 -1  0 -9
+F -3 -4 -4 -5 -3 -4 -5 -5 -2  2  4 -5  1 13 -4 -3 -3  3 13  0 -4 -5 -2 -9
+P  1  0  0  0 -2  1  0  1  0 -1 -2  0 -1 -4  4  1  1 -6 -5 -1  0  1  0 -9
+S  1  0  1  1  0  0  1  1  0 -1 -2  0 -1 -3  1  1  1 -3 -3 -1  1  0  0 -9
+T  1  0  0  0 -2  0  0  1  0  0 -1  0  0 -3  1  1  1 -6 -3  0  0  0  0 -9
+W -6  4 -5 -7 -9 -5 -7 -8 -2 -5 -1 -3 -4  3 -6 -3 -6 34  2 -6 -6 -6 -4 -9
+Y -3 -4 -3 -5  2 -4 -5 -5  0  0  1 -5 -1 13 -5 -3 -3  2 15 -1 -4 -4 -2 -9
+V  0 -2 -1 -1 -2 -1 -1 -1 -2  3  3 -2  2  0 -1 -1  0 -6 -1  3 -1 -1  0 -9
+B  1  0  1  2 -4  2  2  1  1 -2 -3  1 -1 -4  0  1  0 -6 -4 -1  2  2  0 -9
+Z  0  1  1  2 -5  2  2  1  2 -2 -2  1 -1 -5  1  0  0 -6 -4 -1  2  2  0 -9
+X  0  0  0  0 -2  0  0  0  0  0 -1  0  0 -2  0  0  0 -4 -2  0  0  0  0 -9
+* -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9  1
diff --git a/sources/PamBlosum/PAM60 b/sources/PamBlosum/PAM60
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM60
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 60 substitution matrix, scale = ln(2)/2 = 0.346574
+#
+# Expected score = -3.21, Entropy = 1.79 bits
+#
+# Lowest score = -12, Highest score = 13
+#
+    A   R   N   D   C   Q   E   G   H   I   L   K   M   F   P   S   T   W   Y   V   B   Z   X   *
+A   5  -5  -2  -2  -5  -3  -1   0  -5  -3  -4  -5  -3  -6   0   1   1 -10  -6  -1  -2  -2  -2 -12
+R  -5   8  -3  -6  -6   0  -6  -7   0  -4  -6   2  -2  -7  -2  -2  -4   0  -8  -5  -5  -2  -4 -12
+N  -2  -3   6   2  -7  -2   0  -1   1  -4  -5   0  -6  -6  -4   1  -1  -6  -3  -5   5  -1  -2 -12
+D  -2  -6   2   7 -10  -1   3  -2  -2  -5  -9  -2  -7 -11  -5  -2  -3 -11  -8  -6   5   2  -3 -12
+C  -5  -6  -7 -10   9 -10 -10  -7  -6  -4 -11 -10 -10  -9  -6  -1  -5 -12  -2  -4  -9 -10  -6 -12
+Q  -3   0  -2  -1 -10   7   2  -5   2  -5  -3  -1  -2  -9  -1  -3  -4  -9  -8  -5  -1   6  -3 -12
+E  -1  -6   0   3 -10   2   7  -2  -3  -4  -7  -3  -5 -10  -3  -2  -4 -12  -7  -4   2   5  -3 -12
+G   0  -7  -1  -2  -7  -5  -2   6  -6  -7  -8  -5  -6  -7  -4   0  -3 -11 -10  -4  -2  -3  -3 -12
+H  -5   0   1  -2  -6   2  -3  -6   8  -6  -4  -4  -7  -4  -2  -4  -5  -5  -2  -5   0   0  -3 -12
+I  -3  -4  -4  -5  -4  -5  -4  -7  -6   7   0  -4   1  -1  -6  -4  -1 -10  -4   3  -4  -4  -3 -12
+L  -4  -6  -5  -9 -11  -3  -7  -8  -4   0   6  -6   2  -1  -5  -6  -5  -4  -5  -1  -7  -5  -4 -12
+K  -5   2   0  -2 -10  -1  -3  -5  -4  -4  -6   6   0 -10  -4  -2  -2  -8  -7  -6  -1  -2  -3 -12
+M  -3  -2  -6  -7 -10  -2  -5  -6  -7   1   2   0  10  -2  -6  -4  -2  -9  -7   0  -6  -4  -3 -12
+F  -6  -7  -6 -11  -9  -9 -10  -7  -4  -1  -1 -10  -2   8  -7  -5  -6  -3   3  -5  -8 -10  -5 -12
+P   0  -2  -4  -5  -6  -1  -3  -4  -2  -6  -5  -4  -6  -7   7   0  -2 -10 -10  -4  -4  -2  -3 -12
+S   1  -2   1  -2  -1  -3  -2   0  -4  -4  -6  -2  -4  -5   0   5   1  -4  -5  -4   0  -3  -2 -12
+T   1  -4  -1  -3  -5  -4  -4  -3  -5  -1  -5  -2  -2  -6  -2   1   6  -9  -5  -1  -2  -4  -2 -12
+W -10   0  -6 -11 -12  -9 -12 -11  -5 -10  -4  -8  -9  -3 -10  -4  -9  13  -3 -11  -8 -11  -8 -12
+Y  -6  -8  -3  -8  -2  -8  -7 -10  -2  -4  -5  -7  -7   3 -10  -5  -5  -3   9  -5  -5  -7  -5 -12
+V  -1  -5  -5  -6  -4  -5  -4  -4  -5   3  -1  -6   0  -5  -4  -4  -1 -11  -5   6  -5  -5  -3 -12
+B  -2  -5   5   5  -9  -1   2  -2   0  -4  -7  -1  -6  -8  -4   0  -2  -8  -5  -5   5   1  -3 -12
+Z  -2  -2  -1   2 -10   6   5  -3   0  -4  -5  -2  -4 -10  -2  -3  -4 -11  -7  -5   1   5  -3 -12
+X  -2  -4  -2  -3  -6  -3  -3  -3  -3  -3  -4  -3  -3  -5  -3  -2  -2  -8  -5  -3  -3  -3  -3 -12
+* -12 -12 -12 -12 -12 -12 -12 -12 -12 -12 -12 -12 -12 -12 -12 -12 -12 -12 -12 -12 -12 -12 -12   1
diff --git a/sources/PamBlosum/PAM70 b/sources/PamBlosum/PAM70
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM70
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 70 substitution matrix, scale = ln(2)/2 = 0.346574
+#
+# Expected score = -2.77, Entropy = 1.60 bits
+#
+# Lowest score = -11, Highest score = 13
+#
+    A   R   N   D   C   Q   E   G   H   I   L   K   M   F   P   S   T   W   Y   V   B   Z   X   *
+A   5  -4  -2  -1  -4  -2  -1   0  -4  -2  -4  -4  -3  -6   0   1   1  -9  -5  -1  -1  -1  -2 -11
+R  -4   8  -3  -6  -5   0  -5  -6   0  -3  -6   2  -2  -7  -2  -1  -4   0  -7  -5  -4  -2  -3 -11
+N  -2  -3   6   3  -7  -1   0  -1   1  -3  -5   0  -5  -6  -3   1   0  -6  -3  -5   5  -1  -2 -11
+D  -1  -6   3   6  -9   0   3  -1  -1  -5  -8  -2  -7 -10  -4  -1  -2 -10  -7  -5   5   2  -3 -11
+C  -4  -5  -7  -9   9  -9  -9  -6  -5  -4 -10  -9  -9  -8  -5  -1  -5 -11  -2  -4  -8  -9  -6 -11
+Q  -2   0  -1   0  -9   7   2  -4   2  -5  -3  -1  -2  -9  -1  -3  -3  -8  -8  -4  -1   5  -2 -11
+E  -1  -5   0   3  -9   2   6  -2  -2  -4  -6  -2  -4  -9  -3  -2  -3 -11  -6  -4   2   5  -3 -11
+G   0  -6  -1  -1  -6  -4  -2   6  -6  -6  -7  -5  -6  -7  -3   0  -3 -10  -9  -3  -1  -3  -3 -11
+H  -4   0   1  -1  -5   2  -2  -6   8  -6  -4  -3  -6  -4  -2  -3  -4  -5  -1  -4   0   1  -3 -11
+I  -2  -3  -3  -5  -4  -5  -4  -6  -6   7   1  -4   1   0  -5  -4  -1  -9  -4   3  -4  -4  -3 -11
+L  -4  -6  -5  -8 -10  -3  -6  -7  -4   1   6  -5   2  -1  -5  -6  -4  -4  -4   0  -6  -4  -4 -11
+K  -4   2   0  -2  -9  -1  -2  -5  -3  -4  -5   6   0  -9  -4  -2  -1  -7  -7  -6  -1  -2  -3 -11
+M  -3  -2  -5  -7  -9  -2  -4  -6  -6   1   2   0  10  -2  -5  -3  -2  -8  -7   0  -6  -3  -3 -11
+F  -6  -7  -6 -10  -8  -9  -9  -7  -4   0  -1  -9  -2   8  -7  -4  -6  -2   4  -5  -7  -9  -5 -11
+P   0  -2  -3  -4  -5  -1  -3  -3  -2  -5  -5  -4  -5  -7   7   0  -2  -9  -9  -3  -4  -2  -3 -11
+S   1  -1   1  -1  -1  -3  -2   0  -3  -4  -6  -2  -3  -4   0   5   2  -3  -5  -3   0  -2  -1 -11
+T   1  -4   0  -2  -5  -3  -3  -3  -4  -1  -4  -1  -2  -6  -2   2   6  -8  -4  -1  -1  -3  -2 -11
+W  -9   0  -6 -10 -11  -8 -11 -10  -5  -9  -4  -7  -8  -2  -9  -3  -8  13  -3 -10  -7 -10  -7 -11
+Y  -5  -7  -3  -7  -2  -8  -6  -9  -1  -4  -4  -7  -7   4  -9  -5  -4  -3   9  -5  -4  -7  -5 -11
+V  -1  -5  -5  -5  -4  -4  -4  -3  -4   3   0  -6   0  -5  -3  -3  -1 -10  -5   6  -5  -4  -2 -11
+B  -1  -4   5   5  -8  -1   2  -1   0  -4  -6  -1  -6  -7  -4   0  -1  -7  -4  -5   5   1  -2 -11
+Z  -1  -2  -1   2  -9   5   5  -3   1  -4  -4  -2  -3  -9  -2  -2  -3 -10  -7  -4   1   5  -3 -11
+X  -2  -3  -2  -3  -6  -2  -3  -3  -3  -3  -4  -3  -3  -5  -3  -1  -2  -7  -5  -2  -2  -3  -3 -11
+* -11 -11 -11 -11 -11 -11 -11 -11 -11 -11 -11 -11 -11 -11 -11 -11 -11 -11 -11 -11 -11 -11 -11   1
diff --git a/sources/PamBlosum/PAM80 b/sources/PamBlosum/PAM80
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM80
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 80 substitution matrix, scale = ln(2)/2 = 0.346574
+#
+# Expected score = -2.55, Entropy = 1.44 bits
+#
+# Lowest score = -11, Highest score = 13
+#
+    A   R   N   D   C   Q   E   G   H   I   L   K   M   F   P   S   T   W   Y   V   B   Z   X   *
+A   4  -4  -1  -1  -4  -2  -1   0  -4  -2  -4  -4  -3  -5   0   1   1  -8  -5   0  -1  -1  -1 -11
+R  -4   7  -2  -5  -5   0  -4  -6   0  -3  -5   2  -2  -6  -2  -1  -3   0  -7  -5  -3  -1  -3 -11
+N  -1  -2   5   3  -6  -1   0  -1   2  -3  -5   0  -4  -5  -3   1   0  -5  -3  -4   4   0  -1 -11
+D  -1  -5   3   6  -9   0   4  -1  -1  -4  -7  -2  -6  -9  -4  -1  -2 -10  -7  -5   5   2  -3 -11
+C  -4  -5  -6  -9   9  -9  -9  -6  -5  -4  -9  -9  -8  -8  -5  -1  -4 -10  -2  -3  -7  -9  -5 -11
+Q  -2   0  -1   0  -9   7   2  -4   2  -4  -3  -1  -2  -8  -1  -3  -3  -8  -7  -4   0   5  -2 -11
+E  -1  -4   0   4  -9   2   6  -2  -2  -3  -6  -2  -4  -9  -3  -2  -3 -11  -6  -4   2   5  -2 -11
+G   0  -6  -1  -1  -6  -4  -2   6  -5  -6  -7  -4  -5  -6  -3   0  -2 -10  -8  -3  -1  -2  -3 -11
+H  -4   0   2  -1  -5   2  -2  -5   8  -5  -4  -3  -5  -3  -2  -3  -4  -4  -1  -4   0   1  -2 -11
+I  -2  -3  -3  -4  -4  -4  -3  -6  -5   7   1  -4   1   0  -5  -4  -1  -8  -3   3  -4  -4  -2 -11
+L  -4  -5  -5  -7  -9  -3  -6  -7  -4   1   6  -5   2   0  -4  -5  -4  -3  -4   0  -6  -4  -3 -11
+K  -4   2   0  -2  -9  -1  -2  -4  -3  -4  -5   6   0  -9  -4  -2  -1  -7  -6  -5  -1  -1  -3 -11
+M  -3  -2  -4  -6  -8  -2  -4  -5  -5   1   2   0   9  -2  -5  -3  -2  -7  -6   1  -5  -3  -2 -11
+F  -5  -6  -5  -9  -8  -8  -9  -6  -3   0   0  -9  -2   8  -7  -4  -5  -2   4  -4  -7  -8  -5 -11
+P   0  -2  -3  -4  -5  -1  -3  -3  -2  -5  -4  -4  -5  -7   7   0  -2  -9  -8  -3  -3  -2  -2 -11
+S   1  -1   1  -1  -1  -3  -2   0  -3  -4  -5  -2  -3  -4   0   4   2  -3  -4  -3   0  -2  -1 -11
+T   1  -3   0  -2  -4  -3  -3  -2  -4  -1  -4  -1  -2  -5  -2   2   5  -8  -4  -1  -1  -3  -1 -11
+W  -8   0  -5 -10 -10  -8 -11 -10  -4  -8  -3  -7  -7  -2  -9  -3  -8  13  -2 -10  -7  -9  -7 -11
+Y  -5  -7  -3  -7  -2  -7  -6  -8  -1  -3  -4  -6  -6   4  -8  -4  -4  -2   9  -5  -4  -6  -4 -11
+V   0  -5  -4  -5  -3  -4  -4  -3  -4   3   0  -5   1  -4  -3  -3  -1 -10  -5   6  -4  -4  -2 -11
+B  -1  -3   4   5  -7   0   2  -1   0  -4  -6  -1  -5  -7  -3   0  -1  -7  -4  -4   5   2  -2 -11
+Z  -1  -1   0   2  -9   5   5  -2   1  -4  -4  -1  -3  -8  -2  -2  -3  -9  -6  -4   2   5  -2 -11
+X  -1  -3  -1  -3  -5  -2  -2  -3  -2  -2  -3  -3  -2  -5  -2  -1  -1  -7  -4  -2  -2  -2  -3 -11
+* -11 -11 -11 -11 -11 -11 -11 -11 -11 -11 -11 -11 -11 -11 -11 -11 -11 -11 -11 -11 -11 -11 -11   1
diff --git a/sources/PamBlosum/PAM80.cdi b/sources/PamBlosum/PAM80.cdi
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM80.cdi
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 80 substitution matrix, scale = 0.0693200
+#
+# Expected score = -12.6, Entropy = 1.44 bits
+#
+# Lowest score = -53, Highest score = 63
+#
+    A   R   N   D   C   Q   E   G   H   I   L   K   M   F   P   S   T   W   Y   V   B   Z   X   *
+A  21 -19  -6  -6 -19 -10  -3   1 -20 -10 -18 -18 -13 -27   1   5   5 -42 -25  -2  -6  -5  -6 -53
+R -19  37 -12 -25 -26   1 -22 -28   2 -16 -26  10  -9 -31  -8  -6 -16   1 -33 -23 -17  -7 -14 -53
+N  -6 -12  27  13 -31  -5   1  -5   8 -15 -23   2 -22 -27 -14   5  -1 -27 -13 -21  21  -1  -7 -53
+D  -6 -25  13  30 -43   0  18  -5  -6 -22 -37  -9 -30 -45 -20  -6 -10 -49 -34 -23  24  12 -13 -53
+C -19 -26 -31 -43  46 -43 -43 -29 -24 -19 -47 -44 -42 -39 -24  -5 -22 -52  -8 -17 -36 -43 -27 -53
+Q -10   1  -5   0 -43  34  12 -19  12 -22 -14  -4  -9 -39  -4 -13 -14 -39 -35 -19  -2  25 -10 -53
+E  -3 -22   1  18 -43  12  30  -9  -9 -17 -29 -10 -21 -44 -14  -9 -14 -53 -29 -18  12  24 -11 -53
+G   1 -28  -5  -5 -29 -19  -9  28 -25 -29 -34 -21 -26 -31 -15   0 -12 -49 -42 -15  -5 -12 -13 -53
+H -20   2   8  -6 -24  12  -9 -25  39 -26 -18 -14 -27 -17  -9 -14 -19 -22  -6 -19   2   4 -12 -53
+I -10 -16 -15 -22 -19 -22 -17 -29 -26  34   4 -18   5  -1 -24 -18  -3 -42 -16  16 -18 -19 -11 -53
+L -18 -26 -23 -37 -47 -14 -29 -34 -18   4  30 -25  12  -1 -22 -25 -19 -17 -19   0 -29 -20 -16 -53
+K -18  10   2  -9 -44  -4 -10 -21 -14 -18 -25  28   0 -43 -18  -8  -6 -33 -31 -26  -3  -7 -13 -53
+M -13  -9 -22 -30 -42  -9 -21 -26 -27   5  12   0  47  -8 -23 -15  -9 -37 -30   3 -26 -15 -12 -53
+F -27 -31 -27 -45 -39 -39 -44 -31 -17  -1  -1 -43  -8  41 -33 -21 -26 -10  19 -20 -34 -42 -23 -53
+P   1  -8 -14 -20 -24  -4 -14 -15  -9 -24 -22 -18 -23 -33  35   1  -8 -43 -41 -15 -17  -9 -12 -53
+S   5  -6   5  -6  -5 -13  -9   0 -14 -18 -25  -8 -15 -21   1  22   8 -15 -21 -15   0 -10  -6 -53
+T   5 -16  -1 -10 -22 -14 -14 -12 -19  -3 -19  -6  -9 -26  -8   8  27 -39 -20  -4  -5 -14  -7 -53
+W -42   1 -27 -49 -52 -39 -53 -49 -22 -42 -17 -33 -37 -10 -43 -15 -39  63 -12 -49 -35 -45 -33 -53
+Y -25 -33 -13 -34  -8 -35 -29 -42  -6 -16 -19 -31 -30  19 -41 -21 -20 -12  45 -23 -20 -31 -22 -53
+V  -2 -23 -21 -23 -17 -19 -18 -15 -19  16   0 -26   3 -20 -15 -15  -4 -49 -23  29 -22 -19 -11 -53
+B  -6 -17  21  24 -36  -2  12  -5   2 -18 -29  -3 -26 -34 -17   0  -5 -35 -20 -22  23   8 -10 -53
+Z  -5  -7  -1  12 -43  25  24 -12   4 -19 -20  -7 -15 -42  -9 -10 -14 -45 -31 -19   8  25 -11 -53
+X  -6 -14  -7 -13 -27 -10 -11 -13 -12 -11 -16 -13 -12 -23 -12  -6  -7 -33 -22 -11 -10 -11 -13 -53
+* -53 -53 -53 -53 -53 -53 -53 -53 -53 -53 -53 -53 -53 -53 -53 -53 -53 -53 -53 -53 -53 -53 -53   1
diff --git a/sources/PamBlosum/PAM90 b/sources/PamBlosum/PAM90
new file mode 100644
--- /dev/null
+++ b/sources/PamBlosum/PAM90
@@ -0,0 +1,34 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 90 substitution matrix, scale = ln(2)/2 = 0.346574
+#
+# Expected score = -2.26, Entropy = 1.30 bits
+#
+# Lowest score = -10, Highest score = 13
+#
+    A   R   N   D   C   Q   E   G   H   I   L   K   M   F   P   S   T   W   Y   V   B   Z   X   *
+A   4  -4  -1  -1  -3  -2   0   0  -4  -2  -3  -3  -2  -5   0   1   1  -8  -5   0  -1  -1  -1 -10
+R  -4   7  -2  -5  -5   0  -4  -5   1  -3  -5   2  -2  -6  -1  -1  -3   0  -6  -4  -3  -1  -2 -10
+N  -1  -2   5   3  -6  -1   0  -1   2  -3  -4   1  -4  -5  -2   1   0  -5  -2  -4   4   0  -1 -10
+D  -1  -5   3   6  -8   0   4  -1  -1  -4  -7  -2  -5  -8  -4  -1  -2  -9  -6  -4   5   3  -2 -10
+C  -3  -5  -6  -8   9  -8  -8  -5  -5  -3  -9  -8  -8  -7  -5  -1  -4 -10  -1  -3  -7  -8  -5 -10
+Q  -2   0  -1   0  -8   6   2  -3   2  -4  -3  -1  -2  -7  -1  -2  -3  -7  -6  -4   0   5  -2 -10
+E   0  -4   0   4  -8   2   6  -1  -1  -3  -5  -2  -4  -8  -2  -2  -2 -10  -6  -3   2   5  -2 -10
+G   0  -5  -1  -1  -5  -3  -1   5  -5  -5  -6  -4  -5  -6  -3   0  -2  -9  -8  -3  -1  -2  -2 -10
+H  -4   1   2  -1  -5   2  -1  -5   8  -5  -3  -2  -5  -3  -2  -3  -3  -4  -1  -4   1   1  -2 -10
+I  -2  -3  -3  -4  -3  -4  -3  -5  -5   6   1  -3   1   0  -4  -3   0  -8  -3   3  -3  -3  -2 -10
+L  -3  -5  -4  -7  -9  -3  -5  -6  -3   1   6  -5   2   0  -4  -5  -3  -3  -3   0  -5  -4  -3 -10
+K  -3   2   1  -2  -8  -1  -2  -4  -2  -3  -5   5   0  -8  -3  -1  -1  -6  -6  -5   0  -1  -2 -10
+M  -2  -2  -4  -5  -8  -2  -4  -5  -5   1   2   0   9  -1  -4  -3  -2  -7  -6   1  -5  -3  -2 -10
+F  -5  -6  -5  -8  -7  -7  -8  -6  -3   0   0  -8  -1   8  -6  -4  -5  -2   4  -4  -6  -8  -4 -10
+P   0  -1  -2  -4  -5  -1  -2  -3  -2  -4  -4  -3  -4  -6   7   0  -1  -8  -8  -3  -3  -2  -2 -10
+S   1  -1   1  -1  -1  -2  -2   0  -3  -3  -5  -1  -3  -4   0   4   2  -3  -4  -3   0  -2  -1 -10
+T   1  -3   0  -2  -4  -3  -2  -2  -3   0  -3  -1  -2  -5  -1   2   5  -7  -4  -1  -1  -2  -1 -10
+W  -8   0  -5  -9 -10  -7 -10  -9  -4  -8  -3  -6  -7  -2  -8  -3  -7  13  -2  -9  -7  -8  -6 -10
+Y  -5  -6  -2  -6  -1  -6  -6  -8  -1  -3  -3  -6  -6   4  -8  -4  -4  -2   9  -4  -4  -6  -4 -10
+V   0  -4  -4  -4  -3  -4  -3  -3  -4   3   0  -5   1  -4  -3  -3  -1  -9  -4   6  -4  -3  -2 -10
+B  -1  -3   4   5  -7   0   2  -1   1  -3  -5   0  -5  -6  -3   0  -1  -7  -4  -4   4   2  -2 -10
+Z  -1  -1   0   3  -8   5   5  -2   1  -3  -4  -1  -3  -8  -2  -2  -2  -8  -6  -3   2   5  -2 -10
+X  -1  -2  -1  -2  -5  -2  -2  -2  -2  -2  -3  -2  -2  -4  -2  -1  -1  -6  -4  -2  -2  -2  -2 -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
diff --git a/tests/succeed/httptabular.golden b/tests/succeed/httptabular.golden
--- a/tests/succeed/httptabular.golden
+++ b/tests/succeed/httptabular.golden
@@ -1,1 +1,1 @@
-BlastTabularResult {blastProgram = BlastN, blastQueryId = "Aeromonas", blastDatabase = "nt", blastHitNumber = 9, hitLines = [BlastTabularHit {queryId = "Aeromonas", subjectId = "gi|1214238400|gb|CP022186.1|", seqIdentity = 100.0, alignmentLength = 62, misMatches = 0, gapOpenScore = 0, queryStart = 1, queryEnd = 62, hitSeqStart = 4466360, hitSeqEnd = 4466299, eValue = 3.85e-22, bitScore = 113.0, subjectFrame = 0, querySeq = "", subjectSeq = ""},BlastTabularHit {queryId = "Aeromonas", subjectId = "gi|1214232668|gb|CP022181.1|", seqIdentity = 100.0, alignmentLength = 62, misMatches = 0, gapOpenScore = 0, queryStart = 1, queryEnd = 62, hitSeqStart = 4451525, hitSeqEnd = 4451464, eValue = 3.85e-22, bitScore = 113.0, subjectFrame = 0, querySeq = "", subjectSeq = ""},BlastTabularHit {queryId = "Aeromonas", subjectId = "gi|1214226508|gb|CP022175.1|", seqIdentity = 100.0, alignmentLength = 62, misMatches = 0, gapOpenScore = 0, queryStart = 1, queryEnd = 62, hitSeqStart = 4459524, hitSeqEnd = 4459463, eValue = 3.85e-22, bitScore = 113.0, subjectFrame = 0, querySeq = "", subjectSeq = ""},BlastTabularHit {queryId = "Aeromonas", subjectId = "gi|1202187378|gb|CP021654.1|", seqIdentity = 100.0, alignmentLength = 62, misMatches = 0, gapOpenScore = 0, queryStart = 1, queryEnd = 62, hitSeqStart = 4130312, hitSeqEnd = 4130373, eValue = 3.85e-22, bitScore = 113.0, subjectFrame = 0, querySeq = "", subjectSeq = ""},BlastTabularHit {queryId = "Aeromonas", subjectId = "gi|142849896|gb|CP000644.1|", seqIdentity = 100.0, alignmentLength = 62, misMatches = 0, gapOpenScore = 0, queryStart = 1, queryEnd = 62, hitSeqStart = 197460, hitSeqEnd = 197521, eValue = 3.85e-22, bitScore = 113.0, subjectFrame = 0, querySeq = "", subjectSeq = ""},BlastTabularHit {queryId = "Aeromonas", subjectId = "gi|1024308492|gb|CP015448.1|", seqIdentity = 95.161, alignmentLength = 62, misMatches = 2, gapOpenScore = 1, queryStart = 1, queryEnd = 62, hitSeqStart = 690724, hitSeqEnd = 690664, eValue = 1.03e-16, bitScore = 95.1, subjectFrame = 0, querySeq = "", subjectSeq = ""},BlastTabularHit {queryId = "Aeromonas", subjectId = "gi|1024268833|gb|CP014774.1|", seqIdentity = 95.161, alignmentLength = 62, misMatches = 2, gapOpenScore = 1, queryStart = 1, queryEnd = 62, hitSeqStart = 2959093, hitSeqEnd = 2959153, eValue = 1.03e-16, bitScore = 95.1, subjectFrame = 0, querySeq = "", subjectSeq = ""},BlastTabularHit {queryId = "Aeromonas", subjectId = "gi|1006067808|gb|CP012504.1|", seqIdentity = 95.161, alignmentLength = 62, misMatches = 2, gapOpenScore = 1, queryStart = 1, queryEnd = 62, hitSeqStart = 391011, hitSeqEnd = 391071, eValue = 1.03e-16, bitScore = 95.1, subjectFrame = 0, querySeq = "", subjectSeq = ""},BlastTabularHit {queryId = "Aeromonas", subjectId = "gi|328802836|gb|CP002607.1|", seqIdentity = 95.161, alignmentLength = 62, misMatches = 2, gapOpenScore = 1, queryStart = 1, queryEnd = 62, hitSeqStart = 167317, hitSeqEnd = 167377, eValue = 1.03e-16, bitScore = 95.1, subjectFrame = 0, querySeq = "", subjectSeq = ""}]}
+BlastTabularResult {_blastProgram = BlastN, _blastQueryId = "Aeromonas", _blastDatabase = "nt", _blastHitNumber = 9, _hitLines = [BlastTabularHit {_queryId = "Aeromonas", _subjectId = "gi|1214238400|gb|CP022186.1|", _seqIdentity = 100.0, _alignmentLength = 62, _misMatches = 0, _gapOpenScore = 0, _queryStart = 1, _queryEnd = 62, _hitSeqStart = 4466360, _hitSeqEnd = 4466299, _eValue = 3.85e-22, _bitScore = 113.0, _subjectFrame = 0, _querySeq = "", _subjectSeq = ""},BlastTabularHit {_queryId = "Aeromonas", _subjectId = "gi|1214232668|gb|CP022181.1|", _seqIdentity = 100.0, _alignmentLength = 62, _misMatches = 0, _gapOpenScore = 0, _queryStart = 1, _queryEnd = 62, _hitSeqStart = 4451525, _hitSeqEnd = 4451464, _eValue = 3.85e-22, _bitScore = 113.0, _subjectFrame = 0, _querySeq = "", _subjectSeq = ""},BlastTabularHit {_queryId = "Aeromonas", _subjectId = "gi|1214226508|gb|CP022175.1|", _seqIdentity = 100.0, _alignmentLength = 62, _misMatches = 0, _gapOpenScore = 0, _queryStart = 1, _queryEnd = 62, _hitSeqStart = 4459524, _hitSeqEnd = 4459463, _eValue = 3.85e-22, _bitScore = 113.0, _subjectFrame = 0, _querySeq = "", _subjectSeq = ""},BlastTabularHit {_queryId = "Aeromonas", _subjectId = "gi|1202187378|gb|CP021654.1|", _seqIdentity = 100.0, _alignmentLength = 62, _misMatches = 0, _gapOpenScore = 0, _queryStart = 1, _queryEnd = 62, _hitSeqStart = 4130312, _hitSeqEnd = 4130373, _eValue = 3.85e-22, _bitScore = 113.0, _subjectFrame = 0, _querySeq = "", _subjectSeq = ""},BlastTabularHit {_queryId = "Aeromonas", _subjectId = "gi|142849896|gb|CP000644.1|", _seqIdentity = 100.0, _alignmentLength = 62, _misMatches = 0, _gapOpenScore = 0, _queryStart = 1, _queryEnd = 62, _hitSeqStart = 197460, _hitSeqEnd = 197521, _eValue = 3.85e-22, _bitScore = 113.0, _subjectFrame = 0, _querySeq = "", _subjectSeq = ""},BlastTabularHit {_queryId = "Aeromonas", _subjectId = "gi|1024308492|gb|CP015448.1|", _seqIdentity = 95.161, _alignmentLength = 62, _misMatches = 2, _gapOpenScore = 1, _queryStart = 1, _queryEnd = 62, _hitSeqStart = 690724, _hitSeqEnd = 690664, _eValue = 1.03e-16, _bitScore = 95.1, _subjectFrame = 0, _querySeq = "", _subjectSeq = ""},BlastTabularHit {_queryId = "Aeromonas", _subjectId = "gi|1024268833|gb|CP014774.1|", _seqIdentity = 95.161, _alignmentLength = 62, _misMatches = 2, _gapOpenScore = 1, _queryStart = 1, _queryEnd = 62, _hitSeqStart = 2959093, _hitSeqEnd = 2959153, _eValue = 1.03e-16, _bitScore = 95.1, _subjectFrame = 0, _querySeq = "", _subjectSeq = ""},BlastTabularHit {_queryId = "Aeromonas", _subjectId = "gi|1006067808|gb|CP012504.1|", _seqIdentity = 95.161, _alignmentLength = 62, _misMatches = 2, _gapOpenScore = 1, _queryStart = 1, _queryEnd = 62, _hitSeqStart = 391011, _hitSeqEnd = 391071, _eValue = 1.03e-16, _bitScore = 95.1, _subjectFrame = 0, _querySeq = "", _subjectSeq = ""},BlastTabularHit {_queryId = "Aeromonas", _subjectId = "gi|328802836|gb|CP002607.1|", _seqIdentity = 95.161, _alignmentLength = 62, _misMatches = 2, _gapOpenScore = 1, _queryStart = 1, _queryEnd = 62, _hitSeqStart = 167317, _hitSeqEnd = 167377, _eValue = 1.03e-16, _bitScore = 95.1, _subjectFrame = 0, _querySeq = "", _subjectSeq = ""}]}
diff --git a/tests/succeed/tabular.golden b/tests/succeed/tabular.golden
--- a/tests/succeed/tabular.golden
+++ b/tests/succeed/tabular.golden
@@ -1,1 +1,1 @@
-BlastTabularResult {blastProgram = BlastP, blastQueryId = "UniRef50_A0A009DWD5", blastDatabase = "uniprot_sprot.fasta", blastHitNumber = 0, hitLines = []}BlastTabularResult {blastProgram = BlastP, blastQueryId = "UniRef50_A0A009DWJ5", blastDatabase = "uniprot_sprot.fasta", blastHitNumber = 0, hitLines = []}BlastTabularResult {blastProgram = BlastP, blastQueryId = "UniRef50_A0A009DX03", blastDatabase = "uniprot_sprot.fasta", blastHitNumber = 0, hitLines = []}BlastTabularResult {blastProgram = BlastP, blastQueryId = "UniRef50_A0A009DYA3", blastDatabase = "uniprot_sprot.fasta", blastHitNumber = 0, hitLines = []}BlastTabularResult {blastProgram = BlastP, blastQueryId = "UniRef50_A0A009DYI3", blastDatabase = "uniprot_sprot.fasta", blastHitNumber = 3, hitLines = [BlastTabularHit {queryId = "UniRef50_A0A009DYI3", subjectId = "sp|P55729|Y4ZB_RHISN", seqIdentity = 39.535, alignmentLength = 86, misMatches = 52, gapOpenScore = 0, queryStart = 1, queryEnd = 86, hitSeqStart = 252, hitSeqEnd = 337, eValue = 3.7e-16, bitScore = 74.7, subjectFrame = 1, querySeq = "AIYKDRWKVELFFKAIKQNLKLKAFLGRSRNAIQTQIWIAMIAYLLVSFAQHLGKTGWTVQRLLRIIQVNLFERRTLKTLFSPDKI", subjectSeq = "ALYKGRWQIELLFRWIKQHLKIRSFLGNNDNAVRLQLFAAMIAYALLRIAARLNRITMPILRFTDLVIRCLFERRDIAAIERPPPV"},BlastTabularHit {queryId = "UniRef50_A0A009DYI3", subjectId = "sp|Q55566|T4SA_SYNY3", seqIdentity = 36.986, alignmentLength = 73, misMatches = 46, gapOpenScore = 0, queryStart = 2, queryEnd = 74, hitSeqStart = 253, hitSeqEnd = 325, eValue = 1.55e-7, bitScore = 50.8, subjectFrame = 1, querySeq = "IYKDRWKVELFFKAIKQNLKLKAFLGRSRNAIQTQIWIAMIAYLLVSFAQHLGKTGWTVQRLLRIIQVNLFER", subjectSeq = "IYKKRWQIELLWKFLKMHLKLNRLIAKNENAIGIQIYTCIIAYLILKLLVIPKEAGTTMLDKLRYLQAFMCEK"},BlastTabularHit {queryId = "UniRef50_A0A009DYI3", subjectId = "sp|Q45620|T5377_GEOSE", seqIdentity = 41.304, alignmentLength = 46, misMatches = 27, gapOpenScore = 0, queryStart = 2, queryEnd = 47, hitSeqStart = 276, hitSeqEnd = 321, eValue = 4.84e-6, bitScore = 46.6, subjectFrame = 1, querySeq = "IYKDRWKVELFFKAIKQNLKLKAFLGRSRNAIQTQIWIAMIAYLLV", subjectSeq = "MYQQRWAVEVFFRWVKQYLNVPTLFGTTENAVYNQLFAAFIAYVLL"}]}BlastTabularResult {blastProgram = BlastP, blastQueryId = "UniRef50_A0A009DZQ8", blastDatabase = "uniprot_sprot.fasta", blastHitNumber = 0, hitLines = []}BlastTabularResult {blastProgram = BlastP, blastQueryId = "UniRef50_A0A009E0R3", blastDatabase = "uniprot_sprot.fasta", blastHitNumber = 1, hitLines = [BlastTabularHit {queryId = "UniRef50_A0A009E0R3", subjectId = "sp|P50358|Y4SN_RHISN", seqIdentity = 39.241, alignmentLength = 79, misMatches = 48, gapOpenScore = 0, queryStart = 4, queryEnd = 82, hitSeqStart = 28, hitSeqEnd = 106, eValue = 6.58e-15, bitScore = 68.9, subjectFrame = 1, querySeq = "PCFYCSIFLSIWLYRIRTGCPWRDIPSCFGHSNSIFKRFNRWSSSGKLLRLFKLLASCPDMEWIFIDGSHVRAHQHSAG", subjectSeq = "PRTNNRLFLDALLWMARSGGRWRDLPERLGDYRAVKRRYYRWIEMGVLDEMLAVLAREADLEWLMIDSTIVRAHQHAAG"}]}BlastTabularResult {blastProgram = BlastP, blastQueryId = "UniRef50_A0A009E1D7", blastDatabase = "uniprot_sprot.fasta", blastHitNumber = 0, hitLines = []}BlastTabularResult {blastProgram = BlastP, blastQueryId = "UniRef50_A0A009E284", blastDatabase = "uniprot_sprot.fasta", blastHitNumber = 0, hitLines = []}BlastTabularResult {blastProgram = BlastP, blastQueryId = "UniRef50_A0A009E2R5", blastDatabase = "uniprot_sprot.fasta", blastHitNumber = 0, hitLines = []}BlastTabularResult {blastProgram = BlastP, blastQueryId = "UniRef50_A0A009E3M2", blastDatabase = "uniprot_sprot.fasta", blastHitNumber = 8, hitLines = [BlastTabularHit {queryId = "UniRef50_A0A009E3M2", subjectId = "sp|Q0P9C7|PGLJ_CAMJE", seqIdentity = 32.044, alignmentLength = 181, misMatches = 119, gapOpenScore = 2, queryStart = 98, queryEnd = 274, hitSeqStart = 152, hitSeqEnd = 332, eValue = 1.96e-20, bitScore = 93.6, subjectFrame = 1, querySeq = "SQGVEDDLKETLGDLPN-VSTIYNAFDQHYMQNQANEFQPELGKYLLHVGAFCYAKAHDTLIKAYAESSQQIPLYLLGKGELEADIKQLIYSLNLEKKVHFLGFNKNPYPFIKNAQALILSSRYEGFVRVISEALALGTPVISTNCPSGPNEILSPNN---LVAVDDIKALAEKMNQVMQN", subjectSeq = "SKGNLEDLVQNFSISPKKCEILYNAIDLENIGQKALEDIALKDKFILSVGRLDKGKNHALLIRAYARLKTDLKLVILGEGVLKDELLALIKELNLEEKVLLLGFDNNPYKYMAKCEFFAFASVFEGFSNVLIESLACSCAVVCTDHKSGARELFGDDEFGLLVEVDNENSMFQGLKTMLED"},BlastTabularHit {queryId = "UniRef50_A0A009E3M2", subjectId = "sp|Q58459|Y1059_METJA", seqIdentity = 38.596, alignmentLength = 114, misMatches = 67, gapOpenScore = 1, queryStart = 142, queryEnd = 252, hitSeqStart = 205, hitSeqEnd = 318, eValue = 2.28e-20, bitScore = 93.6, subjectFrame = 1, querySeq = "LLHVGAFCYAKAHDTLIKAYAESSQQIP---LYLLGKGELEADIKQLIYSLNLEKKVHFLGFNKNPYPFIKNAQALILSSRYEGFVRVISEALALGTPVISTNCPSGPNEILSP", subjectSeq = "FINIGRLTEQKGQWFLIRSFKRVTEKYPNAKLIILGDGELKNKLQELINKLNLQNNVYLLGMQKNPFKFLKHSNCFVFSSLWEGLPNTVIEALSLNLPVISTDCKTGPREILCP"},BlastTabularHit {queryId = "UniRef50_A0A009E3M2", subjectId = "sp|Q9R9N1|LPSE_RHIME", seqIdentity = 26.154, alignmentLength = 195, misMatches = 129, gapOpenScore = 7, queryStart = 89, queryEnd = 274, hitSeqStart = 116, hitSeqEnd = 304, eValue = 5.08e-12, bitScore = 68.9, subjectFrame = 1, querySeq = "YKKHPCI-CVSQGVEDDLKETLGDLPNVSTIYN--AFDQHYMQNQANEFQPELGKYLLHVGAFCYAKAHDTLIKAYAESSQQIP---LYLLGKGELEADIKQLIYSLNLEKKVHFLGFNKNPYPFIKNAQALILSSRYEGFVRVISEALALGTPVISTNCPSGPNEILSPNN---LVAVDDIKALAEKMNQVMQN", subjectSeq = "FRNTDCIVCNTPGIAERVSD-LGWKREIRVISNFTGTGRVVAVDRAKLDTPADAPVVMSMGRFVERKGFHTLIEAVA----RLPGVYLWLLGDGEERDNLHKLATDLGVSGRVRFAGWQDDTRPFLAAVDVFVMSSSHEPLGNVILESWAQGTPVVSTRS-EGPQWFMRDGENGLMVDIGDAEGFARAIEQIVAD"},BlastTabularHit {queryId = "UniRef50_A0A009E3M2", subjectId = "sp|Q81ST7|BSHA_BACAN", seqIdentity = 25.694, alignmentLength = 288, misMatches = 163, gapOpenScore = 11, queryStart = 1, queryEnd = 274, hitSeqStart = 87, hitSeqEnd = 337, eValue = 2.94e-11, bitScore = 67.0, subjectFrame = 1, querySeq = "IDIKHWYYKLFIIITWRYQYIAKQFDQYVLKNIGQPDLILSNLIQTNRIL--SNSKLDNIAYVIRNTFSKENENALLKNPNKVINRYREIYKKHPCICVSQGVEDDLKETLGDLPN--VSTIYNAFDQH-YMQNQANEFQPELG-----KYLLHVGAFCYAKAHDTLIKAYAESSQQI--PLYLLGKGELEADIKQLIYSLNLEKKVHFLGFNKNPYPFIKNAQALILSSRYEGFVRVISEALALGTPVISTNCPSGPNEILSPNN--LVAVDDIKALAEKMNQVMQN", subjectSeq = "LDILHVHYAIPHAICA---YLAKQM-------IGERIKIVTTLHGTDITVLGSDPSLNNL---IR--FGIEQSDVVTAVSHSLINETHELVK----------------------PNKDIQTVYNFIDERVYFKRDMTQLKKEYGISESEKILIHISNFRKVKRVQDVVQAFAKIVTEVDAKLLLVGDGPEFCTILQLVKNLHIEDRVLFLGKQDNVAELLAMSDLMLLLSEKESFGLVLLEAMACGVPCIGTRVGGIPEVIQHGDTGYLCEVGDTTGVADQAIQLLKD"},BlastTabularHit {queryId = "UniRef50_A0A009E3M2", subjectId = "sp|Q06994|RFAB_SALTY", seqIdentity = 24.675, alignmentLength = 231, misMatches = 148, gapOpenScore = 9, queryStart = 89, queryEnd = 300, hitSeqStart = 124, hitSeqEnd = 347, eValue = 2.12e-10, bitScore = 64.3, subjectFrame = 1, querySeq = "YKKHP-CI-------CVSQGVEDDLKETLGDLPNVSTIYNAFD-QHYMQNQANEFQPELGKYLLHVG--AFCYAKAHDTLIKAYAESSQQIPLYLLGKGELEADIKQLIYSLNLEKKVHFLGFNKNPYPF----IKNAQALILSSRYEGFVRVISEALALGTPVISTNCPSGPNEILSP---NNLVAVDDIKALAEKMNQVMQNPNDFYTPFNLNFLPCNIAKQY-LDYFK", subjectSeq = "HKKHAECITYADYHLAISSGIKEQIMARGISAQDISVVYNPVSIKTVIVPPPERDKPAV---FLYVGRLKFEGQKRVKDLFDGLARTTGEWQLHIIGDGSDFEKCQAYSRELGIEQRVIWYGWQSAPWQVVQQKIKNVTALLLTSAFEGFPMTLLEAMSYGIPCISSDCMSGPRDMIKPGLNGELYTPGAIDDFVGHLNRVISGE----VKYQHDIIPGTIERFYDVLYFK"},BlastTabularHit {queryId = "UniRef50_A0A009E3M2", subjectId = "sp|P27127|RFAB_ECOLI", seqIdentity = 28.099, alignmentLength = 121, misMatches = 80, gapOpenScore = 2, queryStart = 157, queryEnd = 270, hitSeqStart = 198, hitSeqEnd = 318, eValue = 2.33e-9, bitScore = 61.2, subjectFrame = 1, querySeq = "LIKAYAESSQQIPLYLLGKGELEADIKQLIYSLNLEKKVHFLGFNKNPYPF----IKNAQALILSSRYEGFVRVISEALALGTPVISTNCPSGPNEILSPN---NLVAVDDIKALAEKMNQ", subjectSeq = "LLDGLSQAKGNWKLHVLGDGSDFEKCQAYGRELNIDDRIVWYGWQQYPWELVQQDIEKVSALLLTSSFEGFPMTLLEALSWGIPCISADCVSGPADIIQPDVNGHLYQPGDIAGFVTLLNK"},BlastTabularHit {queryId = "UniRef50_A0A009E3M2", subjectId = "sp|O05083|Y1698_HAEIN", seqIdentity = 26.056, alignmentLength = 142, misMatches = 99, gapOpenScore = 2, queryStart = 140, queryEnd = 275, hitSeqStart = 182, hitSeqEnd = 323, eValue = 8.24e-9, bitScore = 59.3, subjectFrame = 1, querySeq = "KYLLHVGAFCYAKAHDTLIKAYAESSQQIP---LYLLGKGELEADIKQLIYSLNLEKKVHFLGFNKNPYPFIKNAQALILSSRYEGFVRVISEALALGTPVISTNCPSGPNEILSPNN---LVAVDDIKALAEKMNQVMQNP", subjectSeq = "KTILSVGHLFSYKGFDYLLKVWQVLAKKYPDWNLKIVGSGEEEENLKNLAKALDIEDSVNFIPRTNDVSFYYESSSIYCLPSQTEGLPLVVIEAMAFGLPIVAFNCSPGVKQLVEHKENGFLCEQNNIEEMVKGLDLLINNP"},BlastTabularHit {queryId = "UniRef50_A0A009E3M2", subjectId = "sp|Q9R9N0|LPSD_RHIME", seqIdentity = 24.419, alignmentLength = 172, misMatches = 118, gapOpenScore = 4, queryStart = 142, queryEnd = 303, hitSeqStart = 171, hitSeqEnd = 340, eValue = 1.3e-8, bitScore = 58.9, subjectFrame = 1, querySeq = "LLHVGAFCYAKAHDTLIKAYAESSQQIPLYLLGKGELEADIKQLIYSLNLEKKVHFLGFNKNPYPFIKNAQALILSSRYEGFVRVISEALALGTPVISTNCPSGPNEILSPNN---LVAVDDIKALAEKMNQVMQNP-------NDFYTPFNLNFLPCNIAKQYLDYFKINI", subjectSeq = "VVGMGRFVKRKGFAGLIRAVKEV-ENTYLWLVGDGPEREQLEQLTDELGLRDRVRFTGWQTNAYGFLSAGDAFVINSSHEPLGNVCFEGWGAGKPTIASRA-EGPSWVMTHESDALMVDCGDDVGLAAAIRRLRDDPALRERLSAGGSETLRTRFSEKAITDAYLDLFDRGV"}]}
+BlastTabularResult {_blastProgram = BlastP, _blastQueryId = "UniRef50_A0A009DWD5", _blastDatabase = "uniprot_sprot.fasta", _blastHitNumber = 0, _hitLines = []}BlastTabularResult {_blastProgram = BlastP, _blastQueryId = "UniRef50_A0A009DWJ5", _blastDatabase = "uniprot_sprot.fasta", _blastHitNumber = 0, _hitLines = []}BlastTabularResult {_blastProgram = BlastP, _blastQueryId = "UniRef50_A0A009DX03", _blastDatabase = "uniprot_sprot.fasta", _blastHitNumber = 0, _hitLines = []}BlastTabularResult {_blastProgram = BlastP, _blastQueryId = "UniRef50_A0A009DYA3", _blastDatabase = "uniprot_sprot.fasta", _blastHitNumber = 0, _hitLines = []}BlastTabularResult {_blastProgram = BlastP, _blastQueryId = "UniRef50_A0A009DYI3", _blastDatabase = "uniprot_sprot.fasta", _blastHitNumber = 3, _hitLines = [BlastTabularHit {_queryId = "UniRef50_A0A009DYI3", _subjectId = "sp|P55729|Y4ZB_RHISN", _seqIdentity = 39.535, _alignmentLength = 86, _misMatches = 52, _gapOpenScore = 0, _queryStart = 1, _queryEnd = 86, _hitSeqStart = 252, _hitSeqEnd = 337, _eValue = 3.7e-16, _bitScore = 74.7, _subjectFrame = 1, _querySeq = "AIYKDRWKVELFFKAIKQNLKLKAFLGRSRNAIQTQIWIAMIAYLLVSFAQHLGKTGWTVQRLLRIIQVNLFERRTLKTLFSPDKI", _subjectSeq = "ALYKGRWQIELLFRWIKQHLKIRSFLGNNDNAVRLQLFAAMIAYALLRIAARLNRITMPILRFTDLVIRCLFERRDIAAIERPPPV"},BlastTabularHit {_queryId = "UniRef50_A0A009DYI3", _subjectId = "sp|Q55566|T4SA_SYNY3", _seqIdentity = 36.986, _alignmentLength = 73, _misMatches = 46, _gapOpenScore = 0, _queryStart = 2, _queryEnd = 74, _hitSeqStart = 253, _hitSeqEnd = 325, _eValue = 1.55e-7, _bitScore = 50.8, _subjectFrame = 1, _querySeq = "IYKDRWKVELFFKAIKQNLKLKAFLGRSRNAIQTQIWIAMIAYLLVSFAQHLGKTGWTVQRLLRIIQVNLFER", _subjectSeq = "IYKKRWQIELLWKFLKMHLKLNRLIAKNENAIGIQIYTCIIAYLILKLLVIPKEAGTTMLDKLRYLQAFMCEK"},BlastTabularHit {_queryId = "UniRef50_A0A009DYI3", _subjectId = "sp|Q45620|T5377_GEOSE", _seqIdentity = 41.304, _alignmentLength = 46, _misMatches = 27, _gapOpenScore = 0, _queryStart = 2, _queryEnd = 47, _hitSeqStart = 276, _hitSeqEnd = 321, _eValue = 4.84e-6, _bitScore = 46.6, _subjectFrame = 1, _querySeq = "IYKDRWKVELFFKAIKQNLKLKAFLGRSRNAIQTQIWIAMIAYLLV", _subjectSeq = "MYQQRWAVEVFFRWVKQYLNVPTLFGTTENAVYNQLFAAFIAYVLL"}]}BlastTabularResult {_blastProgram = BlastP, _blastQueryId = "UniRef50_A0A009DZQ8", _blastDatabase = "uniprot_sprot.fasta", _blastHitNumber = 0, _hitLines = []}BlastTabularResult {_blastProgram = BlastP, _blastQueryId = "UniRef50_A0A009E0R3", _blastDatabase = "uniprot_sprot.fasta", _blastHitNumber = 1, _hitLines = [BlastTabularHit {_queryId = "UniRef50_A0A009E0R3", _subjectId = "sp|P50358|Y4SN_RHISN", _seqIdentity = 39.241, _alignmentLength = 79, _misMatches = 48, _gapOpenScore = 0, _queryStart = 4, _queryEnd = 82, _hitSeqStart = 28, _hitSeqEnd = 106, _eValue = 6.58e-15, _bitScore = 68.9, _subjectFrame = 1, _querySeq = "PCFYCSIFLSIWLYRIRTGCPWRDIPSCFGHSNSIFKRFNRWSSSGKLLRLFKLLASCPDMEWIFIDGSHVRAHQHSAG", _subjectSeq = "PRTNNRLFLDALLWMARSGGRWRDLPERLGDYRAVKRRYYRWIEMGVLDEMLAVLAREADLEWLMIDSTIVRAHQHAAG"}]}BlastTabularResult {_blastProgram = BlastP, _blastQueryId = "UniRef50_A0A009E1D7", _blastDatabase = "uniprot_sprot.fasta", _blastHitNumber = 0, _hitLines = []}BlastTabularResult {_blastProgram = BlastP, _blastQueryId = "UniRef50_A0A009E284", _blastDatabase = "uniprot_sprot.fasta", _blastHitNumber = 0, _hitLines = []}BlastTabularResult {_blastProgram = BlastP, _blastQueryId = "UniRef50_A0A009E2R5", _blastDatabase = "uniprot_sprot.fasta", _blastHitNumber = 0, _hitLines = []}BlastTabularResult {_blastProgram = BlastP, _blastQueryId = "UniRef50_A0A009E3M2", _blastDatabase = "uniprot_sprot.fasta", _blastHitNumber = 8, _hitLines = [BlastTabularHit {_queryId = "UniRef50_A0A009E3M2", _subjectId = "sp|Q0P9C7|PGLJ_CAMJE", _seqIdentity = 32.044, _alignmentLength = 181, _misMatches = 119, _gapOpenScore = 2, _queryStart = 98, _queryEnd = 274, _hitSeqStart = 152, _hitSeqEnd = 332, _eValue = 1.96e-20, _bitScore = 93.6, _subjectFrame = 1, _querySeq = "SQGVEDDLKETLGDLPN-VSTIYNAFDQHYMQNQANEFQPELGKYLLHVGAFCYAKAHDTLIKAYAESSQQIPLYLLGKGELEADIKQLIYSLNLEKKVHFLGFNKNPYPFIKNAQALILSSRYEGFVRVISEALALGTPVISTNCPSGPNEILSPNN---LVAVDDIKALAEKMNQVMQN", _subjectSeq = "SKGNLEDLVQNFSISPKKCEILYNAIDLENIGQKALEDIALKDKFILSVGRLDKGKNHALLIRAYARLKTDLKLVILGEGVLKDELLALIKELNLEEKVLLLGFDNNPYKYMAKCEFFAFASVFEGFSNVLIESLACSCAVVCTDHKSGARELFGDDEFGLLVEVDNENSMFQGLKTMLED"},BlastTabularHit {_queryId = "UniRef50_A0A009E3M2", _subjectId = "sp|Q58459|Y1059_METJA", _seqIdentity = 38.596, _alignmentLength = 114, _misMatches = 67, _gapOpenScore = 1, _queryStart = 142, _queryEnd = 252, _hitSeqStart = 205, _hitSeqEnd = 318, _eValue = 2.28e-20, _bitScore = 93.6, _subjectFrame = 1, _querySeq = "LLHVGAFCYAKAHDTLIKAYAESSQQIP---LYLLGKGELEADIKQLIYSLNLEKKVHFLGFNKNPYPFIKNAQALILSSRYEGFVRVISEALALGTPVISTNCPSGPNEILSP", _subjectSeq = "FINIGRLTEQKGQWFLIRSFKRVTEKYPNAKLIILGDGELKNKLQELINKLNLQNNVYLLGMQKNPFKFLKHSNCFVFSSLWEGLPNTVIEALSLNLPVISTDCKTGPREILCP"},BlastTabularHit {_queryId = "UniRef50_A0A009E3M2", _subjectId = "sp|Q9R9N1|LPSE_RHIME", _seqIdentity = 26.154, _alignmentLength = 195, _misMatches = 129, _gapOpenScore = 7, _queryStart = 89, _queryEnd = 274, _hitSeqStart = 116, _hitSeqEnd = 304, _eValue = 5.08e-12, _bitScore = 68.9, _subjectFrame = 1, _querySeq = "YKKHPCI-CVSQGVEDDLKETLGDLPNVSTIYN--AFDQHYMQNQANEFQPELGKYLLHVGAFCYAKAHDTLIKAYAESSQQIP---LYLLGKGELEADIKQLIYSLNLEKKVHFLGFNKNPYPFIKNAQALILSSRYEGFVRVISEALALGTPVISTNCPSGPNEILSPNN---LVAVDDIKALAEKMNQVMQN", _subjectSeq = "FRNTDCIVCNTPGIAERVSD-LGWKREIRVISNFTGTGRVVAVDRAKLDTPADAPVVMSMGRFVERKGFHTLIEAVA----RLPGVYLWLLGDGEERDNLHKLATDLGVSGRVRFAGWQDDTRPFLAAVDVFVMSSSHEPLGNVILESWAQGTPVVSTRS-EGPQWFMRDGENGLMVDIGDAEGFARAIEQIVAD"},BlastTabularHit {_queryId = "UniRef50_A0A009E3M2", _subjectId = "sp|Q81ST7|BSHA_BACAN", _seqIdentity = 25.694, _alignmentLength = 288, _misMatches = 163, _gapOpenScore = 11, _queryStart = 1, _queryEnd = 274, _hitSeqStart = 87, _hitSeqEnd = 337, _eValue = 2.94e-11, _bitScore = 67.0, _subjectFrame = 1, _querySeq = "IDIKHWYYKLFIIITWRYQYIAKQFDQYVLKNIGQPDLILSNLIQTNRIL--SNSKLDNIAYVIRNTFSKENENALLKNPNKVINRYREIYKKHPCICVSQGVEDDLKETLGDLPN--VSTIYNAFDQH-YMQNQANEFQPELG-----KYLLHVGAFCYAKAHDTLIKAYAESSQQI--PLYLLGKGELEADIKQLIYSLNLEKKVHFLGFNKNPYPFIKNAQALILSSRYEGFVRVISEALALGTPVISTNCPSGPNEILSPNN--LVAVDDIKALAEKMNQVMQN", _subjectSeq = "LDILHVHYAIPHAICA---YLAKQM-------IGERIKIVTTLHGTDITVLGSDPSLNNL---IR--FGIEQSDVVTAVSHSLINETHELVK----------------------PNKDIQTVYNFIDERVYFKRDMTQLKKEYGISESEKILIHISNFRKVKRVQDVVQAFAKIVTEVDAKLLLVGDGPEFCTILQLVKNLHIEDRVLFLGKQDNVAELLAMSDLMLLLSEKESFGLVLLEAMACGVPCIGTRVGGIPEVIQHGDTGYLCEVGDTTGVADQAIQLLKD"},BlastTabularHit {_queryId = "UniRef50_A0A009E3M2", _subjectId = "sp|Q06994|RFAB_SALTY", _seqIdentity = 24.675, _alignmentLength = 231, _misMatches = 148, _gapOpenScore = 9, _queryStart = 89, _queryEnd = 300, _hitSeqStart = 124, _hitSeqEnd = 347, _eValue = 2.12e-10, _bitScore = 64.3, _subjectFrame = 1, _querySeq = "YKKHP-CI-------CVSQGVEDDLKETLGDLPNVSTIYNAFD-QHYMQNQANEFQPELGKYLLHVG--AFCYAKAHDTLIKAYAESSQQIPLYLLGKGELEADIKQLIYSLNLEKKVHFLGFNKNPYPF----IKNAQALILSSRYEGFVRVISEALALGTPVISTNCPSGPNEILSP---NNLVAVDDIKALAEKMNQVMQNPNDFYTPFNLNFLPCNIAKQY-LDYFK", _subjectSeq = "HKKHAECITYADYHLAISSGIKEQIMARGISAQDISVVYNPVSIKTVIVPPPERDKPAV---FLYVGRLKFEGQKRVKDLFDGLARTTGEWQLHIIGDGSDFEKCQAYSRELGIEQRVIWYGWQSAPWQVVQQKIKNVTALLLTSAFEGFPMTLLEAMSYGIPCISSDCMSGPRDMIKPGLNGELYTPGAIDDFVGHLNRVISGE----VKYQHDIIPGTIERFYDVLYFK"},BlastTabularHit {_queryId = "UniRef50_A0A009E3M2", _subjectId = "sp|P27127|RFAB_ECOLI", _seqIdentity = 28.099, _alignmentLength = 121, _misMatches = 80, _gapOpenScore = 2, _queryStart = 157, _queryEnd = 270, _hitSeqStart = 198, _hitSeqEnd = 318, _eValue = 2.33e-9, _bitScore = 61.2, _subjectFrame = 1, _querySeq = "LIKAYAESSQQIPLYLLGKGELEADIKQLIYSLNLEKKVHFLGFNKNPYPF----IKNAQALILSSRYEGFVRVISEALALGTPVISTNCPSGPNEILSPN---NLVAVDDIKALAEKMNQ", _subjectSeq = "LLDGLSQAKGNWKLHVLGDGSDFEKCQAYGRELNIDDRIVWYGWQQYPWELVQQDIEKVSALLLTSSFEGFPMTLLEALSWGIPCISADCVSGPADIIQPDVNGHLYQPGDIAGFVTLLNK"},BlastTabularHit {_queryId = "UniRef50_A0A009E3M2", _subjectId = "sp|O05083|Y1698_HAEIN", _seqIdentity = 26.056, _alignmentLength = 142, _misMatches = 99, _gapOpenScore = 2, _queryStart = 140, _queryEnd = 275, _hitSeqStart = 182, _hitSeqEnd = 323, _eValue = 8.24e-9, _bitScore = 59.3, _subjectFrame = 1, _querySeq = "KYLLHVGAFCYAKAHDTLIKAYAESSQQIP---LYLLGKGELEADIKQLIYSLNLEKKVHFLGFNKNPYPFIKNAQALILSSRYEGFVRVISEALALGTPVISTNCPSGPNEILSPNN---LVAVDDIKALAEKMNQVMQNP", _subjectSeq = "KTILSVGHLFSYKGFDYLLKVWQVLAKKYPDWNLKIVGSGEEEENLKNLAKALDIEDSVNFIPRTNDVSFYYESSSIYCLPSQTEGLPLVVIEAMAFGLPIVAFNCSPGVKQLVEHKENGFLCEQNNIEEMVKGLDLLINNP"},BlastTabularHit {_queryId = "UniRef50_A0A009E3M2", _subjectId = "sp|Q9R9N0|LPSD_RHIME", _seqIdentity = 24.419, _alignmentLength = 172, _misMatches = 118, _gapOpenScore = 4, _queryStart = 142, _queryEnd = 303, _hitSeqStart = 171, _hitSeqEnd = 340, _eValue = 1.3e-8, _bitScore = 58.9, _subjectFrame = 1, _querySeq = "LLHVGAFCYAKAHDTLIKAYAESSQQIPLYLLGKGELEADIKQLIYSLNLEKKVHFLGFNKNPYPFIKNAQALILSSRYEGFVRVISEALALGTPVISTNCPSGPNEILSPNN---LVAVDDIKALAEKMNQVMQNP-------NDFYTPFNLNFLPCNIAKQYLDYFKINI", _subjectSeq = "VVGMGRFVKRKGFAGLIRAVKEV-ENTYLWLVGDGPEREQLEQLTDELGLRDRVRFTGWQTNAYGFLSAGDAFVINSSHEPLGNVCFEGWGAGKPTIASRA-EGPSWVMTHESDALMVDCGDDVGLAAAIRRLRDDPALRERLSAGGSETLRTRFSEKAITDAYLDLFDRGV"}]}
