The BrainOwl is a decoder developed for task fMRI in particular with the idea of identifying the most relevant groups of voxels involved in the decoding. That can help researchers interpret results in a more straightforward way compared to other decoders, e.g. support vector machines, that produce a weight map that might not be easy to interpret.
That makes the BrainOwl an excellent candidate for whole brain analysis providing identification of anatomical brain regions involved in the task. However, the BrainOwl is not limited to that and can also be used for any other type of classification analysis.
The BrainOwl is based on a linear model using the Ordered Weighted l1 (OWL) norm as regularization term. For a certain set of parameters, the OWL norm can be made to behave like the l1 norm, the l∞ norm, or the OSCAR norm. Apart from that, there are three available losses implemented: the log loss (logistic regression), the squared hinge loss, and a modified Huber loss. Both the log and the modified Huber losses can output prediction probabilities.
BrainOwl is open source and its code repository includes an example Jupyter notebook that takes the new user through a complete classification problem. The notebook is based on an example from the neuroimaging machine learning library nilearn, also showing that both BrainOwl and nilearn can be used together.
The decoder is also compatible with the popular scikit-learn machine learning software. Therefore, BrainOwl can be used as a drop-in replacement for any of the classifiers provided by scikit-learn.
BrainOwl can be installed like many Python packages using pip:
pip install brainowl
Dependencies should be resolved automatically, but have in mind that BrainOwl needs at least Python 3.6.