This shows you the differences between two versions of the page.
biac:analysis:physiological [2022/01/18 16:29] cmp12 |
biac:analysis:physiological [2023/02/23 18:43] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Physiological Correction Methods ====== | ||
- | |||
- | ===== Generate resampled TSV from raw GE physio files automatically copied from the scanners | ||
- | |||
- | Stock GE physio is hardcoded by GE to be 25Hz for respiration and 100Hz for pulse. | ||
- | |||
- | |||
- | < | ||
- | [cmp12@blade17 20211218_03399]$ / | ||
- | usage: convert_GEphysio.py [-h] --xmlh XMLFNAME [--json JSONFNAME] --physdir | ||
- | | ||
- | | ||
- | |||
- | create 100Hz resampled TSV from raw GE physio data | ||
- | |||
- | optional arguments: | ||
- | -h, --help | ||
- | --xmlh XMLFNAME | ||
- | --json JSONFNAME | ||
- | --physdir PHYSDIR | ||
- | --bidsout | ||
- | --afnislicetime | ||
- | --delay DELAYTIME | ||
- | | ||
- | |||
- | </ | ||
- | |||
- | Provide a valid BXH ( and JSON if possible ) and a path to your subject physio folder to convert_GEphysio.py function. | ||
- | |||
- | This function will search the physio directory for physio files within a specified time range based on the functional scantime + timepoints + a default delay in writing. | ||
- | |||
- | If matching respiration and pulse files are found theoretical scan triggers on each TR will be created and the respiration and pulse data will be resampled to 100Hz and locked to the onset of the scan. If disdaqs are detected in the BXH the corresponding physio time will be discarded. | ||
- | |||
- | < | ||
- | / | ||
- | </ | ||
- | |||
- | By default you will get a 100Hz resampled TSV with headers and timing. | ||
- | |||
- | |||
- | The **--bidsout** flag will output a TSV without headers and a BIDS sidecar with appropriate column labels and sampling frequency. | ||
- | |||
- | |||
- | The **--afnislicetime** flag will output two 1D slicetiming files to be used with RetroTS.py and afni_proc.py directly. | ||
- | |||
- | === Using afni === | ||
- | |||
- | You can create regressors for afni preprocessing from output files above using RetroTS.py | ||
- | |||
- | < | ||
- | python3 / | ||
- | |||
- | -n #slices | ||
- | -v TR in seconds | ||
- | |||
- | </ | ||
- | |||
- | RetroTS will produce " | ||
- | |||
- | |||
- | |||
- | |||
- | ====== CIGAL pdigm specific ====== | ||
- | |||
- | Currently this assumes that you have recorded your physiological responses through Cigal. | ||
- | |||
- | ===== physio_run.py ===== | ||
- | There is currently a tool for running AFNI-based correction of functional image data using physiological data. In the future it may support FSL-based correction. | ||
- | |||
- | < | ||
- | physio_run.py --help | ||
- | </ | ||
- | |||
- | < | ||
- | Usage: | ||
- | physio_run.py / | ||
- | |||
- | Program to produce formatted physiological data: | ||
- | Data will be corrected and recreated from the pdigm file based on information from run data | ||
- | BXH and PDIGM required | ||
- | OUTPUTPREFIX is the prefix for the physio-corrected output | ||
- | FORMAT: what pipeline to use, only supports ' | ||
- | |||
- | Options: | ||
- | -h, --help | ||
- | -f string, --format=string | ||
- | output format ( afni ) | ||
- | </ | ||
- | |||
- | '' | ||
- | |||
- | The outputs will be OUTPUTPREFIX.bxh, | ||
- | |||
- | ===== physio_create.py ===== | ||
- | |||
- | The underlying tool used by '' | ||
- | |||
- | This tool uses various fields from the bxh and pdigm file to output " | ||
- | |||
- | The python tool will call cigal functions directly to do the corrections, | ||
- | |||
- | < | ||
- | physio_create.py --help | ||
- | </ | ||
- | |||
- | < | ||
- | physio_create.py --bxh / | ||
- | |||
- | Program to produce formatted physiological data: | ||
- | Data will be corrected and recreated from the pdigm file based on information from run data | ||
- | BXH and PDIGM required | ||
- | OUTPATH defaults to PWD | ||
- | HZ sampling rate | ||
- | FORMAT: defaults to fsl | ||
- | - fsl = cardio, | ||
- | - npm = time, | ||
- | - afni = cardiac.txt, | ||
- | |||
- | |||
- | Options: | ||
- | -h, --help | ||
- | -b FILE, --bxh=FILE | ||
- | -p FILE, --pdigm=FILE | ||
- | pdigm file for run | ||
- | -f string, --format=string | ||
- | output format ( fsl, | ||
- | --hz sampling rate is hz ( 100 ) | ||
- | -o PATH, --outpath=PATH | ||
- | location to store output files | ||
- | |||
- | </ | ||
- | |||
- | ===== AFNI details ===== | ||
- | |||
- | This section details the steps that the tool '' | ||
- | |||
- | Create the AFNI formated physiological text data. | ||
- | <code bash> | ||
- | |||
- | This would create my " | ||
- | |||
- | <code matlab> | ||
- | addpath / | ||
- | Opt.Respfile = '/ | ||
- | Opt.Cardfile = '/ | ||
- | Opt.VolTR = 1.5 | ||
- | Opt.Nslices = 34 | ||
- | Opt.PhysFS = 100 | ||
- | Opt.SliceOrder = ' | ||
- | %please choose the correct order if not running interleaved: | ||
- | |||
- | RetroTS(Opt) | ||
- | </ | ||
- | |||
- | The output of runnning the MATLAB script will be **" | ||
- | |||
- | Convert your data to 4D nifti if you haven' | ||
- | <code bash> | ||
- | |||
- | Create the afni script which you will use to actually run the 3dretroicor functionality: | ||
- | <code bash> | ||
- | ss_method ' | ||
- | |||
- | The result of the above command would be a tcsh script, which would run the despiking and 3dretroicor correction only. Run it: | ||
- | <code bash> | ||
- | |||
- | There will be a resulting folder with all the afni data inside. | ||
- | <code bash> | ||
- | #convert afni to nii, create bxh | ||
- | bxh2analyze --niigz -s 12345.results/ | ||
- | </ | ||
- | |||
- | Run the resting state pipeline: | ||
- | <code bash> | ||
- | |||
- | |||
- | |||
- | |||
- | |||