if(checkMerlin()) {
### Trivial example for validation
x = nuclearPed(1) |>
addMarker("1" = "1/2") |> # likelihood = 1/2
addMarker("1" = "1/1", "3" = "1/2") # likelihood = 1/8
# MERLIN likelihoods
lik1 = likelihoodMerlin(x, markers = 1, verbose = FALSE)
lik2 = likelihoodMerlin(x, markers = 2, verbose = FALSE)
likTot = likelihoodMerlin(x, verbose = FALSE)
stopifnot(all.equal(
round(c(lik1, lik2, likTot), c(3,3,4)), c(1/2, 1/8, 1/16)))
# Example with ped lists
y = singletons(1:2) |>
addMarker(`1` = "1/2", `2` = "1/1", alleles = 1:2)
lik = likelihoodMerlin(y, verbose = FALSE)
stopifnot(all.equal(round(lik, 3), 1/8))
### Linked markers
z = nuclearPed(2)
m = marker(z, geno = c("1/1", "1/2", "1/2", "1/2"))
z = setMarkers(z, list(m, m))
# By MERLIN...
L1 = likelihoodMerlin(z, markers = 1:2, rho = 0.25, verbose = FALSE)
# ...and by pedprobr
L2 = likelihood2(z, marker1 = 1, marker2 = 2, rho = 0.25)
# stopifnot(all.equal(signif(L1, 3), signif(L2, 3)))
}
Run the code above in your browser using DataLab