BranchModel — Multiple-omega branch model

Usage

BranchModel(submodel: Double -> CTMC<Codons<a>>, omegas: List<Double>, branchCats: IntMap<Int>) → CTMC<Codons<a>>

Arguments

Underlined names in default expressions refer to other arguments. A default beginning with ~ specifies a prior distribution.

submodel:

Codon model as a function of omega

Default: |w:GTR +> MNM +> MutSelAA +> dNdS(omega=w)|

omegas:

Independent omega values for branch categories #0, #1, and so on.

Default: ~IID(numberBranchCategories(branchCats),LogNormal(0,1))

branchCats:

The numbered category assigned to each branch.

Default: The branch categories in the current context

Original default expressions
omegas
~IID(numberBranchCategories(@branchCats),LogNormal(0,1))
branchCats
get_state(branch_categories)

Description

Use a separately unit-normalized codon model for each numbered branch category. The first omega applies to category #0, the second to category #1, and so on. A branch without a foreground annotation belongs to category #0, while [&foreground=i] selects category #i. When omegas is omitted, categories must be numbered consecutively from zero and each receives an independent omega. The models constructed for different omegas must share equilibrium frequencies, and the topology must be fixed when categories are read from tree annotations. No category-usage metadata is needed for this model.

The default background uses GTR, MNM, and MutSelAA. Here omega scales nonsynonymous rates after accounting for amino-acid fitnesses. Thus omega=1 retains these fitness effects; neutrality and positive selection are assessed relative to this background.

Examples

BranchModel
BranchModel(omegas=[0.2,1.0,2.0])

See also