2007-12-21

Bioclipse 1.2.0 released

The Bioclipse Team is happy to announce the release of Bioclipse 1.2.0. This release means that the 1.x branch will no longer be supported. Version 1.2.0 contains (apart from numerous bug fixes) several exciting new features:
  • An interactive console view for writing scripts in Javascript
  • QSAR plugin with an extension point for descriptor calculations from chemical structures - mix different descriptor providers Read more...
  • Create CDK descriptors and JoeLib descriptors using a wizard (select 1-N molecules and right-click -> Calculate descriptors). Sets up Descriptor Dataset (matrix). Read more...
  • Matrix editor for editing spreadsheet-like files with custom matrix implementations (Jama is default implementation)
  • Chart view for displaying charts from e.g. Matrix editor (select cells and right-click to try) Read more...
  • Select cells in Matrix and visualize in Chart
  • Select in chart highlight cells in MatrixEditor (only scatterplot so far)
  • Spectrum feature is available again
  • SpecMol allow for visual inspection and peak assignment to atoms in spectra by clicking on molecular structure
  • Ability to easily add scripting commands via an extension point. Read more...
  • Jmol now supports switching between models of e.g. a PDB-file (animation)
  • Experimental support for BioMoby Read more...

Please note that it is not possible to upgrade to Bioclipse 1.2.0 via the online update version; it requires a new download from sourceforge.

Thanks to all developers and contributors that made this release possible!

The Bioclipse Team

Links

Towards standards for QSAR data setup

I have started to explore the possibilities of Bioclipse2 when it comes to projects with natures and autobuilds. This gave me the idea of automatic QSAR descriptor calculations, based on mine and Egon Willighagens work with QSAR in Bioclipse 1.x. The idea is to have a file (qsar.xml) that defines molecules and descriptors and might look something like below (note: demonstrational example, info and URL's are made up):


<qsar>
<molecules>
<molecule id="http://www.mol.repo.org/molecule?abc123" ns="myNS">
<molecule id="http://www.mol.repo.org/molecule?abc234" ns="myNS">
</molecules>
<descriptors>
<descriptor id="http://www.cdk.sf.net/descriptors/xlogp:implementation1" name="XlogP">
<parameter key="cutoff" value="10">
</descriptor>
<descriptor id="http://www.cdk.sf.net/descriptors/ZagrebIndex:02"/ name="Zagreb Index">
</descriptors>
</qsar>



The implementation would be an automatic build that calculates all descriptors for each molecules when the qsar.xml changes, but only for deltas (i.e. partial build, do not build already built). This means, add a new descriptor to the qsar.xml and on save it will be calculated for all molecules. This would be done on the background and produce a descriptor matrix (dataset.csv). Any plots of this matrix would also be updated.

I have started to implement this in Bioclipse2 and intend to also create a public repository for storing these QSAR setups.

So, what is missing? Having unique ID's following the REST architecture for descriptors and molecules would make it a standards candidate for QSAR data matrices setup. I shall explore this with the CDK people. Comments on the project's design and implementation are very welcome.

2007-12-14

R, matey

Try this: launch Bioclipse 2 (after the usual updating of all plugins you can think of), open up the Javascript Console, and type this:

js> R
R> x <- matrix( c(9, 9, 0, 1, 3, 2, 0, 7, 6), 3 )
R> y <- matrix( c(4, 7, 2, 1, 1, 0, 1, 6, 5), 3 )
R> x * y
[,1] [,2] [,3]
[1,] 36 1 0
[2,] 63 3 42
[3,] 0 0 30

R> q()
js>

Shiver me timbers! That's R, matey! Big kudos to kaskelot++ for making it work this far.

Support is still a bit spotty. If you happen to aggravate R in any way, it walks the plank and does not come back, and you're going to have to relaunch Bioclipse. But things can only get better from here. Expect some Bioclipse/R integration soon, for example.

Update: Thanks to some impressive C hackery from kaskelot++, R no longer crashes and goes away forever when input is less than syntactical.

2007-12-13

A first stab at echoing

Update: After a suggestion from olas++, this feature is now called "echoing", to distinguish it from actual logging. Please revise your subjective histories.

Last week, after pondering how to structure the consoles around echoing, and receiving a fair bit of help with listeners from jonalv++, I got my reward: a big fat SWTException (Invalid thread access).

Now all this is fixed, and you can experience the joys of echoing in Bioclipse 2 at home if you want:

  • Update all your checked-out Bioclipse plugins, or at least net.bioclipse.core (where the console echoer is), net.bioclipse.scripting (where we've put scripting nowadays) and net.bioclipse.ui (where you'll find the scripting console).

  • Open net.bioclipse.core.Activator in the Eclipse Java editor.

  • Find the method start and add the following code:


public void start(BundleContext context) throws Exception {
super.start(context);
plugin = this;

new Thread() {
public void run() {
for (int i=0; ; i++) {
try {
Thread.sleep(5000L);
} catch (InterruptedException e) {
}

CONSOLE.echo("Now is the time");
CONSOLE.echo("for all good men");
CONSOLE.echo("to come to the aid");
CONSOLE.echo("of their country");
}
}
}.start();

}

  • Start Bioclipse.

  • Make sure the Javascript Console is opened.


The famous phrase, used in the early 20th century when demoing typewriters, should now appear on the Javascript Console every five seconds. In the above example, we've put the echoing code into net.bioclipse.core.Activator, but generally it would of course go in Your Favorite Module in need of echoing something to the consoles.

I'd be happy to hear about bugs or oddities related to the consoles or echoing that you may find.