Developers and administrators of a GobyWeb instance can define plugins to extend GobyWeb with new functionality.
The GobyWeb Plugins SDK is a tool designed to support the activity of developing new plugins (the SDK is integrated with GobyWeb in release 2.3). It allows to:
- load and validate plugin configurations,
- create and register FileSet instances,
- create and submit jobs for execution on a local machine or remote sun grid engine cluster,
- test the installation of resources with artifacts.
GobyWeb 2.3+ uses the API of the SDK to perform the above operations at runtime.
There are five categories of GobyWeb plugins:
- Resources. These plugins define resources such as executable programs, scripts, or data files, that other plugins require and can use. Resources take advantage of artifacts, that automate the installation of a resource on a compute node.
- Aligners. These plugins provide functionality to align reads to a reference genome. They are used to expose various alignment methods to the end user.
- Alignment Analyses. These plugins integrate analyses methods that work on sets of alignments. These plugins take alignment files as input, where each alignment is associated with a group, and produce output files in TSV or VCF format.
- FileSets. A FilesSet is a set of files logically grouped (for instance, a BAM file and its associated index can be modeled as a FileSet with two entries, whose extensions are .bam and .bam.bai). Registering FileSets assigns a unique identifier to each FileSet and provides a convenient way to refer to these files from other plugins, irrespective of their physical location (on local machine or on a remote one). Plugins may also produce and store FileSets as outcome of their computation.
- Tasks. These plugins accept input FileSets and produce output FileSets. They are more general than aligners and alignment analysis plugins because they can be configured to accept arbitrary FileSets as input or output.
In summary, Resources and Artifacts model software and data that you will use to compute with data. Filesets model the type of data files that you compute with. Fileset instances are specific files that belong to a FileSet (type of files). Aligners, Alignment Analyses and Tasks plugins model a computation over data stored in FileSet instances and they are collectively referred as Executable plugins. Executable plugins can be submitted for execution on a compute node. The result of the submission yields a plugin execution Job.