The goal of this Rpackage is to allow neuroscientists to reproduce and test the neural fragility method described in (Li et al. 2017, 2021). This method implements an intracranial EEG (iEEG) marker of the epileptogenic zone localization. In this method, seizures are conceptualized as transitions from a stable networked system to an unstable one. To quantify this, node fragility is computed from linear network models, measuring each node’s susceptibility to destabilization. There are significant details missing in (Li et al. 2017, 2021) to reproduce the neural fragility method and adjust the parameters. This Rpackage aims to identify and fill up the implementation details. It will also allow users to test the method parameters on their data.
To install the package from GitHub
::install_github("Jiefei-Wang/EZFragility") devtools
To load the package
library(EZFragility)
If you are working with the source code, you can load the package with
::load_all() devtools
The package contains an example data. To see the first 5 rows and columns of the data, type
1:5, 1:5] pt01EcoG[
The package contains an example results. To see it, type
pt01Frag
For explanations on how to use the package please refer to the vignette.
vignette("Intro_to_EZFragility", package = "EZFragility")
The method is based on building a discrete time linear system
computing a stable adjacency matrix A for the evolution of x(t).
\(x(t+1)=A x(t)\) with \(x_i(t)\) the iEEG signal at time \(t\) for electrode \(i\). A is computed for a series of time
windows to derive the fragility row.
In this package, we are applying a ridge regression to solve the matrix
A. In (Li et al. 2017, 2021), a regularization parameter value of 1e-4
is recommended, however testing on the data from patient pt01 from the
Fragility data set (data subset available in this package) this value
does not ensure that A is always stable. To tackle this issue, we have
implemented a dichotomy to search for the lowest stable lambda value
rendering the matrix A stable (see R function ridgeSearch in file
ridge.r).
The method to compute the row perturbation is also not clear. To compute the fragility row, a minimum 2-induced norm additive row perturbation \(\Delta\) is computed to destabilize the linear network placing an eigenvalue of \(A+\Delta\) at \(\lambda=\sigma+j\omega\). The minimum norm is a function of \(\lambda\) given in (Li et al. 2017) (see function fragilityRow in the scrip fragility.r), however the paper does not describe how to choose \(\lambda\) with \(|\lambda|=1\). To tackle this issue, we search for the value that minimize the norm of \(\Delta\).