[Biojava-l] Blast

ZHOU, YIHUA [AG/1000] yihua.zhou@monsanto.com
Wed, 7 Nov 2001 15:20:47 -0600

The system sounds pretty good. It should be very useful. However, it seems
to me that it is trying to a little too much. Maybe, a single Java class
that launches blastall and returns an InputStream for blast result and an
InputStream for error would be probably more flexible to use. The clients of
this class can then decide what to do with the results and errors. I found
that in many cases we want to use such a system because we want to run blast
in our Java applications. Such a Java class would simplify the application

I have implemented a class (Blast.class) that does just that. It supports
almost all blastall options and any specific blastall installation on a
local machine (or on other servers if in Unix, using rsh). Since the class
is mainly used in other Java classes, the variables are dealt with in the
client classes (e.g. provide a "-d blastdb" option for a specific blast
database). The constructor of the class takes something very similar to what
we would type on the blast command line. The APIs for the class includes:

	public void run()
	public InputStream getResult()
 	public InputStream getError()
	public int getExitValue()
	public boolean isFinished()
 	public boolean isRunning()

Of course, we could also use a ResourceBundle to deal with the variables.


Yihua Zhou

> I have set up a system that calls a local version of blastall. With it you
> can blast a SequenceDB against your local blast database and get back a
> of SequenceSimilarityResults. This also provides access to the sequences
> the blast database via a call to fastacmd. So you have access to the query
> and subject sequences from the SequenceSimliaritySearchResult. As Thomas
> mentions there must be enviroment specific information available for this
> work. This is why I have not tried to put it into biojava. I also have
> similar classes for cross_match and RepeatMasker.