A workflow is a series of processing steps connected together so that the output of one step is used as the input of another. Processing steps implement data analysis tasks such as data importing, statistical tests and report generation. In Anduril, processing steps are implemented using components, which are reusable executable code that can be written in any programming language. Components are wired together into a workflow, or a component network, that is executed by the Anduril workflow engine. Workflow configuration is done using a simple yet powerful scripting language, AndurilScript. Workflow configuration and execution can be done from Eclipse, a popular multipurpose GUI, or from the command line. The core Anduril engine is written in Java and components are written in a variety of programming languages, including Java, R, MATLAB, Lua, Perl and Python. Components may also have dependencies on third-party libraries, such as Bioconductor. Components for cell imaging and microarray analysis are provided but additional components can be implemented by users. The Anduril core has been tested on Linux and Windows.
Commenting follows the syntax of Java: // A simple comment /* Another simple comment */ /** A description that will be included in component description */
Components are called by assigning their calls to named component instances. Names cannot be re-used within a single workflow. There are special components for input files that include external files to the script. Supported atomic types are integer, float, boolean and string, and typing is done implicitly. in1 = INPUT constant1 = 1 componentInstance1 = MyComponent
Workflows are constructed by assigning outputs of component instances to inputs of following components. componentInstance2 = AnotherComponent
Component instances can also be wrapped as functions. function MyFunction ->
In addition to standard if-else and switch-case statements, AndurilScript also includes for-loops. // Iterates over 1, 2,..., 10 array = record for i: std.range
Extensibility
Anduril can be extended on multiple levels. Users can add new components to existing component bundles. However, if the new component or components carry out tasks that are not related to existing bundles, users can also create new bundles.
Moksiskaan
Moksiskaan is a data integration framework for the cancer research and molecular biology. The framework provides a relational database that represents a graph of biological entities such as genes, protein, drugs, pathways, diseases, biological processes, cellular components, and molecular functions. In addition, there is a wide set of analysis and accession tools built on top of this data. The great majority of these tools are implemented as Anduril components and functions. Moksiskaan is used mainly to interpret lists of candidate genes obtained from the genomic studies. Its tools can be used to generate graphs of biological entities related to the input genes. The exact for of these graphs may vary from the drug target predictions to the time series of signalling cascades. Some of the goals of these tools are closely related to IPA.