Published May 28, 2024 | Version v2.18.0
Software Open

matthewwolak/nadiv: v2.18.0

Creators

  • 1. Auburn University

Description

2.18.0

NEW

  • makeDiiF() can now be given coefficients of inbreeding. Facilitates either:
    • calculating f in a new generation of the pedigree if f has already been calculated for previous generations
    • creating a "phantom parent" to all founders to specify an average coefficient of inbreeding in the base population.
    • can be used to speed up simulations where breeding values are calculated based on mid-parent value plus Mendelian sampling deviation (that needs to account for inbreeding of parents).

Major changes

  • proLik() (and proLik4()) REMOVED from the package.

    • these functions were only to facilitate advanced use of the asreml R package (which requires purchasing an expensive license) and due to the unstable behavior of asreml discovered when revising proLik() it was decided that nadiv should no longer support this other package in this way.
    • Instead, time will be spent improving the gremlin R package for a replacement to asreml.
  • makeA() was affected by a bug in Matrix <1.6-0

    • Matrix::chol2inv() bug highlighted a messy order of operations in nadiv
    • now perfected the order of operations and explicitly use tcrossprod() and solve() which are just what chol2inv() uses
      • done to be more explicit in nadiv and take 1 step away from future bugs like this
    • checked speed and memory profiling for several options of types of matrices
      • dtCMatrix is best for time (tried "dtrMatrix" and "dtpMatrix", but these were much slower.
      • chol2inv() and tcrossprod(solve()) allocated same amount of memory according to profmem package
  • bug in makeAinv(), makeGGAinv(), and makeDiiF() caused coefficients of inbreeding (f) and Mendelian sampling variances (dii) to be ordered incorrectly

    • this did not cause matrices from these functions to be incorrect (e.g., Ainv, Tinv, and their related matrices), but did cause matrices built directly from dii to be incorrect - namely the A matrix from makeA() and so consequently anything built from A (i.e., dominance and epistatic relatedness matrices through makeD() etc.)
    • this was FIXED with details in the commit

Small changes

  • nadiv version 2.17.2 caused CRAN to archive due to error induced by Matrix updates
    • Mikael Jagan (Matrix author) helpfully provided excellent explanations and patches
    • errors in nadiv code caused by new methods for all.equal() and rbind2()
    • removed methods is.numPed() and is.proLik()
      • hardly use first and never second plus they just call inherits()

Files

matthewwolak/nadiv-v2.18.0.zip

Files (788.2 kB)

Name Size Download all
md5:bd4b6fcddd746fb4901eb4bb063cca46
788.2 kB Preview Download

Additional details

Related works