Katzlab dd76ab1d12 Added PTL2 Scripts
These are PTL2 files from Auden 2/9
2023-02-14 11:20:52 -05:00

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