calc.genoprob(cross, step=0, off.end=0, error.prob=0,
map.function=c("haldane","kosambi","c-f"))cross. See
read.cross for details.step = 0,
calculate probabilites only at the marker locations.cross object in the input is returned with the genotype
probabilities added. Recall that the cross$geno component is a
list whose elements correspond to chromosomes and which are themselves
lists with components data and map. For each
chromosomes, an additional component, prob, is added. This
is an array of size [n.ind x n.pos x n.gen] where n.pos is the number
of positions at which the probabilities were calculated and n.gen = 3
for an intercross, = 2 for a backcross, and = 4 for a 4-way cross.calc_genoprob. Let $O_i$ denote the observed marker genotype at position $i$, and $g_i$ denote the corresponding true underlying genotype.
We use the forward-backward equations to calculate $alpha_{iv} = \log Pr(O_1, \ldots, O_i, g_i = v)$ and $beta_{iv} = \log Pr(O_{i+1}, \ldots, O_n | g_i = v)$
We then obtain $Pr(g_i | O_1, \ldots, O_n) = \exp(alpha_{iv} + beta_{iv}) / s$ where $s = \sum_v \exp(alpha_{iv} + beta_{iv})$
In the case of the 4-way cross, with a sex-specific map, we assume a constant ratio of female:male recombination rates within the inter-marker intervals.
Attributes "error.prob", "step", and "off.end" are set to the values of
the corresponding arguments, for later reference (especially by the
function cacl.errorlod).
LR Rabiner (1989) A tutorial on hidden Markov models and selected applications in speech recognition. Proceedings of the IEEE 77:257-286.
sim.geno, argmax.geno,
calc.errorloddata(fake.f2)
fake.f2 <- calc.genoprob(fake.f2,step=2,off.end=5)
<testonly>data(fake.bc)</testonly>
<testonly>fake.bc <- calc.genoprob(fake.bc,step=0,off.end=0)</testonly>Run the code above in your browser using DataLab