Skip to content
jourdren edited this page Jun 11, 2018 · 1 revision

Eoulsan Developer Wiki

WARNING: This documentation is outdated and will soon be updated.

Eoulsan is a command line workflow engine for Next Generation Sequencing data analysis. It could be run either in standalone mode or in distributed mode using the Hadoop framework.

This wiki contains all necessary information for developing plug-ins for Eoulsan.

User documentation is available on Eoulsan website.

As of Feb 5, 2012, this wiki is in beta.

Basics for developing with Eoulsan

Eoulsan 1.x links

Eoulsan code organization

Eoulsan Object model for handling NGS data

Eoulsan is not only a Workflow engine, it also provide an object model in the fr.ens.transcriptome.eoulsan.bio package for handling NGS data. Eoulsan object model can be used in a standalone mode in your project without launching the Eoulsan workflow. You just had to put the eoulsan.jar file in your classpath. This sample show how to use the Eoulsan Object model without Eoulsan workflow engine.

Support classes

Service Provider Interface modules

The Eoulsan code is very modular. There is two level of modularity in Eoulsan:

  • Core SPI interfaces for managing core services like steps and data formats.
  • Step dedicated SPI interface for customizing common steps like filterreads or mapreads.

Core SPI interfaces

The core SPI interface are essential to Eoulsan working, it allow to extend Eoulsan capacities for the user needs. To write an Eoulsan plug-in, the only way is to write one or more classes that implements the following interfaces. For a typical plug-in user usually only implements the Step and DataFormat interface.

  • Writing a step. A Step is a class that is called to process data. There is a step of each element of the worflow to execute.
  • Writing a data format. A DataFormat class define a data type that allow to the Eoulsan engine to check if all the necessary data is available before the starting of the workflow. It allow also easy access to the data inside a Step.
  • Writing a protocol. A Protocol class allow define data access with custom URL like genome://mouse or s3://mybucket/mydir/foobar.
  • Writing a a command (Action) for Eoulsan command line. The Action class allow user to define its own Eoulsan command like the built-in exec, awsexec or createdesign.

Step dedicated SPI interfaces

To avoid code duplication and forbid the creation of too many step, some steps are modular. It allow quick development of steps that fulfil the custom needs of the user.