Introduction to APE
About APE

APE (Automated Pipeline Explorer) is a library (available as CLI, Java API and a RESTful API) for the automated exploration of possible computational pipelines (scientific workflows) from large collections of computational tools.
APE relies on a semantic domain model that includes tool and type taxonomies as controlled vocabularies for the description of computational tools, and functional tool annotations (inputs, outputs, operations performed) using terms from these taxonomies. Based on this domain model and a specification of the available workflow inputs, the intended workflow outputs and possibly additional constraints, APE then computes possible workflows.
Internally, APE uses a component-based program synthesis approach. It translates the domain knowledge and workflow specification into logical formulas that are then fed to a SAT solver to compute satisfying instances. These solutions are then translated into the actual candidate workflows. For a detailed description we refer to [1].
For our paper at ICCS 2020 [2] we created a video that explains APE in 5 minutes:
APE in practice
Our use cases are motivated by practical problems in various domains (e.g. bioinformatics [3], GIS [4]). In bioinformatics, the Workflomics platform for creating and benchmarking workflows uses APE (specifically APE’s RESTfull API) to generate candidate workflows.
Credits
APE has been inspired by the Loose Programming framework PROPHETS. It uses similar mechanisms for semantic domain modeling, workflow specification and synthesis, but strives to provide the automated exploration and composition functionality independent from a concrete workflow system.
We thank our brave first-generation users for their patience and constructive feedback that helped us to get APE into shape.
License
APE is licensed under the Apache 2.0 license.
Maven dependencies
OWL API - LGPL or Apache 2.0
SAT4J - EPL or GNU LGPL
apache-common-lang - Apache 2.0
Apache Log4j Core - Apache 2.0
graphviz-java - Apache 2.0
JUnit Jupiter API - EPL 2.0
SLF4J Simple Binding - MIT
ANTLR 4 Runtime - BSD
SnakeYAML - Apache 2.0
Contributors
Vedran Kasalica (v.kasalica[at]esciencecenter.nl), lead research software developer
Maurin Voshol, student developer
Koen Haverkort, student developer
Peter Kok, research software developer
Anna-Lena Lamprecht (anna-lena.lamprecht[at]uni-potsdam.de), project initiator and principal investigator