Learn R Programming

onemap (version 2.0-4)

record: Recombination Counting and Ordering

Description

Implements the marker ordering algorithm Recombination Counting and Ordering (Van Os et al., 2005).

Usage

record(input.seq, times=10, LOD=0, max.rf=0.5, tol=10E-5)

Arguments

input.seq

an object of class sequence.

times

integer. Number of replicates of the RECORD procedure.

LOD

minimum LOD-Score threshold used when constructing the pairwise recombination fraction matrix.

max.rf

maximum recombination fraction threshold used as the LOD value above.

tol

tolerance for the C routine, i.e., the value used to evaluate convergence.

Value

An object of class sequence, which is a list containing the following components:

seq.num

a vector containing the (ordered) indices of markers in the sequence, according to the input file.

seq.phases

a vector with the linkage phases between markers in the sequence, in corresponding positions. -1 means that there are no defined linkage phases.

seq.rf

a vector with the recombination frequencies between markers in the sequence. -1 means that there are no estimated recombination frequencies.

seq.like

log-likelihood of the corresponding linkage map.

data.name

name of the object of class outcross with the raw data.

twopt

name of the object of class rf.2pts with the 2-point analyses.

Details

Recombination Counting and Ordering (RECORD) is an algorithm for marker ordering in linkage groups. It is not an exhaustive search method and, therefore, is not computationally intensive. However, it does not guarantee that the best order is always found. The only requirement is a matrix with recombination fractions between markers. Next is an adapted excerpt from Mollinari et al (2009) describing the RECORD algorithm:

Based on the expected number of recombination events, an \(S\) matrix is constructed, \(S = [S_{M_{i}M_{j}}]_{m \times m}\) (for \(M_{i} = M_{j}\), \(S_{M_{i}M_{j}} = 0\)), where \(m\) is the number of markers. The procedure to obtain \(S\) is based on the expected number of crossovers between marker pairs, conditioned by the observation of the markers' phenotype. The optimization criterion COUNT for a sequence of \(m\) markers may be calculated by \(COUNT = \sum_{i=1}^{m-1} S_{M_{i}M_{i+1}}\), where smaller COUNT values correspond to better orders. Map building is carried out by randomly taking two markers and positioning a third one at the beginning, at the end and between them. The marker is fixed at the position that gives a smaller value of COUNT. Similarly, the remaining markers are positioned at pre-established orders until completion of the map. Subsequently, a search for smaller values of COUNT is performed, inverting the position on the map of subsequences of size \(m' = 2, \ldots, 20\). If the map resulting from the inverted positions presents a COUNT value smaller than the previous one, it is kept. The procedure is repeated times times and the sequence presenting the smallest COUNT value is chosen.

After determining the order with RECORD, the final map is constructed using the multipoint approach (function map).

References

Mollinari, M., Margarido, G. R. A., Vencovsky, R. and Garcia, A. A. F. (2009) Evaluation of algorithms used to order markers on genetics maps. Heredity 103: 494-502.

Van Os, H., Stam, P., Visser, R.G.F. and Van Eck, H.J. (2005) RECORD: a novel method for ordering loci on a genetic linkage map. Theoretical and Applied Genetics 112: 30-40.

See Also

make.seq and map

Examples

Run this code
# NOT RUN {
  ##outcross example
  data(example.out)
  twopt <- rf.2pts(example.out)
  all.mark <- make.seq(twopt,"all")
  groups <- group(all.mark)
  LG1 <- make.seq(groups,1)
  LG1.rec <- record(LG1)

  ##F2 example
  data(fake.f2.onemap)
  twopt <- rf.2pts(fake.f2.onemap)
  all.mark <- make.seq(twopt,"all")
  groups <- group(all.mark)
  LG1 <- make.seq(groups,1)
  LG1.rec <- record(LG1)
  LG1.rec
# }

Run the code above in your browser using DataLab