- Notifications
You must be signed in to change notification settings - Fork1
sjburwell/rsfmri_tools
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This repository contains MATLAB utilities for conducting resting-state functional MRI (rsfMRI) connectivity analyses.
The following scripts rely entirely on MATLAB and a few MATLAB dependencies. If you have not already, please download and installSPM12. Then, make sure you download and unzip the necessary scripts fromthis GitHub repository. In Linux, you may clone the directory through the below command:
git clone https://github.com/sjburwell/rsfmri_tools.git
Next, start MATLAB and make sure that all the necessary installations are in your path. This may look something like this:
addpath/PATH/TO/YOUR/SPM12/INSTALLATIONrun_rsfmri_tools_startup;
If successful, the commandline should say something like: "run_rsfmri_tools_startup; required SPM12 toolbox path added..." and "run_rsfmri_tools_startup; required rsfmri_tools path added:"
Now, we are ready to set up the connectivity estimation scripts. This step requires that you have previously calculated and output tab-separated value (.tsv) files that contain R columns of T rows, where each R corresponds to a different "Region of Interest" (ROI), and each T corresponds to a time-point. If you have not yet done this step, please see another GitHub repo of mine that provides scrips for doing so:fmriprep_denoising.
While there are other MATLAB dependencies (e.g., SPM12), you should be able to obtain connectivity values using only the function get_fc(). Detailed help for the function can be queried by:
helpget_fc
Here, I will show an example using data that were structured inBIDS format, preprocessed usingfmriprep, and denoised usingdenoise_fmriprep_output -- saved into a directory "tmpdir".
filefilter='/home/burwell/tempdelete/fmriprep_denoising/tmpdir/*03P+AROMANonAgg_ROI-Schaefer400+HarvOxSubCortRL*';opts.lpf=.1;% lowpass filter cutoff, in Hz (0 if none)opts.tr_ntr= [1.395420 ;% Nx2 array of [TR, #TRs; ...]1.500400];% Important for inferring sample-rate if lpf>0 or hpf>0opts.graphtype='full';% 'full','upper','lower'opts.mergetsv='/labs/mctfr-fmri/bids/es/participants.tsv';% For BIDS, should be participants.tsvopts.datakeys= {'ManufacturersModelName',{'TrioTim','Prisma_fit'};'SoftwareVersions',{'syngo_MR_B17','syngo_MR_D13D','syngo_MR_E11'}};outfc_matroot= get_fc(filefilter,opts);
The above code will generate a tab-separated file with the extension .dat that contains one row per each subject and region of interest, and the following columns:
- ID: a subject identifier corresponding to the ??????? in sub-???????
- ROI: identifier for each region of interest (ROI)
- {datakeys}: above, the data keys will be named 'ManufacturersModelName' and 'SoftwareVersions,' in that order.
- ROI**: here, columns containing functional connectivity values (Fisher-transformed Pearson correlation values) for regions of interest (ROIs), where ** is some integer between 1 and R. E.g., ROI224 contains all connectivity data for the 224th column in the .tsv files.