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