Learn R Programming

pedprobr (version 0.9.5)

setMutationModel: Set a mutation model

Description

NB: This function has been replaced by pedtools::setMutmod(). This function attaches mutation models to a pedigree with marker data, calling pedmut::mutationModel() for creating the models.

Usage

setMutationModel(x, model, markers = NULL, ...)

Value

An object similar to x.

Arguments

x

A ped object or a list of such.

model

A model name implemented by pedmut::mutationModel() (see Details), or NULL.

markers

A vector of names or indices referring to markers attached to x. (Default: All markers.)

...

Arguments forwarded to pedmut::mutationModel(), e.g., rate.

Details

Currently, the following models are handled:

  • equal : All mutations equally likely; probability \(1-rate\) of no mutation

  • proportional : Mutation probabilities are proportional to the target allele frequencies

  • onestep: A mutation model for microsatellite markers, allowing mutations only to the nearest neighbours in the allelic ladder. For example, '10' may mutate to either '9' or '11', unless '10' is the lowest allele, in which case '11' is the only option. This model is not applicable to loci with non-integral microvariants.

  • stepwise: A common model in forensic genetics, allowing different mutation rates between integer alleles (like '16') and non-integer "microvariants" like '9.3'). Mutations also depend on the size of the mutation if the parameter 'range' differs from 1.

  • custom : Allows any mutation matrix to be provided by the user, in the matrix parameter

  • random : This produces a matrix of random numbers, where each row is normalised so that it sums to 1

  • trivial : The identity matrix; i.e. no mutations are possible.

Examples

Run this code
### Example requires the pedmut package ###
if (requireNamespace("pedmut", quietly = TRUE)){

# A pedigree with data from a single marker
x = nuclearPed(1) |>
  addMarker(geno = c("a/a", NA, "b/b")) # mutation!

# Set `equal` model
y = setMutationModel(x, marker = 1, model = "equal", rate = 0.01)

# Inspect model
mutmod(y, 1)

# Likelihood
likelihood(y, 1)

# Remove mutation model
z = setMutationModel(y, model = NULL)
stopifnot(identical(z, x))
}

Run the code above in your browser using DataLab