Implements the marker ordering algorithm Unidirectional Growth (Tan & Fu, 2006).
ug(input.seq, LOD=0, max.rf=0.5, tol=10E-5)
an object of class sequence
.
minimum LOD-Score threshold used when constructing the pairwise recombination fraction matrix.
maximum recombination fraction threshold used as the LOD value above.
tolerance for the C routine, i.e., the value used to evaluate convergence.
An object of class sequence
, which is a list containing the
following components:
a vector
containing the (ordered) indices of
markers in the sequence, according to the input file.
a vector
with the linkage phases between markers
in the sequence, in corresponding positions. -1
means taht there are
no defined linkage phases.
a vector
with the recombination frequencies between
markers in the sequence. -1
means that there are no estimated
recombination frequencies.
log-likelihood of the corresponding linkage map.
name of the object of class outcross
with the
raw data.
name of the object of class rf.2pts
with the 2-point
analyses.
Unidirectional Growth (UG) 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 UG algorithm:
Based on the \(R\) (recombination fraction) matrix, the distance between all \(m\) loci is calculated by \(d_{ij} = \hat{r}_{ij} + (\frac{2}{n_{ij}}) \sum_{k} \hat{r}_{ik} \hat{r}_{jk}\), for every \(k\), with \(\hat{r}_{ij} > \hat{r}_{ik}, \hat{r}_{ij} > \hat{r}_{jk}\), and \(n_{ij}\) individuals. The value \(T_{ij} = 2 d_{ij} - (\sum_{k \neq i} d_{ik} + \sum_{k \neq j} d_{jk})\) is calculated for every \(i < j\). The terminal end of the map is defined by taking the pair of markers \((f, g)\) that presents the smallest value of \(T\). The pair \((f, g)\) is then denoted locus \(m + 1\) and its distance to the remaining markers is determined by \(d_{i m+1} = \frac{1}{2}(d_{if} + d_{ig} - d_{fg})\) if \((d_{if} + d_{ig}) > d_{fg}\), if not, \(d_{i m+1} = 0\). The calculation \(W_{i m+1} = (m - 2) d_{i m+1} - \sum_{k \neq i} d_{ik}\) is also performed and the locus that minimizes the value \(W_{i m+1}\) (called locus \(h\)) is placed on the map. The partial resultant map is f-g-h if \(d_{fh} > d_{gh}\) or h-f-g otherwise. Considering \(k = 2\), the partial distance of the map with the remaining markers is updated: \(d_{i m+k} = \mbox{min}(d_{i m+k-1}, d_{ij})\). The value \(W_{i m+k} = (m - k - 1) d_{i m+k} - \sum_{k \neq i} d_{ik}\) is calculated and the locus that minimizes \(W\) is added to the map. The last two steps are repeated, taking \(k = 3, \ldots, m - 1\) to obtain the complete map.
After determining the order with UG, the final map is constructed
using the multipoint approach (function map
).
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.
Tan, Y. and Fu, Y. (2006) A novel method for estimating linkage maps. Genetics 173: 2383-2390.
# 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.ug <- ug(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.ug <- ug(LG1)
LG1.ug
# }
Run the code above in your browser using DataLab