Tranche Modules

Modules provide additional functionality for Tranche. For example, an example module might download a peak list and convert it to a user-specified format.

Tranche modules can be used for two reasons:

Modules are stored on the Tranche network. When a user wants a module, they open up the Module Manager from the Tranche GUI, select the desired module, and click the install button. The module is automatically downloaded and installed for immediate use — no restart required.

Modules can be loaded from disk as well, meaning you can create modules that are not on the network. However, for a module to be loadable from the Tranche Module Manager, you will need to contact us.

Developing a Module

Modules can be developed by anyone, and are fairly simple to build. Existing projects can even be adapted to be used as a module. Here's what is needed to develop a module:

The concept behind the module is simple: Tranche will provide the module with information about selected files or projects, and the module can use that information to do whatever it chooses (e.g., render, convert, etc.). Note that it is the module's duty to actually download the projects or files. (See sample code snippets.)

Contact Us

If you have any questions or requests, please contact us. After more developments, we will update the documentation.

If you have built tools that you would like to convert to Tranche modules, we will gladly assist you. In some cases, we may even be help adapt your code (such as annotating or supplying an adapter interface) or produce appropriate developer documentation.

Creating new Java plugins

If you have an existing Java application, or wish to develop a plugin, it is relatively easy to adapt it to be used as a module. In many cases, you may only have to create a simple wrapper class with a few annotations!

Again, if you wish to add a plugin, please consider contacting us for assistance.

You can view the source code for a simple single-file module that simply uses a web service for rending BioXML files. Though the class heavily uses the Tranche base class, this is only for development convenience and is not necessary.

Binding existing applications

Our GUI can also use modules designed to load existing applications written in any language. These modules will simply implement an interface called RunInstallable (combined with the appropriate annotations), which provides an install and uninstall hook. This allows the module to:

It will be the duty of the install method to verify that the user's environment will support the application, e.g., correct OS, installed language, etc., in the case that the software will only run in certain environments.

Once an application is installed, Tranche will be able to run the application (with optional arguments, e.g. files downloaded from the network).

Again, creation of the module is not too challenging, but until we produce a simple solution or better document the process of binding to existing applications, you will need to contact us if interested in binding an application.



Home   •   FAQ   •   Contact Us   •   Join email list   •   Collaborations   •   Credits