bpp-phyl  2.2.0
RHomogeneousClockTreeLikelihood.h
Go to the documentation of this file.
1 //
2 // File: RHomogeneousClockTreeLikelihood.h
3 // Created by: Benoît Nabholz
4 // Julien Dutheil
5 // Created on: Fri Apr 06 14:11 2007
6 //
7 
8 /*
9 Copyright or © or Copr. CNRS, (November 16, 2004)
10 
11 This software is a computer program whose purpose is to provide classes
12 for phylogenetic data analysis.
13 
14 This software is governed by the CeCILL license under French law and
15 abiding by the rules of distribution of free software. You can use,
16 modify and/ or redistribute the software under the terms of the CeCILL
17 license as circulated by CEA, CNRS and INRIA at the following URL
18 "http://www.cecill.info".
19 
20 As a counterpart to the access to the source code and rights to copy,
21 modify and redistribute granted by the license, users are provided only
22 with a limited warranty and the software's author, the holder of the
23 economic rights, and the successive licensors have only limited
24 liability.
25 
26 In this respect, the user's attention is drawn to the risks associated
27 with loading, using, modifying and/or developing or reproducing the
28 software by the user in light of its specific status of free software,
29 that may mean that it is complicated to manipulate, and that also
30 therefore means that it is reserved for developers and experienced
31 professionals having in-depth computer knowledge. Users are therefore
32 encouraged to load and test the software's suitability as regards their
33 requirements in conditions enabling the security of their systems and/or
34 data to be ensured and, more generally, to use and operate it in the
35 same conditions as regards security.
36 
37 The fact that you are presently reading this means that you have had
38 knowledge of the CeCILL license and that you accept its terms.
39 */
40 
41 #ifndef _RHOMOGENEOUSCLOCKTREELIKELIHOOD_H_
42 #define _RHOMOGENEOUSCLOCKTREELIKELIHOOD_H_
43 
45 #include "ClockTreeLikelihood.h"
46 #include "../TreeTemplate.h"
47 
48 #include <Bpp/Numeric/ParameterList.h>
49 
50 namespace bpp
51 {
52 
71 {
72  public:
89  const Tree& tree,
90  SubstitutionModel* model,
91  DiscreteDistribution* rDist,
92  bool checkRooted = true,
93  bool verbose = true)
94  throw (Exception);
95 
113  const Tree& tree,
114  const SiteContainer& data,
115  SubstitutionModel* model,
116  DiscreteDistribution* rDist,
117  bool checkRooted = true,
118  bool verbose = true)
119  throw (Exception);
120 
122 
124 
125  private:
126 
130  void init_();
131 
132  public:
133 
139  void applyParameters() throw (Exception);
140  void fireParameterChanged(const ParameterList& params);
142  ParameterList getDerivableParameters() const throw (Exception);
143  ParameterList getNonDerivableParameters() const throw (Exception);
144  double getFirstOrderDerivative(const std::string& variable) const throw (Exception);
145  double getSecondOrderDerivative(const std::string& variable) const throw (Exception);
146  double getSecondOrderDerivative(const std::string& variable1, const std::string& variable2) const throw (Exception) { return 0; } // Not implemented for now.
149  protected:
150 
161  void computeBranchLengthsFromHeights(Node* node, double height) throw (Exception);
162 
163 };
164 
165 } //end of namespace bpp.
166 
167 #endif // _RHOMOGENEOUSCLOCKTREELIKELIHOOD_H_
168 
Interface for all substitution models.
void applyParameters()
All parameters are stored in a parameter list. This function apply these parameters to the substituti...
void fireParameterChanged(const ParameterList &params)
Likelihood computation with a global clock.
ParameterList getNonDerivableParameters() const
All non derivable parameters.
double getSecondOrderDerivative(const std::string &variable) const
STL namespace.
void computeBranchLengthsFromHeights(Node *node, double height)
Update all lengths according to parameter values.
Interface for phylogenetic tree objects.
Definition: Tree.h:148
This class implement the &#39;traditional&#39; way of computing likelihood for a tree.
RHomogeneousClockTreeLikelihood(const Tree &tree, SubstitutionModel *model, DiscreteDistribution *rDist, bool checkRooted=true, bool verbose=true)
Build a new HomogeneousClockTreeLikelihood object.
Interface for likelihood computation with a global clock and rate across sites variation.
The phylogenetic node class.
Definition: Node.h:90
ParameterList getDerivableParameters() const
All derivable parameters.
void init_()
Method called by constructor.
RHomogeneousClockTreeLikelihood * clone() const
double getFirstOrderDerivative(const std::string &variable) const