Many statistical methods have been proposed for estimation of haplotypes. Some of the earliest approaches used a simple multinomial model in which each possible haplotype consistent with the sample was given an unknown frequency parameter and these parameters were estimated with an
Expectation–maximization algorithm. These approaches were only able to handle small numbers of sites at once, although sequential versions were later developed, specifically the SNPHAP method. The most accurate and widely used methods for haplotype estimation utilize some form of
hidden Markov model (HMM) to carry out inference. For a long time PHASE was the most accurate method. PHASE was the first method to utilize ideas from
coalescent theory concerning the joint distribution of haplotypes. This method used a
Gibbs sampling approach in which each individuals haplotypes were updated conditional upon the current estimates of haplotypes from all other samples. Approximations to the distribution of a haplotype conditional upon a set of other haplotypes were used for the conditional distributions of the Gibbs sampler. PHASE was used to estimate the haplotypes from the
HapMap Project. PHASE was limited by its speed and was not applicable to datasets from genome-wide association studies. The fastPHASE and BEAGLE methods introduced haplotype cluster models applicable to
GWAS-sized datasets. Subsequently the IMPUTE2 and MaCH methods were introduced that were similar to the PHASE approach but much faster. These methods iteratively update the haplotype estimates of each sample conditional upon a subset of K haplotype estimates of other samples. IMPUTE2 introduced the idea of carefully choosing which subset of haplotypes to condition on to improve accuracy. Accuracy increases with K but with quadratic O(K^2) computational complexity. The SHAPEIT1 method made a major advance by introducing a linear O(K) complexity method that operates only on the space of haplotypes consistent with an individual's genotypes. The HAPI-UR method subsequently proposed a very similar method. SHAPEIT2 combines the best features of SHAPEIT1 and IMPUTE2 to improve efficiency and accuracy. ==See also==