EEG parametric leadfield surrogate modelΒΆ
Starting from one of the previously generated parametric solutions, we can create a surrogate model to generate any new leadfield matrix for a set of electrical conductivities.
Warning
The computation of this surrogate model for a large leadfield matrix requires a large amount of memory. You should only perform this time consuming task if you are sure the output can fit in the RAM of your computer.
First, we load the parametric solution.
[ ]:
from shamo.eeg import SolParamEEGLeadfield
solution = SolParamEEGLeadfield.load("../../derivatives/eeg_leadfield/parametric_ssp-dist/parametric_ssp-dist.json")
Next, as always, we load the class corresponding to the object we want to build. Here, it is the SurrEEGLeadfield
class.
The surrogate model is built with the fit()
function. To speedup the process, we can set the n_proc parameter.
[ ]:
from shamo.eeg import SurrEEGLeadfield
surrogate = SurrEEGLeadfield.fit("eeg_param_leadfield_ssp-dist_surr-mat", "../../derivatives/eeg_leadfield/", solution, n_proc=8)
The resulting object can be used to generate a bunch of leadfield matrices with the predict()
and predict_sol()
methods.
[ ]:
import numpy as np
sols = surrogate.predict_sol("predict", surrogate.path, np.array([[0.5, 0.5, 0.5]]))