DIY Stuff about b and q#
This is a short note to explain the nature of the B_matrix
found in the
Siemens private (CSA) fields of the DICOM headers of a diffusion weighted
acquisition. We trying to explain the relationship between the B_matrix
and
the b value and the gradient vector. The acquisition is made with a planned
(requested) \(b\)-value - say \(b_{req} = 1000\), and with a requested gradient
direction \(\mathbf{g}_{req} = [g_x, g_y, g_z]\) (supposedly a unit vector) and
peak amplitude \(G\). When the sequence runs the gradient is modulated by an
amplitude envelope \(\rho(t)\) with \(\max |\rho(t)| = 1\) so that the time course
of the gradient is \(G\rho(t)\mathbf{g}.\) \(G\) is measured in units of \(T
\mathrm{mm}^-1.\) This leads to an important temporal weighting parameter of the
acquisition:
(See Basser, Matiello and LeBihan, 1994.) Another formulation involves the introduction of k-space. In standard in-plane MR image encoding
For the classical Stejskal and Tanner pulsed gradient spin echo (PGSE) paradigm where two rectangular pulses of width \(\delta\) seconds are spaced with their onsets \(\Delta\) seconds apart \(R = \Delta (\Delta-\delta/3)^2.\) The units of \(R\) are \(s^3\). The \(b\)-matrix has entries
where \(\gamma\) is the gyromagnetic radius (units \(\mathrm{radians}.\mathrm{seconds}^{-1}.T^{-1}\)) and \(i\) and \(j\) are axis direcrtions from \(x,y,z\) . The units of the B-matrix are \(\mathrm{radians}^2 . \mathrm{seconds} . \mathrm{mm}^{-2}.\)
The b-value for the acquisition is the trace of \(\mathbf{B}\) and is given by
The B matrix and Siemens DICOM#
Though the Stejskal and Tanner formula is available for the classic PGSE sequence, a different sequence may be used (e.g. TRSE on Siemens Trio), and anyway the ramps up and down on the gradient field will not be rectangular. The Siemens scanner software calculates the actual values of the \(b_{ij}\) by numerical integration of the formula above for \(R\). These values are in the form of the 6 ‘B-matrix’ values \([b_{xx}, b_{xy}, b_{xz}, b_{yy}, b_{yz}, b_{zz}]\).
In this form they are suitable for use in a least squares estimation of the diffusion tensor via the equations across the set of acquisitions:
The gradient field typically stays in the one gradient direction, in this case the relationship between \(b\), \(\mathbf{g}\) and the \(b_{ij}\) is as follows. If we fill out the symmetric B-matrix as:
then \(\mathbf{B}\) is equal to the rank 2 tensor \(\gamma^2 G^2 R \mathbf{g} \mathbf{g}^T\). By performing an eigenvalue and eigenvector decomposition of \(\mathbf{B}\) we obtain
where only one of the \(\lambda_i\), say \(\lambda_1\), is (effectively)
non-zero. (Because the gradient is always a multiple of a constant
direction \(\mathbf{B}\) is a effectively a rank 1 tensor.) Then
\(\mathbf{g} = \pm\mathbf{v}_1\), and \(b = \gamma^2 G^2 R =
\lambda_1\). The b-vector
\(\mathbf{b}\) is given by:
Once we have \(\mathbf{b}_{actual}\) we can calculate \(b_{actual} =
\|\mathbf{b}_{actual}\|\) and \(\mathbf{g}_{actual} = \mathbf{b}_{actual}
/ b_{actual}\). Various software packages (e.g. FSL’s DFT-DTIFIT) expect
to get N x 3 and N x 1 arrays of \(\mathbf{g}_{actual}\) (bvecs
) and
\(b_{actual}\) values (bvals
) as their inputs.
… and what about ‘q’?#
Callaghan, Eccles and Xia (1988) showed that the signal from the
narrow pulse PGSE paradigm measured the Fourier transform of the
diffusion displacement propagator. Propagation space is measured in
displacement per unit time \((\mathrm{mm}.\mathrm{seconds}^{-1})\). They
named the reciprocal space q-space
with units of
\(\mathrm{seconds}.\mathrm{mm}^{-1}\).
Diffusion spectroscopy measures signal over a wide range of \(b\)-values (or \(q\)-values) and diffusion times (\(\Delta\)) and performs a \(q\)-space analysis (Fourier transform of the diffusion signal decay).
There remains a bit of mystery as to how \(\mathbf{q}\) (as a vector in \(q\)-space) is specified for other paradigms. We think that (a) it only matters up to a scale factor, and (b) we can loosely identify \(\mathbf{q}\) with \(b\mathbf{g}\), where \(\mathbf{g}\) is the unit vector in the gradient direction.