Learn R Programming

onemap (version 2.0-1)

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.numa vector containing the (ordered) indices of markers in the sequence, according to the input file.
  • seq.phasesa vector with the linkage phases between markers in the sequence, in corresponding positions. -1 means that there are no defined linkage phases.
  • seq.rfa vector with the recombination frequencies between markers in the sequence. -1 means that there are no estimated recombination frequencies.
  • seq.likelog-likelihood of the corresponding linkage map.
  • data.namename of the object of class outcross with the raw data.
  • twoptname 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
##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