diff --git a/modules/seq/alg/pymod/mat.py b/modules/seq/alg/pymod/mat.py index f79bf8326891d5aa9bab92724a5cf781c97cde0a..57fa10c17633f9b3fe629adcab0e346accc9c980 100644 --- a/modules/seq/alg/pymod/mat.py +++ b/modules/seq/alg/pymod/mat.py @@ -9,5 +9,6 @@ BLOSUM45 = _InitMatrix(SubstWeightMatrix.Preset.BLOSUM45) BLOSUM62 = _InitMatrix(SubstWeightMatrix.Preset.BLOSUM62) BLOSUM80 = _InitMatrix(SubstWeightMatrix.Preset.BLOSUM80) BLOSUM100 = _InitMatrix(SubstWeightMatrix.Preset.BLOSUM100) +IDENTITY = _InitMatrix(SubstWeightMatrix.Preset.IDENTITY) -__all__=['BLOSUM45','BLOSUM62','BLOSUM80','BLOSUM100'] +__all__=['BLOSUM45','BLOSUM62','BLOSUM80','BLOSUM100', 'IDENTITY'] diff --git a/modules/seq/alg/pymod/wrap_seq_alg.cc b/modules/seq/alg/pymod/wrap_seq_alg.cc index ebb3adb979d284056d68a6e3c3959ac6c9f4eb97..d0577fa5c7685f276ed5d046e37ab0d047854432 100644 --- a/modules/seq/alg/pymod/wrap_seq_alg.cc +++ b/modules/seq/alg/pymod/wrap_seq_alg.cc @@ -222,6 +222,7 @@ void export_contact_prediction() .value("BLOSUM62", SubstWeightMatrix::BLOSUM62) .value("BLOSUM80", SubstWeightMatrix::BLOSUM80) .value("BLOSUM100", SubstWeightMatrix::BLOSUM100) + .value("IDENTITY", SubstWeightMatrix::IDENTITY) ; } diff --git a/modules/seq/alg/src/subst_weight_matrix.cc b/modules/seq/alg/src/subst_weight_matrix.cc index f382e4f8edeb423938d6b3b4a0f9c6dcef629efe..454dbeddb9fa0c5204c37edf791cfd6d8b31b2fd 100644 --- a/modules/seq/alg/src/subst_weight_matrix.cc +++ b/modules/seq/alg/src/subst_weight_matrix.cc @@ -140,6 +140,14 @@ void FillData(ost::seq::alg::SubstWeightMatrix* subst, short (&data)[23][23]){ } } +void FillIdentity(ost::seq::alg::SubstWeightMatrix* subst) { + char chars[26] = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O', + 'P','Q','R','S','T','U','V','W','X','Y','Z'}; + for(uint i = 0; i < 26; ++i) { + subst->SetWeight(chars[i], chars[i], 1.0); + } +} + } namespace ost { namespace seq { namespace alg { @@ -167,6 +175,10 @@ void SubstWeightMatrix::AssignPreset(SubstWeightMatrix::Preset p) FillData(this,RAW_BLOSUM100_DATA); break; } + case IDENTITY:{ + FillIdentity(this); + break; + } } } diff --git a/modules/seq/alg/src/subst_weight_matrix.hh b/modules/seq/alg/src/subst_weight_matrix.hh index 25f74dc1a19bb422e4b9c82ff18605b71d4eb29c..fe057be1b87be55b58877dd4e8d92d9520cb4ae1 100644 --- a/modules/seq/alg/src/subst_weight_matrix.hh +++ b/modules/seq/alg/src/subst_weight_matrix.hh @@ -43,7 +43,8 @@ public: enum Preset{BLOSUM45 = 0, BLOSUM62 = 1, BLOSUM80 = 2, - BLOSUM100 = 3}; + BLOSUM100 = 3, + IDENTITY = 4}; /// \brief Initialize substitution matrix with zero. /// /// In order to get a useful substitution weight matrix, use SetWeight().