On 14/01/2009 18:33, "Michael Scheel" <[log in to unmask]> wrote:
> Hi Dave and Matt,
>
> thanks a lot for your explanations. I used MRIConvert and get bvecs
> that give reasonable results (I checked with fslview the RGB-Colourmap
> as well as the 'Red-Lines-Map'). However I looked at the bvecs of
> different subjects and they are all exactly the same. I wonder how
> that's possible since the angulation angles are for sure not exactly
> the same for all subjects.
> Of course now I have my doubts that my results are really correct
> (probably they are just approximately correct). Or would you expect
> all the bvecs to be exactly the same?
Hi Michael,
As I said earlier, gradients on GE scanners are relative to the image, not
to the magnet. In fact the gradients are in the frequency-encode,
phase-encode and slice directions. As such, you would expect the B vectors
to be the same for all subjects. When you run the DTI sequence on the
scanner, the gradients in the image co-ordinates get converted to magnet
co-ordinates.
I haven't used FSL to analyse any DTI data, but according to one of my
colleagues, you may need to multiply the different directions by -1 to get
the correct results in FSL. For data acquired on our scanners, we multiply
by -1 in the y- & z- directions.
Dave
>
> Thanks for your help, Michael
>
>
> On 9-Jan-09, at 3:28 AM, David Lythgoe wrote:
>
>> On 09/01/2009 04:11, "Matt Glasser" <[log in to unmask]> wrote:
>>
>>> Here is an explanation of the GE DICOM header for the purpose of
>>> rotating
>>> gradient fields provided by Jolinda Smith, the author of MRIConvert:
>>>
>>> "Image Orientation Patient" is the correct field for getting the
>>> slice
>>> prescription angles. The six values are the direction cosines for
>>> the rows
>>> and columns in the image. In other words, they are the first two
>>> rows in the
>>> rotation matrix you'll need to transform your gradient table from
>>> "scanner
>>> space" to "image space". (The third row is the cross product of the
>>> first
>>> two rows.)
>>
>> Hi,
>>
>> On GE scanners, the gradient directions are already in image space,
>> so you
>> don't need to transform the directions from scanner space to image
>> space. On
>> the other hand, if you want to go from image space to scanner space,
>> or some
>> other arbitrary direction, you would need the information in
>> ImageOrientationPatient.
>>
>>
>> Dave
>>
>>>
>>> Here's the math. r[0] through r[5] are the six values in Image
>>> Orientation
>>> Patient.
>>>
>>> r[6] = r[1]*r[5] - r[2]*r[4];
>>> r[7] = r[2]*r[3] - r[0]*r[5];
>>> r[8] = r[0]*r[4] - r[1]*r[3];
>>>
>>> xGrad_rotated = r[0]*xGrad + r[1]*yGrad + r[2]*zGrad; yGrad_rotated =
>>> r[3]*xGrad + r[4]*yGrad + r[5]*zGrad; zGard_rotated = r[6]*xGrad +
>>> r[7]*yGrad + r[8]*zGrad;
>>>
>>> If MRIConvert is able to read the gradient table in the DICOM file,
>>> it does
>>> this transformation when writing the bvecs file for the FSL Nifti
>>> output, so
>>> you don't need to do it again."
>>>
>>> If you use MRIConvert you should get appropriately corrected bvecs
>>> files.
>>>
>>> Peace,
>>>
>>> Matt.
>>>
>>> -----Original Message-----
>>> From: FSL - FMRIB's Software Library [mailto:[log in to unmask]] On
>>> Behalf
>>> Of Michael Scheel
>>> Sent: Thursday, January 08, 2009 9:54 PM
>>> To: [log in to unmask]
>>> Subject: [FSL] read DICOM header to correct bvec for angulation
>>>
>>> Hi everybody,
>>>
>>> i have a question if anybody can give me some advise on a problem
>>> with a DTI series acquired on a General Electric Signa 3T.
>>> I have a diffusion DICOM dataset and the file for the gradient
>>> directions in the Scanner Coordinates.
>>> To avoid artefacts we aquired the data parallel to a plane (frontal
>>> sinus - cerebellum) - that gives quite a big angulation of the xy-
>>> plane.
>>> What I need to do is to take into account this angulation and correct
>>> the gradient-direction-file.
>>> My problem is that I don't know how to extract the amount of
>>> angulation from the DICOM header.
>>>
>>> So I guess my question boils down to:
>>>
>>> How do I extract the angulation parameters from the DICOM header and
>>> use it to correct the gradient-direction-file?
>>>
>>> Here is what the header says:
>>> ....
>>> ImagePositionPatient (0020,0032) -129.492\-147.271\35.8859
>>> value -129.492
>>> value -147.271
>>> value 35.8859
>>> ImageOrientationPatient (0020,0037) 1\-0\0\-0\0.844841\-0.535018
>>> value 1
>>> value -0
>>> value 0
>>> value -0
>>> value 0.844841
>>> value -0.535018
>>> .....
>>>
>>> I just don't know how to translate this, especially why are there 6
>>> values for the orientation when there are 3 planes that can be
>>> angulated?
>>>
>>> Thanks a lot, Michael.
|