40: Sample data: Human Connectome Project (HCP) fMRI - fahsuanlin/labmanual GitHub Wiki

Introduction

Human Connectome Project (HCP) provides open-access neuroimaging data, including structural and functional magnetic resonance imaging (MRI) and magnetoencephalography (MEG) data. Quite many studies have been published using these data, particularly those recorded in the resting state.

Here are descriptions of downdloaded and prepared data for our exploration.

Data

Access approval

Register to enable your HCP data access formally.

Location

  • Sunnybrook server: Data are at /space_lin1/hcp.
  • Taipei server: Data are at /space/maki9/fhlin/hcp.

Contents

Up to September 2023, we have downdloaded the following data for 1,133 participants from the HCP young adult database:

  • structural MRI (with FreeSurfer reconstruction)

  • functional MRI

  • preprocessed resting-state fMRI:

rfMRI_REST1_LR_hp2000_clean.nii.gz

rfMRI_REST1_RL_hp2000_clean.nii.gz

rfMRI_REST2_LR_hp2000_clean.nii.gz

rfMRI_REST2_RL_hp2000_clean.nii.gz

  • preprocessed working memory task fMRI

tfMRI_WM_LR.nii.gz

tfMRI_WM_RL.nii.gz

  • preprocessed emotion task fMRI

tfMRI_EMOTION_LR.nii.gz

  • preprocessed social task fMRI

tfMRI_SOCIAL_LR.nii.gz

Preprocessing was done by HCP with fMRIPrep. In the file name, 'LR' and 'RL' denotes the order of the phase-encoding direction. NOTE Some participants has only one phase encoding direction. Some participants have resting-state fMRI only 'LR' and 'RL' once (no 'REST2' data).

Folder structures

Each subject in the HCP has a 6-digit identifier. Preprocessed fMRI data were stored in the folder named after each identifier. For example, subject 100206 has a folder named as 100206 with the following sub-folders.

100206

Preprocessed analysis

The Preprocessed folder stores all preprocessed volumetric data (.nii.gz format) offered by HCP. The analysis folder stores the STC files, which are fMRI values painted over the cortical surfaces. Please see below for further details.

we also have 'subjects' folder storing the FreeSurfer reconstruction for all HCP participants.

subjects

100206 100307 ...

File access

Reading

FreeSurfer reconstructions for each subject was stored in folders inside subjects. Refer to this page about FreeSurfer reconstruction.

Volumetric fMRI data are stored in nii or **nii.gz ** formats. nibable can read these files in python. In Matlab, MRIread.m offered by FreeSurfer can be used to read these files. These Matlab routines are at matlab folder inside FreeSurfer home directory.

We also prepared fMRI data on the cortical surfaces to allow for more efficient processing. Specifically, raw fMRI data were spatially registered to individual's structural MRI. This registration was used to morph fMRI signals from the whole brain onto cortical surfaces of left and right hemispheres at each time instant. FreeSurfer also allows us to spatially transform individual's fMRI data onto a standard atlas space (MNI305) to simplify the group-level analysis. These data were stored in the .stc format.

Refer to pages about how to read STC files in python and Matlab.

Writing

FreeSurfer Matlab rountines offer MRIwrite.m to save volumetric fMRI data. This can be done for either 3D or 4D (3D + time) images.

Saving STC files can be done using inverse_write_stc.m in our toolbox.

Visualization

Volumetric fMRI data stored in nii or **nii.gz ** formats can be visualized by 3D image viewers, such as Mango. [linux/mac/windows]

Freeview is a good viewwer to visualize structural MRI and FreeSurfer reconstructions (surfaces, cortical parcellations, segmentations, labels, etc). [linux/mac]

MRIcro is a extensively used viewer for MRI data. [windows/linux]

STC files can be visualized by our Matlab toolbox. See examples of

Details of the resting-state fMRI

The HCP resting-state fMRI data was acquired with a temporal resolution of 0.72 s/volume and a spatial resolution of 2 mm. The duration of the data was 864 s. Each run of data included 1,200 time points.

NOTE: In STC file, the last time point was dropped. So STC files have only 1,199 time points for the resting-state fMRI data.

Pre-processing of resting-state fMRI

A list of all subject ID in this pre-processing

  • Register fMRI data on structural MRI data using fslregister. script

  • Morph the fMRI data onto fsaverage subject to generated left and right hemishere time courses (STC files). script

  • Get the confound time courses at ventricle and white matter for each subject. These time courses will be considered 'confound' (disturbances) in many modeling. script

  • Identify files describing involuntary motions in the data collections. These files are provided for each subject at Preprocessed/Movement_Regressors.txt. These 12-columns table describes the motion in 6-degree of freedom and their temporal derivative. An example file for subject 100206 is here.

Functional connectivity matrix of the resting state

  • Get the Yeo's 17 network topology, which has been defined in FreeSurfer fsaverage subject in label folder. Two annotation files are there: lh.Yeo2011_17Networks_N1000.annot and rh.Yeo2011_17Networks_N1000.annot.

  • We used linear regression to remove time course fluctuations related to motion and signals at ventricles and white matter (see above) at each brain location.

  • For each network, we extracted time courses at all locations within the network and calculated the correlation coefficient matrix, which has the dimension n_voxel x n_voxel, where n_voxel depends on the network. The network strength was first taken as the average of upper-triangular part of this matrix. Then, we used Fisher's transformation to convert the correlation coefficients into Z-scores considering the 0.72 s sampling time. Afterwards, the average and standard deviation of these Z-scores were calculated to quantify the average strength and fluctuation of a network.

This script included all calculations.

connectivity matrices

  • Data R1: Functional connectivity of 17 networks for all subjects in the resting state is here. This is the smallest data set for functional connectivity features. The variable fconn is a cell of 1,133 subjects. The first subject's functional connectivity is at fconn{1}, which includes the subject's ID (fconn{1}.subject), and functional connectivity matrices in 17 network in 4 runs of data (fconn{1}.fconn)). Note that the first network is null. All 17 networks are numbered consecutively from 2 to 18 in the 2nd dimension fo fconn{1}.fconn. The strength of each functional network is characterized by the average and standard deviation of correlation coefficients of all pairs of time series within the network. For example, fconn{1}.fconn{1,2}.fconn_z_avg is the average of Z-scores of all pair-wise correlation coefficients in the 1st network in subject 1 in run 1 of the data. fconn{1}.fconn{1,2}.fconn_z_std is the standard deviation of Z-scores of all pair-wise correlation coefficients in the 1st network in subject 1 in run 1 of the data.

  • Data R2: An example of functional connectivity of 17 networks for one subject (100206) for 1 run in the resting state is here. fconn{1}.fconn{1,network_idx} includes the functional connectivity features for this subject in run 1 for all 17 networks, which are indexed from 2 to 18. Fields are:

-- fconn_corrcoef: n x n correlation coefficient matrix for a network consisting of n brain coordinates.

-- fconn_u10: Top 10 singular vectors of fconn_corrcoef, n x 10

-- fconn_s10: Top 10 singular values of fconn_corrcoef, 10 x 1

-- fconn_s10_percent: Percentages for top 10 singular values of fconn_corrcoef, 10 x 1

-- fconn_z_avg: average of upper-triangular entries of fconn_corrcoef after Fisher's transformation

-- fconn_z_std: standard deviation of upper-triangular entries of fconn_corrcoef after Fisher's transformation

  • Data R3: More complete functional connectivity of 17 networks for all subjects and all runs in the resting state is here. fconn{subj_idx}.fconn{run_idx,network_idx} includes the functional connectivity features for subject subj_idx in run run_idx for all 17 networks, which are indexed from 2 to 18. Fields are:

-- fconn_u10: Top 10 singular vectors of fconn_corrcoef, n x 10

-- fconn_s10: Top 10 singular values of fconn_corrcoef, 10 x 1

-- fconn_s10_percent: Percentages for top 10 singular values of fconn_corrcoef, 10 x 1

-- fconn_z_avg: average of upper-triangular entries of fconn_corrcoef after Fisher's transformation

-- fconn_z_std: standard deviation of upper-triangular entries of fconn_corrcoef after Fisher's transformation

  • Data R4: Dynamic functional connectivity of 17 networks for all subjects in the resting state is here. The variable dfconn is a cell array. Generally, it is dfconn{subj_idx}.fconn{f_idx, t_idx, network_idx}, where

subj_idx: subject index for 1,133 subjects

f_idx: data index; Most subject has 4 runs of fMRI data and thus f_idx =[1, 2, 3, 4]

t_idx: dynamic time seqment index. One time segment for every 30-s interval of data. Between two neighboring segments has an overlapping of 15-s.

network_idx: 2 to 18 for network 1 to 17.

Each cell has fconn_z_avg and fconn_z_std representing the average and standard deviation of functional connectivity Z-score within the segment.