Skip to main content
Log in

PyMVPA: a Python Toolbox for Multivariate Pattern Analysis of fMRI Data

  • Published:
Neuroinformatics Aims and scope Submit manuscript

Abstract

Decoding patterns of neural activity onto cognitive states is one of the central goals of functional brain imaging. Standard univariate fMRI analysis methods, which correlate cognitive and perceptual function with the blood oxygenation-level dependent (BOLD) signal, have proven successful in identifying anatomical regions based on signal increases during cognitive and perceptual tasks. Recently, researchers have begun to explore new multivariate techniques that have proven to be more flexible, more reliable, and more sensitive than standard univariate analysis. Drawing on the field of statistical learning theory, these new classifier-based analysis techniques possess explanatory power that could provide new insights into the functional properties of the brain. However, unlike the wealth of software packages for univariate analyses, there are few packages that facilitate multivariate pattern classification analyses of fMRI data. Here we introduce a Python-based, cross-platform, and open-source software toolbox, called PyMVPA, for the application of classifier-based analysis techniques to fMRI datasets. PyMVPA makes use of Python’s ability to access libraries written in a large variety of programming languages and computing environments to interface with the wealth of existing machine learning packages. We present the framework in this paper and provide illustrative examples on its usage, features, and programmability.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3
Fig. 4

Similar content being viewed by others

Notes

  1. In the literature, authors have referred to the application of machine learning techniques to neural data as decoding (Kamitani and Tong 2005; Haynes et al. 2007), information-based analysis (e.g. Kriegeskorte et al. 2006) or multi-voxel pattern analysis (e.g. Norman et al. 2006). Throughout this article we will use the term classifier-based analysis to refer to all these methods.

  2. Neural Information Processing Systems http://nips.cc/

  3. http://www.mloss.org

  4. http://www.pymvpa.org

  5. http://www.python.org

  6. http://niftilib.sourceforge.net/pynifti

  7. http://rpy.sourceforge.net

  8. http://www.r-project.org

  9. http://claymore.engineer.gvsu.edu/~steriana/Python/pymat.html

  10. http://mlabwrap.sourceforge.net

  11. http://numpy.scipy.org

  12. http://www.scipy.org

  13. ANALYZE format is supported as well but it is inferior to NIfTI thus is not explicitly advertised here.

  14. http://afni.nimh.nih.gov/afni

  15. http://www.brainvoyager.com

  16. http://www.fmrib.ox.ac.uk/fsl

  17. http://www.fil.ion.ucl.ac.uk/spm

  18. http://mdp-toolkit.sourceforge.net

  19. http://www.pybytes.com/pywavelets/

  20. Given that the results reported are from a single participant, we are simply illustrating the capabilities of PyMVPA, not trying to promote any analysis method as more-effective than another.

  21. Note that PyMVPA internally makes use of a number of other aforementioned Python modules, such as NumPy and SciPy.

  22. To a certain degree PyMVPA also supports importing ANALYZE files.

  23. LIBSVM C-SVC (Chang and Lin 2001) with trade-off parameter C being a reciprocal of the squared mean of Frobenius norms of the data samples.

  24. Chance performance without feature selection was not the norm for all category pairs in the dataset. For example, the SVM classifier generalized well for other pairs of categories (e.g. FACE vs HOUSE) without prior feature selection. Consequently, SCISSORS vs CATS was chosen to provide a more difficult analysis case.

  25. http://www.pymvpa.org/installation.html#dependencies

  26. Nothing prevents a software developer from adding a GUI to the toolbox using one of the many GUI toolkits that interface with Python code, such as PyQT (http://www.riverbankcomputing.co.uk/software/pyqt/) or wxPython (http://www.wxpython.org/).

References

  • Chang, C.-C., & Lin, C.-J. (2001). LIBSVM: A library for support vector machines. Software available at http://www.csie.ntu.edu.tw/∼cjlin/libsvm/

  • Chen, X., Pereira, F., Lee, W., Strother, S., & Mitchell, T. (2006). Exploring predictive and reproducible modeling with the single-subject FIAC dataset. Human Brain Mapping 27, 452–461.

    Article  PubMed  Google Scholar 

  • Detre, G., Polyn, S. M., Moore, C., Natu, V., Singer, B., Cohen, J., et al. (2006). The multi-voxel pattern analysis (MVPA) toolbox. Poster presented at the Annual Meeting of the Organization for Human Brain Mapping (Florence, Italy).

  • Efron, B., & Tibshirani, R. (1993). An introduction to the Bootstrap. Boca Raton: Chapman & Hall/CRC.

    Google Scholar 

  • Efron, B., Trevor, H., Johnstone, I., & Tibshirani, R. (2004). Least angle regression. Annals of Statistics, 32, 407–499.

    Article  Google Scholar 

  • Guimaraes, M. P., Wong, D. K., Uy, E. T., Grosenick, L., & Suppes, P. (2007). Single-trial classification of MEG recordings. IEEE Transactions on Biomedical Engineering, 54, 436–443.

    Article  PubMed  Google Scholar 

  • Guyon, I., & Elisseeff, A., 2003. An introduction to variable and feature selection. Journal of Machine Learning 3, 1157–1182.

    Article  Google Scholar 

  • Guyon, I., Weston, J., Barnhill, S., & Vapnik, V. (2002). Gene selection for cancer classification using support vector machines. Machine Learning, 46, 389–422.

    Article  Google Scholar 

  • Hanson, S., Matsuka, T., & Haxby, J. (2004). Combinatorial codes in ventral temporal lobe for object recognition: Haxby (2001) revisited: Is there a “face” area? Neuroimage, 23, 156–166.

    Article  PubMed  Google Scholar 

  • Hanson, S. J., & Halchenko, Y. O. (2008). Brain reading using full brain support vector machines for object recognition: There is no “face” identification area. Neural Computation, 20, 486–503.

    Article  PubMed  Google Scholar 

  • Haxby, J., Gobbini, M., Furey, M., Ishai, A., Schouten, J., & Pietrini, P. (2001). Distributed and overlapping representations of faces and objects in ventral temporal cortex. Science, 293, 2425–2430.

    Article  PubMed  CAS  Google Scholar 

  • Haynes, J.-D., & Rees, G. (2005). Predicting the orientation of invisible stimuli from activity in human primary cortex. Nature Neuroscience, 8, 686–691.

    Article  PubMed  CAS  Google Scholar 

  • Haynes, J.-D., & Rees, G. (2006). Decoding mental states from brain activity in humans. Nature Reviews Neuroscience, 7, 523–534.

    Article  PubMed  CAS  Google Scholar 

  • Haynes, J.-D., Sakai, K., Rees, G., Gilbert, S., Frith, C., & Passingham, R. E. (2007). Reading hidden intentions in the human brain. Current Biology, 17, 323–328.

    Article  PubMed  CAS  Google Scholar 

  • Jenkinson, M., Bannister, P., Brady, J., & Smith, S. (2002). Improved optimisation for the robust and accurate linear registration and motion correction of brain images. Neuroimage, 17, 825–841.

    Article  PubMed  Google Scholar 

  • Kamitani, Y., & Tong, F. (2005). Decoding the visual and subjective contents of the human brain. Nature Neuroscience, 8, 679–685.

    Article  PubMed  CAS  Google Scholar 

  • Kriegeskorte, N., Formisano, E., Sorger, B., & Goebel, R. (2007). Individual faces elicit distinct response patterns in human anterior temporal cortex. Proceedings of the National Academy of Sciences of the United States of America, 104, 20600–20605.

    Article  PubMed  CAS  Google Scholar 

  • Kriegeskorte, N., Goebel, R., & Bandettini, P. (2006). Information-based functional brain mapping. Proceedings of the National Academy of Sciences of the United States of America, 103, 3863–3868.

    Article  PubMed  CAS  Google Scholar 

  • Krishnapuram, B., Carin, L., Figueiredo, M. A., & Hartemink, A. J. (2005). Sparse multinomial logistic regression: Fast algorithms and generalization bounds. IEEE Transactions on Pattern Analysis and Machine Intelligence, 27, 957–968.

    Article  PubMed  Google Scholar 

  • LaConte, S., Strother, S., Cherkassky, V., Anderson, J., & Hu, X. (2005). Support vector machines for temporal classification of block design fMRI data. Neuroimage, 26, 317–329.

    Article  PubMed  Google Scholar 

  • Millman, K., & Brett, M. (2007). Analysis of functional magnetic resonance imaging in python. Computing in Science & Engineering, 9, 52–55.

    Article  CAS  Google Scholar 

  • Nichols, T. E., & Holmes, A. P. (2001). Nonparametric permutation tests for functional neuroimaging: A primer with examples. Human Brain Mapping, 15, 1–25.

    Article  Google Scholar 

  • Norman, K. A., Polyn, S. M., Detre, G. J., & Haxby, J. V. (2006). Beyond mind-reading: Multi-voxel pattern analysis of fmri data. Trends in Cognitive Science, 10, 424–430.

    Article  Google Scholar 

  • O’Toole, A. J., Jiang, F., Abdi, H., & Haxby, J. V. (2005). Partially distributed representations of objects and faces in ventral temporal cortex. Journal of Cognitive Neuroscience, 17, 580–590.

    Article  PubMed  Google Scholar 

  • O’Toole, A. J., Jiang, F., Abdi, H., Penard, N., Dunlop, J. P., & Parent, M. A. (2007). Theoretical, statistical, and practical perspectives on pattern-based classification approaches to the analysis of functional neuroimaging data. Journal of Cognitive Neuroscience, 19, 1735–1752.

    Article  PubMed  Google Scholar 

  • Perez, F., & Granger, B. (2007). IPython: A system for interactive scientific computing. Computing in Science & Engineering, 9, 21–29.

    Article  CAS  Google Scholar 

  • Pessoa, L., & Padmala, S. (2007). Decoding near-threshold perception of fear from distributed single-trial brain activation. Cerebral Cortex, 17, 691–701.

    Article  PubMed  Google Scholar 

  • Rakotomamonjy, A. (2003). Variable selection using SVM-based criteria. Journal of Machine Learning Research, 3, 1357–1370.

    Article  Google Scholar 

  • Schapire, R. E. (2003). The boosting approach to machine learning: An overview. In Denison, D. D., Hansen, M. H., Holmes, C., Mallick, B., & Yu, B. (Eds.), Nonlinear estimation and classification. New York: Springer.

    Google Scholar 

  • Sonnenburg, S., Braun, M., Ong, C. S., Bengio, S., Bottou, L., Holmes, G., et al. (2007). The need for open source software in machine learning. Journal of Machine Learning Research, 8, 2443–2466.

    Google Scholar 

  • Sonnenburg, S., Raetsch, G., Schaefer, C., & Schoelkopf, B. (2006). Large scale multiple kernel learning. Journal of Machine Learning Research, 7, 1531–1565.

    Google Scholar 

  • Thulasidas, M., Guan, C., & Wu, J. (2006). Robust classification of EEG signal for brain–computer interface. IEEE Transactions on Neural Systems and Rehabilitation Engineering, 14, 24–29.

    Article  PubMed  Google Scholar 

  • Vanduffel, W., Tootell, R. B. H., Schoups, A. A., & Orban, G. A. (2002). The organization of orientation selectivity throughout macaque visual cortex. Cerebral Cortex, 12, 647–662.

    Article  PubMed  Google Scholar 

  • Vapnik, V. (1995). The nature of statistical learning theory. New York: Springer.

    Google Scholar 

Download references

Acknowledgements

Michael Hanke and Stefan Pollmann were supported by the German Academic Exchange Service (Grant: PPP-USA D/05/504/7). Per Sederberg was supported by National Institutes of Health NRSA grant MH080526. Yaroslav O. Halchenko and Dr. Stephen J. Hanson were supported by National Science Foundation (grant: SBE 0751008) and James McDonnell Foundation (grant: 220020127).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Michael Hanke.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Hanke, M., Halchenko, Y.O., Sederberg, P.B. et al. PyMVPA: a Python Toolbox for Multivariate Pattern Analysis of fMRI Data. Neuroinform 7, 37–53 (2009). https://doi.org/10.1007/s12021-008-9041-y

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s12021-008-9041-y

Keywords

Navigation