model_properties | R Documentation |
Functions for checking various properties of a mutation model, including stationarity, reversibility and lumpability.
isStationary(mutmat, afreq = NULL)
isReversible(mutmat, afreq = NULL)
isBounded(mutmat, afreq = NULL)
isLumpable(mutmat, lump)
alwaysLumpable(mutmat)
mutmat |
A |
afreq |
A vector with allele frequencies, of the same length as the size
of |
lump |
A nonempty subset of the colnames of |
The function isBounded()
checks that a mutation model is bounded by the
allele frequencies, i.e., that mutmat[i,j] <= afreq[j]
whenever i
is not
equal to j
.
For each of these functions, if mutmat
is a mutationModel
object, i.e.,
with male and female components, the output is TRUE if and only if both
components satisfy the property in question.
Each of these functions returns TRUE of FALSE.
# "proportional" models are stationary and reversible
afr = c(0.2, 0.3, 0.5)
m_prop = mutationMatrix(model = "prop", alleles = 1:3, afreq = afr, rate = 0.1)
stopifnot(isStationary(m_prop, afr), isReversible(m_prop, afr))
# "equal" model is stationary and reversible only when freqs are equal
m_eq = mutationMatrix(model = "eq", alleles = 1:3, rate = 0.1)
stopifnot(isStationary(m_eq, rep(1/3, 3)), isReversible(m_eq, rep(1/3, 3)))
stopifnot(!isStationary(m_eq, afr), !isReversible(m_eq, afr))
# "equal" and "proportional" models allow allele lumping
stopifnot(isLumpable(m_eq, lump = 1:2))
stopifnot(isLumpable(m_prop, lump = 1:2))
# In fact lumpable for any allele subset
stopifnot(alwaysLumpable(m_eq), alwaysLumpable(m_prop))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.