[27] ALGORITHMS FOR BIOLOGICAL SEQUENCE COMPARISON 575 The variance of this mean is approximately equal to the mean, according to our computer simulations. Acknowledgments We thank Patsy Craig for preparation of the manuscript and Paula P. Azimi for the artwork. This work was supported in part by National Institutes of Health Grant RR 00847 to the Clinical Research Center of the University of Virginia, Grant RCDA 1 KO4 HD00634 (J.D.V.), Grant GM-28928 (M.L.J.), the Diabetes and Endocrinology Research Center Grant NIH DK-38942, the NIH-supported Clinfo Data Reduction Systems, the Pratt Foundation, the University of Virginia Academic Enhancement Fund, and the National Science Founda- tion Science Center for Biological Timing (DIR-8920162). [27] Dynamic Programming Algorithms for Biological Sequence Comparison By WILLIAM R. PEARSONand WEBB MILLER Introduction The concurrent development of molecular cloning techniques, DNA sequencing methods, rapid sequence comparison algorithms, and com- puter workstations has revolutionized the role of biological sequence com- parison in molecular biology. Twenty years ago, protein sequence determi- nation was the last step in the characterization of a protein. Today, we clone first, sequence the clone, search the databases, and then, armed with hypotheses about structure and function that are based on sequence similarity, proceed with experiments to characterize the biochemical prop- erties of a protein. This strategy--clone first and experiment laterwis likely to become even more popular as sequence databases grow larger and thus more comprehensive. In this chapter, we discuss several dynamic programming algorithms that have been applied to biological sequence comparison problems. 1Such algorithms are the basis of most methods currently used to identify dis- tantly related proteins by sequence similarity. We do not discuss the application of these algorithms, or of their heuristic approximations, to sequence database searches. For reviews of the problems encountered in 1 "Dynamic programming" refers to a broad class of algorithms that have been applied to problems from a number of areas. For other examples, see T. H. Cormen, C. E. Leiserson, and R. L. Rivest, "Introduction to Algorithms," p. 301. McGraw-Hill, New York, 1990. Copyright© 1992 by Academic Press,Inc. METHODSIN ENZYMOLOGY,VOL.210 All rightsof reproduction in any formreserved.