Extracting maximum likelihood estimates from a model_result#

If you want to get the stats from a fitted model, use the tabulate_stats app.

We demonstrate this by first fitting a model.

from cogent3 import get_app

loader = get_app("load_aligned", format="fasta", moltype="dna")
aln = loader("data/primate_brca1.fasta")
model = get_app("model", "GN", tree="data/primate_brca1.tree")
result = model(aln)

Create and apply tabulate_stats app#

tabulator = get_app("tabulate_stats")
tabulated = tabulator(result)
tabulated
3x tabular_result('global params': Table, 'edge params': Table, 'motif params': Table)

tabulated is a tabular_result instance which, like other result types, has dict like behaviour. It also contains key/value pairs for each model parameter type.

Edge parameters#

These are all parameters that differ between edges. Since the current model is time-homogeneous (a single rate matrix), the table only has entries for the branch scalar (denoted “length”).

tabulated["edge params"]
edge params
edgeparentlength
Galagoroot0.1734
HowlerMonroot0.0450
Rhesusedge.30.0215
Orangutanedge.20.0078
Gorillaedge.10.0025
Humanedge.00.0061
Chimpanzeeedge.00.0028
edge.0edge.10.0000
edge.1edge.20.0033
edge.2edge.30.0121
edge.3root0.0077

11 rows x 3 columns

Note

Unless the model is time-reversible, the lengths in that table are not ENS (Kaehler et al). As we used a non-stationary nucleotide model in this example, the length values are a scalar used to adjust the matrices during optimisation.

Global parameters#

These are the elements of the rate matrix.

tabulated["global params"]
global params
A>CA>GA>TC>AC>GC>TG>AG>CG>TT>A
0.86993.66400.91101.59072.12456.02408.22121.22950.62961.2502
continuation
T>C
3.4168

1 rows x 11 columns

Motif parameters#

These are estimates of the nucleotide probabilities in the unobserved ancestor.

tabulated["motif params"]
motif params
ACGT
0.37570.17420.20950.2406

1 rows x 4 columns