Question: How to build a bioinformatics server
gravatar for sunyp.imcas
2.6 years ago by
sunyp.imcas10 wrote:

Dear all,

Do you have experience of build a bioinformation server? I mean a website where people can submit a DNA sequence and get a certain analysis result about this sequence. The server treats this sequence by automatically calling different softwares such as python and alignment software (mafft, etc.) sequentially, and finally return the result and shows it on the website. I am new in bioinformatics and have no idea how to do this. Could anyone give me some tutorials or hints of how to finish this job? I will appreciate any help.

Best regards.

sequence • 2.6k views
ADD COMMENTlink modified 19 months ago by lakhujanivijay5.3k • written 2.6 years ago by sunyp.imcas10

That smells like a bachelor's or master's degree project !

ADD REPLYlink modified 2.6 years ago • written 2.6 years ago by lakhujanivijay5.3k

It might be a bachelor's or master's degree project for in computation science.

ADD REPLYlink written 2.6 years ago by sunyp.imcas10

Are you saying that this is your project?

ADD REPLYlink written 2.6 years ago by GenoMax94k

Why would you want to do this if I may ask?

ADD REPLYlink written 2.6 years ago by ATpoint44k

I do it partly for fun.

ADD REPLYlink written 2.6 years ago by sunyp.imcas10

This is something Galaxy does. As to what hardware you can run it on it would simply be dependent on your budget.

ADD REPLYlink written 2.6 years ago by GenoMax94k

Not just web servers, but there are already blockchain protocols soon to be emerging. Example:

ADD REPLYlink written 2.6 years ago by MAPK1.7k
gravatar for
2.6 years ago by
liux.bio350 wrote:

In the last year, I developed a web server - ExpressVis - for analyzing and exploring expression profiling data. Here is my experience.


According to your needs, the application should include a back-end (a server) and a front-end. The back-end receives a request from the front-end, then load data from the database and process the data, and finally send the result to the front-end. The front-end (website) presents the result. The back-end and front-end are developed separately. enter image description here


In the back-end, a web server, like Apache or Nginx, receives and process requests from the front-end. Based on types of the requests, the web server responds directly, or calls a software or a script, whose results are sent to the web server and then sent to the front-end. enter image description here

The software or scripts should be managed by a server (framework). In python, there are multiple frameworks, like Flask and Django. Here, I use Django as an example (I used django in my service). Django can call a software or script in a app (specifically, in a app).

enter image description here

In a web service, Representational State Transfer (Rest) is widely-used. Using Rest APIs, the front-end can send a request to the server without refreshing the website. In django, you can use django rest frame work to build Rest APIs. Combining Django and Django rest frame work is awesome.

enter image description here


To develop front-end, some knowledge about html, css and js are required. In recent years, many front-end frameworks emerged, like Angular and React. You can choose one of them, which will save much time.

Some notes

To develop a web server, one must learn multiple programming languages or frameworks. For example, in front-end, one should learn basic techniques, including html, css and js. To develop efficiently, one should use some frameworks, like bootstrap and angular. Learning these techniques will take much time. As for me, before developing ExpressVis, I had some experiences in R and python, but knew nothing in developing a website. Developing ExressVis took me one half a year. Before developing a web service, you should decide if it is worth. In my opinion, there is a critical need to develop web servers for bioinformatics tools. Web servers make a bioinformatics tool accessible to more biologists. Now, I like to put some common scripts in web service and use them in the website; it saves much time.

Learning steps

When I developed ExpressVis, I spent much time learning the techniques and more time choosing frame works. If you decide to go ahead, here are learning steps I suggest:

  • Learn js, html and CSS. Js is the key
  • While learning js, learn django (or other frame work you like).
  • After knowing some knowledge about js, begin to learn Angular (or other frame work you like).
  • Combine Django and Angular, and develop the app locally.
  • Learn Nginx (or apache). Learn how to deploy the app.
  • Congratulations
ADD COMMENTlink modified 2.4 years ago • written 2.6 years ago by liux.bio350

while learning JS, learn django

Those 2 are not even remote related in learning patterns. Why combine them?

Combine Django and Angular

Why Angular? Isn't Bootstrap a much leaner, much more beginner friendly framework?

ADD REPLYlink written 2.6 years ago by _r_am32k

First one

For the first question. I agree with you, Js and Django are different. But I think we can learn two techniques at the same time.

Second one

As for combining Django and Angular. I mean that when we develop the app, we use Angular to develop front-end and use Django develop the backend. Angular sends request to Django directly. Angular has its own server, but using Django as the server could test Rest APIs in Django. Here is the architecture of the dictionaries.










Anyway, maybe this is just my personal preference.

Third one

Angular and Bootstrap are not comparable. Angular should be compared with React or Vue.js. Based on the introduction of Bootstrap, Bootstrap is to 'Build responsive, mobile-first projects on the web with the world's most popular front-end component library.' Based on the introduction of Angular, Angular is to "Learn one way to build applications with Angular and reuse your code and abilities to build apps for any deployment target". In my project, I used Angular to build components and used Bootstrap for responsive behaviors; both are my favorite. Honestly, I can not tell the difference between Angular and Bootstrap clearly. Here is a link to describe the difference.

ADD REPLYlink modified 2.6 years ago • written 2.6 years ago by liux.bio350

Thank you for explaining that. Further discussion on this would only stray off topic, so I'll dig up information on my own. Thank you once again.

ADD REPLYlink written 2.6 years ago by _r_am32k

one half year means half a year , right?

ADD REPLYlink written 19 months ago by harrypotterandsbt70

Probably, yeah. I don't think that timeline is of any importance though, people have different learning speeds.

ADD REPLYlink written 19 months ago by _r_am32k
gravatar for Manuel Landesfeind
2.6 years ago by
Göttingen, Germany
Manuel Landesfeind1.3k wrote:

If you have already an R package for the analysis task available and you just want to have some web-interface to make it accessible, a quick alternative might be the development of a Shiny app.

Anyway, for larger and more complex projects, I recommend's answer

ADD COMMENTlink modified 2.6 years ago • written 2.6 years ago by Manuel Landesfeind1.3k
gravatar for lakhujanivijay
19 months ago by
lakhujanivijay5.3k wrote:

You can also use Dash. Check out this gallery

ADD COMMENTlink written 19 months ago by lakhujanivijay5.3k
Please log in to add an answer.


Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 2.3.0
Traffic: 2210 users visited in the last hour