NOTE: This repository contains the legacy version of Arcana as described in Close TG, et. al. Neuroinformatics. 2020 18(1):109-129. doi: 10.1007/s12021-019-09430-1. Please see https://github.com/ArcanaFramework/arcana for the latest version.
Abstraction of Repository-Centric ANAlysis (Arcana) is Python framework for "repository-centric" analyses of study groups (e.g. NeuroImaging studies) built on Nipype.
Arcana interacts closely with a repository, storing intermediate outputs, along with the parameters used to derive them, for reuse by subsequent analyses. Repositories can either be XNAT repositories or plain file system directories, and a BIDS module is under development.
Analysis workflows are constructed and executed using the Nipype package, and can either be run locally or submitted to HPC schedulers using Nipype’s execution plugins. For a requested analysis output, Arcana determines the required processing steps by querying the repository to check for missing intermediate outputs before constructing the workflow graph. When running in an environment with Environment Modules installed, Arcana manages the loading and unloading of software modules per pipeline node.
Arcana is designed with an object-oriented philosophy, with the acquired and derived data sets along with the analysis pipelines used to derive the derived data sets encapsulated within "Analysis" classes.
The Arcana package itself only provides the abstract Analysis and MultiAnalysis base classes, which are designed to be sub-classed to provide specialised classes representing the analysis that can be performed on specific types of data (e.g. BoldAnalysis, PetAnalysis). These specific classes can then be sub-classed further into classes that are specific to a particular analysis, and integrate complete analysis workflows from preprocessing to statistics.
Arcana can be installed for Python 3 using pip:
$ pip3 install arcana