Overlapping codon model, phylogenetic clustering, and alternative partial expectation conditional maximization algorithm