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.

2007-11-30

Bioclipse awarded at Trophees du Libre

I just arrived home from the international contest for free software, Trophees du Libre 2007, which was held in Soissons, France. Bioclipse was awarded the Special Prize of the jury, and the prize was handed over by the president of the Free Software Foundation Europe (FSFE), Georg Greeve, who also was the chairman of the jury. It was a great event; great to meet other open source developers and people representing organizations and companies who actively support free software. Apparently we received the Special Prize because we were too famous already :-).

2007-11-22

Scripting in Bioclipse 2

Go to WindowShow ViewOther... in the application menu in Bioclipse 2. Under the heading Scripting, we find Groovy Console and Javascript Console. Pick Groovy Console.


groovy> "CCCTCGCCACCTATACCCAG".replace("T","U")
CCCUCGCCACCUAUACCCAG
groovy> ["Alanine", "Glutamic Acid", "Methionine", "Tryptophan"].findAll { it.endsWith("ine") }
[Alanine, Methionine]



Performing more integrated Bioclipse actions depends on getting more of the data model done, but the above should give a sense of why command-line scripting is something we want.

Our dream is something along the lines of being able to turn many of the common actions in Bioclipse into pieces of scripts, so that actions can be recorded and saved, much like macros in some applications.

The fact that we now have two scripting engines in net.bioclipse.core spurred some discussion on the channel, which has given me food for thought. I do think the scripting capability in Bioclipse 2 should be built-in to the point of being hard to avoid... but there's nothing that says that this capability needs to be a language engine like Rhino or Groovy. Instead, one could imagine it being an API of some sort.

If that turns out to be the way we do it, neither Rhino nor Groovy need be core. My hope is that we can make things decoupled enough to be able to move them out into separate plugins. But it's too early to tell; still too many unknowns.

Coming up: Ruby!

2007-11-21

Bioclipse2 and Spring

Yesterday wasn't a great day for me. I was trying something called Spring-osgi and nothing worked. But I should take it from the beginning or at least a bit earlier.

Spring is a java framework that delivers great features (like Aspect oriented programming) for building java applications. The problem is that Eclipse's plugin structure makes things a little bit more complicated. This is where the Spring-OSGI project enters the scene. The OSGi framework specification forms the basis of the Eclipse Runtime and Spring-osgi is a project for using Spring in an osgi framework. So far so good (in theory). Spring-osgi seems to be a relatively new project and I am not sure that it is mature enough to be a part of Bioclipse 2.

What I tried to get working yesterday was a little mini example Spring service supplied by the Spring osgi project. I failed horribly when it came to running the osgi integration tests.

It would be great to have this in Bioclipse 2 but as things are right now I am not sure it is worth it. We will see what will happend.

First screenshot of Bioclipse2



Yesterday I added the first editor to Bioclipse2, based on Jmol. The major thing now is to adapt everything to Eclipse, and port e.g. ChemTree to Outline View. I will dig into this while Jonathan works on the Spring core functionality, and Carl works on the scripting language and -console.

2007-11-05

Adding scripting commands to Bioclipse

Following up on my recent post on Scripting BioMoby in Bioclipse, I have created a new extension point to be able to hook in additions to the Rhino scripting language in Bioclipse with a namespace. Add an example extension like below to the plugin.xml of your plugin (example is from net.bioclipse.biomoby.ui):

<extension
point="net.bioclipse.rhino.scripting">
<ScriptContribution
class="net.bioclipse.biomoby.ui.scripts.MobyServiceScripting"
id="net.bioclipse.biomoby.ui.scripts.MobyServiceScripting"
namespace="moby">
</ScriptContribution>
</extension>


The class must implement IScriptProvider and namespace is the desired namespace you like to have (see examples below). An example is the class net.bioclipse.biomoby.ui.scripts.MobyServiceScripting:

public class MobyServiceScripting implements IScriptProvider{

public void showMessage(String title, String message) {
MessageDialog.openInformation(
getShell(),
title,
message);
}

}


Now it's possible to issue commands in Bioclipse like the following:

  moby.showMessage("wee", "how");


Very convenient in my opinion. This will be extensively used in the upcoming Bioclipse2, which currently is in design phase.

2007-11-02

Scripting BioMoby in Bioclipse

I have been working hard on a BioMoby plugin to get BioMoby into Bioclipse. The ultimate goal is to mix and match between local functionality and remote services, and I have created some sample scripts to assist with this. It is not much for the moment but demonstrates how Bioclipse can take advantage of the many services in BioMoby, both in the GUI and in the scripting language (currently based on Rhino).

A sample script that retrieves a sequence from GenBank via a Moby service, and translates it into FASTA-format using the local library BioJava, is provided below.

console = Packages.net.bioclipse.util.BioclipseConsole;
moby = Packages.net.bioclipse.biomoby.ui.scripts.MobyServiceScripting;
biojava = Packages.net.bioclipse.biojava.scripts.BioJavaScripting;

prot=moby.downloadGenbank("NCBI_GI","111076");
seq=biojava.parseString(prot);
fasta=biojava.toFasta(seq);

console.writeToConsole(fasta);



The ouput of the script is:

Calling service...
Done.

Read: 1 sequences. Returning first.
>gi|111076|lcl|D31461.0|D31461 T-cell receptor delta chain BDN7, thymus - mouse
ATYFCALMERVSRRGAPDKLVFGQGTQVTVEP
Rhino script done.


More information and other sample scripts are available on the net.bioclipse.rhino (formerly bc_rhino) plugin page on the Bioclipse wiki.

2007-10-03

Bioclipse 1.1.5 pre-release

Bioclipse 1.1.5 pre-release is a development release available only from the links below, and will be moved to Sourceforge once more testing is performed. Note that you have to point the update site (available in Preferences... -> Update Site) to http://update.bioclipse.net/dev in order to get the latest available plugins.

Among the new features are worth mentioning: CDK descriptor calculations, a GridEditor for matrices, and a new charting plugin. See the Bioclipse wiki for more information regarding the latest plugins.

Download Bioclipse 1.1.5 pre-release for macosx(carbon, x86), windows(win32, x86), linux (gtk, x86).

2007-09-04

Design of Bioclipse2 has started

Bioclipse has outgrown its original design. We have therefore decided to start the design of Bioclipse2, which will be a complete rewrite of the core API and extension points to overcome the many deficiencies of the current design/implementation. I have established a wiki page for this. If you'd like to participate in the redesign, please add your name in the members section. The discussion will be carried out in IRC (irc.freenode.net, #bioclipse) and on the mailing list bioclipse-devel.

Getting started guide for Bioclipse

There's an updated Getting Started guide available in PDF-format from the Bioclipse homepage, documentation section:

2007-08-14

BioMoby in Bioclipse

For the last week or so I've been working on a Bioclipse-plugin for BioMoby.

From the BioMoby homepage: "BioMoby defines an ontology-based messaging standard through which a client will be able to automatically discover and interact with task-appropriate biological data and analytical service providers, without requiring manual manipulation of data formats as data flows from one provider to the next."

In short, BioMoby structures inputs and outputs in an extendable ontology which allows services to accept and produce data in well structured ways. By adding a repository, BioMoby also allows for service lookup. The current services are focused on Bioinformatics, but there is nothing preventing us from extending with new data types for e.g. pharmacology and chemistry, and setting up new BioMoby servers with services utilizing these data types.

Using the semantic service discovery and -invokation of BioMoby from within Bioclipse will add a lot of online functionality and also possibilities. I have created a beta-version of the plugin and screenshots are available from the Bioclipse wiki. The plugin utilizes the data type ontology and autogenerates a GUI for each service on the fly, and places them in a Wizard. The plugin is currently not functional but requires some more testing. I will continue that work and the setup up a BioMoby server with some local services in pharmacology when I get back from vacation in 2 weeks.

2007-06-21

Bioclipse 1.1.3 released

Bioclipse 1.1.3 was released today with bug fixes and new features to download from the update site. It is now possible to construct your own update site and add it to Bioclipse. I will set up a wiki page about this when I get back from a week among the Croatian islands.

See www.bioclipse.net for download info.

2007-06-01

Proceedings of the Bioclipse Workshop 2007

The Bioclipse Workshop 2007 was held May 23-25 in Uppsala, Sweden, in
collaboration with Embrace and was a great success. The 45
participants were faced with a mix of Bioclipse-presentations
ranging from visions to practical software development issues. The
hands-on tutorials were mostly given as integrated CheatSheets in
Bioclipse, and although several bugs were found it was overall
considered as a good way of exploring the many features of Bioclipse.

I have put most presentations and tutorials on this Bioclipse wiki page.


Thanks to all who made the workshop possible!

2007-05-18

Bioclipse 1.1.1 released

The Bioclipse team is proud to announce the release of Bioclipse beta release 1.1.1. The release constitutes a major step forward for Bioclipse as we have moved to Features. This means the Bioclipse Workbench's download is now 25 Mb, and all functionality must be added using the menu alternative "Add extensions...". It contacts the Bioclipse Update Site (http://update.bioclipse.net) and the user can select any features he'd like to install. It is also possible to perform online updates when a new version of Bioclipse is released.

* Download Bioclipse 1.1.1
* License statement
* Frequently asked questions

2007-02-22

The Bioclipse project team is proud to announce that the Bioclipse article was published today in BMC Bioinformatics.

Bioclipse: An open source workbench for chemo- and bioinformatics
Ola Spjuth, Tobias Helmus, Egon L Willighagen, Stefan Kuhn, Martin Eklund, Johannes Wagener, Peter Murray-Rust, Christoph Steinbeck, Jarl E.S. Wikberg
BMC Bioinformatics 2007, 8:59 (22 February 2007)
[Abstract] [Provisional PDF]

2007-02-12

Embrace Workshop on Bioclipse 2007

Announcement

===========================================
Embrace Workshop on Bioclipse 2007 (EWB '07)
May 23 -25 2007
Uppsala Biomedical Centre (BMC), Uppsala, Sweden
===========================================

Contents:
Bioclipse is an open source workbench for chemo- and bioinformatics with rich functionality for molecules, sequences, proteins, spectra, and scripts. Bioclipse has advanced plugin architecture which facilitates integration of new functionality, such as algorithms, editors, visualizations, Web services, and third party applications. The Embrace Workshop on Bioclipse 2007 (EWB '07) will consist of lectures and hands-on labs to demonstrate the features of Bioclipse, the power of the plugin architecture, and how to integrate new features into the framework.

For registration and more information, please see the workshop homepage and http://www.bioclipse.net.

2007-02-02

Bioclipse 1.0.1 released

Bioclipse 1.0.1 was relesed 2007-02-01. It contains numerous bug fixes and the new plugin bc_rhino which provides Bioclipse with a powerful scripting language.

Links: