Open-Source software for psychology and neuroscience

microsoft-communismResearchers typically use a lot of different pieces of software in the course of their work; it’s part of what makes the job so varied. Separate packages might be used for creating experimental stimuli, programming an experiment, logging data, statistical analysis, and preparing work for publication or conferences. Until fairly recently there was little option but to use commercial software in at least some of these roles. For example, SPSS is the de facto analysis tool in many departments for statistics, and the viable alternatives were also commercial – there was little choice but to fork over the money. Fortunately, there are now pretty viable alternatives for cash-strapped departments and individual researchers. There’s a lot of politics around the open-source movement, but for most people the important aspect is that the software is provided for free, and (generally) it’s cross-platform (or can be compiled to be so). All that’s required is to throw off the shackles of the evil capitalist oppressors, or something. 

So, there’s a lot of software listed on my Links page but I thought I’d pick out my favourite bits of open-source software, that are most useful for researchers and students in psychology.

First up – general office-type software; there are a couple of good options here. The Open Office suite has been around for 20 years, and contains all the usual tools (word processor, presentation-maker, spreadsheet tool, and more). It’s a solid, well-designed system that can pretty seamlessly read and write the Microsoft Office XML-based (.docx, .pptx) file formats. The other option is Libre Office, which has the same roots as Open Office, and similar features. Plans are apparently underway to port Libre Office to iOS and Android – nice. The other free popular options for presentations is, of course, Prezi.

There are lots of options for graphics programs, however the two best in terms of features are without a doubt GIMP (designed to be a free alternative to Adobe Photoshop) and Inkscape (vector graphics editor – good replacement for Adobe Illustrator). There’s a bit of a steep learning curve for these, but that’s true of their commercial counterparts too.

Programming experiments – if you’re still using a paid system like E-Prime or Presentation, you should consider switching to PsychoPy – it’s user-friendly, genuinely cross-platform, and absolutely free. I briefly reviewed it before, here.  Another excellent option is Open Sesame.

For statistical analysis there are a couple of options. Firstly, if you’re a SPSS-user and pretty comfortable with it (but fed up of the constant hassles of the licensing system), you should check out PSPP; a free stats program designed to look and feel like SPSS, and replicate many of the functions. You can even use your SPSS syntax – awesome. The only serious issue is that it doesn’t contain the SPSS options for complex GLM models (repeated measures ANOVA, etc.). Hopefully these will be added at some future point. The other popular option is the R language for statistical computing. R is really gaining traction at the moment. The command-line interface is a bit of a hurdle for beginners, but that can be mitigated somewhat by IDEs like R-Commander or RStudio.

For neuroscience there’s the NeuroDebian project – not just a software package, but an entire operating system, bundled with a comprehensive suite of neuroscience tools, including FSL, AFNI and PyMVPA, plus lots of others. There really are too many bits of open-source neuro-software to list here, but a good place to find some is

So, there you are people; go open-source. You have nothing to lose but your over-priced software subscriptions.



About Matt Wall

I do brains. BRAINZZZZ.

Posted on May 10, 2013, in Programming, Software and tagged , , , , , , , , , , , , , . Bookmark the permalink. 8 Comments.

  1. Great post Matt! Really useful.

  2. I’ll also recommend matplotlib as a replacement for matlab. John Hunter created it as a replacement for matlab in a neuroscience lab he was part of.

    Along those lines, scipy, numpy, and pandas are great libraries. Check out ipython as a good overall tool that can bring all those together. People have been doing amazing things with ipython notebooks.

    PyBossa is a platform worked on by the Open Knowledge Foundatation that could be used for experiments that require participants to perform tasks on the web.

  3. A good list, here’s a couple more nice open-source tools:
    Sozi is a great plugin for inkscape if you like to keep your data local, also see
    LyX ( is a wonderful program for writing technical documents and theses,
    Zotero ( is also a wonderful open-source reference manager.

  4. LyX has a very nice APA 6th template that produces papers in Manscript, (man), Journal, (jou) ,and document, (doc), style. It takes a bit of getting used to but it also removes a lot of formatting hassle. Combined with Zotero and bibtex it looks like an excellent writing tool for anyone from an undergrad doing a course paper on up.

    It also works well with the Sweave and knitr packages from R allowing one to pretty well seamlessly write a research paper. No more copying and formatting tables. pasting in figures, etc.

    Like R, it takes some getting used to but the power is impressive. Also numerous R contributers have dealt with the problems of formatting tables for publiction, the xtable package in R is a handy one.

    If one is an OpenOffice user there is also a version of Sweave (odfWeave) that allows much of the same as Sweave.

  5. Fwd: Robopsychologists of the world, unite!


    I have started to write a ‘Robopsychology Manifesto’ that can be found at

    Kind regards,

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: