Bioclipse 2.0.0A20081028 released

Today, Bioclipse 2.0.0A20081028 was released. For existing users: Bioclipse should pick this up and ask for upgrade automatically, but you can always choose menu "Search for extensions..." to manually start the upgrade.

The upgrade brings numerous bug fixes to Bioclipse, but the new JChemPaint and CDK1.2 rendering are not included yet. Bioclipse 2.0.0 is preliminary scheduled for release in mid December, and will contain a new 2D-editor for chemical structures (JChemPaint 3), a new MoleculesTable (for editing large lists of molecules like SDFiles, database queries etc), a new Jmol feature with stable Jmol interaction, search/retrieval/editing/upload of various spectra, and a plugin for local chemical databases (StructureDB). More features (QSAR, Pharmacophores etc) will be available in early 2009.

Get Bioclipse 2.0.0 alpha02 at Sourceforge and read the installation guide.

The Bioclipse Team


Bioclipse 2.0-alpha02 released

To fix some things in the core Bioclipse plugins of Bioclipse, the 2.0.0.alpha02 version was released today (new versioning: 2.0.0.A20080808 where A stands for alpha). You are not able to upgrade to this version from the update site, and any new updates from that site will not work in alpha01 version. This is an inconvenience that we hope not will be repeated, but was necessary at this point.

Get Bioclipse 2.0.0 alpha02 at Sourceforge and read the installation guide.


Bioclipse 2.0-alpha01 released

The Bioclipse Team is proud to present the first alpha release of Bioclipse2. Note that this is a release targeted towards developers. We are extremely happy for all sorts of feedback, please read here about how to submit bug reports or feature requests.

Fig: Screenshot of SDFile editing in Bioclipse2.

Bioclipse2 is released for Windows (win32_32, win32_64), Mac OS X (x86, ppc), and Linux (x86_32, x86_64), and downloads are available from the Sourceforge download page.

Fig: Screenshot of 2D editing in Bioclipse2.

On first startup, Bioclipse will search for updates to currently installed features but will not install extra features. To do this, simply go to the menu Help > Search for updates...

Fig: Screenshot of 3D visualization in Bioclipse2.


/The Bioclipse Team


Threading and Javascript

The Javascript console is slowly acquiring features that the other two consoles (ruby and groovy) don't have. The latest addition to this line of features is threading. Here's what we learned from adding threading:

  • We still think threading is tricky. Basically, we kept adding synchronized to places until everything worked. Effective Java says that you shouldn't add synchronized everywhere.

  • The basic problem was this: when executing long commands, the js interpreter grabbed the main thread, and things locked up.

  • We solved this by replacing the js environment with a js thread, which in turn initialized the environment.

  • After that change, commands were executed, but couldn't print things back to the js console.

  • So, we devised a mechanism for sending the js thread a "post-command hook" along with the js command. The post-command hook is a piece of code that the js thread executes after it has executed the js command. Sending code as parameters is exciting!

  • Normally, one puts such code into an anonymous Runnable subclass, but we couldn't do that, since Runnable.run() doesn't take a parameter, and we needed to send a parameter to our hook. So we invented our own class, Hook.

Overall, the Javascript console hasn't really recovered after this set of changes. Some of the additions required excessive scoping, and there are probably refactorings to be made. But overall, our first adventure into the land of threading has paid off: if you run a long, heavy job on the Javascript console, the Bioclipse GUI no longer locks up and stops responding until the job is done.


JChemPaint with highligting in Bioclipse2

Following up on the recently added MDLEditor using JChemPaint in Bioclipse2, I created and added an Outline with selections properly highlighted in the structure in JChemPaint. Also added are basic properties available in the Properties View. They are currently read-only, but could easily be extended for editing properties of the selected entity.


Editor for SDFiles in Bioclipse

Based on Egon's new StructureWidget, I constructed an Editor to browse SDFiles in Bioclipse. It uses lazy UI rendering and is shows very promising performance. Apart from reading and rendering the structure, it also reads and displays properties in a table. Indeed a very important feature-addition towards open source QSAR in Bioclipse!


Jnanotube - a nanotube plugin for Bioclipse

I'm delighted to announce the addition of a new Bioclispe plugin entitled 'Jnanotube'. The plugin makes it possible to easily create nanotube structures in Bioclipse. The plugin adds a new view, 'Jnanotube' which consists of GUI components that are able to generate virtual XYZ files that easily can be displayed in the JmolView. The plugin was contributed for the Bioclipse 1.2.x branch by Joe and Sam, and I hope they will continue to support the plugin for Bioclipse2 as well, and are looking forward to other additions from them (they have hinted that they are building a peptide-builder plugin). So far the plugin is not part of a Bioclipse release, but we will include it in the next 1.2.x release.


General service infrastructure in Bioclipse

The last week I have worked on a general service infrastructure for Bioclipse, or more specifically for Bioclipse2. the thought is to be able to easily add new services and service implementations via extension points in Bioclipse. The installed services can be displayed in the ServiceView (see figure to the right), and the aim is to add filters and hence only display the currently interesting services (based on user preference of course). Double-click the service to invoke it with a dialog or drag a resource (a sequence or a molecule) and drop it on a service to invoke it directly.

For a more detailed explanation about the extension points and examples for using it can be found on the Bioclipse wiki. Below is a sample screenshot for how this integrates into Bioclipse2.


A fully working use case with recording

Much hard work has finally paid off and now there is some cool recording features in bioclipse 2. Since I know how you all would love to try it out I am now gonna explain how you can do that. The plugins needed for this example is net.bioclipse.biojava.ui and all it's dependencies. First of all we need a sequence file containing a couple of sequences. I called my file "a.fasta". Something looking like this would suffice:



You can create such a file in Bioclipse by right clicking in a project and creating a new file.

Now for the interesting part. This sequence file contains two sequences. If we want to translate one of them we can open the children of the sequence file by clicking on the arrow in the left of it in the bioclipse explorer. Right clicking any of the sequences brings up a context menu where biojava.ui has contributed a few actions. We can for example translate our sequence to a protein sequence. After having done that, bring up the Action History view. It is under the Scripting category in the show view dialog.

The actions history view shows a view of the recording that has been taken place while we have clicked around in the gui. Select the actions you are intrested in, right click and choose Generate JavaScript. The JsScriptGenerator will now do it's best to build a javascript out how the selected actions. That isn't always so easy but I hope it performs quite good and I know that it succeeds with the sequence translation example I have described here. Try it out and please report any problems that you might find.


The 5000th commit to Bioclipse

The Bioclipse project team is delighted to announce the 5000th commit to Bioclipse made by Egon Willighagen when performing an SVN reorganization for Bioclipse2. Great job, Egon!


Swedish Bioinformatics Workshop

The Bioclipse team was present during the Swedish Bioinformatics Workshop in Uppsala on February 28th-29th. Ola Spjuth held a well-received talk about Bioclipse data integration in bioinformatics, and a poster detailing the workings of Bioclipse drew both interested parties in the hallway track, and a price for best poster. Overall, the reception of Bioclipse felt very positive, and many new contacts were made, possibly leading to further collaborations.


DAS workshop 2008 - day 1

Today was the first day of the DAS workshop 2008 that I visited on behalf of the Bioclipse project. It was held at EBI and had some interesting presentations and discussions. Apart from introducing the Distributed Annotation System (DAS), the first day consisted of presentations of many client implementations. DAS is basically a set of Web services for annotation of biological sequences with the goal to split data and presentation. This means that a DAS client can request info from many DAS servers and integrate the info in a single view or analysis. The technology behind is simple HTTP requests that return XML responses. Uniprot is the reference server and provides the sequences.

Jim Procter presented Jalview and VAMSAS, an exchange format to combine Topali, Jalview, and AstexViewer.

Rob Finn talked about the new Pfam website with nice feature visualization that incorporated DAS. He talked about their REST web services and how they are superior to SOAP-based implementations for resource-providers like themselves.

Rafael Jimenez demonstrated Dasty2, which is a DAS web-client using AJAX.

Thomas Down talked about Dastard and the problem of firewalls. He also interestingly brought up the question weather DAS clients should be Web-based. He himself preferred desktop apps to get better interaction with other local programs (excel etc). He also recommended the Java database Derby over HSQLDB.

Andreas Prlic talked about DAS registries and the SPICE viewer for connecting genomes with structural data and visualize SNPs and multiple alignments on 3D.

Asja Grzibovska described the DAS Writeback project that extends read-only DAS model by adding possibilities to write data back to the server.

Hagen Blankenburg described molecular interactions with DAS, called DASMI. They have extended DAS servers with support for protein-protein interactions. He also showed the DASMIweb client which is able to integrate a lot of data from interaction databases. I wonder why people keep calling it molecular interactions instead of protein-protein interaction?

Jose Ramon Macias talked about their extension of DAS to cope with 3D Electron Microscopy, called 3D-EM DAS. They had built a client, Pepper, but as they required more responsive functionality they were discussing building yet another client for DAS based on the Netbeans Rich Client Platform. He was familiar with Bioclipse but had decided to use Netbeans because he was familiar with it. Let's hope they'll honor MVC to full extent!

Syed Haider presented Biomart which basically is a convenient way of joining databases together by visualizing original tables and generating the SQL for the mart construction. They are close to having an incremental-update function. We really should build a Biomart plugin for Bioclipse!

Several people mentioned OpenID for single sign-in. This is maybe something that we should consider for Bioclipse in the long run.

Well, this ends day 1. Tomorrow we will get hands-on instructions for coding a DAS client, but first it's dinner in Cambridge.


Multiple alignments in Bioclipse

I have talked a lot about about integrating Jalview into Bioclipse for visualization and editing of multiple sequence alignments. I spent some hours on the problem and it was not too hard to get things going. It's now possible to double-click an alignment in any of the formats supported by Jalview (fasta, msf, clustalw, pileup, pir, blc, pfam) and Bioclipse opens an Alignment Editor with Jalview on one tab and the source file on the second.

It is currently not possible to interact with Jalview via the mouse, this needs some wrapping of functionality into SWT actions and menus. But it's a good start :-). See the wiki page net.bioclipse.jalview for progress.



Go to the Javascript Console, type rhi and press <Tab>. The command line now says rhino.

If you now type a . (after the rhino) and then <Tab> twice. The first time around, there'll be a beep, and the second time, there'll be a list of possible completions.

People seem happy about this feature when I show it to them. Myself, I'm even happier because I got to implement the (top secret) mechanism that does this under the hood. I could tell you more, but I would have to kill you.

Update: I forgot to say that this goes for Bioclipse 2 only, but I've now backported the feature to Bioclipse 1 too.

Update2: Tab completion now in the Ruby Console, too.


Subversion in Bioclipse2

Since Bioclipse2 is more Eclipse-like, it is quite easy to make use of external Eclipse plugins. Here I demonstrate this by adding the Subclipse plugin for Subversion and making use of it from the Bioclipse2 workbench.

Figure: A local project shared on a Subversion repository. The editor shows compare of the local and remote version of the same document with changes highlighted.

Having version control inside the Bioclispe workbench opens up many new possibilities for collaborative work. It allows e.g. for shared editing of chemical and biological files, to resolve conflicts, and rollback any undesired changes.

The current solution requires some editing in the Subclipse source due to unresolved dependencies, but I will contact the Subclipse team and try to resolve this.

Links: Bioclipse wiki page