FrameTree¶
FrameTree is a Python package that sets out to bridge the gap between the tree-like structures that file-based data are typically stored in, and the tabular data frames used in statistical analysis. This transformation is abstract, with the source data remaining within original data tree and generated derivatives stored alongside them.
Data store interactions are mediated by clearly defined interfaces, making it possible to write backends for different storage systems and data structures. In addition to the generic "file system" backend, backends for common biomedical imaging data repository platforms/structures, XNAT and BIDS, are currently supported, with a prototype also started for Flywheel.
FrameTree facilitates pulling data from the data store to a (typically neighbouring) computing resource, and then uploading the processed data alongside the original data in a location that can be accessed by subsequent analysis steps. In this manner chains of modular pipelines can be applied and used to produce output metrics that can be fed directly into statistical analysis.
The key elements of FrameTree's data model are:
Stores - tree-like file storage system backends (e.g. file systems, XNAT, BIDS, Flywheel)
FrameSets - virtual mapping of datasets (or subsets thereof) onto a set of data frames
Columns - cross-section of data acquisitions and derived metrics across a frameset (e.g. anatomical MRI, subject's age)
Pipelines - parameterised analysis workflows and tasks applied to data in a frameset
Installation¶
FrameTree requires a recent version of Python (>=3.8) to run. So you may need to upgrade your Python version before it is installed. It can be installed along with its dependencies from the Python Package Index using Pip3
$ pip3 install frametree
To add support for XNAT or BIDS stores you will also need to install the respective
extension modules frametree-xnat
and frametree-bids
, e.g.
$ pip3 install frametree-xnat frametree-bids
Licence¶
FrameTree is licenced under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Public License (see LICENCE). Non-commercial usage is permitted freely on the condition that FrameTree is appropriately acknowledged in related publications.