Introduction to APE

About APE

APE logo

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

  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