The chapter discusses the application of maximum likelihood techniques to estimate evolutionary trees from DNA sequence data. It highlights the limitations of traditional parsimony algorithms, which can produce misleading results when evolutionary rates vary across lineages. The method developed in this paper offers advantages by allowing for the testing of hypotheses about constant evolutionary rates through likelihood ratio tests and providing an estimate of the tree's error. The author introduces a computationally feasible algorithm for finding maximum likelihood estimates and presents a computer program to implement this method. The chapter also delves into the computational aspects of likelihood estimation, emphasizing the importance of assuming independence of evolutionary events at different sites to simplify calculations. The likelihood of a given set of sequences on a specific tree is derived, and the process of maximizing this likelihood over all possible trees is outlined.The chapter discusses the application of maximum likelihood techniques to estimate evolutionary trees from DNA sequence data. It highlights the limitations of traditional parsimony algorithms, which can produce misleading results when evolutionary rates vary across lineages. The method developed in this paper offers advantages by allowing for the testing of hypotheses about constant evolutionary rates through likelihood ratio tests and providing an estimate of the tree's error. The author introduces a computationally feasible algorithm for finding maximum likelihood estimates and presents a computer program to implement this method. The chapter also delves into the computational aspects of likelihood estimation, emphasizing the importance of assuming independence of evolutionary events at different sites to simplify calculations. The likelihood of a given set of sequences on a specific tree is derived, and the process of maximizing this likelihood over all possible trees is outlined.