Skip to content

Commit ff3e074

Browse files
more in paper.md, added bib refs
1 parent ed6f470 commit ff3e074

File tree

2 files changed

+32
-10
lines changed

2 files changed

+32
-10
lines changed

paper/paper.bib

+15
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,18 @@ @book{Bernstein:2004
77
doi = {10.1016/B978-0-12-092861-3.X5000-6},
88
url = {https://www.sciencedirect.com/book/9780120928613/handbook-of-mri-pulse-sequences},
99
}
10+
11+
@article{Bloch:1946,
12+
title = {{Nuclear Induction}},
13+
author = {Bloch, F.},
14+
journal = {Phys. Rev.},
15+
volume = {70},
16+
issue = {7-8},
17+
pages = {460--474},
18+
numpages = {0},
19+
year = {1946},
20+
month = {Oct},
21+
publisher = {American Physical Society},
22+
doi = {10.1103/PhysRev.70.460},
23+
url = {https://link.aps.org/doi/10.1103/PhysRev.70.460}
24+
}

paper/paper.md

+17-10
Original file line numberDiff line numberDiff line change
@@ -32,31 +32,38 @@ bibliography: paper.bib
3232
**M**agnetic **R**esonance **I**maging (MRI) is a non-invasive non-ionisong technique mainly used to acquire images of the human body. To do so, $MRI$ uses **R**adio**F**requency (RF) pulses to excite matter, and magnetic gradients to encode the image. This toolbox focuses on the simulation and evaluation of such RF pulses.
3333

3434
Why ? Because here is a **lot** of them ! Some pulses are designed to selectivly excite a specific volume, like a thin slice of matter, while other are called "non-selective" and will excite the whole volume in the scanner.
35-
Why are they so different from each other ? How to compare them ? Which one to choose ? The [main objective]{.ul} of this toolbox is to answer these questions, using a GUI or pragramaticaly, or both.
35+
Why are they so different from each other ? How to compare them ? Which one to choose ? The [main objective]{.ul} of this toolbox is to answer these questions, using a Graphical User Interface (GUI) or pragramaticaly, or both.
3636

3737
# Statement of need
38-
An RF pulse is _complex_ curve. It can be associated with a magnetic gradient curve which is _real_. Modern MRI scanners do use this complex RF curve : you provide the _magnitude_ and the _phase_ of the pulse. To simulate the pulse response, we can solve the Bloch equations [REF] that describe the evolution of a magnitisation vector under a magnetic field. Depending on different starting conditions, we can evaluate, for example, the slice profile of a slice-selective RF pulse.
38+
An RF pulse is _complex_ curve. It can be associated with a magnetic gradient curve which is _real_. Modern MRI scanners do use this complex RF curve : you provide the _magnitude_ and the _phase_ of the pulse. To simulate the pulse response, we can solve the Bloch equations [@Bloch:1946] that describe the evolution of a magnitisation vector under a magnetic field. Depending on different starting conditions, we can evaluate, for example, the slice profile of a slice-selective RF pulse.
3939

4040
# Key features
4141

4242
## Interactivity
43-
Open the GUI and click on a pulse in the library list. The pulse is loaded with default parameters, which are displayed and editable, and it's curves are plotted:
44-
![GUI panel for Pulse definition. \label{fig:gui_pulse_definition}](gui_pulse_definition.png)
45-
Simulation parameters, such as magnetic field strength, can be edited :
46-
![GUI panel for Simulation parameters. \label{fig:gui_simulation_parameters}](gui_simulation_parameters.png)
47-
By default, the simulation is automatically triggered, and the results plotted :
48-
![GUI panel for Simulation results. \label{fig:gui_simulation_results}](gui_simulation_results.png)
43+
Open the GUI and click on a pulse in the library list. The pulse is loaded with default parameters, which are displayed and editable, and it's curves are plotted:
44+
![GUI panel for Pulse definition. \label{fig:gui_pulse_definition}](gui_pulse_definition.png){width="40%"}
4945

50-
All UI parameters possess an _update_ mechanism, mostly used to trigger the simulation with the fresh value. Changing a parameter such as the pulse duration, in the GUI or programaticaly, will update the pulse, re-plot it's curves, and simulation updated.
46+
Simulation parameters, such as magnetic field strength, can be edited :
47+
![GUI panel for Simulation parameters. \label{fig:gui_simulation_parameters}](gui_simulation_parameters.png){width="40%"}
48+
49+
By default, the simulation is automatically triggered, and the results plotted :
50+
![GUI panel for Simulation results. \label{fig:gui_simulation_results}](gui_simulation_results.png){width="60%"}
51+
52+
All UI parameters possess an _update_ mechanism, mostly used to trigger the simulation with the fresh value. Changing a parameter such as the pulse duration, in the GUI or programaticaly, will update the pulse, re-plot it's curves, and the simulation updated.
5153

5254
## Usage
53-
As mentioned, the package was designed to work with both GUI and scripting. The GUI allows fast pulse exploration, since the simulation is updated if any parameter change. Meanwhile, when you need to optimize pragramatically a pulse, or if you need to compare two pulses, code is a better choice. This is why there are many analysis scripts that serve as demos. These scripts use the full API provided by this package and take advantage of the MATLAB easy vector computation and plotting system.
55+
As mentioned, the package was designed to work with both GUI and scripting. The GUI allows fast pulse exploration, since the simulation is updated if any parameter change. Meanwhile, when you need to optimize pragramatically a pulse, or if you need to compare two pulses, coding should is a better choice. This is why there are many analysis scripts bundeled. These scripts use the full API provided by this package and take advantage of the MATLAB easy vector computation and plotting system.
56+
57+
The user can use it's on pulses :
58+
* by selecting the `USER_DEFINED` pulse in the GUI, then fill in the curves, and finally trigger the simulation.
59+
* by add it's on pulses in a dedicated directory, so they will appear in th GUI.
5460

5561
## Modularity
5662
Many pulses are composed using different algorithm. For example, `sinc_mb_verse` uses the Sinc as base waveform, then the Simultaneous Multi-slice MutliBand (mb) algorithm to excite multiple slices at once, and finally the VERSE algorithm compresses the pulse in time to achieve the same slice profile while keeping the pulse under constrains, such as the maximum RF amplitude. The composition of `sinc_mb_verse` pulse comes from the heritage of all 3 classes : the `sinc` pulse, the `sms_mb` abstract class, and the `verse` abstract class :
5763
```matlab
5864
classdef sinc_mb_verse < mri_rf_pulse_sim.backend.rf_pulse.verse & mri_rf_pulse_sim.backend.rf_pulse.sms_mb & mri_rf_pulse_sim.rf_pulse.sinc
5965
```
66+
All pulses do have a reference to the book or the the article that described them. Many of them comes from [Bernstein:2004]
6067

6168
# Limitations
6269
The main limitation is MATLAB itself : it's licensing system is not as open as Python. However, in the MRI research community, which is quite academic, the license can be provided by the most of the academic research institutes.

0 commit comments

Comments
 (0)