AFNI version info (afni -ver
): 24.3.06
Dear AFNI team,
I hope you are well and happy new year. I am seeking advice about my first level model specifications for a task-based study.
The task involves personalised autobiographical recall of a sad/happy memory. There is a separate block for the positive and negative memory; I am analysing them separately with the aim to compare on a group level. Participants are presented with statements related to a memory they have described, for 4 seconds (retrieval phase). Then, they must judge if the statement is true or false (to ensure they are paying attention). If the statement is correct & true, it is presented for a further 12 seconds or 22 seconds (rehearsal phase; the longer statements were judged by researchers to be particularly emotional). At the end of each trial, the subject rates their emotional valence on a scale of -5 to +5 (very negative to very positive). For the negative memory block trials, they also rate the degree of self blame on a scale of -5 to +5 (do not blame to completely blame myself).
Additionally, there is a counting trial type (serial 7s task - lasting 18s) as a comparator condition, and a false trial type (false statements) - I am not interested in the false trial types, other than to ensure the subject is engaging.
The TR is 1 second. I removed the first 8 TRs as there is an 8s lag before the task starts.
Stimulus timing files include:
- Onset times for the retrieval phase before 12s rehearsal (retr_short)
- Onset times for the retrieval phase before 22s rehearsal (retr_long)
- Onset times for the 12s rehearsal (rehearse_short)
- Onset times for the 22s rehearsal (rehearse_long)
- Onset times for the 18s counting trials
- Onset times for the false trials
- Amplitude modulation for emotion ratings and self-blame ratings, grouped across the 12s rehearsal and 22s rehearsal (taking the form onset*rating:duration where the rating is -5 to +5 and the duration is 12s or 22s)
Below is the afni_proc.py script I am using to analyse the negative memory blocks.
afni afni_proc.py \
-subj_id ${subj}_neg \
-copy_anat ${subj}/anat/anatSS.${subj}.nii \
-anat_has_skull no \
-dsets ${subj}/func/${subj}_neg.nii \
-blocks tshift align tlrc volreg mask blur scale regress \
-tcat_remove_first_trs 8 \
-align_unifize_epi local \
-align_opts_aea -cost nmi -ginormous_move -deoblique on -check_flip \
-tlrc_base /data/project/templates/MNI152_2009_template_SSW.nii.gz \
-tlrc_NL_warp \
-tlrc_NL_warped_dsets ${subj}/anat/anatQQ.${subj}.nii ${subj}/anat/anatQQ.${subj}.aff12.1D ${subj}/anat/anatQQ.${subj}_WARP.nii \
-volreg_align_to MIN_OUTLIER \
-volreg_align_e2a \
-volreg_tlrc_warp \
-volreg_compute_tsnr yes \
-mask_epi_anat yes \
-blur_size 6 \
-regress_stim_times \
stim/retr_neg_short_${subj}.txt \
stim/rehearse_neg_short_${subj}.txt \
stim/retr_neg_long_${subj}.txt \
stim/rehearse_neg_long_${subj}.txt \
stim/retr_neg_false_${subj}.txt \
stim/counting_neg_${subj}.txt \
stim/amplitude_modulation_neg_${subj}.txt \
stim/amplitude_modulation_self_blame_${subj}.txt \
-regress_stim_labels \
retr_neg_short rehearse_neg_short retr_neg_long rehearse_neg_long \
false_neg counting_neg emotion_ratings self_blame_ratings \
-regress_stim_types times times times times times times AM2 AM2 \
-regress_basis_multi \
'TENTzero(0,4,4)' 'TENT(0,12,12)' 'TENTzero(0,4,4)' 'TENT(0,22,22)' 'TENTzero(0,4,4)' 'TENTzero(0,18,18)' 'dmBLOCK' 'dmBLOCK' \
-regress_est_blur_errts \
-regress_est_blur_epits \
-regress_opts_3dD -jobs 8 \
-num_glt 15 \
-gltsym "SYM: 0.5*retr_neg_short 0.5*retr_neg_long" -glt_label 1 Retrieval_All \
-gltsym "SYM: 0.5*rehearse_neg_long 0.5*rehearse_neg_short" -glt_label 2 Rehearse_All \
-gltsym "SYM: +rehearse_neg_long" -glt_label 3 Rehearse_Long \
-gltsym "SYM: +rehearse_neg_short" -glt_label 4 Rehearse_Short \
-gltsym "SYM: +counting_neg" -glt_label 5 Counting \
-gltsym "SYM: 0.5*retr_neg_short 0.5*retr_neg_long -1.0*counting_neg" -glt_label 6 Retrieval_neg_All_vs_Counting \
-gltsym "SYM: +rehearse_neg_long -counting_neg" -glt_label 7 Rehearse_neg_Long_vs_Counting \
-gltsym "SYM: +rehearse_neg_short -counting_neg" -glt_label 8 Rehearse_neg_Short_vs_Counting \
-gltsym "SYM: 0.5*rehearse_neg_short 0.5*rehearse_neg_long -1.0*counting_neg" -glt_label 9 Rehearse_neg_All_vs_Counting \
-gltsym "SYM: 0.5*rehearse_neg_short 0.5*rehearse_neg_long -0.5*retr_neg_short -0.5*retr_neg_long" -glt_label 10 neg_All_Rehearse_vs_Retrieval \
-gltsym "SYM: +rehearse_neg_short -retr_neg_short" -glt_label 11 neg_Short_Rehearse_vs_Retrieval \
-gltsym "SYM: +rehearse_neg_long -retr_neg_long" -glt_label 12 neg_Long_Rehearse_vs_Retrieval \
-gltsym "SYM: +rehearse_neg_long[4..21] -rehearse_neg_long[0..3]" -glt_label 13 neg_Long_LateReh_vs_EarlyReh \
-gltsym "SYM: +rehearse_neg_short[4..11] -rehearse_neg_short[0..3]" -glt_label 14 neg_Short_LateReh_vs_EarlyReh \
-gltsym "SYM: 0.5*rehearse_neg_long[4..21] 0.5*rehearse_neg_short[4..11] -0.5*rehearse_neg_long[0..3] -0.5*rehearse_neg_short[0..3]" -glt_label 15 neg_All_LateReh_vs_EarlyReh \
-GOFORIT 10 \
-regress_opts_reml -GOFORIT \
-regress_apply_mot_types demean deriv \
-regress_censor_motion 0.5 \
-regress_censor_outliers 0.05 \
-regress_make_ideal_sum sum_ideal_${subj}_neg.1D \
-regress_reml_exec \
-regress_run_clustsim yes \
-out_dir derivatives/${subj}_neg \
-html_review_style pythonic
Questions:
- Does my specification of the TENT and TENTzero functions seem reasonable here? Following the 4s retrieval phase, and then the true/false judgement, the rehearsal phase occurs - I expect there could be some anticipatory effect from the prior retrieval, that's why I've used TENT for the rehearsal but TENTzero for the retrieval (and other trial types where I don't expect an anticipatory effect).
- I specified GLTs to look at the early vs. later phase of rehearsal (the TENT functions allow me to do this in the final three GLTs), because there is evidence to suggest hippocampal activation is particular to the earlier phase of rehearsal (when there is some overlap with the retrival). Do the GLTs specified in the final part of my specification seem reasonable?
- I have a subject whose amplitude modulation is constant (they rated the same emotion valence for each stimulus). I can see from the QC that the AM2 regressor is fixed at 0 as a result. Is this necessarily problematic?
- I was trying to get a bit of a better understanding of the AM2 subbricks #0 and #1 - from looking at the QC output, it seems to me that the 0th subbrick is what I would be interested in to understand which voxels show amplitdue and duration modulation?
Many thanks for all your help. Do let me know if you require me to clarify anything.