/*
Copyright 2009 Andreas Biegert
This file is part of the CS-BLAST package.
The CS-BLAST package is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
The CS-BLAST package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
*/
#ifndef CS_BLOSUM_MATRIX_H_
#define CS_BLOSUM_MATRIX_H_
#include "substitution_matrix-inl.h"
namespace cs {
enum BlosumType {
BLOSUM45 = 0,
BLOSUM62 = 1,
BLOSUM80 = 2
};
// BLOSUM family of substitution matrices for class for substitution matrix
// classes.
class BlosumMatrix : public SubstitutionMatrix {
public:
BlosumMatrix(BlosumType matrix = BLOSUM62);
virtual ~BlosumMatrix() {}
private:
// Initializes the matrix from target frequencies in raw data array.
void Init(const float* blosum_xx);
};
// Converts a BLOSUM matrix string to a BLOSUM matrix type.
BlosumType BlosumTypeFromString(const std::string& s);
} // namespace cs
#endif // CS_BLOSUM_MATRIX_H_