Nothing
test_that("likelihood of inbred singleton agrees with expanded pedigree, and theory", {
p = 0.1; q = 1-p
x = nuclearPed(2, sex=1:2) |> addSon(3:4)
mhom = marker(x, '5'=1, alleles=1:2, afreq=c(p,q), name="hom")
mhet = marker(x, '5'=1:2, alleles=1:2, afreq=c(p,q), name="het")
x = setMarkers(x, list(mhom, mhet))
y = subset(x, 5)
founderInbreeding(y, 5) = 0.25
lik_y_hom = likelihood(y, "hom")
lik_y_het = likelihood(y, "het")
# agree with expanded
expect_equal(lik_y_hom, likelihood(x, "hom", verbose = F))
expect_equal(lik_y_het, likelihood(x, "het", verbose = F))
# agree with theory
expect_equal(lik_y_hom, 0.25 * p + 0.75 * p^2)
expect_equal(lik_y_het, 0.25 * 0 + 0.75 * 2*p*q)
})
test_that("likelihood of nuc with inbred founder is correct", {
p = 0.1; q = 1-p
x = addSon(addChildren(nuclearPed(2, sex=1:2), 3, 4, 1), 5)
mhom = marker(x, '5'=1, alleles=1:2, afreq=c(p,q), name="hom")
mhet = marker(x, '5'=1:2, alleles=1:2, afreq=c(p,q), name="het")
x = setMarkers(x, list(mhom, mhet))
y = branch(x, 5)
founderInbreeding(y, 5) = 0.25
lik_y_hom = likelihood(y, "hom")
lik_y_het = likelihood(y, "het")
# agree with expanded
expect_equal(lik_y_hom, likelihood(x, "hom", verbose = F))
expect_equal(lik_y_het, likelihood(x, "het", verbose = F))
# agree with theory
expect_equal(lik_y_hom, 0.25 * p + 0.75 * p^2)
expect_equal(lik_y_het, 0.25 * 0 + 0.75 * 2*p*q)
})
test_that("founder inb raises error in likelihood of linked markers", {
x = nuclearPed(1)
m = marker(x, "1" = 1, alleles = 1:2)
founderInbreeding(x, 1) = 1
# ped method
expect_error(likelihood2(x, m, m, rho = 0.1),
"Likelihood of linked markers is not implemented in pedigrees with founder inbreeding.")
# singleton method
s = subset(x, 1)
expect_error(likelihood2(s, m, m, rho = 0.1),
"Likelihood of linked markers is not implemented in pedigrees with founder inbreeding.")
})
test_that("complete inbreeding + heterozygosity = 0", {
s = singleton(1) |> addMarker(geno = "1/2")
founderInbreeding(s, 1) = 1
expect_equal(likelihood(s), 0)
x = nuclearPed(1) |> addMarker("1" = "1/2")
founderInbreeding(x, 1) = 1
expect_equal(likelihood(x), 0)
y = list(x,s)
expect_equal(likelihood(y), 0)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.