An Introduction To Applied Bioinformatics

An open source, interactive text.

View the Project on GitHub gregcaporaso/An-Introduction-To-Applied-Bioinformatics

Bioinformatics, as I see it, is the application of the tools of computer science (things like programming languages, algorithms, and databases) to address biological problems (for example, inferring the evolutionary relationship between a group of organisms based on fragments of their genomes, or understanding if or how the community of microorganisms that live in my gut changes if I modify my diet). Bioinformatics is a rapidly growing field, largely in response to the vast increase in the quantity of data that biologists now grapple with. Students from varied disciplines (e.g., biology, computer science, statistics, and biochemistry) and stages of their educational careers (undergraduate, graduate, or postdoctoral) are becoming interested in bioinformatics.

I teach bioinformatics at the undergraduate and graduate levels at Northern Arizona University. This repository contains some of the materials that I've developed in these courses, and represents an initial attempt to organize these materials in a standalone way. If you'd like to read a little more about the project, see my blog post on


This project is in very early development stage. It's not ready for prime-time by any means, but I fall firmly into the "publish early, publish often" mindset, hence its public availability. I am very interested in feedback. The best way to get feedback to me is through the IAB issue tracker, and the best way to get me contributions is through pull requests.

The code in the iab module is not sufficiently tested, documented, or optimized for production use. As code reaches those quality standards it will be ported to scikit-bio. I do not recommend using the code in the iab module outside of these notebooks. In other words, don't import iab outside of the notebooks - if you want access to the functionality in your own code, you should import skbio.

Currently, the best example of where I'm hoping to go with these materials is the multiple sequence alignment chapter.


To browse the book, start here.

  1. Getting started
  2. Fundamentals
    1. Pairwise alignment (contains an exercise)
    2. Database searching and determining the statistical significance of an alignment
    3. Phylogeny reconstruction: distances, distances matrices and hierarchical clustering with UPGMA
    4. Multiple sequence alignment (contains an exercise)
    5. Read mapping and clustering
  3. Applications
    1. Studying biological diversity

How to use An Introduction To Applied Bioinformatics

There are two ways to use An Introduction To Applied Bioinformatics:

If you're new to using IPython or the IPython Notebook, you can find more information at the IPython website, IPython Notebook website, and the IPython Notebook example gallery.


If you're going to read An Introduction to Applied Bioinformatics interactively (recommended), you'll need to install it. The following commands should work for Linux and Mac OS X users:

pip install numpy
tar -xzf 0.1.0.tar.gz
cd An-Introduction-To-Applied-Bioinformatics-0.1.0
pip install .

Then, launch the IPython Notebook to get started (be sure that you're in the An-Introduction-To-Applied-Bioinformatics directory when you run this command):

ipython notebook Index.ipynb

That's it!

More information

These materials are primarily being developed by Greg Caporaso (GitHub: @gregcaporaso) in the Caporaso Lab at Northern Arizona University. You can find information on the courses I teach on my teaching website and information on my research and lab on my lab website.

See the repository's contributors page for information on who has contributed to the project.


An Introduction to Applied Bioinformatics is funded in part by the Alfred P. Sloan Foundation. Initial prototyping was funded by Arizona's Technology and Research Initiative Fund. The style of the project was inspired by Bayesian Methods for Hackers.

I want to thank the IPython Developers for all of their work on the IPython Notebook, as well as the QIIME developers and scikit-bio developers for the countless discussions over the years that helped me develop my understanding of the material presented here. This project wouldn't be possible without all of you, and I look forward to many more years of productive, fun and exciting work together!


Creative Commons License
An Introduction to Applied Bioinformatics by The Caporaso Laboratory is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Based on a work at