def makeQdDefn(self, word_probs, mprobs_matrix, rate_params): """Diagonalized Q, ie: rate matrix prepared for exponentiation""" Q = CalcDefn(self.calcQ, name='Q')(word_probs, mprobs_matrix, *rate_params) expm = NonParamDefn('expm') exp = ExpDefn(expm) Qd = CallDefn(exp, Q, name='Qd') return Qd
def makeQdDefn(self, word_probs, mprobs_matrix, rate_params): expm = NonParamDefn('expm') exp = ExpDefn(expm) calcExMat = CalcDefn(lambda: self.calcExchangeabilityMatrix, name='calculate_exchangeability_matrix')() Qd = CalcDefn(CalcQd, name='Qd')(exp, calcExMat, word_probs, mprobs_matrix, *rate_params) return Qd
def makeAlignmentDefn(self, model): align = NonParamDefn('alignment', ('locus', )) # The name of this matters, it's used in likelihood_function.py # to retrieve the correct (adapted) alignment. return AlignmentAdaptDefn(model, align)