Team:Freiburg Software/User/Robots/Blast
From 2010.igem.org
BLAST Robot
This page describes the use of the BLAST Robot. If you would like to know how the algorithm works internally please click here.
The BLAST Robot is a good example of SynBioWave interacting with third party services. In this case we access the NCBI BLAST tool via their URL API. This way we can submit jobs to the BLAST servers and check out the results once the process is over.
How do I submit a job?
If you want to perform a BLAST search there are currently two options for you to choose from: You can use a sequence from workspace or directly input a sequence into the mask. (Again, if you choose to use a sequence from the workspace make sure that you have only one selected)
To submit the job to NCBI click "send". The robot will then try to recognize the type of your sequence and choose the query database accordingly. Then it will send the data to NCBI and wait for the results. This may take some time depending on the input sequence.
Results
Evaluating the BLAST results and displaying them without flooding the Wave with information is a little challenging. For now the Robot only displays the first 3 hits of each search. We will add further options to select from such as simple hitlist.
Brief Overview of Algorithm
The Blast robot uses an external service to perform the BLAST searches, namely the NCBI Blast URL API.
On User request the Robot submit a new job to the NCBI Server. One problem that came up during development was the fact, that Appengine (where all our projects are hosted) does not allow for Robot functions to run longer than 30 seconds, so we can't wait for long BlAST searches. To work around that problem the robot spawns a gadget that wakes him up every 2 seconds to recheck if the search is done. Once it is the robot deletes the gadget and parses the results.
Right now the robot displays the first three hits in detail. There will be options to modify the result display in future releases.
BLAST Parameters
The PUT command of the NCBI BLAST URL API (which is used to start a new BLAST search) has 39 parameters the user can set to influence the algorithm. At this point of development the robot only sets a few of them and leaves the rest to default. Those parameters are:
- QUERY - the query sequence, which is either the selected sequence from the workspace or the manually inserted one.
- HITLIST_SIZE - this value is set to 10 because we evaluate only a few hits at this time
- PROGRAM - blastn for nucleotide sequences and blastp for protein sequences