orderMarkers: Find an initial order for markers within chromosomes

View source: R/map_construction.R

orderMarkersR Documentation

Find an initial order for markers within chromosomes

Description

Establish initial orders for markers within chromosomes by a greedy algorithm, adding one marker at a time with locations of previous markers fixed, in the position giving the miniminum number of obligate crossovers.

Usage

orderMarkers(cross, chr, window=7, use.ripple=TRUE, error.prob=0.0001,
             map.function=c("haldane","kosambi","c-f","morgan"),
             maxit=4000, tol=1e-4, sex.sp=TRUE, verbose=FALSE)

Arguments

cross

An object of class cross. See read.cross for details.

chr

Optional vector indicating the chromosomes to consider. This should be a vector of character strings referring to chromosomes by name; numeric values are converted to strings. Refer to chromosomes with a preceding - to have all chromosomes but those considered. A logical (TRUE/FALSE) vector may also be used.

window

If use.ripple=TRUE, this indicates the 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.

use.ripple

If TRUE, the initial order is refined by a call to the function ripple.

error.prob

Assumed genotyping error rate used in the final estimated map.

map.function

Indicates the map function to use in the final estimated map.

maxit

Maximum number of EM iterations to perform in the final estimated map.

tol

Tolerance for determining convergence in the final estimated map.

sex.sp

Indicates whether to estimate sex-specific maps in the final estimated map; this is used only for the 4-way cross.

verbose

If TRUE, information about the progress of the calculations is displayed; if > 1, even more information is given.

Details

Markers within a linkage group are considered in order of decreasing number of genotyped individuals. The first two markers are placed in an arbitrary order. Additional markers are considered one at a time, and each possible placement of a marker is compared (with the order of the previously placed markers taken as fixed) via the number of obligate crossovers (that is, the minimal number of crossovers that would explain the observed data). The marker is placed in the position giving the minimal number of obligate crossovers. If multiple positions give the same number of obligate crossovers, a single location (among those positions) is chosen at random.

If use.ripple=TRUE, the final order is passed to ripple with method="countxo" to refine the marker order. If use.ripple=TRUE and the number of markers on a chromosome is \le the argument window, the initial greedy algorithm is skipped and all possible marker orders are compared via ripple.

Value

The output is a cross object, as in the input, with orders of markers on selected chromosomes revised.

Author(s)

Karl W Broman, broman@wisc.edu

See Also

formLinkageGroups, ripple, est.map, countXO

Examples

data(listeria)
pull.map(listeria, chr=3)
revcross <- orderMarkers(listeria, chr=3, use.ripple=FALSE)
pull.map(revcross, chr=3)

qtl documentation built on Nov. 28, 2023, 1:09 a.m.