




Things have progressed and changed. Version 5 (PHP5), introduced in July 2004, constitutes a full featured programming language that allows basically every kind of Bioinformatics web application to be developed with relative ease, thanks to the rich set of built-in functions and the support for object-oriented programming. When required, PHP can make system calls to external applications and scripts, maybe written in different languages, for specialized tasks.

The introduction of PHP 7 in December 2015 have seen a further dramatic leap forward in performance with a 100% (2x) increase in speed and 50% better memory consumption with respect to PHP 5.6 thanks to the adoption of Zend engine 3 (ref).

An historical overview of the various PHP versions and their main features can be found in this interesting article on Wikipedia.

Last but not least, the learning curve of PHP is much “softer” with respect to other, maybe more complex languages, such as Python, allowing the student to concentrate on the basic programming concepts that once acquired can be easily applied to the learning of other languages. A function is a function in PHP, Python, Perl, ruby. The syntax may change, but the basic concepts stick across languages. These are all good reasons for starting with PHP, and maybe move to Perl, Python, Ruby and cgi at a later stage, if required.

Although this book is aimed at web development for bioinformatics, it is also suitable for anyone who wishes to learn how to setup a web server and develop a web site. In particular, the information in the first chapters is not really specific to Bioinformatics and applies to the development of any kind of website and web application, not requiring any particular understanding of biological concepts. When biology related code examples are used in chapter 4 and beyond, they are introduced gently and do not assume an hard core knowledge of Biology or Bioinformatics.

Bioinformatics Web Applications


Input –> Processing –> Output


The NCBI BLAST web form
Figure 1: The NCBI BLAST web form


The script:

  • formats the processed data for the web, by using HTML
  • sends back to the user an html web page containing the formatted results

So the flow for a web application becomes:


The NCBI BLAST web application
Figure 2: The NCBI BLAST web application. This figure underscores the fact that while the web form (input) and the script output are generally rendered with HTML, CSS and optionally, JavaScript, the script itself requires a programming language such as PHP, Perl, Pyton, Ruby other languages with CGI support.



In addition, if you want to set up a web server from scratch, instead of just using an account on somebody else’s server (which of course if perfectly fine, although slightly less cool that setting up your own server), it is very useful to learn the LINUX operating system basics and to possess some notions about the Internet, networks and TCP/IP. To be on the internet as an active contributor and resource builder, better understand where you are. The more you know, the better you will be able to move freely, be creative and stay secure. So let’s add:

  • Understanding the basics of Internet and Networks

How is this course organized


This is a course for beginners, although experienced programmers may indeed benefit from different aspects of the book, depending on their background. For one, if you are an accomplished programmer not familiar with the PHP programming and/or web programming, this is a great, easy and friendly place to learn. You will be able, thanks to your prior experience, to go quickly through the various topics and grab the concepts you need to make the transition from local application to web applications.


Based on the solid foundation provided by this book, you should aim at developing your own original and rich toolbox.
Figure 3: Your toolbox. Based on the solid foundation provided by this book, you should aim at developing your own original and rich toolbox. Knife images credits

Let’s start by learning the Internet and networks basics.