use of dr.oldevomodel.substmodel.NtdBMA in project beast-mcmc by beast-dev.
the class NtdBMAParser method parseXMLObject.
public Object parseXMLObject(XMLObject xo) throws XMLParseException {
Variable kappa = (Variable) xo.getElementFirstChild(KAPPA);
Variable tn = (Variable) xo.getElementFirstChild(TN);
Variable ac = (Variable) xo.getElementFirstChild(AC);
Variable at = (Variable) xo.getElementFirstChild(AT);
Variable gc = (Variable) xo.getElementFirstChild(GC);
Variable gt = (Variable) xo.getElementFirstChild(GT);
Variable modelChoose = (Variable) xo.getElementFirstChild(MODEL_CHOOSE);
XMLObject cxo = xo.getChild(FREQUENCIES);
FrequencyModel freqModel = (FrequencyModel) cxo.getChild(FrequencyModel.class);
return new NtdBMA(kappa, tn, ac, at, gc, gt, modelChoose, freqModel);
}
use of dr.oldevomodel.substmodel.NtdBMA in project beast-mcmc by beast-dev.
the class testNtdBMA method testNtdBMA.
public void testNtdBMA() {
for (Instance test : all) {
Parameter logKappa = new Parameter.Default(1, test.getLogKappa());
Parameter logTN = new Parameter.Default(1, test.getLogTN());
Parameter logAC = new Parameter.Default(1, test.getLogAC());
Parameter logAT = new Parameter.Default(1, test.getLogAT());
Parameter logGC = new Parameter.Default(1, test.getLogGC());
Parameter logGT = new Parameter.Default(1, test.getLogGT());
Variable<Integer> modelChoose = test.getModelChoose();
double[] pi = test.getPi();
Parameter freqs = new Parameter.Default(pi);
FrequencyModel f = new FrequencyModel(Nucleotides.INSTANCE, freqs);
NtdBMA ntdBMA = new NtdBMA(logKappa, logTN, logAC, logAT, logGC, logGT, modelChoose, f);
double distance = test.getDistance();
double[] mat = new double[4 * 4];
ntdBMA.getTransitionProbabilities(distance, mat);
final double[] result = test.getExpectedResult();
for (int k = 0; k < mat.length; ++k) {
assertEquals(mat[k], result[k], 5e-10);
// System.out.print(" " + (mat[k] - result[k]));
}
}
}
Aggregations