2D balanced SSFP#

Open in Colab

A low-flip-angle excitation and balanced Cartesian gradient-echo readout repeat with alternating RF phase. Zero net gradient moment in every TR preserves transverse coherence and establishes a steady state governed by T2/T1 and off-resonance. A half-flip preparation reduces transient oscillation. 2D bSSFP is widely used for cardiac cine and dynamic cardiac imaging.

Fully sampled acquisition#

One cardiac phase, with every phase-encode line acquired.

import pypulseqpp as pp
from pypulseqpp.sequences import bssfp2D_sequence

diagram = bssfp2D_sequence(
    n_x=48,
    n_y=12,
    n_slices=1,
    n_phases=1,
    readout_bandwidth_hz=25_000,
    tr=None,
    n_dummy=1,
)
baseline = bssfp2D_sequence(
    n_x=192, n_y=192, n_slices=1, n_phases=1, tr=None, n_dummy=0
)
print(f"{baseline.num_blocks} blocks, {baseline.duration()[0]:.2f} s")
print(f"TR {baseline.get_definition('TR')[0] * 1e3:.2f} ms")
579 blocks, 0.74 s
TR 3.84 ms

Sequence diagram#

bssfp2D sequence

Sampling order#

Colour encodes phase-encode line acquisition order; lines are acquired in segments of views_per_segment.

pp.plot.plot_kspace(baseline, color_by="order", plane="xy", show_trajectory=False)
bssfp2D sequence

Cine#

Prospective gating acquires each segment once per requested cardiac phase after a trigger. Retrospective gating cycles the segment throughout one heartbeat and records the cycle index in PHS for later cardiac binning. Segment length sets the temporal footprint of each cardiac phase.

prospective = bssfp2D_sequence(
    n_x=96,
    n_y=48,
    n_slices=1,
    n_phases=6,
    views_per_segment=8,
    gating="prospective",
    tr=None,
    n_dummy=0,
)
retrospective = bssfp2D_sequence(
    n_x=96,
    n_y=48,
    n_slices=1,
    n_phases=6,
    views_per_segment=8,
    gating="retrospective",
    tr=None,
    n_dummy=0,
)
                   blocks  duration (s)  acquisitions
ungated               579          0.74           192
prospective           873          0.83           288
retrospective        6195          5.95          2064
pp.plot.plot_kspace(prospective, color_by="order", plane="xy", show_trajectory=False)
bssfp2D sequence

Total running time of the script: (0 minutes 1.387 seconds)

Gallery generated by Sphinx-Gallery