Software for (neuro)science

Since I started my PhD a few months ago, I have been thinking about the various bits of software I use for my research. I spend most of my days behind a computer – searching and reading papers, programming and analysing data. Although some pieces of software are widespread and easy to use when collaborating, there are a great many personal choices to make in computer languages and interfaces. So as a re-start to my new blog, here are some personal considerations and bits of computer goodness I tend to use.

Find and organize

Keeping up with new articles can be a job in itself. Some people simply wait for their colleagues to send around interesting new articles or get keyword notifications from PubMed. This is great for specific research topics you’re working on, more difficult for a general feel of what’s happening in your field. I personally have a bunch of journals that I skim whenever they come out, some general (Nature, Science) and some more specific to my research interests. I used to get all of these in separate emails, on different days of the week, and in various formats and inboxes. This works, but the overview is quickly lost – and sometimes you just don’t want your inbox clogged up with to-be-read journal tables of content.

I’ve recently switched to Feedly – an RSS reader that collects all my blogs, and now journals, in one place. I like its design, and its free on your computer and mobile. Go to your favourite blog or journal website, find their RSS link and paste it into ‘add content’ on your Feedly homepage. This will give you everything you want to read in a nice overview, and makes it easier to separate email-time from browsing papers-time. For some suggestions on where to start, check out my science blogroll!

Another lifesaver is the plugin Pocket. I often find an interesting link, for example through Twitter, that I don’t have time to read then and there. Pocket will archive any webpage for you, so that you can return to it on Sunday morning over breakfast. If I want to save it and come back to it in the future, I use Evernote. The web importer can save webpage snapshots, newspaper articles, travel plans, recipes and research notes. This is perhaps one of the only pieces of software I can recommend to really anyone; it syncs across your devices and is free to use.

I’m also list person, and after trying out various mobile to-do apps I’ve settled for the secret weapon method (not as new age as it sounds). The idea is to put all your to-do items as notes into Evernote, and tag them according to category and urgency. It took me an evening to set everything up, but I’m very happy that I now have one place for all my random notes which easily lets me prioritise and sort my to-do’s.

Another piece of software that’s great for my productivity is SelfControl; in the morning, I turn it on for the number of hours I want to work and it automatically blocks all access to all the websites on my blacklist (in my case all social media and newspaper sites). Huge time saver!

Read and write

When you’ve found a bunch of interesting articles, you want to read them and save the references for you to cite later. I personally use Mendeley, which is a reference manager and pdf library in one. Whenever I see an interesting paper, I either use the ‘save to mendeley’ plugin in my browser or download the pdf itself into a designated folder. The pdf with metadata then automatically appears in my library, and I can highlight, and add notes to it. Your annotations, by the way, are not saved into the pdf itself – great for sharing paper with colleagues, who get the blank version without all your highlights and random thoughts. I love having all my pdfs organised in one place, instead of scattered on my hard drive.

After reading comes writing, and this is where any reference manager is a huge time-saver. The word plugin lets you quickly search your library and insert references (whether you remembered only one of the authors’ names, the journal or a fragment of the title) in your selected format, and creates a bibliography at the end. One thing that I’ve noticed, though, is that the plugin sometimes crashes when you have more than, say, 50 citations in your paper and that the fields get messed up when you share your documents with others and receive their comments back. 

One of my biggest mistakes during undergrad was to format all references manually. During my first year, in the course ‘introduction to academia’ we were told to buy the MLA handbook and even learn by heart the rules of this specific citation style. I remember many stressful moments formatting references a few hours before a paper deadline… luckily, I didn’t have massive reference lists back then. At the moment, I simply couldn’t do without a proper reference manager (although I know people who do). 

Mendeley certainly isn’t the only good reference manager around, and some controversy has arisen when Elsevier announced it acquired Mendeley. I’ve considered switching to Zotero, which is open-source, but at this point I haven’t taken the time to do a thorough comparison and take the time to reorganise my library. 

Analyse

Matlab is by far the most widely used piece of software for data collection and analysis amongst most people I work with. Many neuroimaging data analysis toolboxes are written in Matlab, and the PsychToolbox is one of the most widely used for stimulus presentation. However, there are a bunch of reasons why Matlab might not be the best option for regular use in day-to-day neuroscience. First of all, it’s rather expensive so it’s difficult to share scripts with students or researchers who don’t have the license. Matlab has been developed for matrix algebra, and has since developed to do much more than that – but the syntax of the language can be cumbersome when using it in a different context.

Enter Python; a free, open-source language that’s written to be high-level, readable and intuitive to write. It’s designed to be very general, and for specific matrix manipulation you use the modules NumPy and SciPy. There are loads of modules available that might just do the specific task you had in mind, so often you’ll find that somebody has written a toolbox in Python that’s just for you.

Although Matlab is certainly the most prevailing, many scientists feel that Python, which is gaining ground rapidly, will take over at some points. After reading some excellent blogs (for example here, here and here), I decided to give it a try. There are plenty of good beginners courses around, and this overview tells you the exact correspondence between familiar Matlab statements and their SciPy equivalent. After downloading the excellent Enthought distribution (which makes your desktop look a little bit more like Matlab’s environment) I started to feel comfortable within a few days of playing around – so the switching costs were not too high in my case. Overall, I’m quite excited about spending some more time using Python, and seeing how far I can go in using it to replace my Matlab routines. I suspect that while the behaviour and stimulus-side of my experiments could all be easily (and beautifully) done in Python, I’ll be having a harder time giving up Matlab for data analysis (in eg. FieldTrip).

The best part of Python for me so far is using PsychoPy, a package written to make stimulus presentation easy and intuitive. It does a great job; after coding a lot of different random-dot stimuli in PsychToolbox myself, taking perhaps a few days (by calculating eg. the way the noise dots behave), I was able to recreate the whole experiment in a couple of hours in PsychoPy. It’s much easier to re-use parts of scripts, and in my opinion much more readable. Python’s syntax is simply, beautiful and natural to work. So check it out!

More

I’ve now settled for a system in which I keep up with the literature in Feedly, save and cite paper in Mendeley, make notes and to do-items in Evernote, and analyse data in Matlab or Python. There are of course many other good options out there – if you’re setting up your personal research software environment, take a look at this blogpost on the Computing for Psychologists, describing a whole lot of software tips for students – but probably also useful for seasoned researchers.

I’m curious to know the choices that other researchers make in terms of software to use. Please let me know what you think, and I’ll be updating this overview as cool new stuff comes in.

2 thoughts on “Software for (neuro)science

  1. Ha Anne!

    Bedankt voor deze geweldige blog! Heel nuttig! Heb hem naar al mijn labmatties doorgestuurd!

    Succes in Deutschland! Klinkt alsof dat wel goed gaat komen 🙂

    Groetjes,

    Q

  2. Anne, dit is briljant! Ik ga even wat van die verzamel plugins/programmatjes uitproberen! Tot snel,

    x Willemijn

Leave a Reply

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

WordPress.com Logo

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

Facebook photo

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

Connecting to %s