Published May 28, 2024
| Version v2.18.0
Software
Open
matthewwolak/nadiv: v2.18.0
Description
2.18.0
NEW
makeDiiF()
can now be given coefficients of inbreeding. Facilitates either:- calculating
f
in a new generation of the pedigree iff
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).
- calculating
Major changes
proLik()
(andproLik4()
) 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 ofasreml
discovered when revisingproLik()
it was decided thatnadiv
should no longer support this other package in this way. - Instead, time will be spent improving the
gremlin
R package for a replacement toasreml
.
- these functions were only to facilitate advanced use of the
makeA()
was affected by a bug inMatrix
<1.6-0Matrix::chol2inv()
bug highlighted a messy order of operations innadiv
- now perfected the order of operations and explicitly use
tcrossprod()
andsolve()
which are just whatchol2inv()
uses- done to be more explicit in
nadiv
and take 1 step away from future bugs like this
- done to be more explicit in
- 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()
andtcrossprod(solve())
allocated same amount of memory according toprofmem
package
bug in
makeAinv()
,makeGGAinv()
, andmakeDiiF()
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 frommakeA()
and so consequently anything built from A (i.e., dominance and epistatic relatedness matrices throughmakeD()
etc.) - this was FIXED with details in the commit
- 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
Small changes
nadiv
version 2.17.2 caused CRAN to archive due to error induced byMatrix
updates- Mikael Jagan (
Matrix
author) helpfully provided excellent explanations and patches - errors in
nadiv
code caused by new methods forall.equal()
andrbind2()
- removed methods
is.numPed()
andis.proLik()
- hardly use first and never second plus they just call
inherits()
- hardly use first and never second plus they just call
- Mikael Jagan (
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
- Is supplement to
- Software: https://github.com/matthewwolak/nadiv/tree/v2.18.0 (URL)