def multi_mklik(q = Qparams, switch=switch, name="multi_mklik"): locs = discrete.locs_from_switchpoint(tree,tree[int(switch)],locsarray) # l = discrete.create_likelihood_function_multimk(tree=tree, chars=chars, # Qtype=Qtype, locs = locs, # pi="Equal", min=False) np.copyto(qarray, q) return l(qarray, locs=locs)
# 0.38377105527703087 # In between the two rates, but closer to the slow rate # (which takes up most of the tree) as expected # Comparing the likelihoods of the MAP estimates, # for lack of a better comparison Q1avg = np.percentile(Q1, 50) Q2avg = np.percentile(Q2, 50) multiregime_Q = np.array([[[-Q1avg,Q1avg], [Q1avg,-Q1avg]], [[-Q2avg,Q2avg], [Q2avg,-Q2avg]]]) multiregime_locs = discrete.locs_from_switchpoint(mr_tree, mr_tree[int(scipy.stats.mode(out["switch"])[0])]) multiregime_likelihood = discrete.mk_mr(mr_tree, mr_chars, multiregime_Q, multiregime_locs, pi="Equal") singleregime_Q = np.array([[-Qavg,Qavg], [Qavg,-Qavg]]) singleregime_likelihood = discrete.mk(mr_tree, mr_chars, singleregime_Q, pi="Equal") multiregime_likelihood singleregime_likelihood
# 0.38377105527703087 # In between the two rates, but closer to the slow rate # (which takes up most of the tree) as expected # Comparing the likelihoods of the MAP estimates, # for lack of a better comparison Q1avg = np.percentile(Q1, 50) Q2avg = np.percentile(Q2, 50) multiregime_Q = np.array([[[-Q1avg,Q1avg], [Q1avg,-Q1avg]], [[-Q2avg,Q2avg], [Q2avg,-Q2avg]]]) multiregime_locs = discrete.locs_from_switchpoint(mr_tree, mr_tree[int(scipy.stats.mode(out["switch"])[0])]) multiregime_likelihood = discrete.mk_multi_regime(mr_tree, mr_chars, multiregime_Q, multiregime_locs, pi="Equal") singleregime_Q = np.array([[-Qavg,Qavg], [Qavg,-Qavg]]) singleregime_likelihood = discrete.mk(mr_tree, mr_chars, singleregime_Q, pi="Equal") multiregime_likelihood singleregime_likelihood