biac:analysis:resting_pipeline
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
biac:analysis:resting_pipeline [2012/07/09 18:57] – [Python/FSL Resting State Pipeline] admin | biac:analysis:resting_pipeline [2019/05/31 13:27] – cmp12 | ||
---|---|---|---|
Line 17: | Line 17: | ||
4 - normalize data | 4 - normalize data | ||
5 - regress out WM/CSF | 5 - regress out WM/CSF | ||
- | 6 - lowpass | + | 6 - bandpass |
7 - do parcellation and produce correlation matrix from label file | 7 - do parcellation and produce correlation matrix from label file | ||
* or split it up: | * or split it up: | ||
Line 25: | Line 25: | ||
--corrts overrides default location for input parcellation | --corrts overrides default location for input parcellation | ||
results (outputpath/ | results (outputpath/ | ||
+ | 8 - functional connectivity density mapping | ||
+ | |||
Line 33: | Line 35: | ||
--throwaway=4 | --throwaway=4 | ||
run | run | ||
+ | --t1=/ | ||
-p func, --prefix=func | -p func, --prefix=func | ||
- | prefix for all resulting images, defaults to name of | + | prefix for all resulting images, defaults to name of |
input | input | ||
- | --t1=/ | ||
-s 0,1,2,3, --steps=0, | -s 0,1,2,3, --steps=0, | ||
comma seperated string of steps. ' | comma seperated string of steps. ' | ||
Line 45: | Line 47: | ||
(1, | (1, | ||
even=interleaved (2, | even=interleaved (2, | ||
- | this from input image, if available. | + | this from input BXH, if available. |
--tr=MSEC | --tr=MSEC | ||
--ref=FILE | --ref=FILE | ||
Line 54: | Line 56: | ||
standard brain | standard brain | ||
--refcsf=FILE | --refcsf=FILE | ||
+ | standard brain | ||
+ | --refgm=FILE | ||
standard brain | standard brain | ||
--refbrainmask=FILE | --refbrainmask=FILE | ||
Line 61: | Line 65: | ||
brain | brain | ||
--betfval=0.4 | --betfval=0.4 | ||
- | --anatbetfval=0.5 | + | --anatbetfval=0.5 |
+ | | ||
--lpfreq=0.08 | --lpfreq=0.08 | ||
- | is .08hz | + | is .08hz. highpass is fixed at .001hz. |
--corrlabel=FILE | --corrlabel=FILE | ||
correlation search. default is the 116 region AAL | correlation search. default is the 116 region AAL | ||
Line 92: | Line 97: | ||
If --dvarsthreshold is specified, then | If --dvarsthreshold is specified, then | ||
--dvarsnumnumneighbors specifies how many neighboring | --dvarsnumnumneighbors specifies how many neighboring | ||
+ | volumes, before and after the initially excluded | ||
+ | volumes, should also be excluded. | ||
+ | --fdthreshold=THRESH | ||
+ | Any volume contributing to a FD value greater than | ||
+ | this threshold will be excluded (" | ||
+ | (final) correlation step. FD calculation is performed | ||
+ | on the results of the last pre-processing step, and is | ||
+ | calculated as described by Power, J.D., et al., | ||
+ | " | ||
+ | connectivity MRI networks arise from subject motion", | ||
+ | NeuroImage(2011). | ||
+ | the final correlation, | ||
+ | operations that require the full signal, like | ||
+ | regression, etc. | ||
+ | --fdnumneighbors=NUMNEIGHBORS | ||
+ | If --fdthreshold is specified, then | ||
+ | --fdnumnumneighbors specifies how many neighboring | ||
volumes, before and after the initially excluded | volumes, before and after the initially excluded | ||
volumes, should also be excluded. | volumes, should also be excluded. | ||
Line 119: | Line 141: | ||
perform motion correction, then this option is | perform motion correction, then this option is | ||
ignored. | ignored. | ||
+ | --scrubop=SCRUBOP | ||
+ | --fdthreshold are specified, then --scrubop specifies | ||
+ | the aggregation operator used to determine the final | ||
+ | list of excluded volumes. | ||
+ | means a volume will be excluded if *any* of its | ||
+ | thresholds are exceeded, whereas ' | ||
+ | thresholds must be exceeded to be excluded. | ||
+ | --powerscrub | ||
+ | --fdnumneighbors=0 --dvarsthreshold=0.5% | ||
+ | --dvarsnumneigbhors=0 --scrubop=' | ||
+ | method used in the Power et al. article. | ||
+ | conflicting options specified before or after this | ||
+ | will override these. | ||
--scrubkeepminvols=NUMVOLS | --scrubkeepminvols=NUMVOLS | ||
- | If --motionthreshold | + | If --motionthreshold, --dvarsthreshold, or |
- | specified, then --scrubminvols specifies the minimum | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
+ | --fcdmthresh=THRESH | ||
+ | connectivity density mapping ( step8 ). Default is set | ||
+ | to 0.6. Algorithm from Tomasi et al, PNAS(2010), vol. | ||
+ | 107, no. 21. Calculates the fcdm of functional data | ||
+ | from last completed step, inside a dilated gray matter | ||
+ | mask | ||
--cleanup | --cleanup | ||
</ | </ | ||
Line 140: | Line 181: | ||
* run fsl's slice time correction ( slicetimer ) | * run fsl's slice time correction ( slicetimer ) | ||
* if starting with a BXH header, you'll likely have the sliceorder field which will be used to create a custom sliceorder file to be used by fsl | * if starting with a BXH header, you'll likely have the sliceorder field which will be used to create a custom sliceorder file to be used by fsl | ||
+ | * the default is to run bxh_slicetiming to extract a timing file from the BXH header | ||
* if this isn't present, then you'll need to define **--sliceorder** so that we can generate the file for you | * if this isn't present, then you'll need to define **--sliceorder** so that we can generate the file for you | ||
* " | * " | ||
Line 145: | Line 187: | ||
* " | * " | ||
* " | * " | ||
+ | * this gets much more complicated with multi-band data, so using the default extraction is recommended | ||
==== Step 2 ==== | ==== Step 2 ==== | ||
Line 153: | Line 196: | ||
* the functional run is meaned across time with fslmaths, then bet is applied. | * the functional run is meaned across time with fslmaths, then bet is applied. | ||
* if you find that bet is doing a poor job finding the edges you can adjust the intensity threshold with **--betfval** | * if you find that bet is doing a poor job finding the edges you can adjust the intensity threshold with **--betfval** | ||
- | * this is equivalent of **-f** when actually running bet. the default is 0.5, but smaller values will be more conservative in finding the edges of the brain ( ie: larger mask ) | + | * this is equivalent of **-f** when actually running bet. the default is 0.4 (same as feat), but smaller values will be more conservative in finding the edges of the brain ( ie: larger mask ) |
+ | * if provided T1 anatomical is skull stripped. **--anatbetfval** is used to control intensity threshold, the default is 0.5 (same as feat) | ||
==== Step 4 ==== | ==== Step 4 ==== | ||
* normalize the data using flirt | * normalize the data using flirt | ||
Line 161: | Line 204: | ||
* if your subject has already been normalized during standard pre-processing of other runs, please provide the flirt matrix from pre-stats with **--flirtmat** ( most likely example_func2standard.mat) | * if your subject has already been normalized during standard pre-processing of other runs, please provide the flirt matrix from pre-stats with **--flirtmat** ( most likely example_func2standard.mat) | ||
* this will apply the previously determined flirt matrix to your functional data instead of trying to calculate a new matrix based on the functionals. | * this will apply the previously determined flirt matrix to your functional data instead of trying to calculate a new matrix based on the functionals. | ||
+ | * if you've provided at T1 anatomical image then this sequence is followed: | ||
+ | * func-2-t1 | ||
+ | * t1-2-standard | ||
+ | * flirt matrices are concatenated to create func-2-standard | ||
+ | * if no T1 is provided, then the functional is used for the flirt normalization | ||
==== Step 5 ==== | ==== Step 5 ==== | ||
Line 170: | Line 218: | ||
==== Step 6 ==== | ==== Step 6 ==== | ||
* this step will band-pass filter data to remove high-frequency noise using custom python code | * this step will band-pass filter data to remove high-frequency noise using custom python code | ||
- | * the default is 0.08 HZ | + | * the default |
+ | * highpass is fixed at .001 HZ | ||
* if you'd like to chose a different frequency, please use ** --lpfreq ** | * if you'd like to chose a different frequency, please use ** --lpfreq ** | ||
==== Step 7 ==== | ==== Step 7 ==== | ||
Line 197: | Line 246: | ||
* that is the zr_values from the subject.graphml displayed in matplotlib. | * that is the zr_values from the subject.graphml displayed in matplotlib. | ||
- | For a beta version of the viewer: | + | For the rs-pipeline |
< | < | ||
- | / | + | / |
Usage: | Usage: | ||
- | beta_viewer.py --graphml / | + | rspipe_viewer.py --graphml / |
Program to display graphml output from resting_pipeline | Program to display graphml output from resting_pipeline | ||
Line 218: | Line 267: | ||
</ | </ | ||
+ | |||
+ | ==== Step 8 ==== | ||
+ | * Functional connectivity density mapping | ||
+ | * Takes functional data from last step and calculates how connected they are to the voxels around them | ||
+ | * uses ( --fcdmthresh and --refgm ) as the pearson r-value and gray matter mask | ||
+ | * if defaults are used, then a dilated gray matter mask is used from FAST segmentation of MNI brain and a pearson r value of 0.6 | ||
+ | * Iteratively goes to all neighboring voxels and counts the number that have correlated signal until they are under the r threshold | ||
+ | * adapted from Dardo Tomasi, PNAS(2010), vol. 107, no. 21. 9885–9890 | ||
+ | * resulting file with be " | ||
+ | |||
+ | {{: | ||
===== Things to consider ===== | ===== Things to consider ===== | ||
* this was designed to be modular, so that you only need to run the steps you need | * this was designed to be modular, so that you only need to run the steps you need | ||
Line 357: | Line 417: | ||
- | Still under-development | ||
3D VTK: | 3D VTK: | ||
Line 364: | Line 423: | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Download Source ===== | ||
+ | {{: | ||
+ | - source files assume you have a working install of FSL and all imported python modules | ||
+ | - need a working install of the [[http:// | ||
+ | - will need to edit any paths that may be different at your install location ( FSL FAST segmentations of the MNI brain and base sets of ROIs ) | ||
+ | - **Chou et al. AJNAR(2012), | ||
+ | - fcdm algorithm adapted from **Dardo Tomasi, PNAS(2010), vol. 107, no. 21. 9885–9890** | ||
biac/analysis/resting_pipeline.txt · Last modified: 2024/06/21 15:44 by 127.0.0.1