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