This article describes the technical basis of the MSTmap algorithm (Wu et al. 2008) as it is implemented in ASMap. An understanding of its components is of practical value, since they correspond directly to arguments of the two construction functions.
Background
Genetic linkage maps consist of a set of polymorphic markers spanning the genome of a population derived from a cross between parental lines. They are used both to examine the genetic landscape of the population itself and, more commonly, to conduct geneβtrait association studies such as quantitative trait loci (QTL) analysis or genomic selection. In QTL analysis in particular, the interpretation of significant genomic locations is improved when the markers have been assigned to chromosomal groups and optimally ordered within them.
Within the R environment (R Development Core Team 2014) a small number of packages perform linkage map construction. R/qtl (Broman and Wu 2014) provides an extensive set of tools for construction, exploration and manipulation across backcross, doubled haploid, intercrossed F2 and four-way populations, together with advanced recombinant inbred lines and populations arising from repeated backcrossing and selfing; it is documented at length by Broman and Sen (2009). R/onemap (Margarido and Mollinari 2014) offers comparable facilities for backcross, doubled haploid and recombinant inbred populations, and additionally for outcrossing populations.
Marker ordering in both packages proceeds in two stages. An initial order is obtained by a non-exhaustive method such as SERIATION (Buetow and Chakravarti 1987) or RECORD (Van Os et al. 2005); because such an order is not guaranteed to be optimal, it is then refined by exhaustively evaluating all permutations within a sliding marker window, a procedure known in the linkage mapping community as rippling. The computational cost of the second stage grows rapidly with the number of markers and the width of the window, and the procedure may require repetition before a stable order is reached.
ASMap was developed to avoid this two-stage structure (Taylor and Butler 2014; Taylor and Butler 2017). Its construction functions use the MSTmap algorithm (Wu et al. 2008), implemented as C++ source code and available separately from http://alumni.cs.ucr.edu/~yonghui/mstmap.html. The algorithm uses the minimum spanning tree of a graph (Cheriton and Tarjan 1976) both to cluster markers into linkage groups and to order markers within each group, in a single stage. It is applicable to backcross, doubled haploid and recombinant inbred populations; for the latter the level of self pollination may be specified, so that selfed F2, F3, , Fn populations are accommodated, where denotes the level of selfing. Advanced recombinant inbred populations are treated as bi-parental for the purpose of construction.
Notation and objective functions
Following the notation of Wu et al. (2008), consider a doubled haploid population of individuals genotyped across a set of markers, in which each th entry of the matrix is either an or a , representing the two parental homozygotes. Let denote the probability of a recombination event between the markers , where . MSTmap admits two weight objective functions based on these recombination probabilities,
In general is unknown and is replaced by the estimate , where is the Hamming distance between and , that is, the number of non-matching alleles between the two markers. This estimate is also the maximum likelihood estimate of for both weight functions.
These correspond to the objective.fun argument of the
construction functions, "COUNT" selecting (1) and
"ML" selecting (2).
Clustering markers into linkage groups
If markers and belong to different linkage groups then , and the Hamming distance between them has the property . A thresholding mechanism for determining whether two markers belong to the same linkage group follows from Hoeffdingβs inequality,
for . For a given and , the equation is solved to obtain an appropriate Hamming distance threshold .
Wu et al. (2008) indicate that the choice of is not critical to the formation of linkage groups. The equation to be solved is, however, strongly dependent on the number of individuals in the population, and in practice the choice matters a great deal. The figure below shows, for a doubled haploid population, the profiles of against population size for four threshold minimum cM distances .

Negative log10 epsilon versus the number of genotypes in the population, for four threshold cM distances.
MSTmap adopts a default of , which is generally suitable for population sizes of to . For larger populations the default becomes unsuitable. At , for instance, the figure indicates that between and imposes a conservative minimum threshold of 30 to 35 cM before markers in different clusters are linked, whereas retaining the default lowers that threshold to approximately 45 cM, at which point distinct clusters of markers will appear linked.
The relationship between population size and
p.valueshould be examined before construction is attempted. It is the argument that most often accounts for an implausible number of linkage groups.
Clustering itself proceeds by forming an edge-weighted undirected complete graph for , in which the markers are vertices and the edge between any two markers and carries the pairwise Hamming distance . Edges of weight greater than are removed, and the remaining connected components partition the marker set into linkage groups, .
Ordering markers within a linkage group
Consider now the matrix of markers belonging to a single linkage group. Prior to ordering, the markers are binned into groups within which the pairwise distance between any two markers is zero. Markers within such a group exhibit no recombination between them and are said to co-locate at the same genomic position for the genotypes used in construction. A representative marker is selected from each bin to form the reduced marker set .
For the reduced matrix, consider the complete set of entries under either weight function (1) or (2). These may be viewed as the upper triangle of a symmetric weight matrix , and equivalently as the connected edges of an undirected graph in which the markers are vertices. An order for the set , also termed a travelling salesman path, is then obtained by visiting each marker once and summing the weights of the edges traversed. To find a path of minimum weight, MSTmap employs a minimum spanning tree algorithm (Cheriton and Tarjan 1976) such as that of Prim (1957).
Where the minimum weight path is unique, the minimum spanning tree gives the correct marker order. Where the data contain genotyping errors, or the number of individuals is small, the tree may not form a complete path and may instead contain markers or small sets of markers as nodes attached to it. In such cases MSTmap takes the longest path in the tree as a backbone and applies local optimisation techniques, among them K-opt, node relocation and block optimisation (see Wu et al. 2008), to improve upon the current path. The integration of these techniques is what permits ordering to be completed in a single stage.
Imputation of missing scores
Imputation of missing allele scores is performed by an EM type algorithm that is tightly integrated with the ordering procedure rather than applied as a preliminary step. The marker matrix is converted to a matrix whose entries express the probabilistic certainty of an allele being . For the th marker and th individual,
where and are the estimated recombination fractions between the th and th markers and between the th and th markers respectively. The third expression is the posterior probability that the missing value at marker is the allele for genotype , given the current estimates.
The procedure begins by calculating pairwise normalised distances between all markers in and deriving an initial weight matrix . An undirected graph is formed from the markers and the upper triangular entries of , and its minimum spanning tree establishes an initial order. For the current order at the th markers, the E-step updates the missing observation at marker through the estimates and in (4). The M-step then re-estimates the pairwise distances between all markers, where for the th and th marker
and is recalculated. A new undirected graph is formed, a new order derived from its minimum spanning tree, and the procedure repeated to convergence. Several iterations are generally required, though the computation remains expedient; computation time increases with the number of missing values.
This procedure underlies the mvest.bc argument, which is
discussed further in Notes on the MSTmap
algorithm.
Detection of genotyping errors
The algorithm can additionally detect and remove probable genotyping errors, again as part of the ordering procedure. A weighted average of nearby markers determines the expected state of an allele; for individual and marker ,
where the weights are the inverse squared distances from marker to its neighbours. Only a small set of nearby markers is used at each iteration, and an observed allele is regarded as suspicious when . A suspicious observation is set to missing and imputed by the EM algorithm described above.
Removing a suspicious allele reduces the number of recombinations between the marker concerned and its neighbours. This has a direct effect on the estimated genetic distances and hence on the overall length of the linkage group, and the option should therefore be used deliberately rather than routinely.
This is the basis of the detectBadData argument,
examined in Notes on the MSTmap
algorithm.
Further reading
- Constructing a linkage map β the arguments through which the components described above are controlled
-
Notes on the MSTmap algorithm β
the practical behaviour of
mvest.bcanddetectBadData, and how genetic distances are calculated - Worked example I β the algorithm applied to a barley backcross population