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
16namespace bpp
17{
62class SSR :
64{
65private:
67
68public:
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
79public:
80 std::string getName() const override { return "SSR"; }
81
85 void setFreq(std::map<int, double>&) override;
86
87protected:
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
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
SSR * clone() const override
Definition: SSR.h:77
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.