Introduction to APE

About APE

APE logo

APE (Automated Pipeline Explorer) is a command line tool and Java 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 detailed description we refer to [1].

For our paper at ICCS 2020 [2] we created a video that explains APE in 5 minutes:


Note

Our use cases are motivated by practical problems in various domains (e.g. bioinformatics, GIS [3]). For one of the bioinformatics use cases, our intern Karl Allgaeuer developed a prototype of a web-based interface to APE. It is available at ape.science.uu.nl (alpha). A Docker version of this demonstrator is available at github.com/sanctuuary/Burke_Docker

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

  1. OWL API - LGPL or Apache 2.0

  2. SAT4J - EPL or GNU LGPL

  3. apache-common-lang - Apache 2.0

  4. Apache Log4j Core - Apache 2.0

  5. graphviz-java - Apache 2.0

  6. org.json - JSON license

  7. JUnit Jupiter API - EPL 2.0

  8. SLF4J Simple Binding - MIT

  9. ANTLR 4 Runtime - BSD

  10. 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

References