Investigate different marker orders for a given chromosome, comparing all possible permutations of a sliding window of markers.
ripple(cross, chr, window=4, method=c("countxo","likelihood"),
error.prob=0.0001, map.function=c("haldane","kosambi","c-f","morgan"),
maxit=4000, tol=1e-6, sex.sp=TRUE, verbose=TRUE, n.cluster=1)
An object of class cross
. See
read.cross
for details.
The chromosome to investigate. Only one chromosome is allowed. (This should be a character string referring to the chromosomes by name.)
Number of markers to include in the sliding window of permuted markers. Larger numbers result in the comparison of a greater number of marker orders, but will require a considerable increase in computation time.
Indicates whether to compare orders by counting the number of obligate crossovers, or by a likelihood analysis.
Assumed genotyping error rate used in the calculation of the penetrance Pr(observed genotype | true genotype).
Indicates whether to use the Haldane, Kosambi, Carter-Falconer, or Morgan map function when converting genetic distances into recombination fractions.
Maximum number of EM iterations to perform.
Tolerance for determining convergence.
Indicates whether to estimate sex-specific maps; this is used only for the 4-way cross.
If TRUE, information about the number of orders (and, if
method="likelihood"
, about progress) are printed.
If the package snow
is available and
n.perm
> 0, permutations are run in parallel using this number
of nodes. This is really only useful with method="likelihood"
.
A matrix, given class "ripple"
; the first set of columns are
marker indices describing the order. In the case of
method="countxo"
, the last column is the number of obligate
crossovers for each particular order. In the case of
method="likelihood"
, the last two columns are LOD scores (log
base 10 likelihood ratios) comparing each order to the initial order
and the estimated chromosome length for the given order. Positive LOD
scores indicate that the alternate order has more support than the
original.
For method="likelihood"
, calculations are done by first
constructing a matrix of marker orders and then making repeated calls
to the R function est.map
. Of course, it would be
faster to do everything within C, but this was a lot easier to code.
For method="countxo"
, calculations are done within C.
# NOT RUN {
data(badorder)
rip1 <- ripple(badorder, chr=1, window=3)
summary(rip1)
# }
# NOT RUN {
rip2 <- ripple(badorder, chr=1, window=2, method="likelihood")
summary(rip2)
# }
# NOT RUN {
badorder <- switch.order(badorder, 1, rip1[2,])
# }
Run the code above in your browser using DataLab