What software do you prefer to write and deliver stimuli in fMRI experiments (and why)? I like "Presentation" the most for flexibility and good documentation, but it's unfortunately not free.
I also prefer Presentation, although I do not use the randomization part of it. For that, better software is available. Presentation gives you a good overview of the timing of all events, but unfortunately, the log files look like a mess.
I've primarily used Presentation and Eprime, and vastly prefer Presentation.
While I haven't personally used it, I've heard good things about the Psych Toolbox for Matlab (http://psychtoolbox.org/HomePage ) and if you're worried about being completely no cost, it will also run in Octave (a free Matlab clone).
I use e-prime for a while and I am rather satisfied with. You can do a lot of different paradigms and connect different devices from different constructors (response buttons, headphones, MR scanner ...). There are different courses / formations available to start w. the software and programmation. However, one can handle difficulties with multiple inputs / outputs.
Presentation was less intuitive for me.
LAbview is complex but handle lots of inputs/outputs.
We found some problems to deal with precise timing of events with matlab.
Though i have just experience with presentation, i can highly recommend it. It's easy to use and has a really good doc and helpful, fast support via their webpage/suer community! Refering to the messy logfiles, of course you can create your own!
I use Psych Toolbox for MatLab. I have also used PsyScope and E-Prime. What I prefer about PsychToolbox is that I have complete control of the output files. Because in the past I have ended up writing LOTS of code to extract the relevant pieces of information from the PsyScope and E-Prime log files to create my fMRI design matrices. But with PsychToolbox I incorporate right into the presentation code what the appropriate format of information for the fMRI analyses.
I am sure that the same is possible with PsychPy but I didn't discover that toolbox until I was almost done with my MatLab version.
As Fabien mentions LABView is also a possibility. What is nice about it is that if you have to record other bio-signals while fMRI data collection you can incorporate the data acquisition and the stimulus presentation together into onto software package which then allows bio-feedback. But LABView can be expensive but it is the best (IMHO) for DAQ.
This has the makings of a VI/emacs war, but I'll weigh in. :-) I've used Presentation, E-Prime and my own software programmed in VB and LabView. If you are looking for a multi-purpose, relatively-easy-to-use and extensible package, then Presentation is probably for you. E-Prime is based on Visual Basic, and has a bit of a steeper learning curve if you want to do customized paradigms. It will also take some time to become familiar with aspects of timing as implemented by ePrime as stimulus pre-loading can alter timing of the paradigm. However, when properly implemented, Eprime's timing is excellent.
I prefer presentation also. It is well documented and easy to program (both a script version and visual basic) but the I think the biggest advantage is that you can interface and test peripheral equipment independently of your software code.
For an alternative perspective - I've used Inquisit (http://millisecond.com/) a lot in the past, and really like it. I prefer the 'pure' script-based interface over things that try to use a GUI like E-prime, and the timing is solid. Not free though.
Recently I've switched to PsychoPy, and am finding it very useful indeed - really like the GUI experiment builder with the option of editing the scripts directly, and Python is a great language to work in.
One system I've never had a great deal of time for is the Matlab psychophysics toolbox - I've used it a bit, but mostly with other people's code that I've modified. I've just never really achieved good results with it - it's always been a struggle to get it working at all and it's very sensitive to platform-specific issues, particular versions of Matlab etc. I've also found it quite difficult to get decent timing with psychtoolbox/Matlab. Possibly just my ignorance/inexperience though!
My recent experience with PsychoPy has been very positive - it's easy to use, has some very nicely designed features, and is cross-platform - I've developed on OS X and then deployed on a variety of Windows machines with no tweaks necessary at all. And it's free, of course...
I have some experience with E-Prime and I'd say it's not intuitive, it has a bit of a steep learning curve in the beginning. Also, there is the issue of timing being off because of preloading. Now I use PsychPy, something I find very useful and it is very powerful, and I'm infatuated with it. Try it - it's free!
I used the following few: SuperLab is for starters, but their timing isn't the best; E-prime has an easy interface and is good for non-programmers, with acceptable timing; Presentation is an all-rounder and you could have easy control for most aspects of computer I/O, but it require a bit of learning to script; Cogent/PsychToolbox (running on Matlab) is good for those who are familiar with Matlab programming and wanna achieve very specific control on your paradigm. These few except SuperLab are equally good for ordinary experiments.
I have experience with three: 1) Psyscope, 2) Psychtoolbox and 3) Eprime. There are pros and cons to each. Psyscope is only available to run on Macs, while the other two can be run from PC or Mac (Eprime requires bootcamp).
Psychtoolbox, requires knowledge of Matlab, while Eprime requires some knowledge of VBA (visual basic for applications). There is required learning to both, but each isn't complicated, but may be time consuming. Matlab requires coding, while Eprime has a somewhat GUI based interfaces. Although, more complicated designs may require some coding as well.
From the standpoint of interfacing with an MR machine, Eprime is easiest, in my opinion. If you want to stimulus locked event related designs, coordinating the TTL pulse with Eprime has always been mostly plug and play.
Similarly, using serial devices (response pads, trackball, eye tracking) always seems to go smoother with Eprime. Their customer support is also pretty good, of course this all comes with a price-tag.
Dear Colleagues! Thank you very much for sharing your experience. I am currently looking at the PsychoPy. First impressions are very good. I'm almost sure that after watching youtube tutorial you'll be able to write a simple block design. However, if you are planning to design something a bit more complicated (for instance, if you want to capture and report response time), you'll probably need some coding skills (not much, but preferably in Python). Nevertheless, GUI is pretty intuitive.. I would definitely suggest at least trying it.
For use in fMRI experiments I would always use Presentation since it was specifically developed for that task. I also have some experiences with E-Prime but get never used to it since I did't find it intuitively applicable. If I had more time, I would like to play around with free software suites like PsychoPy or FLXLab which are both also available for Linux which I think is a big advantage.
I'd like to put in a good word for Paradigm. It's a new GUI based stimulus presentation system that has an integrated Python scripting interface so you get the ease of use of a drag and drop experiment builder but still get the flexibility/power of using Python when you need it. Paradigm's experiment builder is much more sophisticated than PyschoPy and it also easily integrates with a wider range of fMRI hardware (Lumina, fORP, custom response pads, USB triggering). It also offers easy integration and triggering with a wide range of EEG systems, BIOPAC and ASL eye trackers. Paradigm is reasonably priced for faculty and offers student licenses.
You can learn more here:
http://www.paradigmexperiments.com
Full disclosure - I'm one of the Paradigm developers. If you have any
questions you can email me directly: bruno at prsemail.com
if one has programing skills i would say matlab and the psychophysics toolbox (and not exclusively) are very good flexible and provide a lot of opportunity. You can programm triggers, event timing etc with good precision plus the possibilities are endless.
I made some experience with psychtoolbox and frankly it is a hazzle since it depends so mcuh on graphic card issues and still is 32-bit. Presentation is okay, but can get messy if you want to include EDA and eyetracking. Paradigm is a bit easier for eye tracking but that may entirely be due to the hardware we use on our site. E-Prime has been on the decline in our site, so we currently rewrite paradigms from e-prime to Presentation - which is btw similar to Inquisit, i.e. can read the codes. We also use python a lot, esp. for analysing the MRI data (nypipe) so learnign python pays off twice. Hope soon there is some script sharing in psychpy as it is for Inquisit.
I'm one of the Paradigm developers, thank you for mentioning our software. I'm curious what you find to be easier to do in Presentation vs E-Prime. Being that your site uses Psychtoolbox already I assume you have a fair amount of programming expertise in house. Is that it's just easier to get the lab members with programming skills to build the experiment for you in Presentation or does Presentation have features you need that E-Prime doesn't support? I understand wanting to move away from E-Prime but the switch to Presentation always surprises me because it's such a different approach and interface. I'm curious to hear why you're lab is going that direction.
fair point. Our site just got a big grant, and msany new PhD students. So they thought the programming skills required in Presentation are lower than for E-prime. Interestingly, we currently have a mixture of Paradigm (applied psychologissts using eyetrackers), Presentation (clinical psychologists), E-Prime (general psychologists), psychtoolbox (co-workers of clinical psychologists). Messy is the best description of that. So I get scripts in all languages and have to modify them. There are two competing arguments I see: freeware vs available code from co-researchers. And the latter matters for clinicians far more. Just get a basic script and let your PhD student figure out the code and do the few modifications (and only in urgency get hold of your IT person, better tell them to use mailing lists - nothing against that, steep learning curve). The long-term goal is to use one software on our research site but that will need a while. Presentation is leading (price issue) ahead of E-prime. Paradigm and psychtoolbox are confined to a few tasks and dying out if the researchers using it leave our site. Psychopy is not yet on the radar ... but since we implement nypipe more and more this switch is cleaner then the battle between E-Prime users and Presentation.
Gerit - I would strongly suggest you check out PsychoPy as a possible option to standardise on. From the (admittedly, limited) testing I've done it seems to work pretty much seamlessly across platforms, and for me it has the best combination of a very nice, simple GUI for beginners/non-programmers, plus a script interface for more advanced work.
I have to say, paradigm looks really great too, but if price is an issue...
It is difficult to say what is the best without knowing more about what you intend to do. The answer depends on the stimulus you are presenting, additional data that needs to be collected, feedback loops, timing constraints, prior software development experience and any other hardware you need to interface with.
This list is biased toward vision experiments, but it sorted by free/not free and includes much helpful background material. You might also find that someone has already written something similar to your specific needs and made their code available.
For experiments that simply need to present visual stimuli, I generally use psychophysics toolbox (I will be trying PsychoPy after reading this discussion). For experiments that need to interface with or control external hardware other than eye trackers, I generally use LabVIEW. Occasionally, I have combined the two. LabVIEW is also great if you have multiple loosely coupled processing loops; something that is a pain to deal with in many languages.
E-prime is used by many of my colleagues, but I have found it to be frustrating for a variety of reasons. However, I am using an old version.
Matthew and Gerits' answers are spot-on and excellent, though I would point out that Psych Toolbox is now 64 bit.
All things considered, searching for the "best" solution may not be the "best" plan. Find a good solution and move forward. We used power point on win xp for one experiment (desperate measures) and were shocked to find out the slide auto advance timing was very accurate. For a very simple design that is all you need.
In our lab (at the department of experimental psychology of Ghent University) we developed a C/C++ experiment programming library for cognitive scientists, called Tscope5 (http://users.ugent.be/~masteven/tscope5/)
Tscope5 is mainly targeted at the Windows platform but also runs on Mac OS X and Linux.
It provides functions for randomization, graphics, sound, timing, response registration and synchronisation between computers. Tscope5 is the successor of Tscope that was published in behavioral research methods and has over 40 citations already Stevens, M., Lammertyn, J., Verbruggen, F., & Vandierendonk, A. (2006). Tscope: A C library for programming cognitive experiments on the MS Windows platform. Behavior Research Methods, 38, 280-286.
Tscope5 especially gives an advantage for experiments of high complexity because it is very flexible since it is based on pure C code. The only disadvantage is that you need a basic knowledge of C programming.
The new tscope5 is especially interesting for fMRI research because, unlike Eprime, the responses (or triggers of the scanner) are recorded in parallel of the main function of the experiment (in a response buffer) which allows you to write an experiment that is synced with the TR of the protocol that you are scanning for the duration of the entire session. This is a much safer way to sync stimulus and acquisition pc compared to software that only syncs the acquisition pc and the stimulus pc in the beginning of a scan session, because that way you cannot check asynchrony between both pcs during the scan session, which can have large consequences during data analysis. For more information go to http://users.ugent.be/~masteven/tscope5/ or mail [email protected] of find us on facebook https://www.facebook.com/pages/Tscope/347744695089?fref=ts
Matlab Psycthoolbox; some work to learn but flexible, multi-platform. Low cost for academic users. I run an imaging lab and now tell folks who want to do fMRI to spend some time learning this because as users get more sophisticated and want to do more, this is a good tool to use.
http://psychtoolbox.org/HomePage
Also, the code base developed can gradually expand and be shared. We used Presentation before ditto e-prime but after several years, one gets tired of having to maintain various commercial licenses for different users. It is also a headache when external users don't upgrade their versions and then complain that the version on the scanner is incompatible with theirs....
I'm new in the field of fMRI, and I've been working with Presentation for a couple of weeks, finding it quite user friendly in the preparation of the task.
A collegue of mine from another University works with E-Prime. Can anybody tell me if they are compatible?
nope, unfortunately. One has to rewrite the E-prime code for Presentation. But the overall logic stays the same. So it is feasible within a few days to "translate" E-Prime paradigms into Presentation ...
I can really recommend OpenSesame, it is quite easy to use and only involves coding occasionally: http://osdoc.cogsci.nl/ Watch the nice introduction video.
It can not only be used for fMRI, also as visual stimuli or any secondary task.