In this section:
Creation of a web user interface for a bioinformatics portal will involve generating HTML content in an application associated with a web server for viewing with a HTML browser. The protocol used for communication between the browser and the web server is HyperText Transfer Protocol (HTTP). Hence we talk about a HTTP request from the web browser to the server and a HTTP response from the web server to the browser.
One of the main reasons for the need for an application to be in the loop in generation of a dynamic web interface is to allow it to look up data or insert data into a database and to do various processing with that data. In our case, the database will likely contain biological data, such as stored in GenBank or the Protein Data Bank, and the data processing will often be done with bioinformatics algorithms. A language that executes on the server, such as Perl, Java, C / C++, PHP, Python, or C# are all good for that. However, where possible coding should be done from with the browser (the client) in JavaScript, which provides a faster response and more rich user experience than performing all processing on the server. Of course, it is another language for a software engineer or bioinformatics specialist to learn and many will not be prepared to go the extra distance for this optional extra to enhance user experience. The article Getting Started Developing Interactive Web Interfaces for Scientific and Medical Applications on this web site discusses the topic.
There are many programming platforms for providing this dynamic interface. The Common Gateway Interface (CGI) is a generic way of creating dynamic web user interfaces. It was developed by the National Center for Supercomputing Applications at the University of Illinois at Urbana - Champaign and is documented on their web site17. Basically, CGI is a standard way for a web server to invoke a script, passing certain environment variables and user input data to the script, and allow the script to return a result. It is one of the oldest ways of providing dynamic web content. It is supported on innumerable low cost web hosting services and is also included out of the box with many Apache installations, such as that provided on Red Hat Linux.
Another early way of providing dynamic content was with C or C++ plug-in frameworks from web servers, such as the Netscape HTTP Server, Microsoft Internet Information Server, and the Apache HTTP Server. The problem with these plug-ins was that they were hard to write and bugs could easily lead to security holes being exposed, memory leaks, and crashing the web server. In addition, each web server had its own programming interface creating extra work for web programmers. However, C / C++ being the powerful languages that they are, these plug-in interfaces were soon used to provide generic frameworks for more robust and easily developed web applications.
In this article I am going to discuss the several frameworks that I consider the best for developing bioinformatics web applications: Perl, Java, PHP, ASP.NET, and AJAX. There are many more excellent web programming frameworks that I will not discuss because I do not have the time and energy to investigate them.
This section discusses Web programming with Perl using CGI or a HTTP server plug-in. The section Perl discusses basic application programming with Perl. The section BioPerl discusses the BioPerl open source project. Many of the examples here have been assembled in the web application Translation of DNA to an Amino Acid Sequence, which was written entirely in Perl.
There are no user comments.
Please send ideas and opinions by email at alexamies@gmail.com.