SPDS - josalggui/MaRGE GitHub Wiki

SPDS protocol Documentation

Overview

The Single Point Double Shot (SPDS) protocol is designed to estimate the B₀ map by acquiring data from two closely timed acquisitions (shots) with identical spatial encoding. This method captures phase differences that correlate to local field inhomogeneities, enabling the reconstruction of the B₀ map.


Input Parameters for SPDS Sequence

The following input parameters are required to configure the SPDS sequence. These parameters allow customization of the acquisition settings, such as imaging geometry, RF pulse properties, timing, and system-specific adjustments.

General Parameters

  • Sequence Name (seqName)
    Identifier for the sequence.

  • Number of Scans (nScans)
    Number of repetitions of the full scan.

RF Parameters

  • Frequency Offset (FreqOffset)
    Frequency offset relative to the Larmor frequency in kilohertz (kHz).

  • Excitation Flip Angle (rfExFA)
    Flip angle of the excitation RF pulse in degrees.

  • Excitation Time (rfExTime)
    Duration of the RF excitation pulse in microseconds (µs).

Imaging Parameters

  • Matrix Size (nPoints)
    Matrix dimensions in the readout, phase, and slice directions.

  • Field of View (fov)
    Spatial extent of the imaging volume in centimeters (cm).

  • Axes Orientation (axesOrientation)
    Specifies the mapping of physical axes to logical axes: readout, phase, and slice.

  • Repetition Time (repetitionTime)
    Time between successive excitation pulses, in milliseconds (ms).

Sequence Timing

  • Dead Times (deadTime)
    List of times for the two acquisitions, in microseconds (µs).

  • Dummy Pulses (dummyPulses)
    Number of dummy pulses applied at the start of the sequence.

Hardware Settings

  • Shimming (shimming)
    Adjustments to compensate for linear B₀ inhomogeneities.

  • Bandwidth (bw)
    Bandwidth of the acquisition, in kilohertz (kHz).


Each parameter has a specific role in defining the behavior of the SPDS sequence. Adjust them based on the experimental requirements to optimize the acquisition for B₀ mapping.


Data Acquisition

The SPDS sequence generates two datasets:

  • data_a: First shot data.
  • data_b: Second shot data.

These datasets are decimated and include additional hardware-specific readout points (addRdPoints). The SPDS method extracts and processes the central portion of these datasets for k-space reconstruction.


Analysis Workflow

The analysis of SPDS data involves the following steps:

1. Preprocessing

  • Reshape Data: The acquired datasets are reshaped to account for sequence-specific readout points.
  • Trim Data: The central readout points are extracted for further processing.

2. k-Space Reconstruction

  • A predefined k-space mask determines valid k-space points.
  • Data from data_a and data_b are mapped into their respective k-space arrays:
    • k_data_a
    • k_data_b

3. Image Reconstruction

  • k-space data is reshaped into 3D arrays corresponding to the specified imaging dimensions.
  • Inverse FFT is applied to generate spatial domain images:
    • i_data_a: Magnitude image from data_a.
    • i_data_b: Magnitude image from data_b.

4. Generate Mask

  • A signal intensity mask is created to exclude low-intensity regions, defined as those below 1/3 of the maximum intensity in i_data_a.

5. Compute B₀ Map

  • The phase difference between i_data_a and i_data_b is calculated.
  • The B₀ field is derived using: [ B_0 = \frac{\Delta \phi}{2 \pi \gamma (t_2 - t_1)} ] where:
    • ( \Delta \phi ): Phase difference between images.
    • ( \gamma ): Gyromagnetic ratio.
    • ( t_2 - t_1 ): Time difference between the two shots.
  • Regions below the signal threshold are masked out.

6. Fix Image Orientation

  • Spatial images are adjusted based on scanner axis orientation to align with the physical axes:

Outputs

The analysis generates the following outputs:

Spatial Domain Images

1B₀ Field Map: Computed from the phase difference. 2Magnitude Image A: ( |i_data_a| ) 3Magnitude Image B: ( |i_data_b| )

k-Space Images

  1. k-Space Magnitude A: ( |k_data_a| )
  2. k-Space Magnitude B: ( |k_data_b| )

Visualization

The results are prepared for plotting using structured dictionaries, including:

  • Image Widget: Displays spatial or k-space data.
  • Labels: Annotates axes with physical directions (readout, phase, slice).
  • Titles: Identifies the data type (e.g., "k-space A").

Example Visualization

Plot Type Description
B₀ Map Field map based on phase differences.
Spatial Magnitude A Reconstructed magnitude image from data_a.
Spatial Magnitude B Reconstructed magnitude image from data_b.
k-Space A Magnitude k-space data for data_a.
k-Space B Magnitude k-space data for data_b.