skbold - utilities and tools for machine learning on BOLD-fMRI data
The Python package skbold
offers a set of tools and utilities for
machine learning analyses of functional MRI (BOLD-fMRI) data.
Instead of (largely) reinventing the wheel, this package builds upon an
existing machine learning framework in Python: scikit-learn.
The modules of skbold are applicable in several 'stages' of
typical pattern analyses (see image below), including pattern estimation,
data representation, pattern preprocessing, feature selection/extraction,
and model evaluation/feature visualization.
Documentation
Please see skbold's ReadTheDocs page for more info on how to use skbold!
Installation & dependencies
Although the package is very much in development, it can be installed using pip:
$ pip install skbold
However, the pip-version is likely behind compared to the code on Github, so to get the most up to date version, use git:
$ pip install git+https://github.com/lukassnoek/skbold.git@master
Skbold is largely Python-only (both Python2.7 and Python3) and is built around the "PyData" stack, including:
- Numpy
- Scipy
- Pandas
- Scikit-learn
And it uses the awesome nibabel package
for reading/writing nifti-files. Also, skbold uses FSL
(primarily the FLIRT
and applywarp
functions) to transform files from functional
(native) to standard (here: MNI152 2mm) space. These FSL-calls are embedded in the
convert2epi
and convert2mni
functions, so avoid this functionality if
you don't have a working FSL installation.
Authors & credits
This package is being develop by Lukas Snoek from the University of Amsterdam with contributions from Steven Miletic and help from Joost van Amersfoort.
License and citing skbold
The code is BSD (3-clause) licensed. If you use 'skbold' in your research, I would appreciate if you'd reference the following:
Snoek, L. (2017). Skbold: utilities and tools for machine learning on BOLD-fMRI data (version 0.4.0). https://doi.org/10.5281/zenodo.1064090.
Suggestions, issues, and contributing
If you have suggestions or issues, please submit an issue to the issue-tracker. Also, I would love contributions to skbold from others! In case you want to contribute, fork this repository and submit a pull-request with your contribution!