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 microbe.net.
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 in the form of email (email@example.com) or 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
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.
There are two ways to read An Introduction To Applied Bioinformatics:
The recommended way to read the book is to download and run the IPython notebooks interactively. You can do this by cloning the GitHub repository, installing the package and its dependencies, and running the notebooks interactively. Instructions for doing this are provided below in the Installation section.
If you're going to read the book interactively (recommended), you'll need to clone this repository, install some dependencies, and launch the IPython Notebook. For example, the following commands should work for Linux and Mac OS X users:
pip install numpy pip install https://github.com/gregcaporaso/An-Introduction-To-Applied-Bioinformatics/archive/master.zip
Finally, 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 --pylab inline Index.ipynb
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.
Development of An Introduction to Applied Bioinformatics was supported in part 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!
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 https://github.com/gregcaporaso/An-Introduction-To-Applied-Bioinformatics.