Friday, September 08, 2006

BioJava 1.5 beta released

Martin Szugat reported that a beta for BioJava 1.5 has been released. New features include: a new biojavax package with extension on the basic functionlity, such as the RichSequence.IOTools and the RichSequence object; a genetic algorithm library; features that allow manipulation of 3D structure files and objects; and non-HMM implementations of the NW and SW alignment algorithms. The announcement also mentions a new package for handling external processes (org.biojava.utils.process); I am wondering what that is about. I will upload this beta to Bioclipse trunk/bc_biojava/ shortly, so that we can play with it.

1 comment:

  1. The ExternalProcess class handles the STDIN, STDOUT and STDERR streams of an external process in multiple threads and uses a thread pool. It was implemented for BioWeka and especially to run BLAST.

    If one doesn't read the STDOUT and STDERR in separated threads, the application may hang (due to buffer overflow). So you need threads. If you call BLAST e.g. 1000 times and create each time three additional threads you will get (on Linux/Unix) an OutOfMemoryException, not because there is no memory left, but because the Thread class does not return the thread handle to the operating system and on Linux/Unix (Java) threads are implemented as processes and on these systems there is a restriction (about 1000 processes).