bpp-phyl3  3.0.0
SSR.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: The Bio++ Development Group
2 //
3 // SPDX-License-Identifier: CECILL-2.1
4 
5 #ifndef BPP_PHYL_MODEL_NUCLEOTIDE_SSR_H
6 #define BPP_PHYL_MODEL_NUCLEOTIDE_SSR_H
7 
9 
10 #include "../AbstractSubstitutionModel.h"
12 
13 // From SeqLib:
15 
16 namespace bpp
17 {
62 class SSR :
64 {
65 private:
67 
68 public:
69  SSR(std::shared_ptr<const NucleicAlphabet> alpha,
70  double beta = 1.,
71  double gamma = 1.,
72  double delta = 1.,
73  double theta = 0.5);
74 
75  virtual ~SSR() {}
76 
77  SSR* clone() const override { return new SSR(*this); }
78 
79 public:
80  std::string getName() const override { return "SSR"; }
81 
85  void setFreq(std::map<int, double>&) override;
86 
87 protected:
88  void updateMatrices_() override;
89 };
90 } // end of namespace bpp.
91 #endif // BPP_PHYL_MODEL_NUCLEOTIDE_SSR_H
Specialisation abstract class for reversible nucleotide substitution model.
The Strand Symmetric Reversible substitution model for nucleotides.
Definition: SSR.h:64
double gamma_
Definition: SSR.h:66
SSR * clone() const override
Definition: SSR.h:77
double theta_
Definition: SSR.h:66
double delta_
Definition: SSR.h:66
void setFreq(std::map< int, double > &) override
This method is redefined to actualize the corresponding parameters theta too.
Definition: SSR.cpp:75
double piC_
Definition: SSR.h:66
virtual ~SSR()
Definition: SSR.h:75
double piG_
Definition: SSR.h:66
void updateMatrices_() override
Compute and diagonalize the matrix, and fill the eigenValues_, leftEigenVectors_ and rightEigenVecto...
Definition: SSR.cpp:40
SSR(std::shared_ptr< const NucleicAlphabet > alpha, double beta=1., double gamma=1., double delta=1., double theta=0.5)
Definition: SSR.cpp:20
std::string getName() const override
Get the name of the model.
Definition: SSR.h:80
double piA_
Definition: SSR.h:66
double beta_
Definition: SSR.h:66
double piT_
Definition: SSR.h:66
Defines the basic types of data flow nodes.