AFNI version info (afni -ver
):
25.0.06
Hi all,
Do you have any advice on how to process multiecho T1 images? They get processed when I use fmriprep, but I'd like to run everything in afni. I thought of tedana, but these are not time series images.
As another question, for distortion correction on multiecho EPI, do I need to correct by the echo? At present, I'm collecting 1 echo each in AP and PA (at the lowest TE). It seems to work reasonably well when I apply it after the echos are combined, but I wanted to find out what is recommended.
Thanks,
Matt
Thanks,
Matt
Hi, Matt-
Re. multiecho T1: Is this anatomical with multiple echos a FLASH sequence? In the (now long ago) past, when I was in a group with such data, we used FreeSurfer's mri_ms_fitparms to merge it together, obtaining estimates for physical T1 (with units) and PD (without units, if I recall).
Re. distortion correction: with ME-FMRI data, you should just need to estimate the geometric correction for a single echo. It will be applied across all echos (each volume across a given echo set should be in the same position).
As an example with afni_proc.py, you might consider multiecho volumetric FMRI processing example that has blip up/down data (Ex. 9) from the afni_proc.py description paper, which is available on GitHub, which should could also checkout via command line by noting its example number "publish 3i" (=example publication #3, and "i" is the 9th letter of the alphabet):
$ afni_proc.py -show_example 'publish 3i'
AP publish 3i. do_39_ap_ex9_mevol_oc.tcsh - ME volume rest analysis.
afni_proc.py \
-subj_id sub-005.ex9 \
-dsets_me_run func/sub-005_rest_r1_e1_bold.nii.gz \
func/sub-005_rest_r1_e2_bold.nii.gz \
func/sub-005_rest_r1_e3_bold.nii.gz \
-echo_times 12.5 27.6 42.7 \
-blip_forward_dset 'func/sub-005_blip-match.nii.gz[0]' \
-blip_reverse_dset 'func/sub-005_blip-opp.nii.gz[0]' \
-copy_anat ssw/anatSS.sub-005.nii \
-anat_has_skull no \
-anat_follower anat_w_skull anat \
ssw/anatU.sub-005.nii \
-ROI_import BrodPijn Brodmann_pijn_afni.nii.gz \
-ROI_import SchYeo7N Schaefer_7N_400.nii.gz \
-blocks tshift align tlrc volreg mask \
combine blur scale regress \
-radial_correlate_blocks tcat volreg regress \
-tcat_remove_first_trs 4 \
-align_unifize_epi local \
-align_opts_aea -cost lpc+ZZ \
-giant_move \
-check_flip \
-tlrc_base MNI152_2009_template_SSW.nii.gz \
-tlrc_NL_warp \
-tlrc_NL_warped_dsets ssw/anatQQ.sub-005.nii \
ssw/anatQQ.sub-005.aff12.1D \
ssw/anatQQ.sub-005_WARP.nii \
-volreg_align_to MIN_OUTLIER \
-volreg_align_e2a \
-volreg_tlrc_warp \
-volreg_warp_dxyz 3 \
-volreg_compute_tsnr yes \
-mask_epi_anat yes \
-combine_method OC \
-blur_size 4 \
-regress_censor_motion 0.2 \
-regress_censor_outliers 0.05 \
-regress_apply_mot_types demean deriv \
-regress_motion_per_run \
-regress_est_blur_epits \
-regress_est_blur_errts \
-regress_compute_tsnr_stats BrodPijn 7 10 12 39 107 110 112 139 \
-regress_compute_tsnr_stats SchYeo7N 161 149 7 364 367 207 \
-html_review_style pythonic
In the processing stream that AP creates, the implicit "blip" block occurs quite near the beginning, just following the "tshift" block, so the warp is known early on. As shown in the AP's ordering of explicit blocks, that warp will be concatenated with all the other transforms in the "volreg" block (to minimal blurring), which occurs prior to the "combine" block.
--pt
Hi Paul,
Thanks so much! It is an MPRAGE (we use a Siemens scanner), but my gut is that we'd use the same commands. The suggestion for distortion correction is what I've been doing.
Thanks again for your help,
Matt
Actually, when I run mri_ms_fitparms using each of the echo images along with the TR, TE, and flip angle, I get only a T2star.mgz as output. I'll look into what I might be doing wrong.