Dear all,
I have 4 Multi-band-multi-echo EPI runs (3T Siemens Prisma)
When I run each run the pipeline works fine.
HOWEVER, when I like to preprocess more than one run I get an error (in the following example 4 runs, each has 3 echos);
From afni_proc.py:
INFO tedana:tedana_workflow:609 Computing T2* map
Traceback (most recent call last):
File “/home/taliw/.local/bin/tedana”, line 8, in
sys.exit(_main())
File “/home/taliw/.local/lib/python3.8/site-packages/tedana/workflows/tedana.py”, line 933, in _main
tedana_workflow(**kwargs)
File “/home/taliw/.local/lib/python3.8/site-packages/tedana/workflows/tedana.py”, line 610, in tedana_workflow
t2s_limited, s0_limited, t2s_full, s0_full = decay.fit_decay(
File “/home/taliw/.local/lib/python3.8/site-packages/tedana/decay.py”, line 356, in fit_decay
raise ValueError(
ValueError: Second dimension of data (12) does not match number of echoes provided (tes; 3)
I believe you need to use multiple -dsets_me_run, with each corresponding to one run, rather than the run? wildcard you have there. Or, perhaps the better way would be to use the -dsets_me_echo option (AFNI program: afni_proc.py).
I see the following suggestions there:
-dsets_me_echo dset1 dset2 ... : specify ME datasets for one echo
(all runs with each option)
These examples might correspond to 3 echoes across 4 runs.
e.g. -dsets_me_echo epi_run*.echo_1+orig.HEAD
-dsets_me_echo epi_run*.echo_2+orig.HEAD
-dsets_me_echo epi_run*.echo_3+orig.HEAD
e.g. -dsets_me_echo r?.e1.nii
-dsets_me_echo r?.e2.nii
-dsets_me_echo r?.e3.nii
and
-dsets_me_run dset1 dset2 ... : specify ME datasets for one run
(all echoes with each option)
These examples might correspond to 4 echoes across 2 runs.
e.g. -dsets_me_run epi_run1.echo_*+orig.HEAD
-dsets_me_run epi_run2.echo_*+orig.HEAD
e.g. -dsets_me_run r1.e*.nii
-dsets_me_run r2.e*.nii
e.g. -dsets_me_run r1.e1.nii r1.e2.nii r1.e3.nii r1.e4.nii
-dsets_me_run r2.e1.nii r2.e2.nii r2.e3.nii r2.e4.nii
@dowdlelt beat me to the response. tedana only denoises each run separately so afni_proc will call tedana once for each run. The above response is good. Here is code from a recent study of mine that might also be a useful demonstration:
Sorry about this. afni_proc.py was supposed to fail if the length of -echo_times did not match the number of echoes implied by the -dset_me_* options, but I neglected to return that status. This will be fixed to fail up front, so you won’t have to wait for processing to get to tedana.