-
Notifications
You must be signed in to change notification settings - Fork 10
HomeDeveloper
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.
- Developping Requirements for Eoulsan developing [Updated for 2.0-beta1]
- Using Maven for creating and compiling an Eoulsan plug-in [Updated for 2.0-beta1]
- Contribute Core Eoulsan to Eoulsan core with Git [Updated for 2.0-beta1]
- Eoulsan core Coding Policy [Updated for 2.0-beta1]
- The Eoulsan javadoc for API reference
- The source code in XRef format
- Downloading sources
- The Eoulsan website
- The Eoulsan javadoc for API reference
- The source code in XRef format
- Downloading sources
- The Eoulsan website
- Code organization [Updated for 2.0-beta1]
- Concepts [Updated for 2.0-beta1]
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.
- Handling sequences and alphabets
- Sequence IO
- Handling reads and FASTQ formats
- Reads IO
- Filtering Reads
- Handling GFF3 data
- GFF3 IO
- Filtering Alignments
- Accessing Eoulsan Settings
- The Runtime object
- The DataFile
- The Context object
- The exceptions
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.
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 likegenome://mouse
ors3://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.
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.
- Writing a reads filter for the readsfilter step
- Writing a mapper wrapper for the mapreads step
- Writing a SAM filter for the filtersam step