#' Copyright(c) 2017-2024 R. Mark Sharp #' This file is part of nprcgenekeepr context("calcFG") library(testthat) ped <- data.frame( id = c("A", "B", "C", "D", "E", "F", "G"), sire = c(NA, NA, "A", "A", NA, "D", "D"), dam = c(NA, NA, "B", "B", NA, "E", "E"), stringsAsFactors = FALSE ) ped["gen"] <- findGeneration(ped$id, ped$sire, ped$dam) ped$population <- getGVPopulation(ped, NULL) pedFactors <- data.frame( id = c("A", "B", "C", "D", "E", "F", "G"), sire = c(NA, NA, "A", "A", NA, "D", "D"), dam = c(NA, NA, "B", "B", NA, "E", "E"), stringsAsFactors = TRUE ) pedFactors["gen"] <- findGeneration(pedFactors$id, pedFactors$sire, pedFactors$dam) pedFactors$population <- getGVPopulation(pedFactors, NULL) alleles <- geneDrop(ped$id, ped$sire, ped$dam, ped$gen, genotype = NULL, n = 5000, updateProgress = NULL) allelesFactors <- geneDrop(pedFactors$id, pedFactors$sire, pedFactors$dam, pedFactors$gen, genotype = NULL, n = 5000, updateProgress = NULL) fg <- calcFG(ped, alleles) fgFactors <- calcFG(pedFactors, allelesFactors) ## Prior to forcing the pedigree to have id, sire, and dam as character vectors ## inside calcFG, the two calculations above with ped (characters) and ## feFactors (factors) resulted 2.189855 and 1.857998 respectively. ## ## Used example from Analysis of Founder Representation in Pedigrees: Founder ## Equivalents and Founder Genome Equivalents. ## Zoo Biology 8:111-123, (1989) by Robert C. Lacy ## He presented 2.18 as the answer, which was truncated and not precise enough ## for this specific comparison. test_that("calcFG correctly calculates the number of founder genetic equivalents in the pedigree", { expect_true(abs(fg - fgFactors) < 0.2) expect_true(abs(fg - 2.18) < 0.2) })