Question: How to build a bioinformatics server
0
gravatar for sunyp.imcas
18 days ago by
sunyp.imcas0 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 • 291 views
ADD COMMENTlink modified 17 days ago by Manuel Landesfeind1.1k • written 18 days ago by sunyp.imcas0
1

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

ADD REPLYlink modified 17 days ago • written 17 days ago by Vijay Lakhujani2.7k

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

ADD REPLYlink written 17 days ago by sunyp.imcas0

Are you saying that this is your project?

ADD REPLYlink written 17 days ago by genomax51k

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

ADD REPLYlink written 18 days ago by ATpoint5.5k

I do it partly for fun.

ADD REPLYlink written 17 days ago by sunyp.imcas0

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 18 days ago by genomax51k

Not just web servers, but there are already blockchain protocols soon to be emerging. Example: https://www.genomes.io/wp-content/uploads/2018/03/The-genomes.io-Whitepaper-V-1.1.4.pdf

ADD REPLYlink written 17 days ago by MAPK1.2k
11
gravatar for liux.bio
17 days ago by
liux.bio250
China
liux.bio250 wrote:

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

Overview

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

Back-end

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, views.py 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

Front-end

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 written 17 days ago by liux.bio250

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 17 days ago by Ram15k

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.


-project

---DjangoService

----app1

----app2

----.....

---AngularClient

----angularApp1

----angularApp2

----.....


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 17 days ago • written 17 days ago by liux.bio250

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 17 days ago by Ram15k
2
gravatar for Manuel Landesfeind
17 days ago by
Göttingen, Germany
Manuel Landesfeind1.1k 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 liux.bio's answer

ADD COMMENTlink modified 17 days ago • written 17 days ago by Manuel Landesfeind1.1k
Please log in to add an answer.

Help
Access

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