Computing for Biologists
Python Programming and Principles

This book teaches life science students how to use Python programming and computational problem-solving in the context of compelling biological applications.

Ran Libeskind-Hadas (Author), Eliot Bush (Author)

9781107642188, Cambridge University Press

Paperback, published 22 September 2014

218 pages
24.7 x 19 x 1 cm, 0.5 kg

'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

Computing is revolutionizing the practice of biology. This book, 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 the book 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, this book 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, the book is accompanied by numerous programming exercises, available at www.cs.hmc.edu/CFB.

Preface
Meet python
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: 5. Recursion
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
Index.

Subject Areas: Life sciences: general issues [PSA], Biology, life sciences [PS], Science: general issues [PD], Mathematics & science [P]