v2.0.0
Loading...
Searching...
No Matches
bids_const.h
Go to the documentation of this file.
1//=============================================================================================================
27
28#ifndef BIDS_CONST_H
29#define BIDS_CONST_H
30
31//=============================================================================================================
32// INCLUDES
33//=============================================================================================================
34
35#include <fiff/fiff_constants.h>
36
37#include <QMap>
38#include <QString>
39#include <QStringList>
40
41//=============================================================================================================
42// DEFINE NAMESPACE BIDSLIB
43//=============================================================================================================
44
45namespace BIDSLIB
46{
47
48//=============================================================================================================
49// BIDS datatypes
50//=============================================================================================================
51
53const QString BIDS_DATATYPE_MEG = QStringLiteral("meg");
54const QString BIDS_DATATYPE_EEG = QStringLiteral("eeg");
55const QString BIDS_DATATYPE_IEEG = QStringLiteral("ieeg");
56const QString BIDS_DATATYPE_ANAT = QStringLiteral("anat");
57const QString BIDS_DATATYPE_FUNC = QStringLiteral("func");
58const QString BIDS_DATATYPE_DWI = QStringLiteral("dwi");
59const QString BIDS_DATATYPE_PERF = QStringLiteral("perf");
60const QString BIDS_DATATYPE_BEH = QStringLiteral("beh");
61
71
83
84//=============================================================================================================
85// BIDS file extensions for iEEG raw data
86//=============================================================================================================
87
93inline QStringList ieegAllowedExtensions()
94{
95 return {QStringLiteral(".vhdr"), // BrainVision header
96 QStringLiteral(".edf"), // European Data Format
97 QStringLiteral(".set"), // EEGLAB
98 QStringLiteral(".mef"), // MEF3
99 QStringLiteral(".nwb")}; // NWB
100}
101
107inline QStringList eegAllowedExtensions()
108{
109 return {QStringLiteral(".vhdr"),
110 QStringLiteral(".edf"),
111 QStringLiteral(".bdf"),
112 QStringLiteral(".set"),
113 QStringLiteral(".fif")};
114}
115
116//=============================================================================================================
117// Channel type mapping: MNE FIFF kind → BIDS string
118//=============================================================================================================
119
126inline QMap<int, QString> fiffKindToBidsType()
127{
128 return {
129 {FIFFV_MEG_CH, QStringLiteral("MEGMAG")},
130 {FIFFV_EEG_CH, QStringLiteral("EEG")},
131 {FIFFV_STIM_CH, QStringLiteral("TRIG")},
132 {FIFFV_EOG_CH, QStringLiteral("EOG")},
133 {FIFFV_ECG_CH, QStringLiteral("ECG")},
134 {FIFFV_EMG_CH, QStringLiteral("EMG")},
135 {FIFFV_MISC_CH, QStringLiteral("MISC")},
136 {FIFFV_RESP_CH, QStringLiteral("RESP")},
137 {FIFFV_REF_MEG_CH, QStringLiteral("MEGREF")},
138 {FIFFV_ECOG_CH, QStringLiteral("ECOG")},
139 {FIFFV_SEEG_CH, QStringLiteral("SEEG")},
140 {FIFFV_DBS_CH, QStringLiteral("DBS")},
141 };
142}
143
150inline QMap<QString, int> bidsTypeToFiffKind()
151{
152 return {
153 {QStringLiteral("MEGMAG"), FIFFV_MEG_CH},
154 {QStringLiteral("MEGGRAD"), FIFFV_MEG_CH},
155 {QStringLiteral("MEGREF"), FIFFV_REF_MEG_CH},
156 {QStringLiteral("EEG"), FIFFV_EEG_CH},
157 {QStringLiteral("ECOG"), FIFFV_ECOG_CH},
158 {QStringLiteral("SEEG"), FIFFV_SEEG_CH},
159 {QStringLiteral("DBS"), FIFFV_DBS_CH},
160 {QStringLiteral("EOG"), FIFFV_EOG_CH},
161 {QStringLiteral("ECG"), FIFFV_ECG_CH},
162 {QStringLiteral("EMG"), FIFFV_EMG_CH},
163 {QStringLiteral("TRIG"), FIFFV_STIM_CH},
164 {QStringLiteral("MISC"), FIFFV_MISC_CH},
165 {QStringLiteral("RESP"), FIFFV_RESP_CH},
166 };
167}
168
169//=============================================================================================================
170// Coordinate system mappings: BIDS string ↔ FIFF coordinate frame
171//=============================================================================================================
172
179inline QMap<QString, int> bidsCoordToFiffFrame()
180{
181 return {
182 {QStringLiteral("CTF"), FIFFV_COORD_HEAD},
183 {QStringLiteral("ElektaNeuromag"), FIFFV_COORD_HEAD},
184 {QStringLiteral("CapTrak"), FIFFV_COORD_HEAD},
185 {QStringLiteral("ACPC"), FIFFV_COORD_MRI},
186 {QStringLiteral("fsaverage"), FIFFV_MNE_COORD_MNI_TAL},
187 {QStringLiteral("MNI305"), FIFFV_MNE_COORD_MNI_TAL},
188 {QStringLiteral("fsaverageSymm"), FIFFV_MNE_COORD_MNI_TAL},
189 {QStringLiteral("Other"), FIFFV_COORD_UNKNOWN},
190 };
191}
192
198inline QMap<int, QString> fiffFrameToBidsCoord()
199{
200 return {
201 {FIFFV_COORD_HEAD, QStringLiteral("CapTrak")},
202 {FIFFV_COORD_MRI, QStringLiteral("ACPC")},
203 {FIFFV_MNE_COORD_MNI_TAL, QStringLiteral("MNI305")},
204 {FIFFV_COORD_UNKNOWN, QStringLiteral("Other")},
205 };
206}
207
208//=============================================================================================================
209// Allowed coordinate systems for iEEG
210//=============================================================================================================
211
217inline QStringList ieegAllowedCoordSystems()
218{
219 return {QStringLiteral("ACPC"),
220 QStringLiteral("Talairach"),
221 QStringLiteral("Other"),
222 QStringLiteral("fsaverage"),
223 QStringLiteral("fsaverageSymm"),
224 QStringLiteral("MNI305"),
225 QStringLiteral("MNI152Lin"),
226 QStringLiteral("MNI152NLin2009aSym"),
227 QStringLiteral("MNI152NLin2009bSym"),
228 QStringLiteral("MNI152NLin2009cSym"),
229 QStringLiteral("MNI152NLin2009aAsym"),
230 QStringLiteral("MNI152NLin2009bAsym"),
231 QStringLiteral("MNI152NLin2009cAsym"),
232 QStringLiteral("individual")};
233}
234
235//=============================================================================================================
236// BIDS entity ordering (for filename construction)
237//=============================================================================================================
238
244inline QStringList bidsEntityOrder()
245{
246 return {QStringLiteral("sub"),
247 QStringLiteral("ses"),
248 QStringLiteral("task"),
249 QStringLiteral("tracksys"),
250 QStringLiteral("acq"),
251 QStringLiteral("run"),
252 QStringLiteral("proc"),
253 QStringLiteral("space"),
254 QStringLiteral("recording"),
255 QStringLiteral("split"),
256 QStringLiteral("desc")};
257}
258
259} // namespace BIDSLIB
260
261#endif // BIDS_CONST_H
Symbolic FIFF tag, block, value, unit and channel-type constants shared across FIFFLIB.
#define FIFFV_EOG_CH
#define FIFFV_MNE_COORD_MNI_TAL
#define FIFFV_SEEG_CH
#define FIFFV_EEG_CH
#define FIFFV_RESP_CH
#define FIFFV_REF_MEG_CH
#define FIFFV_MISC_CH
#define FIFFV_MEG_CH
#define FIFFV_ECOG_CH
#define FIFFV_COORD_HEAD
#define FIFFV_COORD_MRI
#define FIFFV_STIM_CH
#define FIFFV_COORD_UNKNOWN
#define FIFFV_EMG_CH
#define FIFFV_ECG_CH
#define FIFFV_DBS_CH
BIDS dataset reading, writing, path construction, and sidecar metadata handling for iEEG/EEG/MEG.
const QString BIDS_DATATYPE_IEEG
Definition bids_const.h:55
QStringList eegAllowedExtensions()
Definition bids_const.h:107
const QString BIDS_DATATYPE_EEG
Definition bids_const.h:54
const QString BIDS_DATATYPE_MEG
Definition bids_const.h:53
QStringList allowedElectrophysiologyDatatypes()
Definition bids_const.h:67
const QString BIDS_DATATYPE_BEH
Definition bids_const.h:60
QStringList ieegAllowedExtensions()
Definition bids_const.h:93
QMap< int, QString > fiffKindToBidsType()
Definition bids_const.h:126
QStringList allowedDatatypes()
Definition bids_const.h:77
QStringList ieegAllowedCoordSystems()
Definition bids_const.h:217
QMap< QString, int > bidsCoordToFiffFrame()
Definition bids_const.h:179
QStringList bidsEntityOrder()
Definition bids_const.h:244
const QString BIDS_DATATYPE_DWI
Definition bids_const.h:58
const QString BIDS_DATATYPE_FUNC
Definition bids_const.h:57
const QString BIDS_DATATYPE_ANAT
Definition bids_const.h:56
QMap< QString, int > bidsTypeToFiffKind()
Definition bids_const.h:150
const QString BIDS_DATATYPE_PERF
Definition bids_const.h:59
QMap< int, QString > fiffFrameToBidsCoord()
Definition bids_const.h:198