Hi,
To make a fieldmap you need to take the difference between
two phase images (at different echo times for Gradient Echo
or with an extra time delay (asym time) for Spin Echo). Also,
some scanners give you back the difference map rather than
the individual phase maps, and you can then use this directly.
You need to know some of the details of what sort of images
you have in order to know what is the right thing to do.
The good news is that prelude is very simple and will work
on any of these images directly. All prelude does is phase
unwrapping, and it will either take 3D images or 4D images
(where it treats each 3D volume separately if it is
given a 4D image). You can either give it a complex image
(and use the -c option) or a phase image plus a magnitude
(mask) image (using the -p and -a options). If you give it
a phase image then you must make sure that the values are
in radians, between -pi and +pi. Note that this is not
how phase images are normally encoded by the scanner - they
often come as integers, say between 0 and 4095, with a
scaling factor buried in the header - however, we do not
read any scaling factors in Analyze images (we do in the
new nifti format, if you are using that). So it usually
pays to process the images first to get the range correct.
You can find the range that FSL thinks an image has by using
avwstats (with the -R option) and can change the range (and
convert to floating point representation) using avwmaths_32R
Also note that you can run prelude on the individual phase
images or on the difference image, but because the number of
phase wrappings get worse in the difference image usually,
I recommend doing it on the individual images before taking
the difference.
Using fugue is a little more complicated and depends on what
form your fieldmap sequence was. If you use a symmetric-asymmetric
spin echo sequence (as in Jezzard and Balaban) then you can
stick the two unwrapped results into a 4D image (using avwmerge
if they are not already in 4D format) and then use the -p option
to input them into fugue. However, if you have a different
sequence then you will need to do the appropriate conversion to
fieldmap values yourself (normally just taking the difference
of the two phase maps and dividing by the difference in phase
evolution times - all of which is easily done using avwmaths).
If you make a fieldmap like this, then the values need to be
in radians per second, and you can then input them into fugue
using the --loadfmap option.
As for dwell time (which you need for either input case) this
needs to be the time taken for a single line of k-space. I
usually define it as the time between one crossing of the ky
axis and the next, during the normal raster EPI sequence. In
terms of the bandwidth, if you define bandwidth per pixel as
(1/dt)/N where dt is the (temporal) spacing between adjacent read-out
points along the same kx acquisition line and N is the number of
read-out points in this direction (and I believe that other
definitions may be used) then the dwell time would be equal to
N * dt = 1 / (bandwidth/pixel). For your case this
would mean: dwell = 1 / 521 = 1.9 milliseconds, assuming that your
bandwidth per pixel is 521 Hz.
As a rough guide, our sequence has dwell time around half a
millisecond, and is normally about 10% to 50% of TR/(Nslices * Ny)
where Ny is the number of pixels in the phase-encode direction.
I should state that I don't normally use the bandwidth to
define things, and that I can't guarantee that our definitions
of bandwidth will be the same, especially given that bandwidths
for filters on the receiver are necessary broader than the
absolute frequency limit. Hence I would carefully check the
definition I've given above to make sure that it is consistent
with what you mean by bandwidth, and even better, if you can
find the time between read-out points (or the reciprocal - the
sampling rate) then you can use the above formula with dt which
is not as ambiguous.
Finally, all time units need to be in seconds. Note that the
dwelltoasym parameter, if you can use it in the case of a spin echo
fieldmap sequence, is a ratio and hence dimensionless.
If you use dwell or asym separately then you need to specify values
in seconds. Note that 2.5 milliseconds, is just 2.5e-3 seconds and
you can use this notation on the command line.
Hope this makes things clear.
All the best,
Mark
On 22 Jan 2005, at 00:28, Matthew Hoptman wrote:
> Hi all,
> I'm trying to use a field map to do a distortion correction on some
> EPI
> images, but I have a few questions (I'm using a Siemens Vision
> scanner):
> 1) I collected 2 phase maps (one for each echo). For prelude, do I do
> an
> avwmerge to get one map, or do I use just the first map, or do I take
> the
> difference? Do I do these computations on the raw images or on the
> images
> in radians?
>
> 2) For fugue, I've gotten conflicting information on whether to use
> dwell
> time=[1/(bandwidth/pixel*Npixels)], or dwell time/pixel(=1/
> [bandwidth/pixel]). I'm using a bandwidth=521Hz, and a square matrix
> of
> 128, so by the first method, I get a dwell time of 1.4995*10^-5 sec!
>
> 3) Can I express the time time units in milliseconds, or should I
> convert
> to seconds?
>
> Thanks,
> Matt
|