Skip to content

Commit efe629f

Browse files
committed
updated the toolkit document
1 parent b4dbb4e commit efe629f

File tree

4 files changed

+54
-38
lines changed

4 files changed

+54
-38
lines changed

Documentation/ECGTool_forward.tex

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ \section{Overview}
44

55
As described previously, the forward problem predicts the potentials observed along some measurement surface (commonly the body surface) given a set of known electrical sources and the geometry through which those source fields conduct. In this chapter, we will provide an overview of the forward problem as it is implemented in the Fwd/Inv toolkit, which generally calculates torso surface potentials given a set of known cardiac source parameters. Of course, these toolkit networks can be manipulated to incorporate other source models (\eg{} brain potentials or transmural cardiac potentials) or solution representations (\eg{} scalp or epicardial potentials) as needed.
66

7-
The forward problem can be broken down into two fundamental concepts: 1) how to represent the source and 2) how that source maps to desired observation locations (\eg{} torso surface). One can conceptualize these two concepts in the classic sense by considering the function $(A)x = b$, where $b$ represents a set of unknowns on the torso surface (observation locations) and $x$ is the cardiac source or source formulation. The function $A$, therefore, represents how source potentials are to be mapped to the observation field and is dependent on the choice of source model, the solution approach (\ie{} FEM/BEM), and relevant torso specific requirements such as conductivities and geometry.
7+
The forward problem can be broken down into two fundamental concepts: 1) how to represent the source and 2) how that source maps to desired observation locations (\eg{} torso surface). One can conceptualize these two concepts in the classic sense by considering the function $\mathbf{y}(t) = \mathbf{A}\mathbf{x}(t)$, where $\mathbf{y}(t)$ (Eq.~\ref{eq:TransMat}) represents a set of unknowns on the torso surface (observation locations) and $\mathbf{x}(t)$ is the cardiac source or source formulation. The function $A$, therefore, represents how source potentials are to be mapped to the observation field and is dependent on the choice of source model, the solution approach (\ie{} FEM/BEM), and relevant torso specific requirements such as conductivities and geometry.
88

99
The two most common source formulation models used in cardiac forward problems are cardiac potentials and activation times. The use of cardiac potentials is arguably a more intuitive formulation in that it is typically potentials that are recorded from cardiac-specific electrodes. Activation times must be {\em derived} from recorded signals and are, therefore, one step removed from the original recordings. In terms of abbreviated physiology, cardiac potentials relate the interaction of cardiac cells to changes in the extracellular potential fields of the myocardium. These extracellular cardiac potentials are then projected to the torso surface. The activation-time-based source formulation, on the other hand, deals with the fact that when inactive and active tissues exist in close proximity, a source much like a dipole or layer of dipoles can be generated that is representative of the propagating activation wavefront, which then projects to the torso surface. Both of these source models contain several assumptions, but each provides a generally accurate model that can be computationally reasonable.
1010

@@ -110,20 +110,20 @@ \section{Module Descriptions for Finite Element Solutions}
110110
\begin{figure}[b]
111111
\begin{center}
112112
\includegraphics[width=\textwidth]{ECGToolkitGuide_figures/AddKnowns.png}
113-
\caption{{\bf AddKnownsToLinearSystem Module.} The {\tt AddKnownsToLinearSystem} module recalibrates the stiffness matrix and RHS vector for a FE solution given known values in $\mathbf{x}$ and (optionally) $\mathbf{b}$.}
113+
\caption{{\bf AddKnownsToLinearSystem Module.} The {\tt AddKnownsToLinearSystem} module recalibrates the stiffness matrix and RHS vector for a FE solution given known values in $\mathbf{x}(t)$ and (optionally) $\mathbf{y}(t)$.}
114114
\label{fig:AddKnowns}
115115
\end{center}
116116
\vspace{-.25 in}
117117
\end{figure}
118118

119119
{\tt AddKnownsToLinearSystem} makes it possible to add known values as boundary conditions
120-
to the linear system $Ax=b$, where some values of
121-
$\mathbf{x}$ are already known.
122-
The module receives the stiffness matrix $\mathbf{A}$ along with an $\mathbf{x}$ matrix with known values imposed at the specific indices where data is known and $NaN$ values occupying the remaining vector entries.
120+
to the linear system $\mathbf{y}(t) = \mathbf{A}\mathbf{x}(t)$, where some values of
121+
$\mathbf{x(t)}$ are already known.
122+
The module receives the stiffness matrix $\mathbf{A}$ along with an $\mathbf{x(t)}$ matrix with known values imposed at the specific indices where data is known and $NaN$ values occupying the remaining vector entries.
123123
A right-hand-side (RHS) matrix may also be provided if any of the solution values are also known, but it is not required.
124124
If an RHS field is not included then it is assumed that the vector contains all zeros. % | Is this true...it isn't NaNs?
125125
Using the provided inputs, the module adjusts the linear system according to the known values.
126-
This means that $\mathbf{A}$ and the RHS vector $\mathbf{b}$ are altered in such a way that the product of the new stiffness matrix and RHS $\mathbf{(A2)^{-1}} \mathbf{b2}$ (referring to Figure \ref{fig:AddKnowns}) will produce an $\mathbf{x}$ that contains the defined values at the specified locations.
126+
This means that $\mathbf{A}$ and the RHS vector $\mathbf{y}(t)$ are altered in such a way that the product of the new stiffness matrix and RHS $\mathbf{(A2)^{-1}} \mathbf{b2}$ (referring to Figure \ref{fig:AddKnowns}) will produce an $\mathbf{x(t)}$ that contains the defined values at the specified locations.
127127

128128
%\newpage
129129
\section{Example Networks for Boundary Element Solutions}
@@ -172,7 +172,7 @@ \section{Example Networks for Boundary Element Solutions}
172172
\section{Example Networks for Finite Element Solutions}
173173

174174
There are two examples in the Fwd/Inv toolkit for calculating the potential-based forward problem using finite element method. The first example is a direct calculation of the projection of the cardiac potentials into the torso mesh, satisfying Laplace's equation, and from thence to the torso surface.
175-
The second example involves the generation of the lead field matrix, or transfer matrix, that is then used to perform the forward calculation that very much resembles the $\mathbf{Ax=b}$ formulation seen in the BEM method above.
175+
The second example involves the generation of the lead field matrix, or transfer matrix, that is then used to perform the forward calculation that very much resembles the $\mathbf{y}(t) = \mathbf{A}\mathbf{x}(t)$ formulation seen in the BEM method above.
176176

177177
\subsection{Potential Based Forward FEM Simulation: Laplacian Solve}
178178

@@ -233,7 +233,7 @@ \subsection{Potential Based Forward FEM Simulation: Laplacian Solve}
233233
\subsection{Potential Based Forward FEM Simulation: Lead Field Calculation}
234234

235235
The following example utilizes two networks in order to produce 1) a lead field matrix with which to solve
236-
2) a traditional $\mathbf{Ax=b}$ forward solution.
236+
2) a traditional $\mathbf{y}(t) = \mathbf{A}\mathbf{x}(t)$ forward solution.
237237
Figure \ref{fig:FEMLead} shows a basic implementation of the finite element method used to calculate a lead field matrix and Figure \ref{fig:FEM_LeadNet} shows how that lead field matrix can be applied to generate a forward solution.
238238
These networks also show the complete networks available in the Fwd/Inv toolkit in all their complexity.
239239
Input meshes are segmentations that include multiple label masks (including one for the heart volume with a closed epicardium), which require manipulation prior to use.

Documentation/ECGTool_inverse.tex

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ \section{Descriptions of the Inverse Solution Methods Implemented in SCIRun}
1010
%%%%%%%%%%%%%%%%%%%%%%%
1111
\subsection{Tikhonov Regularization}\label{sec:inverse:tikhonov}
1212

13-
As described in \autoref{sec:math:standardTikhonov}, Tikhonov regularization is a classical inverse method that solves the following least squares problem:
13+
As described in Sec.~\ref{sec:math_tikhonov}, Tikhonov regularization is a classical inverse method that solves the following least squares problem:
1414
\begin{center}
1515
\begin{eqnarray}
1616
min_{X} \| P (Y - A X) \|^{2}_{2} + \lambda^{2} \| RX \|^{2}_{2},
@@ -97,7 +97,7 @@ \subsection{Tikhonov Regularization}\label{sec:inverse:tikhonov}
9797

9898
The solutions to the Tikhonov regularization problem depend on the selection of the regularization parameter ($\lambda$).
9999
There are multiple approaches in the literature that allow for its selection.
100-
\href{http://scirundocwiki.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Reference:BioPSE:SolveInverseProblemWithTikhonov}{{\tt SolveInverseProblemWithTikhonov}} is currently implemented so that the user can choose between a direct entry, selection using a slider and the L-curve method, described in \autoref{sec:math:regparam}.
100+
\href{http://scirundocwiki.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Reference:BioPSE:SolveInverseProblemWithTikhonov}{{\tt SolveInverseProblemWithTikhonov}} is currently implemented so that the user can choose between a direct entry, selection using a slider and the L-curve method, described in Sec.~\ref{sec:math_regparam}.
101101
These methods can be found by selecting the appropriate option in the drop-down menu within the ``Lambda Method'' panel.
102102

103103

@@ -167,7 +167,7 @@ \subsection{Tikhonov SVD Method}
167167

168168
The solutions to the TikhonovSVD regularization problem depend on the selection of the regularization parameter ($\lambda$).
169169
There are multiple approaches in the literature that allow for its selection.
170-
\href{http://scirundocwiki.sci.utah.edu/SCIRunDocs/index.php5/CIBC:Documentation:SCIRun:Reference:BioPSE:SolveInverseProblemWithTikhonovSVD}{{\tt SolveInverseProblemWithTikhonovSVD}} is currently implemented so that the user can choose between a direct entry, selection using a slider and the L-curve method, described in \autoref{sec:math:regparam}.
170+
\href{http://scirundocwiki.sci.utah.edu/SCIRunDocs/index.php5/CIBC:Documentation:SCIRun:Reference:BioPSE:SolveInverseProblemWithTikhonovSVD}{{\tt SolveInverseProblemWithTikhonovSVD}} is currently implemented so that the user can choose between a direct entry, selection using a slider and the L-curve method, described in Sec.~\ref{sec:math_regparam}.
171171
These methods can be found by selecting the appropriate option in the drop-down menu within the ``Lambda Method'' panel as done in \href{http://scirundocwiki.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Reference:BioPSE:SolveInverseProblemWithTikhonov}{{\tt SolveInverseProblemWithTikhonov}} (see \autoref{fig:tik_module_gui}).
172172

173173

@@ -237,7 +237,7 @@ \subsection{Truncated SVD Method (TSVD)}
237237

238238
The solutions to the TSVD regularization problem depend on the selection of the regularization parameter ($Q$).
239239
There are multiple approaches in the literature that allow for its selection.
240-
\href{http://scirundocwiki.sci.utah.edu/SCIRunDocs/index.php5/CIBC:Documentation:SCIRun:Reference:BioPSE:SolveInverseProblemWithTSVD}{{\tt SolveInverseProblemWithTSVD}} is currently implemented so that the user can choose between a direct entry, selection using a slider and the L-curve method, described in \autoref{sec:math:regparam}.
240+
\href{http://scirundocwiki.sci.utah.edu/SCIRunDocs/index.php5/CIBC:Documentation:SCIRun:Reference:BioPSE:SolveInverseProblemWithTSVD}{{\tt SolveInverseProblemWithTSVD}} is currently implemented so that the user can choose between a direct entry, selection using a slider and the L-curve method, described in Sec.~\ref{sec:math_regparam}.
241241
These methods can be found by selecting the appropriate option in the drop-down menu within the ``Lambda Method'' panel as done in \href{http://scirundocwiki.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Reference:BioPSE:SolveInverseProblemWithTikhonov}{{\tt SolveInverseProblemWithTikhonov}} (see \autoref{fig:tik_module_gui}).
242242

243243

@@ -283,13 +283,13 @@ \subsection{Isotropy Method}
283283

284284
This implementation of the Isotropy Method has extra parameters that determine the operation of the Tikhonov inverse. These parameters are specific to the \href{http://scirundocwiki.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Reference:BioPSE:SolveInverseProblemWithTikhonov}{{\tt SolveInverseProblemWithTikhonov}} module and we refer the user to \autoref{sec:inverse:tikhonov} for more details.
285285

286-
\begin{figure}
287-
\begin{center}
288-
\includegraphics[width=0.9\textwidth]{ECGToolkitGuide_figures/IsotropyMethod_networkExample.png}
289-
\caption{The SCIRun network for the Isotropy Method inverse solution example.}
290-
\label{fig:IsotropyMethod}
291-
\end{center}
292-
\end{figure}
286+
% \begin{figure}
287+
% \begin{center}
288+
% \includegraphics[width=0.9\textwidth]{ECGToolkitGuide_figures/IsotropyMethod_networkExample.png}
289+
% \caption{The SCIRun network for the Isotropy Method inverse solution example.}
290+
% \label{fig:IsotropyMethod}
291+
% \end{center}
292+
% \end{figure}
293293

294294

295295
% \subsection{Spline-Based Inverse Method}
@@ -475,13 +475,13 @@ \subsection{Activation-Based Method}
475475
\end{enumerate}
476476
The only output of the method is the inverse solution in the form of an array of activation times.
477477

478-
\begin{figure}
479-
\begin{center}
480-
\includegraphics[width=0.9\textwidth]{ECGToolkitGuide_figures/activationBasedNetwork.png}
481-
\caption{The SCIRun network for the Activation-Based Method inverse solution example.}
482-
\label{fig:activationBasedNetwork}
483-
\end{center}
484-
\end{figure}
478+
% \begin{figure}
479+
% \begin{center}
480+
% \includegraphics[width=0.9\textwidth]{ECGToolkitGuide_figures/activationBasedNetwork.png}
481+
% \caption{The SCIRun network for the Activation-Based Method inverse solution example.}
482+
% \label{fig:activationBasedNetwork}
483+
% \end{center}
484+
% \end{figure}
485485

486486

487487
% \subsection{Wavefront-Based Potential Reconstruction (WBPR)}

Documentation/ECGTool_math.tex

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ \subsection{FEM in the Forward/Inverse Toolkit}
286286
source vectors consisting of a $1$ at each source node in turn and $0$ at
287287
all other source nodes \cite{JDT:Gul97}. From this collection of solutions we
288288
can obtain the desired transfer matrix, which we will denote as $\mathbf{A}$
289-
as used in eq.~\ref{eg:TransMat}.
289+
as used in eq.~\ref{eq:TransMat}.
290290
This network is described below in Ch.~\ref{ch:fwd}.
291291

292292
\subsection{BEM in the Forward/Inverse Toolkit}
@@ -410,6 +410,7 @@ \subsection{Potential-based Inverse Solutions in the Forward/Inverse Toolkit}
410410
are in Ch.~\ref{ch:inv}.
411411

412412
\subsubsection{Standard Tikhonov regularization}
413+
\label{sec:math_tikhonov}
413414

414415
The Tikhonov regularization minimizes $ \| Ax - y \|$ in order to solve $Ax=y$,
415416
which is the same as eq.~\ref{eq:TransMat} with $x$ replacing $x(t)$ for the
@@ -465,6 +466,7 @@ \subsubsection{Standard Tikhonov regularization}
465466
decomposition (SVD) of the matrix $\mathbf{A}$. The SVD results in several factor matrices, from which one then obtains the inverse solution. The SVD approach is also implemented in SCIRun and will be described below.
466467

467468
\subsubsection{Choosing the regularization parameter:}
469+
\label{sec:math_regparam}
468470

469471
Choosing an appropriate value as a regularization parameter is critical for achieving useful solutions.
470472
The solution typically depends on it in a sensitive fashion, and good

Documentation/ECGTool_overview.tex

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
\chapter{Overview}
22

3+
\begin{figure}
4+
\begin{center}
5+
\includegraphics[width=0.75\textwidth]{ECGToolkitGuide_figures/fwd_inv_diag.pdf}
6+
\caption{Forward and inverse problems in electrocardiology. The forward simulation involves
7+
computing the torso potentials with know cardiac sources and torso geometry. The inverse
8+
solution, called ECG Imaging (ECG) consists of inverting the forward model to calculate cardiac
9+
sources from body surface recordings.}
10+
\label{fig:fwdinv_diag}
11+
\end{center}
12+
\end{figure}
13+
314
\begin{introduction}
415

516
This guide describes and documents the SCIRun ECG Forward/Inverse
@@ -14,7 +25,8 @@ \chapter{Overview}
1425

1526
The purpose of this toolkit is to advance the state of forward and inverse
1627
solutions in this field by offering a common platform for investigators and
17-
others to compare geometries and geometric representations, forward and inverse algorithms and data, with the maximum degree of both flexibility
28+
others to compare geometries and geometric representations, forward and
29+
inverse algorithms and data, with the maximum degree of both flexibility
1830
and commonality that we can achieve. Thus, we hope to increase the
1931
"reproducibility'' of developments in this field and help
2032
move these technologies closer to useful clinical applications. As such, the
@@ -43,7 +55,7 @@ \chapter{Overview}
4355
\end{introduction}
4456

4557
\section{Toolkit overview and capabilities}
46-
58+
4759
Computational modeling of bioelectric fields often requires the solution of
4860
electrocardiographic or electroencephalographic forward and inverse
4961
problems in order to non-invasively analyze electrophysiological events
@@ -109,22 +121,24 @@ \section{Toolkit overview and capabilities}
109121
\hline
110122
{\bf Forward tools} & {\bf Inverse Tools}\\ \hline
111123
\hline
112-
Potential-Based FEM/BEM & Activation-Based$^{\&}$$^{*}$\\ \hline
113-
Activation-Based FEM$^{\dag}$ & Potential-Based Regularization Methods\\ \hline
114-
FEM Lead Field Calculation & - Tikhonov \\ \hline
115-
Stiffness Matrix Calculation &- Tikhonov SVD \\ \hline
124+
Potential-Based FEM/BEM$^\dag$ & Activation-Based$^{\&*\ddag}$\\ \hline
125+
FEM Lead Field Calculation& Potential-Based Regularization Methods\\ \hline
126+
Stiffness Matrix Calculation & - Tikhonov \\ \hline
127+
&- Tikhonov SVD \\ \hline
116128
& - Truncated SVD\\ \hline
117129
& - Isotropy method$^{*}$\\ \hline
118-
& - Gauss-Newton Method$^{*}$\\ \hline
130+
& - Gauss-Newton Method$^{*\ddag}$\\ \hline
119131
& - Wavefront based potential reconstruction$^*$\\ \hline
120-
& - Total Variation \\ \hline
132+
& - Total Variation$^{*}$ \\ \hline
133+
& - Method of Fundamental Solution (MFS) $^\ddag$\\ \hline
121134
\end{tabular}
122135
\caption{Algorithms currently included in the CIBC ECG Forward/Inverse
123136
toolkit \newline
124-
$^\dag$Activation-based BEM forward solution is currently
125-
unavailable in the toolkit \newline
137+
$^\dag$Activation-based forward solution is not yet
138+
unavailable\newline
126139
$^{\&}$Based on a Gauss-Newton optimization \newline
127-
$^{*}$Requires Matlab
140+
$^{*}$ Matlab implementation
141+
$^\ddag$ Python implementation
128142
}
129143
\label{tab:prop}
130144
\end{table}

0 commit comments

Comments
 (0)