Mechanical Turk/Multi-voxel Pattern Analysis Workshop

On Monday, August 20th, 2012 the lab hosted a joint technical workshop with Yael Niv‘s group at Princeton covering how to run experiments on Mechnical Turk and how to do multi-voxel pattern analysis (MVPA) on fMRI data. It was a kind of a random collection of tutorial topics, but the two half-day sessions were both fun and informative. The goal of the workshop was to share notes and give people to basic technical skills they need to use these techniques in their research. Attendance varied during the day as people came and went for various parts, but generally was between 15-25 people from multiple labs both at NYU and Princeton. Thanks to all the attendees and presenters! Now if we can just figure out how to crowd-source on Mechanical Turk the MVPA approach, we might be really onto something!

For people who missed the workshop (or attendees who would like to review), we’ve collected up the resources that we presented here. Hopefully it can jog your memory if you’ve forgotten something a few months down the line.

Mechanical Turk/psiTurk

The first set of presentations were given by Todd Gureckis and John McDonnell covering Amazon’s Mechnical Turk and, in particular, some software we have shared on GitHub for helping you to develop these types of experiments in your own work.

  • Our HTML slides are hosted here. You can skip directly to the information about psiTurk by clicking here
  • More information about psiTurk is also available on the psiTurk GitHub site (see the and Wiki for more information)

To get psiTurk to work, at minimum, you need the following software installed on your computer.

  • If you’ve never used Python before, we recommend you use the Enthought Python distribution, because it comes with easy_install, a tool for easily installing Python packages. The academic version of Enthought can be found here:
  • Once you’ve installed Enthought, you should be able to open a terminal window and install Flask (the web server library we’ll be using), SQLAlchemy (the database manipulation package we’ll be using), and boto (a Python-based way to access the Mechanical Turk API) with the following command: easy_install Flask-SQLAlchemy boto If you get a permissions error, try: sudo easy_install Flask-SQLAlchemy boto (which will prompt you for your password)
  • To check out the most recent version of psiTurk type: git clone git://
  • First, edit the config.txt.example file and save as config.txt (this is heavily commented and should be described better on the Wiki soon). Next, you can start the server using python
  • From there, we strongly recommend that you check out the API slides to learn a little more about how the system works.
  • John also recommend the gunicorn which simply replaces the built in Flask/Python webserver with one that is a bit more robust.


The second presentation was lead by Stephanie Chan and Reka Daniel-Weiner on MVPA. The MVPA workshop was be split into two main parts.

  • First Stephanie and Reka discussed general issues of doing MVPA experiments, including some advice on experimental design and an outline of the analysis steps. You can get the slides here: pdf
  • Next, they presented two different ways to actually do the analysis: Stephanie showed off the Matlab-based “Princeton MVPA toolbox” (, and Reka presented the python-based PyMVPA toolbox (
  • Instructions for installing the Princeton toolkit are linked above. The PyMVPA website provides instructions for all major operating systems: PyMVPA instructions
  • The easiest way might be to download virtualbox ( and run the NeuroDebian virtual machine on it ( — then all the dependencies are automatically there after typing sudo apt-get install fsl ipython python-mvpa2 python-mvpa2-doc The rootpassword for the virtual machine is “neurodebian”.
  • The tutorial data is available from here