1. Diferentes tipos de workflows

La implementación de un pipeline en un Workflow Manager requiere de la definición precisa de dónde se extraen los datos iniciales (input), cuál es el flujo entre las distintas herramientas y cuál es el resultado final (output). Para poder estructurar los distintos parámetros se utilizan lenguajes de dominio específico (DSL). La utilización de DSLs aumenta la portabilidad y la escalabilidad. Nextflow y Snakemake son dos de los ejemplos más populares de workflows que utilizan DSLs propios en el ámbito de la bioinformática. La diversidad de DSLs con su propia estructuración y nomenclatura propicia la reducción de interoperabilidad entre los distintos workflows. Para mitigar esta disparidad se han creado unas especificaciones que añaden un nivel mayor de abstracción, permitiendo un marco común entre los distintos workflows. Ejemplos de especificaciones para workflows son el Common Workflow Language (CWL) y Workflow Description Language (WDL). CWL prioriza la portabilidad y la reproducibilidad, mientras que WDL tiene como principal objetivo reducir la curva de aprendizaje mediante un lenguaje más comprensible. CWL define los pipelines utilizando ficheros YAML, mientras que WDL utiliza sus propios ficheros descriptivos. Algunos Workflow Managers, como cwltool o Cromwell, se han creado basándose en estas especificaciones, mientras que otros como Snakemake implementan opciones de exportación a estas especificaciones.

La utilización de Workflow Managers para la creación de pipelines bioinformáticos está creciendo en popularidad. Distintos workflows están disponibles para la comunidad variando en su flexibilidad y facilidad de uso (https://github.com/pditommaso/awesome-pipeline). Mientras que algunos workflows necesitan de un conocimiento avanzado de programación, otros tal que Galaxy, KNIME o BioWorkflow implementan una interfaz gráfica para facilitar su utilización. Aunque el desarrollo de sistemas de workflow se inició a principios de los años noventa, ha sido la capacidad de correr pipelines en clústeres de computación o en la nube lo que ha facilitado su uso más generalizado.