JEMRIS 2.9.2
open-source MRI simulations
Loading...
Searching...
No Matches
In depth tutorial - Part 1: analytic pulse shapes


In the following, a 2D spatially-selective excitation experiment [Pauly 1989] will be demonstrated. The example reflects the flexibility of the symbolic mathematics evaluation capabilities of JEMRIS.

  • Start the sequence GUI.
  • From the File menu select Open sequence.
  • Select the sequence file created in the first steps tutorial: MyEPI.xml.
  • To not overwrite it, save it as Selex-EPI.xml

The paper describes the spatially-selective small tip angle excitation with the application of two gradients accompanied by an RF pulse.

To start off, lets replace the hard RF pulse and replace it with a 2D selective excitation block consisting of an analytic RF pulse, and two analytic gradient pulses in read and phase direction.

  • Click in the module bar on the symbol for an analytic RF pulse add it to A1.
  • Add two analytic gradient pulses to A1 by clicking on the corresponding module symbol and afterwards on A1.
  • Set the Axis of the latter to GX and GY, respectively.
  • Click on the rubber gum in the module bar, then click on P1 to delete the hard RF pulse

Note: we deleted P1 in the last step in order not to mix up the UI's automatic naming of pulses. You can of course rename all pulses as you like.

Let us now have a look at the analytical solution for the RF pulse and the k-space trajectory presented by the Pauly et al., which we want to implement:

The following steps will associate the excitation block to the according formulas.

  • Click on the analytic RF pulse P6.
  • Set Duration to 2.
  • Set Observe to D=P6.Duration.

The last step means, that the pulse observes its own duration.

Let us now type in the constants involved in order of appearance. They can be accessed in the Shape attribute by c1 through c4.

  • Type .01,1,4,8 in attribute Constants for alpha, A, beta, and n.

Let us now type in the formula of the time dependent RF magnitude.

  • Set Shape to c1*c2/D*exp( -c3^2 * (1-T/D)^2) * ((2*Pi*c4*(1-T/D))^2 + 1)^0.5
  • Set ADCs to -200

Negative ADCs will not produce data acquisition but only add time points of interest (TPOIs) for visualization of the pulse shape. See Pulse Shape Modules for explanation of the TPOI concept.

Next, the gradients are defined:

  • Click on P7.

We need to introduce the necessary parameters, all stemming from P6. As there are the duration, A, and n.

  • Set Observe to D=P6.Duration, A=P6.c2, n=P6.c4.
  • Set Duration to D.
  • Set Shape to A*(1-T/D)*cos(2*Pi*n*T/D)
  • Set Diff to 1.

Do the exact same steps for the other gradient pulse P8, only replacing the cos with a sin function.

The not obvious step in the last instruction block is the setting of the value for Diff. In this step, the flexibility of the symbolic math library is demonstrated. The formula, that was typed in for the Shape describes the k-space trajectory. However, we are interested in the shape of the corresponding gradient, which is obtained by the first derivative of the k-space trajectory with respect to time or T. Alternatively you may also reset Diff to 0 and set Shape to the formula for the gradients as described in the paper:

However, the differentiation will hardly cost any simulation time since it is computed only once during sequence preparation.

Lets have a look at the final sequence:

The following image reflects the sequence GUI up to this point:

Click now on the check box Sequence Diagram to see the sequence diagram. Select a short time interval of [0 2] ms to see the selective excitation pulse.

You may now simulate the sequence as described in the first steps tutorial:

In Part 2, we will expand the framework by two classes to demonstrate the C++ extensibility of the framework. This extension will use the same example as shown here, i.e. the RF and gradient modules for 2D selective excitation will be implemented instead of using analytical pulses.

However, note that all symbolic expressions are compiled in run time and do not significantly increase simulation times. That means, extending the C++ framework by new modules is not necessarily an advantage with respect to computational performance.

Step on to: In depth tutorial - Part 2

[Pauly 1989] Pauly JM, Nishimura DG, Macovski A. A k-Space Analysis of Small-Tip-Angle Excitation. Journal of Magnetic Resonance, 81, 43-56 (1989)


-- last change 03.01.2025 | Tony Stoecker | Imprint | Data Protection --