bpp-phyl3  3.0.0
L95.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_L95_H
6 #define BPP_PHYL_MODEL_NUCLEOTIDE_L95_H
7 
9 
10 #include "../AbstractSubstitutionModel.h"
12 
13 // From bpp-seq:
15 
16 namespace bpp
17 {
57 class L95 :
59 {
60 private:
62 
63 public:
64  L95(
65  std::shared_ptr<const NucleicAlphabet> alphabet,
66  double alpha = 0.5,
67  double beta = 0.5,
68  double gamma = 0.5,
69  double kappa = 1.,
70  double theta = 0.5);
71 
72  virtual ~L95() {}
73 
74  L95* clone() const override { return new L95(*this); }
75 
76 public:
77  std::string getName() const override { return "L95"; }
78 
82  void setFreq(std::map<int, double>&) override;
83 
84 protected:
85  void updateMatrices_() override;
86 };
87 } // end of namespace bpp.
88 #endif // BPP_PHYL_MODEL_NUCLEOTIDE_L95_H
Specialisation abstract class for nucleotide substitution model.
const Alphabet & alphabet() const override
The no-strand bias substitution model for nucleotides, from Lobry 1995. The point of this model is th...
Definition: L95.h:59
double kappa_
Definition: L95.h:61
double beta_
Definition: L95.h:61
double alpha_
Definition: L95.h:61
void setFreq(std::map< int, double > &) override
This method is redefined to actualize the corresponding parameters theta too.
Definition: L95.cpp:78
double gamma_
Definition: L95.h:61
double theta_
Definition: L95.h:61
virtual ~L95()
Definition: L95.h:72
std::string getName() const override
Get the name of the model.
Definition: L95.h:77
void updateMatrices_() override
Diagonalize the matrix, and fill the eigenValues_, iEigenValues_, leftEigenVectors_ and rightEigenVe...
Definition: L95.cpp:40
L95 * clone() const override
Definition: L95.h:74
L95(std::shared_ptr< const NucleicAlphabet > alphabet, double alpha=0.5, double beta=0.5, double gamma=0.5, double kappa=1., double theta=0.5)
Definition: L95.cpp:18
Defines the basic types of data flow nodes.