Why should you learn Python?

While many software packages have been developed and distributed to support bioinformatic analysis, we still find it incredibly helpful to have basic knowledge of a scripting language. Being able to read, write and (most critically) understand code enables novice bioinformaticians to get more involved with the analysis of their datasets. A large part of modern bioinformatics workflows is the manipulation of enormous text files. Next-generation sequencing datasets are often far too large to be easily manipulated in Excel. Adding and removing columns, sorting datasets, and converting between data formats almost always require the use of some scripting language.

We find that Python is an excellent candidate language for individuals looking to venture into basic applications of bioinformatics and computational biology. Python offers several attractive features for newcomers to programming:

  • It is relatively easy to install Python and set up a development environment
  • Python script is incredibly readable, as compared to some other languages
  • Python is well-documented, with a large, established bioinformatics user community available for help


We have developed and offer here a free online course to help introduce users to Python. The course consists of video lectures, supporting slides, sample Python programs, and programming assignments.

See below for course materials!

Introduction to Python Programming Course Outline

Topics Covered
Module 1Setting up the Python development environment Launch Module »
Module 2Introduction to programming
Python interactive environment
Built-in functions
Launch Module »
Module 3Introduction to variable types (numbers, strings, boolean)
Text editors
Command line Python programs
Launch Module »
Module 4Advanced numbers, strings, and boolean variables
Program flow - linear coding
Launch Module »
Module 5Program flow - if, else, if elif
Program flow - functions
Launch Module »
Module 6Data structures - lists
Program flow - loops ("for")
Launch Module »
Module 7Review of concepts covered
Introduction to codingbat
Launch Module »
Module 8Program flow - loops ("while")
Program flow - loops (advanced)
Launch Module »
Module 9Reading data from files
Parsing data read from files
Writing data to files
Launch Module »
Module 10Data structures - dictionaries Launch Module »
Module 11Command line arguments
Command line options
Launch Module »