Core Likelihood
Low-level likelihood calculation for expert users.
Likelihood Calculator
LikelihoodCalculator
- class crabml.core.likelihood.LikelihoodCalculator(alignment, tree)[source]
Compute phylogenetic likelihood using Felsenstein’s pruning algorithm.
Attributes
- alignmentAlignment
Multiple sequence alignment
- treeTree
Phylogenetic tree
- n_statesint
Number of states (61 for codons, 20 for amino acids, 4 for nucleotides)
- n_sitesint
Number of sites in alignment
- __init__(alignment, tree)[source]
Initialize likelihood calculator.
Parameters
- alignmentAlignment
Multiple sequence alignment
- treeTree
Phylogenetic tree
- compute_log_likelihood(Q, pi, scale_branch_lengths=1.0)[source]
Compute log-likelihood for given substitution model.
- Return type:
Parameters
- Qnp.ndarray
Rate matrix (n_states x n_states)
- pinp.ndarray
Equilibrium frequencies (n_states,)
- scale_branch_lengthsfloat, optional
Global scaling factor for branch lengths (default 1.0)
Returns
- float
Log-likelihood value
- compute_log_likelihood_site_classes(Q_matrices, pi, proportions, scale_branch_lengths=1.0, use_scaling=False)[source]
Compute log-likelihood for site class model.
For models with site classes (M1a, M2a, M3), the likelihood is a mixture over site classes: P(data) = sum_k p_k * P(data | Q_k)
- Return type:
Parameters
- Q_matriceslist[np.ndarray]
List of rate matrices, one per site class
- pinp.ndarray
Equilibrium frequencies (n_states,)
- proportionslist[float]
Proportion of sites in each class
- scale_branch_lengthsfloat, optional
Global scaling factor for branch lengths (default 1.0)
- use_scalingbool, optional
Use PAML-style scaling to prevent underflow (default False)
Returns
- float
Log-likelihood value