A flexible implementation of the Elston-Stewart algorithm
The Elston-Stewart algorithm allows to compute probability functions in pedigrees.
The function es.pedigree
allows to create S3 objects for pedigrees. They can be
plotted with a S3 method plot.es.pedigree
which is simply a wrapper for the
method provided in kinship2
.
The algorithm itself is run by two functions, Elston
and Likelihood
.
Elston
computes a probability for a single pedigree, given a probability model (similar
to the one given in modele.di
). It relies on memoization (or dynamic programming)
and allows vectorization (computing a vector of probabilities at once). Likelihood
is similar, but runs on pedigrees lists: it computes (the sum of) the logarithms of the probabilities
for each pedigree. It allows parallelization, running the computation for the various
pedigrees on different nodes of a cluster. The cluster is left opened for being re-used
(with memoization) on the same set of pedigrees. It can be closed with es.stopCluster
.
Two small data sets are provided for illustration, conrad2
and fams
.
The Elston-Stewart vignette gives commented examples.