mirror of
http://43.156.76.180:8026/YuuMJ/EukPhylo.git
synced 2025-12-28 03:20:25 +08:00
42 lines
1.5 KiB
C++
42 lines
1.5 KiB
C++
// $Id: ussrvModel.h 962 2006-11-07 15:13:34Z privmane $
|
|
#ifndef _USSRV_MODEL
|
|
#define _USSRV_MODEL
|
|
|
|
#include "stochasticProcessSSRV.h"
|
|
#include "stochasticProcess.h"
|
|
#include "errorMsg.h"
|
|
#include "gammaDistribution.h"
|
|
#include "replacementModelSSRV.h"
|
|
#include "logFile.h"
|
|
class ussrvModel
|
|
{
|
|
public:
|
|
explicit ussrvModel(){errorMsg::reportError("This constractor shold never be used");}
|
|
explicit ussrvModel(const stochasticProcess& baseSp, const stochasticProcessSSRV& ssrvSp, const MDOUBLE& f);
|
|
virtual ~ussrvModel();
|
|
explicit ussrvModel(const ussrvModel& other);
|
|
ussrvModel& operator=(const ussrvModel& other);
|
|
// const int alphabetSize() const ;
|
|
MDOUBLE getF() const {return _f;}
|
|
MDOUBLE getAlpha() const {return _alpha;}
|
|
MDOUBLE getNu() const ;
|
|
const stochasticProcessSSRV& getSSRVmodel() const {return *_ssrvSp;}
|
|
const stochasticProcess& getBaseModel() const {return *_baseSp;}
|
|
int noOfCategor() const {return _baseSp->categories();}
|
|
MDOUBLE getCategorProb(int i) const {return _baseSp->distr()->ratesProb(i);}
|
|
|
|
void updateF(const MDOUBLE& f);
|
|
void updateAlpha(const MDOUBLE& alpha);
|
|
void updateNu(const MDOUBLE& nu);
|
|
|
|
MDOUBLE calcNormalizeFactor(); // return the factor according to which the model should be normalized.
|
|
|
|
private:
|
|
MDOUBLE _f; //probability of SSRV model. The probability of the base model, i.e. no SSRV, is 1-_f .
|
|
MDOUBLE _alpha; // should be always equal to the _baseSp alpha and the _ssrvSp alpha.
|
|
stochasticProcess* _baseSp; // for the base model
|
|
stochasticProcessSSRV* _ssrvSp; // for the SSRV model
|
|
};
|
|
|
|
#endif // _USSRV_MODEL
|