v2.0.0
Loading...
Searching...
No Matches
src
libraries
inv
inv_token.h
Go to the documentation of this file.
1
//=============================================================================================================
60
61
#ifndef INV_TOKEN_H
62
#define INV_TOKEN_H
63
64
//=============================================================================================================
65
// INCLUDES
66
//=============================================================================================================
67
68
#include <cstdint>
69
#include <vector>
70
71
//=============================================================================================================
72
// DEFINE NAMESPACE INVLIB
73
//=============================================================================================================
74
75
namespace
INVLIB
76
{
77
78
//=============================================================================================================
99
enum class
InvTokenId
: int32_t
100
{
101
// --- Special tokens ---
102
Pad
= 0,
103
Bos
= 1,
104
Eos
= 2,
105
Sep
= 3,
106
107
// --- Section markers (paired begin / end) ---
108
MetaBegin
= 10,
109
MetaEnd
= 11,
110
111
GridBegin
= 20,
112
GridEnd
= 21,
113
GridRow
= 22,
114
115
CouplingBegin
= 30,
116
CouplingEnd
= 31,
117
GroupBegin
= 32,
118
GroupEnd
= 33,
119
120
FocalBegin
= 40,
121
FocalEnd
= 41,
122
DipoleBegin
= 42,
123
DipoleEnd
= 43,
124
125
ConnBegin
= 50,
126
ConnEnd
= 51,
127
ConnEntryBegin
= 52,
128
ConnEntryEnd
= 53,
129
130
PosBegin
= 60,
131
PosEnd
= 61,
132
133
// --- Method labels (one-hot from InvEstimateMethod) ---
134
MethodUnknown
= 100,
135
MethodMNE
= 101,
136
MethodDSPM
= 102,
137
MethodSLORETA
= 103,
138
MethodELORETA
= 104,
139
MethodLCMV
= 105,
140
MethodDICS
= 106,
141
MethodSAM
= 107,
142
MethodMixedNorm
= 108,
143
MethodGammaMAP
= 109,
144
MethodDipoleFit
= 110,
145
MethodRapMusic
= 111,
146
MethodPwlRapMusic
= 112,
147
148
// --- Source-space labels (one-hot from InvSourceSpaceType) ---
149
SpaceUnknown
= 150,
150
SpaceSurface
= 151,
151
SpaceVolume
= 152,
152
SpaceMixed
= 153,
153
SpaceDiscrete
= 154,
154
155
// --- Orientation labels (one-hot from InvOrientationType) ---
156
OrientUnknown
= 170,
157
OrientFixed
= 171,
158
OrientFree
= 172,
159
OrientLoose
= 173,
160
161
// --- Value-carrier tokens (paired with float in InvToken::value) ---
162
Amplitude
= 200,
163
Vertex
= 201,
164
TimeVal
= 202,
165
FreqVal
= 203,
166
PosX
= 204,
167
PosY
= 205,
168
PosZ
= 206,
169
MomX
= 207,
170
MomY
= 208,
171
MomZ
= 209,
172
Goodness
= 210,
173
ChiSquared
= 211,
174
Correlation
= 212,
175
ConnValue
= 213,
176
GridIndex
= 214,
177
178
// --- Boolean tokens ---
179
ValidTrue
= 250,
180
ValidFalse
= 251,
181
DirectedTrue
= 252,
182
DirectedFalse
= 253,
183
184
// --- Dimension tokens (carry size as int-in-float) ---
185
NSources
= 280,
186
NTimes
= 281,
187
NGroups
= 282,
188
NDipoles
= 283,
189
NMeasures
= 284,
190
NIndices
= 285,
191
NFreeDof
= 286,
192
TStep
= 287,
193
194
// --- Connectivity-measure name tokens ---
195
MeasCoh
= 300,
196
MeasImCoh
= 301,
197
MeasPlv
= 302,
198
MeasPli
= 303,
199
MeasWpli
= 304,
200
MeasGranger
= 305,
201
MeasPdc
= 306,
202
MeasDtf
= 307,
203
MeasCorrelation
= 308,
204
MeasCrossCorr
= 309,
205
MeasOther
= 310,
206
207
// --- Quantization bin base (for fully discrete tokenisation) ---
208
QuantBinBase
= 1000
209
};
210
211
//=============================================================================================================
223
struct
InvToken
224
{
225
InvTokenId
id
;
226
float
value
;
227
228
InvToken
() :
id
(
InvTokenId
::
Pad
),
value
(0.0f) {}
229
explicit
InvToken
(
InvTokenId
_id) :
id
(_id),
value
(0.0f) {}
230
InvToken
(
InvTokenId
_id,
float
_val) :
id
(_id),
value
(_val) {}
231
};
232
233
//=============================================================================================================
242
struct
InvTokenizeOptions
243
{
244
bool
includeGridData
=
true
;
245
bool
includeCouplings
=
true
;
246
bool
includeFocalDipoles
=
true
;
247
bool
includeConnectivity
=
true
;
248
bool
includePositions
=
true
;
249
int
maxSources
= -1;
250
int
maxTimePoints
= -1;
251
};
252
253
//=============================================================================================================
261
inline
std::vector<int32_t>
tokenIds
(
const
std::vector<InvToken>& tokens)
262
{
263
std::vector<int32_t> ids(tokens.size());
264
for
(
size_t
i = 0; i < tokens.size(); ++i)
265
ids[i] =
static_cast<
int32_t
>
(tokens[i].
id
);
266
return
ids;
267
}
268
269
//=============================================================================================================
277
inline
std::vector<float>
tokenValues
(
const
std::vector<InvToken>& tokens)
278
{
279
std::vector<float> vals(tokens.size());
280
for
(
size_t
i = 0; i < tokens.size(); ++i)
281
vals[i] = tokens[i].value;
282
return
vals;
283
}
284
285
}
// NAMESPACE INVLIB
286
287
#endif
// INV_TOKEN_H
INVLIB
Inverse source estimation (MNE, dSPM, sLORETA, dipole fitting).
Definition
braintreemodel.h:55
INVLIB::tokenValues
std::vector< float > tokenValues(const std::vector< InvToken > &tokens)
Definition
inv_token.h:277
INVLIB::tokenIds
std::vector< int32_t > tokenIds(const std::vector< InvToken > &tokens)
Definition
inv_token.h:261
INVLIB::InvTokenId
InvTokenId
Definition
inv_token.h:100
INVLIB::InvTokenId::MethodMixedNorm
@ MethodMixedNorm
Definition
inv_token.h:142
INVLIB::InvTokenId::MeasImCoh
@ MeasImCoh
Definition
inv_token.h:196
INVLIB::InvTokenId::NFreeDof
@ NFreeDof
Definition
inv_token.h:191
INVLIB::InvTokenId::NIndices
@ NIndices
Definition
inv_token.h:190
INVLIB::InvTokenId::PosX
@ PosX
Definition
inv_token.h:166
INVLIB::InvTokenId::MeasCorrelation
@ MeasCorrelation
Definition
inv_token.h:203
INVLIB::InvTokenId::OrientUnknown
@ OrientUnknown
Definition
inv_token.h:156
INVLIB::InvTokenId::ConnValue
@ ConnValue
Definition
inv_token.h:175
INVLIB::InvTokenId::PosBegin
@ PosBegin
Definition
inv_token.h:130
INVLIB::InvTokenId::ConnEntryEnd
@ ConnEntryEnd
Definition
inv_token.h:128
INVLIB::InvTokenId::MethodPwlRapMusic
@ MethodPwlRapMusic
Definition
inv_token.h:146
INVLIB::InvTokenId::DipoleEnd
@ DipoleEnd
Definition
inv_token.h:123
INVLIB::InvTokenId::ConnEnd
@ ConnEnd
Definition
inv_token.h:126
INVLIB::InvTokenId::ConnBegin
@ ConnBegin
Definition
inv_token.h:125
INVLIB::InvTokenId::ValidTrue
@ ValidTrue
Definition
inv_token.h:179
INVLIB::InvTokenId::MethodRapMusic
@ MethodRapMusic
Definition
inv_token.h:145
INVLIB::InvTokenId::MomY
@ MomY
Definition
inv_token.h:170
INVLIB::InvTokenId::MethodDICS
@ MethodDICS
Definition
inv_token.h:140
INVLIB::InvTokenId::NMeasures
@ NMeasures
Definition
inv_token.h:189
INVLIB::InvTokenId::ChiSquared
@ ChiSquared
Definition
inv_token.h:173
INVLIB::InvTokenId::GridBegin
@ GridBegin
Definition
inv_token.h:111
INVLIB::InvTokenId::Goodness
@ Goodness
Definition
inv_token.h:172
INVLIB::InvTokenId::MeasPli
@ MeasPli
Definition
inv_token.h:198
INVLIB::InvTokenId::NDipoles
@ NDipoles
Definition
inv_token.h:188
INVLIB::InvTokenId::CouplingEnd
@ CouplingEnd
Definition
inv_token.h:116
INVLIB::InvTokenId::SpaceMixed
@ SpaceMixed
Definition
inv_token.h:152
INVLIB::InvTokenId::CouplingBegin
@ CouplingBegin
Definition
inv_token.h:115
INVLIB::InvTokenId::Correlation
@ Correlation
Definition
inv_token.h:174
INVLIB::InvTokenId::NGroups
@ NGroups
Definition
inv_token.h:187
INVLIB::InvTokenId::MomX
@ MomX
Definition
inv_token.h:169
INVLIB::InvTokenId::MetaBegin
@ MetaBegin
Definition
inv_token.h:108
INVLIB::InvTokenId::FreqVal
@ FreqVal
Definition
inv_token.h:165
INVLIB::InvTokenId::SpaceUnknown
@ SpaceUnknown
Definition
inv_token.h:149
INVLIB::InvTokenId::MetaEnd
@ MetaEnd
Definition
inv_token.h:109
INVLIB::InvTokenId::SpaceSurface
@ SpaceSurface
Definition
inv_token.h:150
INVLIB::InvTokenId::MethodDipoleFit
@ MethodDipoleFit
Definition
inv_token.h:144
INVLIB::InvTokenId::PosEnd
@ PosEnd
Definition
inv_token.h:131
INVLIB::InvTokenId::MethodUnknown
@ MethodUnknown
Definition
inv_token.h:134
INVLIB::InvTokenId::PosY
@ PosY
Definition
inv_token.h:167
INVLIB::InvTokenId::Eos
@ Eos
Definition
inv_token.h:104
INVLIB::InvTokenId::MethodMNE
@ MethodMNE
Definition
inv_token.h:135
INVLIB::InvTokenId::NTimes
@ NTimes
Definition
inv_token.h:186
INVLIB::InvTokenId::ConnEntryBegin
@ ConnEntryBegin
Definition
inv_token.h:127
INVLIB::InvTokenId::TimeVal
@ TimeVal
Definition
inv_token.h:164
INVLIB::InvTokenId::MethodDSPM
@ MethodDSPM
Definition
inv_token.h:136
INVLIB::InvTokenId::MeasDtf
@ MeasDtf
Definition
inv_token.h:202
INVLIB::InvTokenId::MomZ
@ MomZ
Definition
inv_token.h:171
INVLIB::InvTokenId::MethodSLORETA
@ MethodSLORETA
Definition
inv_token.h:137
INVLIB::InvTokenId::GroupBegin
@ GroupBegin
Definition
inv_token.h:117
INVLIB::InvTokenId::OrientFree
@ OrientFree
Definition
inv_token.h:158
INVLIB::InvTokenId::MethodSAM
@ MethodSAM
Definition
inv_token.h:141
INVLIB::InvTokenId::MeasCrossCorr
@ MeasCrossCorr
Definition
inv_token.h:204
INVLIB::InvTokenId::MethodGammaMAP
@ MethodGammaMAP
Definition
inv_token.h:143
INVLIB::InvTokenId::Vertex
@ Vertex
Definition
inv_token.h:163
INVLIB::InvTokenId::MeasPlv
@ MeasPlv
Definition
inv_token.h:197
INVLIB::InvTokenId::MeasGranger
@ MeasGranger
Definition
inv_token.h:200
INVLIB::InvTokenId::OrientLoose
@ OrientLoose
Definition
inv_token.h:159
INVLIB::InvTokenId::GridIndex
@ GridIndex
Definition
inv_token.h:176
INVLIB::InvTokenId::Bos
@ Bos
Definition
inv_token.h:103
INVLIB::InvTokenId::TStep
@ TStep
Definition
inv_token.h:192
INVLIB::InvTokenId::NSources
@ NSources
Definition
inv_token.h:185
INVLIB::InvTokenId::MethodLCMV
@ MethodLCMV
Definition
inv_token.h:139
INVLIB::InvTokenId::MeasPdc
@ MeasPdc
Definition
inv_token.h:201
INVLIB::InvTokenId::FocalBegin
@ FocalBegin
Definition
inv_token.h:120
INVLIB::InvTokenId::DirectedTrue
@ DirectedTrue
Definition
inv_token.h:181
INVLIB::InvTokenId::GroupEnd
@ GroupEnd
Definition
inv_token.h:118
INVLIB::InvTokenId::ValidFalse
@ ValidFalse
Definition
inv_token.h:180
INVLIB::InvTokenId::Pad
@ Pad
Definition
inv_token.h:102
INVLIB::InvTokenId::OrientFixed
@ OrientFixed
Definition
inv_token.h:157
INVLIB::InvTokenId::GridEnd
@ GridEnd
Definition
inv_token.h:112
INVLIB::InvTokenId::MethodELORETA
@ MethodELORETA
Definition
inv_token.h:138
INVLIB::InvTokenId::MeasOther
@ MeasOther
Definition
inv_token.h:205
INVLIB::InvTokenId::GridRow
@ GridRow
Definition
inv_token.h:113
INVLIB::InvTokenId::MeasWpli
@ MeasWpli
Definition
inv_token.h:199
INVLIB::InvTokenId::SpaceDiscrete
@ SpaceDiscrete
Definition
inv_token.h:153
INVLIB::InvTokenId::Sep
@ Sep
Definition
inv_token.h:105
INVLIB::InvTokenId::FocalEnd
@ FocalEnd
Definition
inv_token.h:121
INVLIB::InvTokenId::DipoleBegin
@ DipoleBegin
Definition
inv_token.h:122
INVLIB::InvTokenId::QuantBinBase
@ QuantBinBase
Definition
inv_token.h:208
INVLIB::InvTokenId::MeasCoh
@ MeasCoh
Definition
inv_token.h:195
INVLIB::InvTokenId::Amplitude
@ Amplitude
Definition
inv_token.h:162
INVLIB::InvTokenId::SpaceVolume
@ SpaceVolume
Definition
inv_token.h:151
INVLIB::InvTokenId::DirectedFalse
@ DirectedFalse
Definition
inv_token.h:182
INVLIB::InvTokenId::PosZ
@ PosZ
Definition
inv_token.h:168
INVLIB::InvToken::InvToken
InvToken()
Definition
inv_token.h:228
INVLIB::InvToken::value
float value
Definition
inv_token.h:226
INVLIB::InvToken::InvToken
InvToken(InvTokenId _id, float _val)
Definition
inv_token.h:230
INVLIB::InvToken::id
InvTokenId id
Definition
inv_token.h:225
INVLIB::InvToken::InvToken
InvToken(InvTokenId _id)
Definition
inv_token.h:229
INVLIB::InvTokenizeOptions
Tokenization options controlling layer inclusion and sub-sampling.
Definition
inv_token.h:243
INVLIB::InvTokenizeOptions::includeCouplings
bool includeCouplings
Definition
inv_token.h:245
INVLIB::InvTokenizeOptions::includePositions
bool includePositions
Definition
inv_token.h:248
INVLIB::InvTokenizeOptions::maxTimePoints
int maxTimePoints
Definition
inv_token.h:250
INVLIB::InvTokenizeOptions::includeFocalDipoles
bool includeFocalDipoles
Definition
inv_token.h:246
INVLIB::InvTokenizeOptions::includeConnectivity
bool includeConnectivity
Definition
inv_token.h:247
INVLIB::InvTokenizeOptions::includeGridData
bool includeGridData
Definition
inv_token.h:244
INVLIB::InvTokenizeOptions::maxSources
int maxSources
Definition
inv_token.h:249
Generated on
for MNE-CPP by
1.16.1