Dear Jesper,
Thanks for your help! I managed to solve the problem, but I would like to clear up some doubts.
These are the steps I followed:
1- I created a mask (phase_mask.nii.gz) of the phase image (phase.nii) using fsleyes.
2- Since I have data from SIEMENS y used the tool fls_prepare_fieldmap to generate my fieldmap.
fsl_prepare_fieldmap SIEMENS phase.nii phase_mask field_map 2.46
3- I applied a rigid body transformation to take the field_map to the DWI space. Even though the FUGUE/FEAT documentation didn't say it, I inferred that it was necessary to do so based on the results I was getting from FUGUE (next step).
flirt -in field_map.nii.gz -ref dwi_b0.nii -applyxfm -init field2dwi_mat -o field_map_flirt
4- I used fugue to correct the EPI images
fugue -i dwi.nii --dwell=0.0003400056 --loadfmap=field_map_flirt -u result_fugue.
Here are my doubts:
a- Does fsl_prepare_fieldmap replace prelude (when we have SIEMENS data)?
I tried to use prelude in the step 2 as follow:
prelude -a phase_mask.nii.gz -p phase.nii -u prelude_result
And I got this "ERROR: input phase imag exceeds allowable phase range. Allowable range is 6.28 radians. Image range is 8190 radians. Aborting".
b- How can I know the units (Hz, rad/s, etc) of my phase image?
c- Would be possible to get the field_map in Hz just dividing the phase image by the difference of Echo times and 2*pi (assuming that it's in Hz, for example)?
d- Could I use eddy_openmp (and its flags --field and --field_mat) in the step 4 instead of fugue?
It was my initial idea but when I tried do to it with
eddy_openmp --imain=dwi.nii --acqp=datain.txt --index=eddy_index.txt --bvecs=bvecs --bvals=bvals --mask=dwi_b0_brain_mask.nii.gz --field=field_map --field_mat=field2dwi_mat --out=eddy_result
I got the following error:
Image Exception : #3 :: Attempted to add images of different sizes
Attempted to add images of different sizes
EDDY::: ECScanClasses.cpp::: NEWIMAGE::volume<float> EDDY::ECScan::field_for_scan_to_model_transform(std::shared_ptr<const NEWIMAGE::volume<float> >, NEWIMAGE::volume<float>*, NEWIMAGE::volume<float>*) const: Exception thrown
EDDY::: ECScanClasses.h::: NEWIMAGE::volume<float> EDDY::ECScan::FieldForScanToModelTransform(std::shared_ptr<const NEWIMAGE::volume<float> >, NEWIMAGE::volume<float>&, NEWIMAGE::volume<float>&) const: Exception thrown
EDDY::: ECScanClasses.cpp::: NEWIMAGE::volume<float> EDDY::ECScan::transform_to_model_space(const NEWIMAGE::volume<float>&, std::shared_ptr<const NEWIMAGE::volume<float> >, NEWIMAGE::volume<float>&, bool) const: Exception thrown
EDDY::: ECScanClasses.cpp::: NEWIMAGE::volume<float> EDDY::ECScan::GetUnwarpedIma(std::shared_ptr<const NEWIMAGE::volume<float> >, NEWIMAGE::volume<float>&) const: Exception thrown
terminate called after throwing an instance of 'EDDY::EddyException'
Image Exception : #3 :: Attempted to add images of different sizes
Attempted to add images of different sizes
EDDY::: ECScanClasses.cpp::: NEWIMAGE::volume<float> EDDY::ECScan::field_for_scan_to_model_transform(std::shared_ptr<const NEWIMAGE::volume<float> >, NEWIMAGE::volume<float>*, NEWIMAGE::volume<float>*) const: Exception thrown
EDDY::: ECScanClasses.cpp::: NEWIMAGE::volume<float> EDDY::ECScan::GetUnwarpedIma(std::shared_ptr<const NEWIMAGE::volume<float> >, NEWIMAGE::volume<float>&) const: Exception thrown
terminate called recursively
Abortado (`core' generado)
I tried it again removing the flag --field_mat and using the field map in the dwi space (field_map_flirt.nii.gz)
eddy_openmp --imain=dwi.nii --acqp=datain.txt --index=eddy_index.txt --bvecs=bvecs --bvals=bvals --mask=dwi_b0_brain_mask.nii.gz --field=field_map_flirt --out=eddy_result
It runs but the result is a very distorted image. What could be the problem?
e- If I end up using FUGUE for EPI corrections, should these corrections be done after or before Eddy (for movement and Eddy currents) corrections?
f- To get the transformation matrix between the phase image and the dwi_b0 I used 3DSlicer because FLIRT wasn't working properly (I guess this is because of the noise in the phase image). Since using 3DSlicer is not practical, do you know how can I improve the FLIRT results in this case?
g- Since drawing a phase mask for each subject is not practical, I tried to use a mask of the DWI_b0_brain (obtained with bet) transformed (linearly, using the inverse of the matrix used in step 3) to the phase space. This seems to work, do you see any problem in this approach?
h- As far as I know I can not use FEAT instead of FUGUE to correct the EPI distortions because it looks for the original non-brain-extracted field map magnitude in the same directory as the brain-extracted image. But I would like to know what tool I should choose If my data were complete.
Thanks a lot for your time,
Aldana.
########################################################################
To unsubscribe from the FSL list, click the following link:
https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=FSL&A=1
|