Abstract

Abstract</p>

Background

In bioinformatics, it is important to build extensible and low-maintenance systems that are able to deal with the new tools and data formats that are constantly being developed. The traditional and simplest implementation of pipelines involves hardcoding the execution steps into programs or scripts. This approach can lead to problems when a pipeline is expanding because the incorporation of new tools is often error prone and time consuming. Current approaches to pipeline development such as workflow management systems focus on analysis tasks that are systematically repeated without significant changes in their course of execution, such as genome annotation. However, more dynamism on the pipeline composition is necessary when each execution requires a different combination of steps.

Results

We propose a graph-based approach to implement extensible and low-maintenance pipelines that is suitable for pipeline applications with multiple functionalities that require different combinations of steps in each execution. Here pipelines are composed automatically by compiling a specialised set of tools on demand, depending on the functionality required, instead of specifying every sequence of tools in advance. We represent the connectivity of pipeline components with a directed graph in which components are the graph edges, their inputs and outputs are the graph nodes, and the paths through the graph are pipelines. To that end, we developed special data structures and a pipeline system algorithm. We demonstrate the applicability of our approach by implementing a format conversion pipeline for the fields of population genetics and genetic epidemiology, but our approach is also helpful in other fields where the use of multiple software is necessary to perform comprehensive analyses, such as gene expression and proteomics analyses. The project code, documentation and the Java executables are available under an open source license at <url>http://code.google.com/p/dynamic-pipeline</url>. The system has been tested on Linux and Windows platforms.

Conclusions

Our graph-based approach enables the automatic creation of pipelines by compiling a specialised set of tools on demand, depending on the functionality required. It also allows the implementation of extensible and low-maintenance pipelines and contributes towards consolidating openness and collaboration in bioinformatics systems. It is targeted at pipeline developers and is suited for implementing applications with sequential execution steps and combined functionalities. In the format conversion application, the automatic combination of conversion tools increased both the number of possible conversions available to the user and the extensibility of the system to allow for future updates with new file formats.

Document type: Article

Full document

The PDF file did not load properly or your web browser does not support viewing PDF files. Download directly to your device: Download PDF document

Original document

The different versions of the original document can be found in:

http://link.springer.com/article/10.1186/1471-2105-13-163/fulltext.html,
http://dx.doi.org/10.1186/1471-2105-13-163 under the license cc-by
https://doaj.org/toc/1471-2105 under the license http://creativecommons.org/licenses/by/2.0
https://bmcbioinformatics.biomedcentral.com/articles/10.1186/1471-2105-13-163,
https://link.springer.com/article/10.1186/1471-2105-13-163,
https://www.ncbi.nlm.nih.gov/pubmed/22788675,
http://www.europepmc.org/articles/PMC3496580,
https://doi.org/10.1186/1471-2105-13-163,
https://paperity.org/p/56779626/a-graph-based-approach-for-designing-extensible-pipelines,
https://0-bmcbioinformatics-biomedcentral-com.brum.beds.ac.uk/articles/10.1186/1471-2105-13-163,
https://academic.microsoft.com/#/detail/2016559298

Back to Top

Document information

Published on 01/01/2012

Volume 2012, 2012
DOI: 10.1186/1471-2105-13-163
Licence: Other

Document Score

0

Views 0
Recommendations 0

Share this document

claim authorship

Are you one of the authors of this document?