io.github.sanctuuary
Tool for automated generation of computational workflows.
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 6 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.1%) to scientific vocabulary
Keywords
Repository
Tool for automated generation of computational workflows.
Basic Info
- Host: GitHub
- Owner: sanctuuary
- License: apache-2.0
- Language: Java
- Default Branch: main
- Homepage: https://ape-framework.readthedocs.io
- Size: 62.2 MB
Statistics
- Stars: 17
- Watchers: 3
- Forks: 7
- Open Issues: 16
- Releases: 22
Topics
Metadata Files
README.md

APE (Automated Pipeline Explorer)
| Badges | |
|:----:|----|
| Fairness |
|
| Packages and Releases |
| Build Status |
|
| Documentation |
|
| DOI |
|
| License |
|
APE is a command line tool and Java API for the automated exploration of possible computational pipelines (scientific workflows) from large collections of computational tools. Generated workflows can be exported in CWL format, as well as in graphical (PNG, SVG) formats.
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:
For detailed information please visit our page.
Requirements
To run APE locally you need to have Java 1.8 (or higher) installed on your system (use the command $ java -version to check your local version).
To build APE from source, Maven 3.3+ has to be installed as well (use the command $ mvn -version to check your local version).
Note: Building APE from source is not required to run it, as the latest stable version is available at maven repository.
Releases
Add APE to your Maven project
To add a dependency on APE using Maven, use the following:
xml
<!-- https://mvnrepository.com/artifact/io.github.sanctuuary/APE -->
<dependency>
<groupId>io.github.sanctuuary</groupId>
<artifactId>APE</artifactId>
<version>2.x.x</version>
</dependency>
For information regarding Gradle, Ivy, etc. we refer to the APE mvn repository.
Manually download releases
| Date | Version | Download | |------------|---------|--------------------------------------------------------------------------------------| | 15-07-2020 | 1.0.1 | jar, executable, javadoc, sources| | 02-05-2021 | 1.1.7 | jar, executable, javadoc, sources| | 20-12-2021 | 1.1.12 | jar, executable, javadoc, sources| | 17-05-2022 | 2.0.0 | jar, executable, javadoc, sources| | 19-02-2024 | 2.3.0 | jar, executable, javadoc, sources|
Build APE from source (using Maven)
From the project root, simply launch
shell
$ mvn -DskipTests=true install
to build the APE modules from the source tree and the built files will be generated under the /target directory. All the dependencies will be gathered by Maven and the following stand-alone module will be generated: APE-[latest]-executable.jar
Using APE
Automated workflow composition with APE can be performed through its command line interface (CLI) or its application programming interface (API). While the CLI provides a simple means to interact and experiment with the system, the API provides more flexibility and control over the synthesis process. It can be used to integrate APE’s functionality into other systems.
How to run APE from the command line
APE-[latest]-executable.jar is available in maven repository.
When running APE-[latest]-executable.jar from the command line, it requires a JSON configuration file given as a parameter and executes the automated workflow composition process accordingly:
shell
java -jar APE-[latest]-executable.jar [path-to-ape-configuration]
The configuration file (see APE cofiguration example and APE configuration documentation) provides references to all therefor required information: 1. Domain model - classification of the types and operations in the domain in form of an ontology (see ontology example in OWL) and a tool annotation file (see tool annotations example in JSON). 2. Workflow specification - including a list of workflow inputs/outputs and template-based (see constraint templates) workflow constraints (see workflow constraints example) 3. Parameters for the synthesis execution, such as the number of desired solutions, output directory, system configurations, etc. (see APE configuration documentation).
My first APE run
shell
git clone git@github.com:sanctuuary/APE_UseCases.git
or
shell
git clone https://github.com/sanctuuary/APE_UseCases.git
Download the latest version of APE-[latest]-executable.jar and add it to the APEUseCases directory (`~/git/APEUseCases`)
shell
cd ~/git/APE_UseCases
java -jar APE-[latest]-executable.jar ImageMagick/Example1/config.json
See ImageMagick: Example 1 for more information about the results and on how to execute the composed workflow.
More examples
Use cases contains all the details and examples regarding the composition setup and the composition execution using the existing use cases (such as composition of ImageMagick operations).
How to use the APE API
Like the CLI, the APE API relies on a configuration file that references the domain ontology, tool annotations, workflow specification and execution parameters:
```java // set up the framework APE ape = new APE("path/to/setup-configuration.json");
// run the synthesis SATsolutionsList solutions = ape.runSynthesis("path/to/run-configuration.json"); // write the solutions for the file system APE.writeSolutionToFile(solutions); APE.writeDataFlowGraphs(solutions, RankDir.TOPTOBOTTOM); APE.writeExecutableWorkflows(solutions); ```
However, the API allows to generate and edit the configuration file programmatically:
```java // set up the framework APECoreConfig coreConfig = new APECoreConfig(...); APE ape = new APE(coreConfig);
// run the synthesis APERunConfig runConfig = APERunConfig.builder().withSolutionMinLength(1).withSolutionMaxLength(10) .withMaxNoSolutions(100).withApeDomainSetup(ape.getDomainSetup()) .build(); SATsolutionsList solutions1 = ape.runSynthesis(runConfig);
// run the synthesis again with altered parameters runConfig.setUseWorkflowInput(ConfigEnum.ONE); SATsolutionsList solutions2 = ape.runSynthesis(runConfig); ```
For more information see APE javadoc.io page.
APE v2 architecture
The architecture of the APE v2 library is presented in the following figure. Components coloured light blue extend existing components in the APE v1 framework; dark blue components are new modules.

APE Web
Graphical Web Interface for the APE library is available at APE Web.
Use Cases and Demos
Our use cases are motivated by practical problems in various domains (e.g. bioinformatics, GIS [3]). Different examples are available at the APE Use Cases Repository.
The APE team
- Vedran Kasalica (v.kasalica[at]esciencecenter.nl), lead developer
- Maurin Voshol, student developer
- Koen Haverkort, student developer
- Anna-Lena Lamprecht (anna-lena.lamprecht[at]uni-potsdam.de), project initiator and principal investigator
Contact
For any questions concerning APE please get in touch with Vedran Kasalica (v.kasalica[at]esciencecenter.nl.nl).
Contributions
We welcome all contributions (bug reports, bug fixes, feature requests, extensions, use cases, etc.) to APE. Please get in touch with Vedran Kasalica (v.kasalica[at]esciencecenter.nl.nl) to coordinate your contribution. We expect all contributors to follow our Code of Conduct.
In case you have a specific request, want to report a bug or suggest a new constraint template please make an issue here.
Credits
APE has been inspired by the Loose Programming framework PROPHETS. It uses similar mechanisms for semantic domain modelling, 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
- graphviz-java - Apache 2.0
- org.json - JSON license
References
[1] Kasalica, V., & Lamprecht, A.-L. (2020). Workflow Discovery with Semantic Constraints: The SAT-Based Implementation of APE. Electronic Communications of the EASST, 78(0). https://doi.org/10.14279/tuj.eceasst.78.1092
[2] Kasalica V., Lamprecht AL. (2020) APE: A Command-Line Tool and API for Automated Workflow Composition. ICCS 2020. ICCS 2020. Lecture Notes in Computer Science, vol 12143. Springer, https://doi.org/10.1007/978-3-030-50436-6_34
[3] Kasalica, V., & Lamprecht, A.-L. (2019). Workflow discovery through semantic constraints: A geovisualization case study. In Computational science and its applications – ICCSA 2019 (pp. 473–488), Springer International Publishing, https://doi.org/10.1007/978-3-030-24302-9_53
Owner
- Name: Sanctuuary
- Login: sanctuuary
- Kind: organization
- Email: v.kasalica@esciencecenter.nl
- Location: Netherlands
- Website: https://ape.science.uu.nl/
- Repositories: 6
- Profile: https://github.com/sanctuuary
Citation (CITATION.cff)
cff-version: 1.2.0
title: APE (Automated Pipeline Explorer)
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Vedran
family-names: Kasalica
email: v.kasalica@esciencecenter.nl
affiliation: Netherlands eScience Center, Netherlands
orcid: 'https://orcid.org/0000-0002-0097-1056'
- family-names: Anna-Lena
given-names: Lamprecht
email: anna-lena.lamprecht@uni-potsdam.de
affiliation: University of Potsdam, Germany
orcid: 'https://orcid.org/0000-0003-1953-5606'
- family-names: Koen
given-names: Haverkort
affiliation: Utrect University, Netherlands
orcid: 'https://orcid.org/0009-0005-4904-0868'
- family-names: Maurin
given-names: Voshol
identifiers:
- type: doi
value: 10.5281/zenodo.5638988
repository-code: 'https://github.com/sanctuuary/APE/'
url: 'https://ape-framework.readthedocs.io/en/latest/'
abstract: >-
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.
keywords:
- automated workflow composition
- workflow synthesis
license: Apache-2.0
commit: 8d13cb975dacf7e757cd5faf2276449bea16f93c
version: 2.2.0
date-released: '2023-11-14'
GitHub Events
Total
- Create event: 3
- Release event: 1
- Issues event: 3
- Watch event: 4
- Delete event: 1
- Push event: 5
- Pull request event: 1
- Pull request review event: 5
- Pull request review comment event: 3
- Fork event: 2
Last Year
- Create event: 3
- Release event: 1
- Issues event: 3
- Watch event: 4
- Delete event: 1
- Push event: 5
- Pull request event: 1
- Pull request review event: 5
- Pull request review comment event: 3
- Fork event: 2
Issues and Pull Requests
Last synced: 9 months ago
All Time
- Total issues: 45
- Total pull requests: 106
- Average time to close issues: 6 months
- Average time to close pull requests: 3 days
- Total issue authors: 7
- Total pull request authors: 6
- Average comments per issue: 0.53
- Average comments per pull request: 0.2
- Merged pull requests: 99
- Bot issues: 0
- Bot pull requests: 8
Past Year
- Issues: 7
- Pull requests: 1
- Average time to close issues: about 2 months
- Average time to close pull requests: 26 days
- Issue authors: 3
- Pull request authors: 1
- Average comments per issue: 0.43
- Average comments per pull request: 3.0
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- vedran-kasalica (27)
- m4urin (3)
- rensieeee (2)
- ni-be (2)
- Ambivalentalfa (2)
- HelenParr (1)
- 524D (1)
- KoenHav (1)
Pull Request Authors
- vedran-kasalica (52)
- m4urin (16)
- dependabot[bot] (8)
- KoenHav (7)
- rensieeee (1)
- annalenalamprecht (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 3
- Total downloads: unknown
-
Total dependent packages: 0
(may contain duplicates) -
Total dependent repositories: 2
(may contain duplicates) - Total versions: 72
proxy.golang.org: github.com/sanctuuary/ape
- Documentation: https://pkg.go.dev/github.com/sanctuuary/ape#section-documentation
- License: apache-2.0
-
Latest release: v2.4.0+incompatible
published over 1 year ago
Rankings
proxy.golang.org: github.com/sanctuuary/APE
- Documentation: https://pkg.go.dev/github.com/sanctuuary/APE#section-documentation
- License: apache-2.0
-
Latest release: v2.4.0+incompatible
published over 1 year ago
Rankings
repo1.maven.org: io.github.sanctuuary:APE
APE is a command line tool and an API for the automated exploration of possible computational pipelines (workflows) from large collections of computational tools.
- Homepage: https://github.com/sanctuuary/APE
- Documentation: https://appdoc.app/artifact/io.github.sanctuuary/APE/
- License: Apache License, Version 2.0
-
Latest release: 2.5.2
published 9 months ago
Rankings
Dependencies
- guru.nidi:graphviz-java 0.17.0
- net.sourceforge.owlapi:owlapi-distribution 5.1.20
- org.antlr:antlr4-runtime 4.10.1
- org.apache.commons:commons-lang3 3.12.0
- org.apache.logging.log4j:log4j-core 2.17.2
- org.json:json 20220320
- org.sat4j:org.sat4j.core 2.3.1
- org.slf4j:slf4j-simple 1.7.36
- org.yaml:snakeyaml 1.30
- org.junit.jupiter:junit-jupiter-api 5.8.2 test
- actions/checkout v3 composite
- github/codeql-action/analyze v2 composite
- github/codeql-action/autobuild v2 composite
- github/codeql-action/init v2 composite
- actions/checkout v3 composite
- actions/setup-java v3 composite
- advanced-security/maven-dependency-submission-action 571e99aab1055c2e71a1e2309b9691de18d6b7d6 composite
- fair-software/howfairis-github-action 0.2.1 composite