Overview of Pipelines¶
Epilepsy¶
This description largely follows from bids_pipeline_v2.doc (here). This analysis pipeline assumes the data starts as tarred and gzipped (tar.gz) dicom files. Note, most referenced scripts can be found under the scripts heading in the side-bar. Preprocessing this data involves:
-
Generating a
.tsvfile describing the different scans in the dicom file. This is done by the functionrun_tarred_dicom_info.py.- This script ends up calling
cli_tarred_dicom_info.pywhich processes the input files. This script uses pydicom to load dicom files and then extracts information from the header.
- This script ends up calling
-
Generating all the dicom information needed for the conversion from dicom to
.niifiles and the other info that will be fed intoheudiconv.py- This is done by
dicom_Info.R
- This is done by
-
Running
run_heudiconv.py. I don't really know what this script does ...- It requires being run on the bigmem queue on the RCC
- Goes on to call
singularity_heudiconv.bashwhich runs the actual analysis
-
Running
cli_adjust_jsons.py. I think this is the step that removes slice timing. Not sure why?- This removes slice timings and matches se-fieldmaps
- This removes slice timings and matches se-fieldmaps
-
Running
cli_post_heudiconc.py. This updates thescans.tsvfile associated with each participant/session- This is needed for deconvolve
- This is needed for deconvolve
-
Running
run_fmriprep_epilepsy.pywhich runs fmriprep on the subject
Understanding the Output¶
SOE AFNI¶
This analysis is specific to the processing of the SOE data. It begins with the script soe_dimon.py written by Leo.
Written for Python 2.7 and AFNI 18.0 or higher
Usage: python soe_dimon.py [subjID] [session]
ex.: python soe_dimon.py 103 1
Leo Fernandino
05/07/19
Following this, there is a script by that copies the files after which the following proc.py command is used to pre-process the data[^1]
afni_proc.py -subj_id SOE_${subj}_${sesh}_SEmap${SEn} \
-dsets $dsets \
-copy_anat SOE_${subj}_T1w_acpc_dc_restore_brain_1mm+orig \
-blip_forward_dset SOE${subj}_SEmap${SEn}_AP.nii.gz \
-blip_reverse_dset SOE${subj}_SEmap${SEn}_PA.nii.gz \
-blocks despike tshift align tlrc volreg blur mask scale \
-tlrc_base MNI152_T1_2009c+tlrc \
-volreg_align_e2a \
-volreg_tlrc_warp \
-blur_size 4.0 \
-anat_has_skull no \
-align_opts_aea -giant_move -resample off \
-align_epi_strip_method 3dSkullStrip
Following this, the findal outputs have a name like blip. These can then be copied into a directory. The next step is to create the 3d deconvolve file. This is done by creating the necessary 1d files. Proc py produces the nuissance regressors. The ones we are interested in are 3d
This analysis stream assumes that we start from nifti files organized like the RCC. Further, we will use a script that does not use MNI space
Proc.py Options¶
subj_id: file prefix
dsets: functional run files
copy_anat: makes copy of anat file
blip_forward_dset: AP SEmap
blip_reverse_dset: PA Semap
tcat_remove_first_trs: remove first x time points
blocks: indicate which default and optional blocks to run
despike: lowers all extreme values
tshift: align voxels w/in volumes
volreg: motion correction, registration to 3rd volume by default
align: alignment to {space}
mask: create a subject anatomy mask
scale: scale each voxel to mean of 100, clip values at 200
blip_opts_qw: set options for qwarp
volreg_align_e2a: align EPI to anatomy
align_epi_strip_method: default is 3dAutomask, set to 3dSkullstrip