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

131 lines
3.7 KiB
C++

// $Id: bestParamUSSRV.h 1975 2007-04-22 13:47:28Z privmane $
#ifndef BEST_PARAM_USSRV
#define BEST_PARAM_USSRV
#include "definitions.h"
#include "sequenceContainer.h"
#include "stochasticProcess.h"
#include "gammaDistribution.h"
#include "tree.h"
#include "replacementModelSSRV.h"
#include "stochasticProcessSSRV.h"
#include "C_evalParamUSSRV.h"
#include "bestAlpha.h"
#include "numRec.h"
#include "bblEM.h"
#include "logFile.h"
#include "bestAlphaAndNu.h"
#include "bblEM2USSRV.h"
#include "someUtil.h"
#include <ctime>
// ***************
// * USSRV *
// ***************
class bestParamUSSRV
{
public:
explicit bestParamUSSRV(bool AlphaOptimization, bool NuOptimization,
bool FOptimization, bool bblOptimization):
_AlphaOptimizationFlag(AlphaOptimization),
_NuOptimizationFlag(NuOptimization),
_FOptimizationFlag(FOptimization),
_bblOptimizationFlag(bblOptimization) {}
MDOUBLE operator() (tree& et,
const sequenceContainer& sc,
const sequenceContainer& baseSc,
ussrvModel& model,
const Vdouble * weights=NULL,
const MDOUBLE AlphaUpperBound = 15,
const MDOUBLE NuUpperBound = 15,
const MDOUBLE FUpperBound = 1,
const MDOUBLE epsilonParamOptimization = 0.01,
const MDOUBLE epsilonLikelihoodImprovment = 0.01,
const int maxIterations = 50,
const int maxOfParametersAndBblIterations = 40);
MDOUBLE getBestAlpha() {return _bestAlpha;}
MDOUBLE getBestNu() {return _bestNu;}
MDOUBLE getBestF() {return _bestF;}
MDOUBLE getBestL() {return _bestL;}
private:
MDOUBLE _bestAlpha;
MDOUBLE _bestNu;
MDOUBLE _bestF;
MDOUBLE _bestL;
// flags
bool _AlphaOptimizationFlag;
bool _NuOptimizationFlag;
bool _FOptimizationFlag;
bool _bblOptimizationFlag;
};
// ***************
// * SSRV *
// ***************
class bestParamSSRV
{
public:
explicit bestParamSSRV(bool AlphaOptimization, bool NuOptimization, bool tamura92Optimization,
bool bblOptimization):
_AlphaOptimizationFlag(AlphaOptimization),
_NuOptimizationFlag(NuOptimization),
_tamura92OptimizationFlag(tamura92Optimization),
_bblOptimizationFlag(bblOptimization) {}
MDOUBLE operator() (tree& et,
const sequenceContainer& sc,
stochasticProcessSSRV& ssrvSp,
const Vdouble * weights=NULL,
const MDOUBLE AlphaUpperBound = 15,
const MDOUBLE NuUpperBound = 15,
const MDOUBLE TrTvUpperBound = 10,
const MDOUBLE epsilonParamOptimization = 0.01,
const MDOUBLE epsilonLikelihoodImprovment = 0.01,
const MDOUBLE epsilonBbl = 0.05,
const int maxIterations = 50,
const int maxOfParametersAndBblIterations = 40);
// Variant that can work on a const tree - only if we're not doing BBL
// WARNING: Running this with bblOptimization==true will give a fatal error
MDOUBLE operator() (const tree& et,
const sequenceContainer& sc,
stochasticProcessSSRV& ssrvSp,
const Vdouble * weights=NULL,
const MDOUBLE AlphaUpperBound = 15,
const MDOUBLE NuUpperBound = 15,
const MDOUBLE TrTvUpperBound = 10,
const MDOUBLE epsilonParamOptimization = 0.01,
const MDOUBLE epsilonLikelihoodImprovment = 0.01,
const MDOUBLE epsilonBbl = 0.05,
const int maxIterations = 50,
const int maxOfParametersAndBblIterations = 40);
MDOUBLE getBestAlpha() {return _bestAlpha;}
MDOUBLE getBestNu() {return _bestNu;}
MDOUBLE getBestTrTv() {return _bestTrTv;}
MDOUBLE getBestTheta() {return _bestTheta;}
MDOUBLE getBestL() {return _bestL;}
private:
MDOUBLE _bestAlpha;
MDOUBLE _bestNu;
MDOUBLE _bestTrTv;
MDOUBLE _bestTheta;
MDOUBLE _bestL;
// flags
bool _AlphaOptimizationFlag;
bool _NuOptimizationFlag;
bool _tamura92OptimizationFlag;
bool _bblOptimizationFlag;
};
#endif // BEST_PARAM_USSRV