## **NEWS** ##
- 2018/09/23 - Bug fixed in the analysis.m and analysis_ONOFF.m scripts. The bug was that the loading of the stimulus/aperturefiles was being returned in the wrong order. The scripts have been corrected to use the correct ordering. Fortunately, note that all of the analysis results provided here and described in the paper reflect the use of the correct ordering and are still correct.
- 2018/04/25 - Initial release.
- 2018/12/28 - HCP 7T paper now published in Journal of Vision.
## **INTRODUCTION** ##
This web site provides resources related to the HCP 7T Retinotopy Dataset. This dataset was collected as part of the [Human Connectome Project (HCP) Young Adult effort][1]. It consists of high-field (7T) fMRI scanning of 181 subjects in a retinotopic mapping paradigm.
The details of the experiment and the population receptive field analyses that we have performed on the data are described in the following paper:
> [Benson, N.C., Jamison, K.W., Arcaro, M.J., Vu, A.T., Glasser, M.F., Coalson, T.S., Van Essen,
> D.C., Yacoub, E., Ugurbil, K., Winawer, J.\*, Kay, K.\* The Human Connectome Project 7 Tesla retinotopy dataset: Description and population receptive field analysis. Journal of Vision
> (2018).][2]
We provide on this web site the results of the analysis, the code that we used to perform the analysis, and the stimuli used in the experiment. We do not provide the raw or pre-processed time-series data, which are available through the [HCP ConnectomeDB web site][3]. Analysis results are also available through the [BALSA web site][4].
The toolbox on which the analysis is based is [analyzePRF][5] (please see that web site for more tutorial-oriented information on how the analysis works).
If you use the materials on this web site, please cite the paper listed above.
Additional resources that you may find useful are available at:
- [http://nben.net/HCP-Retinotopy/][6]
- [http://nben.net/HCP-and-Neuropythy/][7]
- [http://nben.net/MRI-Geometry/][8]
## **BASIC STRUCTURE OF THE DATA** ##
The raw fMRI data were subjected to minimal pre-processing by the HCP consortium, producing CIFTI files named like 'tfMRI_RETBAR1_7T_AP_Atlas_MSMAll_hp2000_clean.dtseries.nii'.
Each CIFTI file contains grayordinate time-series data from one fMRI run (91,282 grayordinates x 300 time points at 1-s sampling rate). The experiment consisted of 6 fMRI runs.
There are a total of 181 subjects that have a complete set of data. Each subject has an associated 6-digit ID, e.g. **550439**.
In addition to the 181 subjects, we created 3 "group subjects":
- **999999** - This is the group average of all subjects, obtained by averaging the time-series data observed at each grayordinate across all 181 subjects.
- **999997** - This is the group average of a randomly selected half of the subjects (n=91).
- **999998** - This is the group average of the remaining half of the subjects (n=90).
Thus, there are a total of 181 individual subjects + 3 group-average subjects = 184 datasets. The special **999997**, **999998**, and **999999** subjects are placed in the 182nd, 183rd, and 184th slots, respectively.
To analyze the fMRI data, a population receptive field (pRF) model was fit to the time-series data from each grayordinate. This involved using nonlinear optimization to find model parameters that best explain the observed time-series data. The best-fitting parameters were converted into more easily interpretable quantities (e.g., angle), as described below.
To allow for assessment of reliability, the pRF model was fit 3 different ways:
1. Fit all of the available data (300 time points x 6 runs)
2. Fit the first half of each run (150 time points x 6 runs)
3. Fit the second half of each run (150 time points x 6 runs)
We provide results obtained for each fit (in the order listed above: 1=all, 2=first-half-of-each-run, 3=second-half-of-each-run). The results are provided in several formats, including MATLAB .mat files, MGH/MGZ .mgz format, and NIFTI .nii files.
## **RESULT FILES** ##
Contents of **behavior.mat**:
- **'subjectids'** is 181 x 1 with the 6-digit ID for each subject.
- **'runtypes'** is a 1 x 6 cell vector with a label for each of the 6 fMRI runs: {'RETCCW' 'RETCW' 'RETEXP' 'RETCON' 'RETBAR1' 'RETBAR2'}. The order corresponds to the order in which the runs were acquired. **RETCCW** and **RETCW** correspond to counter-clockwise and clockwise rotating wedges; **RETEXP** and **RETCON** correspond to expanding and contracting rings; and **RETBAR1** and **RETBAR2** correspond to two runs in which slowly moving bars were presented.
- **'behavioralperformance'** is 181 x 6 with the behavioral performance in percentage units for each subject in each of the 6 runs (see paper for details). Note that some of the values are NaN, indicating either that button presses were not detected for some reason or that the behavioral data were missing.
- **'behavioralperformancemean'** is 181 x 1 with the nanmean (mean ignoring NaNs) across runs. Note that one subject (the 152th subject, ID **782561**) is NaN because no button presses were detected.
Contents of **prfresults.mat**:
- **'allresults'** is 91282 grayordinates x 6 quantities x 184 datasets x 3 model fits with the full set of pRF analysis results.
- **'quants'** is a 1 x 6 cell vector with a label for the 6 quantities: {'ang' 'ecc' 'gain' 'meanvol' 'R2' 'rfsize'}.
- **'subjectids'** is 184 x 1 with the 6-digit ID for each subject (both individual and group-average subjects).
- **'ciftifsaverageix'** is 327684 x 1 with indices into the 91282 CIFTI space. This indexing vector performs a nearest-neighbor mapping from CIFTI to FreeSurfer's *fsaverage* space. Note that some of the *fsaverage* vertices do not have a counterpart in the CIFTI space; these vertices are assigned a value of 1 in 'ciftifsaverageix'.
- **'ciftifsaveragebad'** is 327684 x 1 with logical values indicating which *fsaverage* vertices do not have a counterpart in the CIFTI space. These vertices should receive a NaN after performing the indexing-based mapping.
- **'groupsubjectids'** is a 1 x 3 cell vector indicating which subjects contributed to the special **999997**, **999998**, and **999999** group-average subjects, respectively. Each element is a vector of indices (in the range 1-181) in sorted order.
Contents of **subjectrank.mat**:
- **'subjectids'** is 181 x 1 with the 6-digit ID for each subject.
- **'vals'** is 181 x 1 with the median R^2 value across grayordinates within the Wang et al. atlas, computed for each of the 181 subjects.
- **'sortedvals'** is 181 x 1 with 'vals' in ascending sorted order.
- **'subjectrank'** is 181 x 1 with the indices corresponding to the order of 'sortedvals'. For example, the first element of 'subjectrank' is 50, indicating that the 50th subject (out of 181 subjects) had the lowest median R^2 value.
More information on the 6 quantities:
- **'ang'** is the angle of the estimated pRF location. Specifically, it is the angle that the center of the pRF has with respect to the positive x-axis. The range of values is 0-360 and the units are degrees. Note that when the estimated pRF is exactly at the center of gaze (i.e., eccentricity is exactly 0), then angle is ill-defined. Thus, we have explicitly set the angle to NaN for any case in which eccentricity is 0.
- **'ecc'** is the eccentricity of the estimated pRF location. Specifically, it is the distance from the center of gaze to the center of the pRF. Values are greater than or equal to 0 and the units are degrees of visual angle.
- **'gain'** is the BOLD response amplitude estimated in the model fit. The units are raw scanner units (same units as the time-series data in the CIFTI files). The value can be interpreted as the amplitude of the BOLD response that is predicted to result from 1 s of full-field visual stimulation.
- **'meanvol'** is the mean signal intensity observed in the time-series data. The units are raw scanner units (same units as the time-series data in the CIFTI files). Note that some grayordinates have a mean signal intensity that are zero or negative, so be careful (e.g., if converting to percent BOLD signal change).
- **'R2'** is the amount of variance (R-squared) in the time-series data explained by the pRF model. The values generally range from 0-100 and the units are percentages. Note that R-squared values are computed after projecting out low-order polynomials from both the time-series data and the model fit. Because of this step, R-squared values can sometimes drop below 0%.
- **'rfsize'** is the size of the estimated pRF. Specifically, it is one standard deviation of a 2D Gaussian that describes the behavior of the grayordinate (see paper for details). Values are positive and the units are degrees of visual angle.
Contents of **prfresultsmgz.zip**
- This is a .zip archive of all cortical results contained in the 'allresults' variable of **prfresults.mat**. The results have been mapped to the fsaverage space (using the mechanism described above) and have been saved as .mgz files.
- Filenames are like 100610/lh.fit1_ang.mgz with subject ID, hemisphere, model fit (1=full, 2=first-half-of-each-run, 3=second-half-of-each-run), and name of the quantity.
- Note that these files provide individual subject results in fsaverage space (not the native surface space of the subject).
Contents of **prfresultsnii.zip**:
- This is a .zip archive of all subcortical results contained in the 'allresults' variable of **prfresults.mat**. The results are in MNI space and have been saved as .nii (NIFTI) files.
- Filenames are like 100610/subcortex.fit1_ang.nii with subject ID, model fit (1=full, 2=first-half-of-each-run, 3=second-half-of-each-run), and name of the quantity.
- Note that these files provide individual subject results in MNI space (not the native volume space of the subject).
Contents of **atlas.mat**:
- **'wang2015'** - 91282 x 1 with the Wang et al. 2015 atlas in CIFTI space. Values are 0-25.
- **'wang2015labels'** - 1 x 26 with labels for the 0-25 regions.
- **'wang2015cmap'** - 26 x 3 with an RGB colormap for the 0-25 regions (as used in the Wang et al. 2015 paper).
- **'glasser2016'** - 91282 x 1 with the Glasser et al. 2016 atlas in CIFTI space. Values are 0-180.
- **'glasser2016labels'** - 1 x 181 with labels for the 0-180 regions.
- **'glasser2016cmap'** - 181 x 3 with an RGB colormap for the 0-180 regions (as used in the Glasser et al. 2016 paper).
Contents of **atlasmgz.zip**:
- **[lh,rh].Wang2015.mgz** - MGZ files on fsaverage with the Wang et al. 2015 atlas, mapped using the 'ciftifsaverageix' mechanism. Values are 0-25 (with some NaNs).
- **[lh,rh].Glasser2016.mgz** - MGZ files on fsaverage with the Glasser et al. 2016 atlas, mapped using the 'ciftifsaverageix' mechanism. Values are 0-180 (with some NaNs).
- **Wang2015.mgz.ctab** - text file with label descriptors
- **Glasser2016.mgz.ctab** - text file with label descriptors
Contents of **rotatingsurface**:
- **[lh,rh]-XXX.mov** - Movies of rotating fsaverage inflated surfaces with different quantities displayed. Same colormaps and format as in the paper.
## **STIMULI AND EXPERIMENT** ##
Example stimulus frame:![Example stimulus frame][9]
The order in which the 6 fMRI runs are acquired is: RETCCW, RETCW, RETEXP, RETCON, RETBAR1, and RETBAR2. Note that the 5th and 6th runs both involve the RETBAR type of run (thus, the aperture sequence is identical across these two runs).
The stimuli used in the experiment and some presentation code that actually runs the experiment are available at http://cvnlab.net/analyzePRF/. On that web site, the **runretinotopy.m** script will execute the various types of fMRI runs. A few things to note:
- The 'fixationsize' parameter (controlling the size of the fixation dot) should be modified depending on the display environment.
- The experiment numbers corresponding to the HCP 7T Retinotopy experiment are: 89 (RETCCW), 90 (RETCW), 91 (RETEXP), 92 (RETCON), 93 (RETBAR1), 93 (RETBAR2). (Note the repetition of 93.)
Apertures are constructed at a native resolution of 768 pixels x 768 pixels. The number of apertures in each run is 4500 (15 frames per second; 300 seconds).
Example aperture:![Example aperture][10]
For the purposes of pRF model fitting, apertures are downsampled to a resolution of 200 pixels x 200 pixels. Additionally, we average across consecutive groups of 15 apertures over time, which produces a set of 300 frames, where each frame corresponds to 1 s. The entire stimulus fills 16.0 deg of visual angle (thus, a conversion factor of 16.0 deg / 200 px can be used).
Example downsampled and time-averaged aperture:![Example downsampled and time-averaged aperture][11]
Contents of **samplestimulusmovieRETBAR.mov**:
- This is a movie showing a short segment of the RETBAR type of run. This is an example of what subjects actually saw during the experiment.
Contents of **apertures.zip**:
- **'RET\*.mov'** - full-resolution movie showing the sequence of apertures used in a given type of run
- **'RET\*small.mov'** - downsampled and time-averaged version of the aperture sequence in a given type of run
- **'RET\*small.mat'** - .mat file containing 'stim' as 200 pixels x 200 pixels x 300 time points. This is the downsampled and time-averaged version of the aperture sequence for a given type of run. Values are in the range [0,1]. (This contains the same information as the 'RET\*small.mov' files.)
## **ANALYSIS CODE** ##
We provide the code that we used to fit pRF models to the time-series data. The core functionality is provided by analyzePRF_HCP7TRET which is a modified version of [analyzePRF][12]. This modified version is frozen and static.
Details on the modifications are provided in 'analysis.m' (see below). The basic gist of the modifications is to use a denser grid in the first stage of model fitting and to fix the pRF exponent parameter (i.e. do not optimize it).
Contents of **analyzePRF_HCP7TRET.zip**:
- This is the modified version of the analyzePRF toolbox.
Contents of **analysis.m**:
- This script shows how analyzePRF_HCP7TRET was used to analyze the HCP 7T Retinotopy dataset. Comments in this script provide additional technical information.
Contents of **analysis_ONOFF.m**:
- This script shows the implementation of an alternative model called the ON/OFF model, as described in Supplementary Figure 1.
We also provide additional code:
Contents of **generateFigure7.m**:
- This script is the code used to generate key quantities for Figure 7 in the manuscript (e.g. selection of subjects).
Contents of **generateFigure8.m**:
- This script is the code used to generate Figure 8 in the manuscript.
## **NOTES** ##
- Because of the fitting approach, there is some tendency for estimated pRF parameters to be close to the gridding points used. Care must be taken when summarizing parameters.
- Analyses were performed on the fixed version of the 7T fMRI data which will be released soon (there was an early version of the data that used incorrect phase-encode directions in the EPI spatial undistortion procedure).
- In the CIFTI format, the first ~60k are cortical locations while the remainder are subcortical.
- There are a few 7T subjects who do not have a full set of retinotopy data. These subjects are **126931**, **473952**, and **745555**, and they are not part of the 181 subjects that we have analyzed.
- The *fsaverage* space is more dense than CIFTI (*fsaverage* contains ~320k cortical locations, as opposed to CIFTI's ~60k). Also, *fsaverage* does not cover subcortical data.
## **FAQ** ##
*How do I look at the results using HCP's workbench?*
- The retinotopy results have been uploaded to BALSA. Please visit that web site: [https://balsa.wustl.edu][13]
## **QUESTIONS** ##
Please contact Kendrick Kay at kay@umn.edu.
[1]: https://www.humanconnectome.org/study/hcp-young-adult
[2]: https://dx.doi.org/10.1167/18.13.23
[3]: https://db.humanconnectome.org
[4]: http://balsa.wustl.edu
[5]: http://cvnlab.net/analyzePRF
[6]: http://nben.net/HCP-Retinotopy/
[7]: http://nben.net/HCP-and-Neuropythy/
[8]: http://nben.net/MRI-Geometry/
[9]: https://files.osf.io/v1/resources/bw9ec/providers/osfstorage/5ab8ede276e58c000ff9933b?mode=render
[10]: https://files.osf.io/v1/resources/bw9ec/providers/osfstorage/5ab8eeecb3bdb50010bc77d6?mode=render
[11]: https://files.osf.io/v1/resources/bw9ec/providers/osfstorage/5ab8ef5876e58c0010f9ebb2?mode=render
[12]: http://github.com/kendrickkay/analyzePRF/
[13]: https://balsa.wustl.edu