-
Notifications
You must be signed in to change notification settings - Fork 0
/
signal-modeling.Rmd
227 lines (165 loc) · 5.64 KB
/
signal-modeling.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
---
title: "Signal modeling"
date: "Last updated: `r format(Sys.time(), '%B %d, %Y')`"
bibliography: bibliography.bib
csl: american-medical-association.csl
link-citations: yes
output:
html_document:
toc: TRUE
toc_depth: 2
toc_float:
collapsed: FALSE
---
```{r setup, include = FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
```{r, child = "js/back-to-top.js"}
```
```{css, echo = FALSE}
table {
margin: auto;
}
table thead th {
border-bottom: 1px solid #ddd;
}
th, td {
padding: 5px;
}
tfoot, tr:nth-child(even) {
background: #eee;
}
```
<br>
This page describes the functions Gannet uses to model metabolite signals. Note that when the definition of a parameter is omitted from a table under a particular metabolite, it is implied that it has been defined already in a previously described function.
For all model fitting, Gannet uses nonlinear regression, with fit parameters optimized using the least-squares Levenberg-Marquardt algorithm. For increased computational speed and a better solution, the starting values of the optimization are derived from a "pre-fit" that uses the trust-region-reflective algorithm. Description of these algorithms can be found in the <a href="https://www.mathworks.com/help/optim/ug/least-squares-model-fitting-algorithms.html" target="_blank">online MATLAB documentation</a>.
## GABA+Glx
GABA and Glx are fitted using a three-Gaussian model with a linear slope and non-linear baseline:
$$
S(f) =
\sum_{i=1}^{3}\left\{A_i\exp[\sigma_i(f-f_i)^2]\right\}+
m(f-f_1)+
b_1\sin(\pi{f}/1.31/4)+
b_2\cos(\pi{f}/1.31/4)
$$
where:
| <u>Parameter</u> | <u>Definition</u> |
| :- | :-------- |
| $f$ | Frequency (ppm) |
| $A_i$ | Gaussian *i*'s amplitude |
| $\sigma_i$ | Gaussian *i*'s width |
| $f_i$ | Gaussian *i*'s center frequency (ppm) |
| $m$ | Slope of linear baseline |
| $b_1$ | Sine baseline term |
| $b_2$ | Cosine baseline term |
::: info
<i class="fa fa-info-circle" style="color: white"></i> The GABA+Glx model is fitted using a model that has observation weights between 3.16 and 3.285 ppm, where the Cho subtraction artifact [@Evans2013] appears. The purpose is to down-weight the influence of this artifact (if present) on the model fitting.
:::
<img id="img_75" src="images/signal-modeling/GABA+Glx.png" alt="Illustration of the GABA+Glx model">
## GSH (TE < 100 ms)
GSH that is edited at a TE < 100 ms is fitted with a five-Gaussian model with a linear + quadratic baseline:
$$
S(f) =
\sum_{i=1}^{5}\left\{A_i\exp[\sigma_i(f-f_i)^2]\right\}+
m_1(f-f_1)+
m_2(f-f_1)^2+b
$$
where:
| <u>Parameter</u> | <u>Definition</u> |
| :- | :-------- |
| $m_1$ | Slope of linear baseline |
| $m_2$ | Quadratic baseline term |
| $b$ | Baseline offset |
<img id="img_75" src="images/signal-modeling/GSH-80.png" alt="Illustration of the GSH model at TE = 80 ms">
## GSH (TE >= 100 ms)
GSH that is edited at a TE >= 100 ms is fitted with a six-Gaussian model with a linear + quadratic baseline:
$$
S(f) =
\sum_{i=1}^{6}\left\{A_i\exp[\sigma_i(f-f_i)^2]\right\}+
m_1(f-f_1)+
m_2(f-f_1)^2+b
$$
<img id="img_75" src="images/signal-modeling/GSH-120.png" alt="Illustration of the GSH model at TE = 120 ms">
## Lac
::: info
<i class="fa fa-info-circle" style="color: white"></i> Optimization of the modeling of edited Lac is ongoing.
:::
Lac is fitted with a four-Gaussian model with a linear + quadratic baseline:
$$
S(f) =
\sum_{i=1}^{4}\left\{A_i\exp[\sigma_i(f-f_i)^2]\right\}+
m_1(f-f_1)+
m_2(f-f_1)^2+b
$$
<img id="img_75" src="images/signal-modeling/Lac.png" alt="Illustration of the Lac model">
## EtOH
EtOH is fitted with a two-Lorentzian model with a linear baseline:
$$
S(f) =
\sum_{i=1}^{2}\left[\frac{A_{i}}{1+\left(\frac{f-f_{i}}{\gamma_{i}/2}\right)^2}\right]+
m(f-f_1)+b
$$
where:
| <u>Parameter</u> | <u>Definition</u> |
| :- | :-------- |
| $A_i$ | Lorentzian *i*'s amplitude |
| $f_i$ | Lorentzian *i*'s center frequency (ppm) |
| $\gamma$ | Lorentzian width (full-width at half-maximum) |
::: info
<i class="fa fa-info-circle" style="color: white"></i> The EtOH model is fitted using a model that has observation weights between 1.29 and 1.51 ppm, where the Lac subtraction artifact appears. The purpose is to down-weight the influence of this artifact (if present) on the model fitting.
:::
## Cho+Cr
Cho and Cr in the edit-OFF spectrum are fitted with a two-Lorentzian model with a linear baseline:
$$
Absorption(f) =
\frac{A}{2\pi}\frac{\gamma}{(f-f_0)^2+\gamma^2}+
\frac{Ah}{2\pi}\frac{\gamma}{(f-f_0-0.18)^2+\gamma^2}
$$
$$
Dispersion(f) =
\frac{A}{2\pi}\frac{f-f_0}{(f-f_0)^2+\gamma^2}+
\frac{Ah}{2\pi}\frac{f-f_0-0.18}{(f-f_0-0.18)^2+\gamma^2}
$$
$$
S(f) =
\cos(\phi)Absorption(f)+
\sin(\phi)Dispersion(f)+
m(f-f_0)+b
$$
where:
| <u>Parameter</u> | <u>Definition</u> |
| :- | :-------- |
| $A$ | Amplitude of Cr peak |
| $\gamma$ | Lorentzian width (half-width at half-maximum) |
| $f_0$ | Center frequency of Cr peak |
| $h$ | Amplitude scaling factor for Cho peak |
| $\phi$ | Phase |
<img id="img_75" src="images/signal-modeling/Cho+Cr.png" alt="Illustration of the Cho+Cr model">
## NAA
NAA in the edit-OFF spectrum is fitted with a Lorentzian model with a linear baseline:
$$
Absorption(f) =
\frac{A}{2\pi}\frac{\gamma}{(f-f_0)^2+\gamma^2}
$$
$$
Dispersion(f) =
\frac{A}{2\pi}\frac{(f-f_0)}{(f-f_0)^2+\gamma^2}
$$
$$
S(f) =
\cos(\phi)Absorption(f)+
\sin(\phi)Dispersion(f)+
m(f-f_0)+b
$$
## Water
The unsurpressed water signal is fitted with a Lorentzian-Gaussian model with a linear baseline:
$$
S(f) =
\frac{\cos(\phi)A+\sin(\phi)A\gamma(f-f_0)}
{\gamma^2(f-f_0)^2+1}
\exp[\sigma(f-f_0)^2]+
m(f-f_0)+b
$$
<img id="img_75" src="images/signal-modeling/water.png" alt="Illustration of the water model">
<br>
### References