[Biodevelopers] Alkahest

Audrius Meskauskas Audrius.Meskauskas at medizin.uni-ulm.de
Fri Feb 21 10:50:54 EST 2003


Dear T.D. Houfek,

this morning I was thinking how to integrate Sight and Alkahest.
>From your page it is seen that Alkahest has a system to store and
display the results of analysis. This side of Sight is comparatively
less developed. Possibly the Sight robot application can be used
as Alkahest annotation module.

Alkahest annotates the sequences. Hence it could call the pre-
assembled Sight application in order to get some sequence
annotations. It must submit the sequence (protein or RNA), and could
expect the list of sequence features (starting position,
ending position, feature name, possibly some extra information).
Alkahest would need to have some way to plug-in the
pre-assembled Sight application. Now I started to think
how to do this.

Alkahest is written on Perl, and Sight is written on Java. How to
call Java from Perl? Perl could launch the whole application from
the command line. But java starts slowly, and it is not
wise to restart its applications frequently. The bridge through
DLLs could be imaginable. But these tricks will make the
approach platform dependend, maybe even platform version
dependend. Also bad.

Finally I decided that Alkahest and Sight could communicate
via client-server interface using http protocol. I know that
Perl can also connect a server with the given http address and
simulate the filling of some web form. So it can also connect
the local host on some unused port (say 4525) and initiate
the standard http POST session (GET does not fit, as
the length of the submitted sequence would be very limited).
Sight can create an application that could listen on this port as
a http server, accept the call and perform the analysis.
Then it will return a response. I think, this response should
be in XML. It will contain something like

<?xml version="1.0"?>
<Sight_response>
<annotation from="12" to="16">
  <name>Sequence feature name</name>
 <database_id>88888<database_id>
 <...... all your suggestions here >
</annotation>
<annotation from="212" to="216">
  <name>Sequence feature name</name>
 <database_id>88889<database_id>
 <...... all your suggestions here >
</annotation>
<annotation from="312" to="316">
   (and so on)
</Sight_response>

Alkahest must then read this response and make some use from it.
We must make agreements about its content when error occurs,
something like <Error id="111">Message</Error>.

The advantage of this could be that Sight application can be
easily tested by submitting the request from a web browser,
using prepared html document. This document must contain
a form with just one field ('sequence') and the 'Submit' button.

To realise this, Sight application must:
1) Be able to start in a server mode on a local host on an unusual port.
2) Accept http POST request, initiate the analysis and, when finished,
return the mentioned response. The response will be created by the
special new type of the agent, "Server listener". I will think how to do it
better.

The Alkahest, however, must:

1) Accept the user option that Sight server must be called in a certain
host and using a certain port to annotate a sequence. The Sight server
the most probably will not be very remote, but it can be on another
machine nearby.

2) For each sequence to annotate, send a server the POST request
that must look like that:

POST / HTTP/1.1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
Host: 134.60.49.124:4525
Content-Length: 85
Connection: Keep-Alive
Cache-Control: no-cache

sequence=atatatatatatataatatatatatatatat........

3) Receive the xml document in response, parse it and do something useful
(probably store the annotation into database and display as a
sequence feature).

If you agree to initiate your side of colaboration, I can implement the
needed Sight additional features till the next of this week.

Please let me known that you think about this

Audrius Meskauskas








More information about the Biodevelopers mailing list