bpp-phyl3  3.0.0
SequenceEvolution.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_LIKELIHOOD_SEQUENCEEVOLUTION_H
6 #define BPP_PHYL_LIKELIHOOD_SEQUENCEEVOLUTION_H
7 
8 
9 #include "SubstitutionProcess.h"
10 
11 // From bpp-core:
14 
15 // From bpp-seq:
16 
18 
19 // From the STL:
20 #include <memory>
21 
22 namespace bpp
23 {
34  public virtual ParameterAliasable
35 {
36 public:
37  virtual SequenceEvolution* clone() const override = 0;
38 
39 public:
40  virtual bool isCompatibleWith(const AlignmentDataInterface& data) const = 0;
41 
42  virtual const std::vector<size_t>& getSubstitutionProcessNumbers() const = 0;
43 
44  virtual const SubstitutionProcessInterface& substitutionProcess(size_t number) const = 0;
45 
46  virtual std::shared_ptr<const SubstitutionProcessInterface> getSubstitutionProcess(size_t number) const = 0;
47 
48  const StateMapInterface& stateMap() const
49  {
51  }
52 
53  std::shared_ptr<const StateMapInterface> getStateMap() const
54  {
56  }
57 
63  virtual ParameterList getBranchLengthParameters(bool independent) const = 0;
64 
70  virtual ParameterList getSubstitutionModelParameters(bool independent) const = 0;
71 
77  virtual ParameterList getSubstitutionProcessParameters(bool independent) const = 0;
78 
84  virtual ParameterList getRateDistributionParameters(bool independent) const = 0;
85 
91  virtual ParameterList getRootFrequenciesParameters(bool independent) const = 0;
92 
93 
103 };
104 } // end namespace bpp
105 #endif // BPP_PHYL_LIKELIHOOD_SEQUENCEEVOLUTION_H
This interface describes the evolution process of a sequence.
virtual const std::vector< size_t > & getSubstitutionProcessNumbers() const =0
virtual ParameterList getBranchLengthParameters(bool independent) const =0
Get the branch lengths parameters.
virtual const SubstitutionProcessInterface & substitutionProcess(size_t number) const =0
virtual ParameterList getNonDerivableParameters() const =0
All non derivable parameters.
std::shared_ptr< const StateMapInterface > getStateMap() const
const StateMapInterface & stateMap() const
virtual ParameterList getSubstitutionProcessParameters(bool independent) const =0
Get the parameters associated to substitution processes(s).
virtual bool isCompatibleWith(const AlignmentDataInterface &data) const =0
virtual SequenceEvolution * clone() const override=0
virtual ParameterList getSubstitutionModelParameters(bool independent) const =0
Get the parameters associated to substitution model(s).
virtual ParameterList getRateDistributionParameters(bool independent) const =0
Get the parameters associated to the rate distribution(s).
virtual ParameterList getRootFrequenciesParameters(bool independent) const =0
Get the parameters associated to the root frequencies(s).
virtual std::shared_ptr< const SubstitutionProcessInterface > getSubstitutionProcess(size_t number) const =0
Map the states of a given alphabet which have a model state.
Definition: StateMap.h:25
This interface describes the substitution process along the tree and sites of the alignment.
virtual std::shared_ptr< const StateMapInterface > getStateMap() const =0
virtual const StateMapInterface & stateMap() const =0
Defines the basic types of data flow nodes.