Skip to main content

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


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, access via your institution.

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


  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











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







  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.


  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 ( or wxPython (


  • Chang, C.-C., & Lin, C.-J. (2001). LIBSVM: A library for support vector machines. Software available at∼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.

    PubMed  Article  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.

    PubMed  Article  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.

    PubMed  Article  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.

    PubMed  Article  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.

    PubMed  Article  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.

    PubMed  Article  CAS  Google Scholar 

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

    PubMed  Article  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.

    PubMed  Article  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.

    PubMed  Article  Google Scholar 

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

    PubMed  Article  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.

    PubMed  Article  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.

    PubMed  Article  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.

    PubMed  Article  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.

    PubMed  Article  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.

    PubMed  Article  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.

    PubMed  Article  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.

    PubMed  Article  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.

    PubMed  Article  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.

    PubMed  Article  Google Scholar 

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

    Google Scholar 

Download references


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


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).

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI:


  • Python
  • Neuroimaging software
  • Image analysis
  • MVPA
  • Scripting
  • Machine learning
  • Functional magnetic resonance imaging