| Literature DB >> 22788675 |
Maíra R Rodrigues1, Wagner C S Magalhães, Moara Machado, Eduardo Tarazona-Santos.
Abstract
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.Entities:
Mesh:
Year: 2012 PMID: 22788675 PMCID: PMC3496580 DOI: 10.1186/1471-2105-13-163
Source DB: PubMed Journal: BMC Bioinformatics ISSN: 1471-2105 Impact factor: 3.169
Figure 1Graphic representation of the pipeline system algorithm. Graphic representation of the pipeline system algorithm. (1) algorithm inputs: start and end points, A and F (which are data formats), for a specific processing task, and the tool registry file; (2) directed graph built based on information from the tool registry, where regular nodes represent inputs and outputs, edges represent tools (denoted by their Code) and have a specific weight (w), and double circled nodes represent input dependencies (XI) or secondary outputs (XO); (3) path through the graph connecting the start and end points, P((A,B),(B,C),(C,E),(E,F)), generated by a graph-traversing procedure; (4) executable task-specific pipeline, which specifies the required inputs for the pipeline (file .inputs), the sequence of tools to be run (file .exec) and the output file (file .outputs).
Figure 2Web interface for our format conversion pipeline. Three scenarios are depicted: a conversion from SDAT format to R HierFstat format (denoted in green); a conversion from the PolyPhred output format to the Structure input format (denoted in purple); and a conversion from the PHASE output format to DnaSP input format or Fasta format (denoted in blue).
Tool Registry example for format conversion pipelines
| PolyPhred | PrettyBase | PolyPhred2PrettyBase.pl | perl | 1 | - | - | 0.004 |
| PrettyBase | SDAT | PrettyBase2SDAT.pl | perl | 2 | - | - | 0.01 |
| SDAT | StructureFormat | SDAT2Structure.pl | perl | 5 | - | mainparam, | 0.15 |
| | | | | | | extraparam | |
| SDAT | RHierfstat | SDAT2Rhierfstat.pl | perl | 7 | SDAT | - | 0.02 |
| PHASEOUT | Fasta | Phase2Fasta.pl | perl | 9 | Fragments, | - | 0.02 |
| RefSeq |
Columns Input and Output are file formats that are accepted and generated by a conversion tool; Tool and Language are the conversion tool’s name and its programming language; Code is the identifier of the tool; XI is the list of extra input files required for the tool’s execution; XO is the list of extra output files that is generated by the tool; and Performance is a measure related to the tool’s execution time. Other information not represented on this table can be found in the Additional file 1: Table S1.
Figure 3Tool Graph for our format conversion pipeline system. Nodes are popular data formats from population genetics and genetic epidemiology. Edges are labelled with the conversion tool’s Code and have an associated weight (represented in round brackets) indicating the tools’ performance.
Executable pipelines for three usage scenarios
| .inputs | SDAT02 |
| | SDAT202 |
| .exec | perl SDAT2Rhierfstat.pl SDAT02 SDAT202 RHierfstat02 |
| .outputs | RHierfstat02 |
| .inputs | PolyOut01 |
| .exec | perl PolyPhred2PrettyBase.pl PolyOut01 PrettyBase01 |
| | perl PrettyBase2SDAT.pl PrettyBase01 SDAT01 |
| | perl SDAT2Structure.pl SDAT01 StructureFormat01 mainpar01 extrapar01 |
| .outputs | StructureFormat01 |
| | mainparamt01 |
| | extraparam01 |
| .inputs | PHASEOUT03 |
| | Fragments03 |
| | RefSeq03 |
| .exec | perl Phase2Fasta.pl PhaseOut03 Fragments03 RefSeq03 Fasta03 |
| .outputs | Fasta03 |
Executable pipelines for file-format conversions: (top) SDAT format to R Hierfstat input format; (centre) PolyPhred output format to Structure input format; and (bottom) software PHASE output format to Fasta format. In practice, input and output files handled by the pipeline system are renamed to include a timestamp identifier of each specific pipeline (such as numbers 01, 02 and 03 above). This guarantees that inputs and outputs stored in the system are unique for each dynamically generated pipeline.