bpp-phyl3  3.0.0
AutoCorrelationSequenceEvolution.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_AUTOCORRELATIONSEQUENCEEVOLUTION_H
6 #define BPP_PHYL_LIKELIHOOD_AUTOCORRELATIONSEQUENCEEVOLUTION_H
7 
8 
9 #include "HmmProcessAlphabet.h"
11 
12 // From Numeric
14 
15 #include <memory>
16 
17 namespace bpp
18 {
26 {
27 private:
28  std::shared_ptr<HmmProcessAlphabet> hmmAlph_;
29  std::shared_ptr<AutoCorrelationTransitionMatrix> autoCorrTransMat_;
30 
31 public:
33  std::shared_ptr<SubstitutionProcessCollection> processColl,
34  std::vector<size_t>& nProc);
35 
38  hmmAlph_(mlc.hmmAlph_->clone()),
40 
42  {
44 
45  hmmAlph_ = std::shared_ptr<HmmProcessAlphabet>(new HmmProcessAlphabet(*mlc.hmmAlph_.get()));
46  autoCorrTransMat_ = std::shared_ptr<AutoCorrelationTransitionMatrix>(new AutoCorrelationTransitionMatrix(*mlc.autoCorrTransMat_.get()));
47 
48  return *this;
49  }
50 
52 
54 
55 public:
56  void setNamespace(const std::string& nameSpace);
57 
58  void fireParameterChanged(const ParameterList& parameters);
59 
61  {
62  return *autoCorrTransMat_.get();
63  }
64 
66  {
67  return *autoCorrTransMat_.get();
68  }
69 
70  std::shared_ptr<AutoCorrelationTransitionMatrix> getHmmTransitionMatrix()
71  {
72  return autoCorrTransMat_;
73  }
74 
75  std::shared_ptr<const AutoCorrelationTransitionMatrix> getHmmTransitionMatrix() const
76  {
77  return autoCorrTransMat_;
78  }
79 
81  {
82  return *hmmAlph_.get();
83  }
84 
86  {
87  return *hmmAlph_.get();
88  }
89 
90  std::shared_ptr<HmmProcessAlphabet> getHmmProcessAlphabet()
91  {
92  return hmmAlph_;
93  }
94 
95  std::shared_ptr<const HmmProcessAlphabet> getHmmProcessAlphabet() const
96  {
97  return hmmAlph_;
98  }
99 
101 };
102 } // end of namespace bpp.
103 #endif // BPP_PHYL_LIKELIHOOD_AUTOCORRELATIONSEQUENCEEVOLUTION_H
Sequence evolution framework based on an auto-correlation of substitution processes.
std::shared_ptr< HmmProcessAlphabet > hmmAlph_
ParameterList getNonDerivableParameters() const
All non derivable parameters.
AutoCorrelationSequenceEvolution * clone() const
AutoCorrelationSequenceEvolution(const AutoCorrelationSequenceEvolution &mlc)
AutoCorrelationSequenceEvolution(std::shared_ptr< SubstitutionProcessCollection > processColl, std::vector< size_t > &nProc)
std::shared_ptr< const AutoCorrelationTransitionMatrix > getHmmTransitionMatrix() const
void fireParameterChanged(const ParameterList &parameters)
const AutoCorrelationTransitionMatrix & hmmTransitionMatrix() const
std::shared_ptr< const HmmProcessAlphabet > getHmmProcessAlphabet() const
std::shared_ptr< HmmProcessAlphabet > getHmmProcessAlphabet()
const HmmProcessAlphabet & hmmProcessAlphabet() const
std::shared_ptr< AutoCorrelationTransitionMatrix > autoCorrTransMat_
AutoCorrelationTransitionMatrix & hmmTransitionMatrix()
std::shared_ptr< AutoCorrelationTransitionMatrix > getHmmTransitionMatrix()
AutoCorrelationSequenceEvolution & operator=(const AutoCorrelationSequenceEvolution &mlc)
Hidden states alphabet.
Partial implementation of multiple processes of sequences.
MultiProcessSequenceEvolution & operator=(const MultiProcessSequenceEvolution &lik)
Defines the basic types of data flow nodes.