// $Id: likelihoodComputation2USSRV.cpp 962 2006-11-07 15:13:34Z privmane $ #include "likelihoodComputation2USSRV.h" using namespace likelihoodComputation2USSRV; //compute likelihood for the ssrv model and the base model. MDOUBLE likelihoodComputation2USSRV::getTreeLikelihoodAllPosAlphTheSame(const tree& et, const sequenceContainer& sc, const sequenceContainer& baseSc, const ussrvModel& model,const Vdouble * const weights){ computePijHom piSSRV; piSSRV.fillPij(et,model.getSSRVmodel()); computePijGam piBase; piBase.fillPij(et,model.getBaseModel()); MDOUBLE res =0.0; MDOUBLE f = model.getF(); doubleRep LofPosSSRV(0.0),LofPosBase(0.0); MDOUBLE lnL(0.); int k; for (k=0; k < sc.seqLen(); ++k) { if (f<1.0) LofPosBase = likelihoodComputation::getLofPos(k,et,baseSc,piBase,model.getBaseModel()); if (f>0.0) { LofPosSSRV = likelihoodComputation::getLofPos(k,et,sc,piSSRV,model.getSSRVmodel()); if (f<1.0) lnL = log(LofPosSSRV*f+(1-f)*LofPosBase); else // f == 1.0 lnL = log(LofPosSSRV); } else // f == 0.0 lnL = log(LofPosBase); LOG(9,<<"pos= "<