v2.0.0
Loading...
Searching...
No Matches
inv_cmne.h
Go to the documentation of this file.
1//=============================================================================================================
25
26#ifndef INV_CMNE_H
27#define INV_CMNE_H
28
29//=============================================================================================================
30// INCLUDES
31//=============================================================================================================
32
33#include "../inv_global.h"
35#include "inv_cmne_settings.h"
36
37//=============================================================================================================
38// EIGEN INCLUDES
39//=============================================================================================================
40
41#include <Eigen/Core>
42#include <Eigen/Dense>
43
44//=============================================================================================================
45// FORWARD DECLARATIONS
46//=============================================================================================================
47
48#ifndef WASMBUILD
49namespace UTILSLIB { struct PythonRunnerResult; }
50#endif
51
52//=============================================================================================================
53// DEFINE NAMESPACE INVLIB
54//=============================================================================================================
55
56namespace INVLIB
57{
58
59//=============================================================================================================
72
73//=============================================================================================================
84{
85public:
86 //=========================================================================================================
99 const Eigen::MatrixXd& matEvoked,
100 const Eigen::MatrixXd& matGain,
101 const Eigen::MatrixXd& matNoiseCov,
102 const Eigen::MatrixXd& matSrcCov,
103 const InvCMNESettings& settings);
104
105 //=========================================================================================================
115 static Eigen::MatrixXd applyLstmCorrection(
116 const Eigen::MatrixXd& matDspmData,
117 const QString& onnxModelPath,
118 int lookBack);
119
120 //=========================================================================================================
121#ifndef WASMBUILD
147 const QString& fwdPath,
148 const QString& covPath,
149 const QString& epochsPath,
150 const QString& outOnnxPath,
151 const InvCMNESettings& settings,
152 const QString& gtStcPrefix = {},
153 int hiddenSize = 256,
154 int numLayers = 1,
155 int trainEpochs = 50,
156 double learningRate = 1e-3,
157 int batchSize = 64,
158 const QString& finetuneOnnxPath = {},
159 const QString& pythonExe = QStringLiteral("python3"));
160#endif
161
162private:
163 //=========================================================================================================
174 static Eigen::MatrixXd computeDspmKernel(
175 const Eigen::MatrixXd& matGain,
176 const Eigen::MatrixXd& matNoiseCov,
177 const Eigen::MatrixXd& matSrcCov,
178 double lambda2);
179
180 //=========================================================================================================
188 static Eigen::MatrixXd zScoreRectify(
189 const Eigen::MatrixXd& matStcData);
190};
191
192} // namespace INVLIB
193
194#endif // INV_CMNE_H
Settings record for the INVLIB::InvCMNE solver (model path, sliding-window length,...
InvSourceEstimate value type — central source-space data container produced by every INVLIB inverse s...
INVLIB library export/import macros, build-info accessors, and namespace docstring for the inverse-so...
#define INVSHARED_EXPORT
Definition inv_global.h:38
Shared utilities (I/O helpers, spectral analysis, layout management, warp algorithms).
Inverse source estimation (MNE, dSPM, sLORETA, dipole fitting).
Source-space inverse-solution container with dense grid plus optional focal-dipole,...
CMNE result.
Definition inv_cmne.h:66
InvSourceEstimate stcDspm
Definition inv_cmne.h:67
InvSourceEstimate stcCmne
Definition inv_cmne.h:68
Eigen::MatrixXd matKernelDspm
Definition inv_cmne.h:70
InvSourceEstimate stcLstmPredict
Definition inv_cmne.h:69
CMNE inverse solver.
Definition inv_cmne.h:84
static InvCMNEResult compute(const Eigen::MatrixXd &matEvoked, const Eigen::MatrixXd &matGain, const Eigen::MatrixXd &matNoiseCov, const Eigen::MatrixXd &matSrcCov, const InvCMNESettings &settings)
Definition inv_cmne.cpp:63
static Eigen::MatrixXd applyLstmCorrection(const Eigen::MatrixXd &matDspmData, const QString &onnxModelPath, int lookBack)
Definition inv_cmne.cpp:220
static UTILSLIB::PythonRunnerResult trainLstm(const QString &fwdPath, const QString &covPath, const QString &epochsPath, const QString &outOnnxPath, const InvCMNESettings &settings, const QString &gtStcPrefix={}, int hiddenSize=256, int numLayers=1, int trainEpochs=50, double learningRate=1e-3, int batchSize=64, const QString &finetuneOnnxPath={}, const QString &pythonExe=QStringLiteral("python3"))
Definition inv_cmne.cpp:315
Script execution result container.