Below (indented) is a straightforward MATLAB/SPM/Marsbar script for generating separate Marsbar ROI and Nifti ROI spheres (user-defined radius) from a set of user-defined MNI coordinates stored in a text file (‘spherelist.txt’ saved in the same directory as the script).  ROI files are saved to mat and img directories that the script creates.
I use this script to generate *.mat files as seeds for resting connectivity analyses.  Once a *.mat ROI is generated, Marsbar can be used to extract raw timecourses from this region to feed into connectivity analysis as the regressor of interest.  Because MRIcron doesn’t read *.mat Marsbar ROI files, I render the equivalent *.img seed regions on a canonical brain when I need to present them graphically.

% This script loads MNI coordinates specified in a user-created file,
% spherelist.txt, and generates .mat and .img ROI files for use with
% Marsbar, MRIcron etc.  spherelist.txt should list the centres of
% desired spheres, one-per-row, with coordinates in the format:
% X1 Y1 Z1
% X2 Y2 Z2 etc
% .mat sphere ROIs will be saved in the script-created mat directory.
% .img sphere ROIs will be saved in the script-created img directory.
% SPM Toolbox Marsbar should be installed and started before running script.

% specify radius of spheres to build in mm
radiusmm = 4;

load(‘spherelist.txt’)
% Specify Output Folders for two sets of images (.img format and .mat format)
roi_dir_img = ‘img’;
roi_dir_mat = ‘mat’;
% Make an img and an mat directory to save resulting ROIs
mkdir(‘img’);
mkdir(‘mat’);
% Go through each set of coordinates from the specified file (line 2)
spherelistrows = length(spherelist(:,1));
for spherenumbers = 1:spherelistrows
% maximum is specified as the centre of the sphere in mm in MNI space
maximum = spherelist(spherenumbers,1:3);
sphere_centre = maximum;
sphere_radius = radiusmm;
sphere_roi = maroi_sphere(struct(‘centre’, sphere_centre, …
‘radius’, sphere_radius));

% Define sphere name using coordinates
coordsx = num2str(maximum(1));
coordsy = num2str(maximum(2));
coordsz = num2str(maximum(3));
spherelabel = sprintf(‘%s_%s_%s’, coordsx, coordsy, coordsz);
sphere_roi = label(sphere_roi, spherelabel);

% save ROI as MarsBaR ROI file
saveroi(sphere_roi, fullfile(roi_dir_mat, sprintf(‘%dmmsphere_%s_roi.mat’,…
radiusmm, spherelabel)));
% Save as image
save_as_image(sphere_roi, fullfile(roi_dir_img, sprintf(‘%dmmsphere_%s_roi.img’,…
radiusmm, spherelabel)));
end

UPDATE: WordPress messed with the characters in the above script, so here is a link to the script file and an example spherelist.txt file.

This is proving to be a little more interesting that I had imagined.  The particularly noteworthy finding is a null finding – it doesn’t seem to matter how you do the connectivity analysis, the recovered maps tend to look very similar.

I’m going to think about how to present this best, and what analyses will best illustrate this sort of null finding, but I think it may have publication legs so I’ll hold off preemptively discussing the data until I know exactly what I’ll do to it and how I’ll disseminate it.

Things I have (re-)learned this week:
– Conducting resting connectivity analyses on 60mins worth of 2s TR fMRI data from 19 participants takes time;
– It is always a good idea to do a quick literature search before proclaiming any findings as Earth-shattering.

The first point is no surprise; especially when I consider that the previous resting analyses I have done have all been conducted on approx. 12 min worth of 2.2s TR fMRI data.

The second point helped to temper my initial enthusiasm for some pretty interesting initial findings, which I won’t explain just yet (that will come in pt. 3).  Suffice to say, an article headed by Damien Fair published in NeuroImage that we had read for a lab meeting back in 2008 had already considered quite comprehensively whether on-task fMRI scans could be used to inform fcMRI analyses.

I’m now in the process of trying to replicate Fair et al’s on-task connectivity analyses which examines the residuals following on-task model fitting (once again necessitating that I employ the SPM residuals tweak outlined here), which should give me two different sorts of on-task connectivity analyses to compare to a standard resting connectivity analysis in pt. 3.

Stay tuned.

Last week, during a very interesting Brain, Behavior and Cognition colloquium given by Steve Nelson, Jeff Zacks asked a thought-provoking question.  He wanted to know what fMRI connectivity maps would look like if you performed a resting-connectivity-type analysis on data that wasn’t collected at rest, but was instead collected whilst participants were ‘on-task’, i.e. doing things other than resting.

As background to this:
– Each fMRI participant in our lab typically carry out one or two connectivity scans prior to, or following a the bulk of the experimental scanning;
– Connectivity scans require that the participant keep their eyes open, fixate on a fixation cross, and try not to fall asleep for about 5 minutes;
– Experimental scans have participants engage in much more effortful cognitive processes (such as trying to recognise words and scenes), with multiple tasks presented in relatively quick succession;
– Resting connectivity is thought to be driven be low frequency fluctuations in signal ( approx. 0.1 Hz; a peak every 10 seconds or so), on-task BOLD activation is much more event-related, ramping up or down following certain events  which occur every 6 seconds or so (which we assume results from the engagement of a particular cognitive process).
This Raichle article in Scientific American is a a very accessible primer on the current state of resting connectivity.  This Raichle  article in PNAS is a more comprehensive scientific discussion of the same topic.

Two resting connectivity networks (red and blue, overlap in purple) seeded with 4mm radius spherical seeds on the PFC mid-line.

Jeff’s question was interesting to me because it asks how robust these slow-wave oscillations across distal brain loci really are.  To what extent would they be (un-)modulated by task-related fluctuations in BOLD signal?

My initial thoughts were that on-task resting connectivity maps would look pretty similar to resting resting connectivity maps – after all, it has been suggested that resting connectivity networks, such as the fronto-parietal control network, arise because of their frequency of coactivation during development, i.e. that DLPFC, MPFC and IPL are coactive when on-task so often that it makes metabolic sense for their activity to synchronise even when not on-task.  But, there’s no need to be satisfied with your initial thoughts when you can simply look at some data, so that’s what I did.

On Friday I began the process of running a resting state-style connectivity analysis on the on-task scans of the data that went into the Journal of Neuroscience paper we had published a few weeks ago.   It was a nice dataset to use as we had also collected resting  scans and carried out a connectivity analysis that yielded some interesting results.  I entered the same two seeds (from the the PFC mid-line) that were central to our connectivity analysis into a connectivity analysis using the four, 10-minute on-task scans that we analysed for the event-related fMRI analysis.  In part two, I’ll have an informal look at the differences between the output from the resting scans and the on-task scans when subjected to the same resting connectivity analyses.