This tutorial ​aims at teaching, from scratch, all the skills needed to setup a fully working Linux web server and to develop and deploy web applications for Bioinformatics. No previous programming knowledge is assumed, so by following this tutorial you will learn the fundamental concepts of programming by using scripting languages: variables, types, arrays, cycles, conditional statements, functions, objects, regular expressions,​ files reading and manipulation et-cetera. ​

+

Web skills are an increasingly important part of the "​technology toolbox"​ that any Bioinformatics student and researcher should be constantly building and maintaining up to date ([[http://​www.ploscompbiol.org/​article/​info%3Adoi%2F10.1371%2Fjournal.pcbi.1000589#​pcbi.1000589-Mount1|ref]]).

+

+

This web development course, targeted at Biology and Bioinformatics students, ​aims at teaching from scratch all the skills needed to setup a fully working Linux web server and to develop and deploy web applications for Bioinformatics. ​

+

+

No previous programming knowledge is assumed. By following this tutorial you will learn the fundamental concepts of programming by using scripting languages: variables, types, arrays, cycles, conditional statements, functions, objects, regular expressions,​ files reading and manipulation et-cetera. ​

Since this course aims at teaching software development for the web, we have chosen, among the various programming languages most used to write bioinformatics applications (Perl, Python, Ruby and others), to focus on PHP. When first released, PHP was sometimes viewed as somewhat slow in execution, as compared to other languages, and with limited vocabulary. It was regarded for a while as a language with limited scope, only good to add some dynamic features to web pages.

Since this course aims at teaching software development for the web, we have chosen, among the various programming languages most used to write bioinformatics applications (Perl, Python, Ruby and others), to focus on PHP. When first released, PHP was sometimes viewed as somewhat slow in execution, as compared to other languages, and with limited vocabulary. It was regarded for a while as a language with limited scope, only good to add some dynamic features to web pages.

Line 7:

Line 11:

Things have now progressed and changed. At the time of this writing, PHP is available as version 5 (PHP5) and 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 buil-in functions and features. When required, PHP can make system calls to external applications and scripts, maybe written in different languages, for specialized tasks.

Things have now progressed and changed. At the time of this writing, PHP is available as version 5 (PHP5) and 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 buil-in functions and features. When required, PHP can make system calls to external applications and scripts, maybe written in different languages, for specialized tasks.

-

Last but not least, the learning curve of PHP is much "​softer"​ that the one of other, maybe more complex languages, such as Python, allowing the student to concentrate on the basic programming concepts ​rather than on the syntactic subtleties sometimes required in other languages.

+

Last but not least, the learning curve of PHP is much "​softer"​ that the one of 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. The syntax may change, but the basic concepts stick in the different languages. The syntax in PHP is often quite simple. These are all good reasons for starting with PHP, and maybe move to Perl, Python, Ruby and cgi at a later stage.

-

Once the basic programming concepts are acquired, they can easily be applied to the learning ​of other languages. A function is a function in PHP, Python, Perl. The syntax may change, but the basic concepts stick in the different languages, ​and the syntax in PHP is often quite simple. These are all good reasons for starting with PHP, and maybe move to cgi, when required, at a later stage.

+

Although this tutorial is aimed at web development for Bioinformatics, anyone who wishes to learn how to setup a web server and develop a web site can take advantage ​of this course. 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.

-

Although this tutorial is aimed at web development for Bioinformatics,​ anyone who wish to learn how to setup a web server and develop a web site can take advantage of this course. 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,​ and will not require any particular understanding of biological concepts to be followed and applied to any web development project.

+

===== Bioinformatics ​Web Applications ​=====

-

+

-

===== Web applications ​=====

+

We can broadly define a bioinformatics application as a software that will process some kind of biological data, either obtained directly from a user, or from other sources, and output the result of the elaboration (again either to a user, in human readable format, or maybe to another application):​

We can broadly define a bioinformatics application as a software that will process some kind of biological data, either obtained directly from a user, or from other sources, and output the result of the elaboration (again either to a user, in human readable format, or maybe to another application):​

Line 23:

Line 25:

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

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

-

{{ :​blast_form2.jpeg |}}

+

{{ :​blast_form2.png |}}

Web forms include a SUBMIT button (see Figure 1). On pressing this button, the data collected in the web form are sent to a script (written in Perl, PHP, Python, Ruby or other languages). ​

Web forms include a SUBMIT button (see Figure 1). On pressing this button, the data collected in the web form are sent to a script (written in Perl, PHP, Python, Ruby or other languages). ​

Line 38:

Line 40:

== Figure 2: The NCBI BLAST web application ==

== Figure 2: The NCBI BLAST web application ==

-

+

{{ :​ncbi_blast_web_application.png |}}

-

+

-

{{ :​ncbi_blast_web_application.png?300 |}}

+

In order to design and write a bioinformatics web application ex-novo, a number of technical skills are therefore required. Here is a minimalistic list:

In order to design and write a bioinformatics web application ex-novo, a number of technical skills are therefore required. Here is a minimalistic list:

introduction.txt · Last modified: 2013/03/13 14:49 by cellbiol

Page Tools

The Web development for Bioinformatics document is a copyrighted work of cellbiol.com. Reproducing this material, as a whole or in part, in print, on other web sites or by other means is not allowed without explicit permission of the author.