Computing is revolutionizing the practice of biology. Computing for Biologists, which assumes no prior computing experience, provides students with the tools to write their own Python programs and to understand fundamental concepts in computational biology and bioinformatics. Each major part of Computing for Biologists begins with a compelling biological question, followed by the algorithmic ideas and programming tools necessary to explore it: the origins of pathogenicity are examined using gene finding, the evolutionary history of sex determination systems is studied using sequence alignment, and the origin of modern humans is addressed using phylogenetic methods. In addition to providing general programming skills, Computing for Biologists explores the design of efficient algorithms, simulation, NP-hardness, and the maximum likelihood method, among other key concepts and methods. Easy-to-read and designed to equip students with the skills to write programs for solving a range of biological problems, Computing for Biologists is accompanied by numerous programming exercises, available at www.cs.hmc.edu/CFB.
Part I. Python Versus Pathogens:
1. Computing GC content
2. Pathogenicity islands
3. Open reading frames and genes
4. Finding genes (at last!)
Part II. Sequence Alignment and Sex Determination:
6. The use-it-or-lose-it principle
7. Dictionaries, memoization, and speed
8. Sequence alignments and the evolution of sex chromosomes
Part III. Phylogenetic Reconstruction and the Origin of Modern Humans:
9. Representing and working with trees
10. Drawing trees
11. The UPGMA algorithm
Part IV. Additional Topics:
12. RNA secondary structure prediction
13. Gene regulatory networks and the maximum likelihood method
14. Birds, bees, and genetic algorithms
Where to go from here
Ran Libeskind-Hadas is the R. Michael Shanahan Professor of Computer Science at Harvey Mudd College, USA, working in the areas of algorithms and computational biology. He is a recipient of both the Iris and Howard Critchell Professorship and the Joseph B. Platt Professorship for teaching, as well as the Distinguished Alumni Educator Award from the University of Illinois, Urbana-Champaign Department of Computer Science
Eliot Bush is Associate Professor of Biology at Harvey Mudd College, USA. His main research interest is the study of evolution. Among other things he has modeled the evolution of metabolism, characterized DNA methylation patterns in insects, developed algorithms for studying substitution bias in DNA, and analyzed a 30-million-year-old primate fossil. His teaching interests focus on incorporating computers and programming assignments into biology coursework.
"In my twenty years as a professor, I have never run across a textbook on bioinformatics algorithms that a biologist can read from cover to cover and understand. This is the one."
– Pavel Pevzner, Ronald R. Taylor Distinguished Professor of Computer Science, University of California, San Diego
"This is an awesome book for anyone to get into computing. It is easy to follow and clearly structured so the reader understands what they are learning and why. The book provides the fundamentals concepts of computational biology and bioinformatics in parallel to gaining actual skills in computing and the ability to write your own Python programs! What I love about the book is how the authors ensured the concepts and skills are applicable to a clear and define biological problem. The authors help demystify the various topics and bring the reader to understand the algorithms behind and the programming tools by applying these to resolve an actual biological problem. This book is also an excellent resource for those involved in training and education and provides plenty of exercise to use in the actual classroom."
– Maria Victoria Schneider, The Genome Analysis Centre (TGAC), UK
"There is a wide agreement that biological science curricula should change and that a better understanding of computational notions and practice is required, starting at undergraduate level. Only a handful of academic programs, and fewer textbooks, are offering such computational experience to life science students, beyond a general introductory programming course. Libeskind-Hadas and Bush take a novel, exciting approach to this challenge. They designed an introductory programming and computer science principles course, using Python, and built around a carefully selected suit of computational problems with a biological motivation. The book covers all basic notions and programming practices that are taught in standard CS introductory course, and even adds some advanced computational ideas. Most importantly, it will be far more friendly and relevant to the vast majority of life science students, who are likely to discover through it both the beauty of computer science and its relevance to their own discipline."
– Benny Chor, Tel-Aviv University, Israel