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
67
75
76//=============================================================================================================
77// BIDS file extensions for iEEG raw data
78//=============================================================================================================
79
81inline QStringList ieegAllowedExtensions()
82{
83 return {QStringLiteral(".vhdr"), // BrainVision header
84 QStringLiteral(".edf"), // European Data Format
85 QStringLiteral(".set"), // EEGLAB
86 QStringLiteral(".mef"), // MEF3
87 QStringLiteral(".nwb")}; // NWB
88}
89
91inline QStringList eegAllowedExtensions()
92{
93 return {QStringLiteral(".vhdr"),
94 QStringLiteral(".edf"),
95 QStringLiteral(".bdf"),
96 QStringLiteral(".set"),
97 QStringLiteral(".fif")};
98}
99
100//=============================================================================================================
101// Channel type mapping: MNE FIFF kind → BIDS string
102//=============================================================================================================
103
108inline QMap<int, QString> fiffKindToBidsType()
109{
110 return {
111 {FIFFV_MEG_CH, QStringLiteral("MEGMAG")},
112 {FIFFV_EEG_CH, QStringLiteral("EEG")},
113 {FIFFV_STIM_CH, QStringLiteral("TRIG")},
114 {FIFFV_EOG_CH, QStringLiteral("EOG")},
115 {FIFFV_ECG_CH, QStringLiteral("ECG")},
116 {FIFFV_EMG_CH, QStringLiteral("EMG")},
117 {FIFFV_MISC_CH, QStringLiteral("MISC")},
118 {FIFFV_RESP_CH, QStringLiteral("RESP")},
119 {FIFFV_REF_MEG_CH, QStringLiteral("MEGREF")},
120 {FIFFV_ECOG_CH, QStringLiteral("ECOG")},
121 {FIFFV_SEEG_CH, QStringLiteral("SEEG")},
122 {FIFFV_DBS_CH, QStringLiteral("DBS")},
123 };
124}
125
130inline QMap<QString, int> bidsTypeToFiffKind()
131{
132 return {
133 {QStringLiteral("MEGMAG"), FIFFV_MEG_CH},
134 {QStringLiteral("MEGGRAD"), FIFFV_MEG_CH},
135 {QStringLiteral("MEGREF"), FIFFV_REF_MEG_CH},
136 {QStringLiteral("EEG"), FIFFV_EEG_CH},
137 {QStringLiteral("ECOG"), FIFFV_ECOG_CH},
138 {QStringLiteral("SEEG"), FIFFV_SEEG_CH},
139 {QStringLiteral("DBS"), FIFFV_DBS_CH},
140 {QStringLiteral("EOG"), FIFFV_EOG_CH},
141 {QStringLiteral("ECG"), FIFFV_ECG_CH},
142 {QStringLiteral("EMG"), FIFFV_EMG_CH},
143 {QStringLiteral("TRIG"), FIFFV_STIM_CH},
144 {QStringLiteral("MISC"), FIFFV_MISC_CH},
145 {QStringLiteral("RESP"), FIFFV_RESP_CH},
146 };
147}
148
149//=============================================================================================================
150// Coordinate system mappings: BIDS string ↔ FIFF coordinate frame
151//=============================================================================================================
152
157inline QMap<QString, int> bidsCoordToFiffFrame()
158{
159 return {
160 {QStringLiteral("CTF"), FIFFV_COORD_HEAD},
161 {QStringLiteral("ElektaNeuromag"), FIFFV_COORD_HEAD},
162 {QStringLiteral("CapTrak"), FIFFV_COORD_HEAD},
163 {QStringLiteral("ACPC"), FIFFV_COORD_MRI},
164 {QStringLiteral("fsaverage"), FIFFV_MNE_COORD_MNI_TAL},
165 {QStringLiteral("MNI305"), FIFFV_MNE_COORD_MNI_TAL},
166 {QStringLiteral("fsaverageSymm"), FIFFV_MNE_COORD_MNI_TAL},
167 {QStringLiteral("Other"), FIFFV_COORD_UNKNOWN},
168 };
169}
170
174inline QMap<int, QString> fiffFrameToBidsCoord()
175{
176 return {
177 {FIFFV_COORD_HEAD, QStringLiteral("CapTrak")},
178 {FIFFV_COORD_MRI, QStringLiteral("ACPC")},
179 {FIFFV_MNE_COORD_MNI_TAL, QStringLiteral("MNI305")},
180 {FIFFV_COORD_UNKNOWN, QStringLiteral("Other")},
181 };
182}
183
184//=============================================================================================================
185// Allowed coordinate systems for iEEG
186//=============================================================================================================
187
189inline QStringList ieegAllowedCoordSystems()
190{
191 return {QStringLiteral("ACPC"),
192 QStringLiteral("Talairach"),
193 QStringLiteral("Other"),
194 QStringLiteral("fsaverage"),
195 QStringLiteral("fsaverageSymm"),
196 QStringLiteral("MNI305"),
197 QStringLiteral("MNI152Lin"),
198 QStringLiteral("MNI152NLin2009aSym"),
199 QStringLiteral("MNI152NLin2009bSym"),
200 QStringLiteral("MNI152NLin2009cSym"),
201 QStringLiteral("MNI152NLin2009aAsym"),
202 QStringLiteral("MNI152NLin2009bAsym"),
203 QStringLiteral("MNI152NLin2009cAsym"),
204 QStringLiteral("individual")};
205}
206
207//=============================================================================================================
208// BIDS entity ordering (for filename construction)
209//=============================================================================================================
210
212inline QStringList bidsEntityOrder()
213{
214 return {QStringLiteral("sub"),
215 QStringLiteral("ses"),
216 QStringLiteral("task"),
217 QStringLiteral("acq"),
218 QStringLiteral("run"),
219 QStringLiteral("proc"),
220 QStringLiteral("space"),
221 QStringLiteral("rec"),
222 QStringLiteral("split"),
223 QStringLiteral("desc"),
224 QStringLiteral("tracking_system")};
225}
226
227} // namespace BIDSLIB
228
229#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:91
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:63
const QString BIDS_DATATYPE_BEH
Definition bids_const.h:60
QStringList ieegAllowedExtensions()
Definition bids_const.h:81
QMap< int, QString > fiffKindToBidsType()
Definition bids_const.h:108
QStringList allowedDatatypes()
Definition bids_const.h:69
QStringList ieegAllowedCoordSystems()
Definition bids_const.h:189
QMap< QString, int > bidsCoordToFiffFrame()
Definition bids_const.h:157
QStringList bidsEntityOrder()
Definition bids_const.h:212
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:130
const QString BIDS_DATATYPE_PERF
Definition bids_const.h:59
QMap< int, QString > fiffFrameToBidsCoord()
Definition bids_const.h:174