← Back to all sparks
P

pedmut

ANALYTICS
Velocity0.0

Mutation Models for Pedigree Likelihood Computations

pedmut turns awkward mutation models into ones the likelihood engine can actually handle.

pedigree analysismutation modelsforensic geneticsallele lumpingr packages
Current state
pedmut builds and transforms the mutation models used in pedigree likelihood calculations. Its recent arc is a toolkit of model transformations: makeReversible() with three methods, makeStationary() replacing the older stabilize(), adjustRate() for tuning overall mutation rate, and lumpMutSpecial() for lumping models that strong lumpability cannot handle. The most recent release is narrow, adding a programmatic output format to getParams().
Where it's heading
The consistent goal is making models satisfy the mathematical properties downstream algorithms require. Reversibility, stationarity, and lumpability each unlock something in pedprobr, and the package keeps adding ways to coerce an arbitrary model into having them. lumpMutSpecial() is explicitly incomplete, described as covering only some cases with more possibly to follow, which sets up the main open thread.
Prediction
Expect additional special lumping cases to be implemented, since the package documents the current coverage as partial and pedprobr's likelihood performance depends directly on it.

Recent moves

  1. 2mo ago

    getParams() gains a programmatic output format

    A fourth output format returns a list of lists rather than a printable table, aimed at programmatic use. Convenience for callers building on the package.

    View source ↗
  2. 1y ago

    Special lumping arrives for un-lumpable models

    lumpMutSpecial() implements lumping for mutation models that strong lumpability cannot handle, and makeStationary() replaces stabilize() with a shortcut through the transform argument. This is the function pedprobr 1.0.0 builds its special lumping on, though the maintainer notes only some cases are covered.

    View source ↗
  3. 1y ago

    Reversibility transformations and rate adjustment

    makeReversible() implements three transformations to reversibility, applicable on the fly via a transform argument, and adjustRate() tunes the overall mutation rate. Random models can now condition on a fixed rate, making simulated models comparable across runs.

    View source ↗
  4. 2y ago

    Mutation rate and boundedness diagnostics

    mutRate() computes a model's overall mutation rate and isBounded() checks whether a matrix is bounded by allele frequencies, alongside a new stepwiseReversible(). Diagnostics for the model properties the later transformation functions are designed to establish.

    View source ↗
  5. 3y ago

    PM stabilisation and multi-lump strong lumpability

    The Simonsson and Mostad PM stabilisation method is ported over from Familias, and lumping is generalized to multiple lumps under strong lumpability. The property predicates are extended from matrices to full models, and findStationary() is added.

    View source ↗
  6. 3y ago

    lumpedModel() wrapper and lumping speedups

    lumpedModel() wraps lumpedMatrix() at the model level, and the lumping code gets speedups the maintainer expects to show up in ped suite likelihood calculations with many markers. An early instance of the pattern where pedmut's internals set the performance ceiling for pedprobr.

    View source ↗