bpp-phyl3  3.0.0
RN95.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_RN95_H
6 #define BPP_PHYL_MODEL_NUCLEOTIDE_RN95_H
7 
9 
10 #include "../AbstractSubstitutionModel.h"
12 
13 // From SeqLib:
15 
16 namespace bpp
17 {
127 class RN95 :
129 {
130 private:
132 
133 public:
134  RN95(
135  std::shared_ptr<const NucleicAlphabet> alphabet,
136  double alpha = 1,
137  double beta = 1,
138  double gamma = 0.25,
139  double delta = 0.25,
140  double epsilon = 1,
141  double kappa = 0.25,
142  double lambda = 0.25,
143  double sigma = 1);
144 
145  virtual ~RN95() {}
146 
147  RN95* clone() const override { return new RN95(*this); }
148 
149 public:
150  std::string getName() const override { return "RN95"; }
151 
152  void setFreq(std::map<int, double>&) override;
153 
154 protected:
155  void updateMatrices_() override;
156 };
157 } // end of namespace bpp.
158 #endif // BPP_PHYL_MODEL_NUCLEOTIDE_RN95_H
Specialisation abstract class for nucleotide substitution model.
const Alphabet & alphabet() const override
The model described by Rhetsky & Nei, where the only hypothesis is that the transversion rates are on...
Definition: RN95.h:129
double beta_
Definition: RN95.h:131
double sigma_
Definition: RN95.h:131
void setFreq(std::map< int, double > &) override
Set equilibrium frequencies.
Definition: RN95.cpp:214
virtual ~RN95()
Definition: RN95.h:145
RN95(std::shared_ptr< const NucleicAlphabet > alphabet, double alpha=1, double beta=1, double gamma=0.25, double delta=0.25, double epsilon=1, double kappa=0.25, double lambda=0.25, double sigma=1)
Definition: RN95.cpp:17
void updateMatrices_() override
Diagonalize the matrix, and fill the eigenValues_, iEigenValues_, leftEigenVectors_ and rightEigenVe...
Definition: RN95.cpp:68
double alpha_
Definition: RN95.h:131
double epsilon_
Definition: RN95.h:131
double kappa_
Definition: RN95.h:131
RN95 * clone() const override
Definition: RN95.h:147
double lambda_
Definition: RN95.h:131
double gamma_
Definition: RN95.h:131
std::string getName() const override
Get the name of the model.
Definition: RN95.h:150
double delta_
Definition: RN95.h:131
Defines the basic types of data flow nodes.