Prologue: Welcome to the kingdom of Nerdia

1. Getting started with Python: Setting yourself up to use Python

We get you started on your journey, all the fun details on getting your very own Python environment setup up.

2. Python at the lab bench: The fundamentals of the Python language

We introduce some Python fundamentals and show you how to ditch those calculators and spreadsheets and let Python relieve the drudgery of basic lab calculations (freeing up more valuable time to drink coffee and play Minecraft)

3. Making sense of sequences: Biological sequences and Python data structures

We introduce basic Python string and character handling and demonstrate Python’s innate awesomeness for handling nucleic acid and protein sequences.

4. A statistical interlude: Of Bayes’ theorem and biomarkers

Here we discuss Bayes’ Theorem and implement it in Python, illustrating in the process why even your doctor might not always estimate your risk of cancer correctly.

5. Open doors to your data: Reading, parsing and handling biological data files

Did we already mention how great Python is for handling biological sequence data? In this chapter we expand our discussion to sequence file formats like FASTA.

6. Finding needles in haystacks: Regular expressions for genomic and sequences

In this chapter we show how to search even the largest of biological sequences quickly and efficiently using Python Regular Expressions – and in the process, blow the lid off the myth that Python has to be slow because it is an interpreted language.

7. Object lessons: Biological sequences as Python objects

Just when you thought you had heard the last about sequences, we explore the foundational concept of Object Oriented Programming in Python, and demonstrate a more advanced and robust approach to handling biological sequences using Python objects.

8. Slicing and dicing genomic data: Next generation sequencing pipelines

We demonstrate how easy it is to use Python to create a simple next-generation sequencing pipeline – and how it can be used to extract data from many kinds of genomic sources, up to and including whole genomes.

9. The wells! The wells!: Microtiter plate assays I: data structures

We use Python to manage data from that trusty workhorse of biological assays, the 96-well plate.

10. Well on the way: Microtiter plate assays II: automation and visualization

Building on the previous chapter, we add lab automation and handy-dandy visualizations using Python’s matplotlib library.

11. Molecules in 3D: Mathematics and linear algebra for structural biology

In which we demonstrate Python’s ability to implement three-dimensional mathematics and linear algebra for molecular mechanics. It’s nano but it’s still biology folks!

12. Turning genes on and off: Visualizing biochemical kinetics using matplotlib

In which we use Python to recreate what happens in the biochemist’s beaker (minus the nasty smells) – as well as using Python to model the cooperative binding effects of allosteric proteins.

13. Taming the network hairball: Using Python sets to mine systems biology data

In which we demonstrate how to parse and interrogate network data using Python sets, and in the process, tame the complex network “hairball”.

14. Genetic feedback loops: Modeling gene networks with the Gillespie algorithm

In which we introduce the Gillespie algorithm to model biological noise and switches in cells, and use Python to implement it and visualize the results.

15. Growing a virtual garden: Modeling plant development with L-systems

In which we introduce Lindemeyer systems to grow virtual plants and use Python’s implementation of Turtle LOGO. Don’t worry, these plants will not invade your garden (but they might take over your computer).

16. How the leopard got its spots: Cellular automata models of Turing patterns

In which we use the power of cellular automata to grow some dandy leopard skin pants using Turing’s model of morphogenesis with Python 2D graphics. Note to our readers: no leopards were harmed in the writing of this chapter.

17. Foxes guarding henhouses: Ecological modeling with predator-prey dynamics

In which we let loose chickens and foxes into an ecosystem and let ‘em duke it out in a state-space that is visualized using Python’s animation features.

18. A virtual flu epidemic: Exploring epidemiology with agent-based models

In which we create a virtual flu epidemic with agents that have internal state and behaviors. This illustrates an approach in which Python’s object-oriented programming approach really shines.

19. Retracing life’s footsteps: Evolutionary dynamics with the Wright-Fisher model

In which we use the Wright-Fisher model to demonstrate natural selection in action, and show how being the “fittest” doesn’t always mean that you will “win”. Think Homer Simpson winning a game of musical chairs.

Epilogue: Because breaking up is hard to do