Chapter 5: Creating Timing Files¶
The Ideal Time-Series and the Fitted Time-Series¶
We just saw how we can use several regressors, or independent variables, to estimate an outcome measure such as GPA. Conceptually, we’re doing the same thing when we use several regressors to estimate brain activity, which is our outcome measure with fMRI data: We estimate the average amplitude of the BOLD signal in response to each condition in our model.
In the animation below, the different colors of the BOLD responses represent different conditions (such as Congruent and Incongruent), and the gray line represents the timecourse of our preprocessed data. This shows how the amplitude of each condition is being estimated to best fit the data; for the condition on the left, it is relatively high, whereas for the condition on the right, it is relatively low. You can also imagine a condition’s BOLD signal which is not significantly different from zero, or which is even negative.
The Red and Green lines representing the HRFs are called the ideal time-series. This is the time-series that we expect, given the timing of each stimulus in our experiment. When we estimate beta weights to fit this ideal time-series to the data, the result is called a fitted time-series, shown in the animation as a blue line.
Since every voxel has its own time-series, we do the procedure above for every voxel in the brain. This is known as a mass univariate analysis, since we estimate beta weights for each voxel’s time-series. As there are tens or hundreds of thousands of voxels in a typical fMRI dataset, later we will need to correct for all of the tests we have done. This will be covered in a later chapter on group analysis.
Creating the Ideal Time-Series¶
Our goal is to create the fitted time-series so that we can use the estimated beta weights in a group-level analysis. But to do that, we first need to create our ideal time-series.
Let’s take a look at the Flanker dataset. Within each subject’s
func directory are files labeled
events.tsv. These files contain three pieces of information that we need to create our timing files (also known as onset files):
- The name of the condition;
- When each trial of the condition occurred, in seconds, relative to the start of the scan; and
- The duration of each trial.
These need to be extracted from the events.tsv files and formatted in a way that the SPM software can read. In this case, we will create a timing file for each condition, and then split that file according to which run the condition was in. In total, then, we will create four timing files:
- Timings for the Incongruent trials that occurred during the first run (which we will call incongruent_run1.txt);
- Timings for the Incongruent trials that occurred during the second run (incongruent_run2.txt);
- Timings for the Congruent trials that occurred during the first run (congruent_run1.txt);
- Timings for the Congruent trials that occurred during the second run (congruent_run2.txt).
Each of these timing files will have the same format consisting of two columns, in the following order:
- Onset time, in seconds, relative to the start of the scan; and
- Duration of the trial, in seconds.
To format the timing files, download this script. (You can download it by clicking on the
Raw button, then right-clicking in the newly-opened window and selecting “Save As”.) We won’t go into detail about how it works, but all you need to do is place it in the experimental folder containing the subjects, and from that directory type
convertOnsetTimes. This will create timing files for each run for each subject and store them in each subject’s corresponding
func directory. To check the output of an individual file - for exmaple, the onset times for the incongruent trials for run 1 - type
importdata(sub-08/func/incongruent_run1.txt). You should see numbers similar to the ones in the figure above.
Once you have created the timing files, you are now ready to use them to fit a model to the fMRI data. To see how to do that, click the Next button.