v2.0.0
Loading...
Searching...
No Matches
bids_const.h
Go to the documentation of this file.
1//=============================================================================================================
34
35#ifndef BIDS_CONST_H
36#define BIDS_CONST_H
37
38//=============================================================================================================
39// INCLUDES
40//=============================================================================================================
41
42#include <fiff/fiff_constants.h>
43
44#include <QMap>
45#include <QString>
46#include <QStringList>
47
48//=============================================================================================================
49// DEFINE NAMESPACE BIDSLIB
50//=============================================================================================================
51
52namespace BIDSLIB
53{
54
55//=============================================================================================================
56// BIDS datatypes
57//=============================================================================================================
58
60const QString BIDS_DATATYPE_MEG = QStringLiteral("meg");
61const QString BIDS_DATATYPE_EEG = QStringLiteral("eeg");
62const QString BIDS_DATATYPE_IEEG = QStringLiteral("ieeg");
63const QString BIDS_DATATYPE_ANAT = QStringLiteral("anat");
64const QString BIDS_DATATYPE_FUNC = QStringLiteral("func");
65const QString BIDS_DATATYPE_DWI = QStringLiteral("dwi");
66const QString BIDS_DATATYPE_PERF = QStringLiteral("perf");
67const QString BIDS_DATATYPE_BEH = QStringLiteral("beh");
68
74
82
83//=============================================================================================================
84// BIDS file extensions for iEEG raw data
85//=============================================================================================================
86
88inline QStringList ieegAllowedExtensions()
89{
90 return {QStringLiteral(".vhdr"), // BrainVision header
91 QStringLiteral(".edf"), // European Data Format
92 QStringLiteral(".set"), // EEGLAB
93 QStringLiteral(".mef"), // MEF3
94 QStringLiteral(".nwb")}; // NWB
95}
96
98inline QStringList eegAllowedExtensions()
99{
100 return {QStringLiteral(".vhdr"),
101 QStringLiteral(".edf"),
102 QStringLiteral(".bdf"),
103 QStringLiteral(".set"),
104 QStringLiteral(".fif")};
105}
106
107//=============================================================================================================
108// Channel type mapping: MNE FIFF kind → BIDS string
109//=============================================================================================================
110
115inline QMap<int, QString> fiffKindToBidsType()
116{
117 return {
118 {FIFFV_MEG_CH, QStringLiteral("MEGMAG")},
119 {FIFFV_EEG_CH, QStringLiteral("EEG")},
120 {FIFFV_STIM_CH, QStringLiteral("TRIG")},
121 {FIFFV_EOG_CH, QStringLiteral("EOG")},
122 {FIFFV_ECG_CH, QStringLiteral("ECG")},
123 {FIFFV_EMG_CH, QStringLiteral("EMG")},
124 {FIFFV_MISC_CH, QStringLiteral("MISC")},
125 {FIFFV_RESP_CH, QStringLiteral("RESP")},
126 {FIFFV_REF_MEG_CH, QStringLiteral("MEGREF")},
127 {FIFFV_ECOG_CH, QStringLiteral("ECOG")},
128 {FIFFV_SEEG_CH, QStringLiteral("SEEG")},
129 {FIFFV_DBS_CH, QStringLiteral("DBS")},
130 };
131}
132
137inline QMap<QString, int> bidsTypeToFiffKind()
138{
139 return {
140 {QStringLiteral("MEGMAG"), FIFFV_MEG_CH},
141 {QStringLiteral("MEGGRAD"), FIFFV_MEG_CH},
142 {QStringLiteral("MEGREF"), FIFFV_REF_MEG_CH},
143 {QStringLiteral("EEG"), FIFFV_EEG_CH},
144 {QStringLiteral("ECOG"), FIFFV_ECOG_CH},
145 {QStringLiteral("SEEG"), FIFFV_SEEG_CH},
146 {QStringLiteral("DBS"), FIFFV_DBS_CH},
147 {QStringLiteral("EOG"), FIFFV_EOG_CH},
148 {QStringLiteral("ECG"), FIFFV_ECG_CH},
149 {QStringLiteral("EMG"), FIFFV_EMG_CH},
150 {QStringLiteral("TRIG"), FIFFV_STIM_CH},
151 {QStringLiteral("MISC"), FIFFV_MISC_CH},
152 {QStringLiteral("RESP"), FIFFV_RESP_CH},
153 };
154}
155
156//=============================================================================================================
157// Coordinate system mappings: BIDS string ↔ FIFF coordinate frame
158//=============================================================================================================
159
164inline QMap<QString, int> bidsCoordToFiffFrame()
165{
166 return {
167 {QStringLiteral("CTF"), FIFFV_COORD_HEAD},
168 {QStringLiteral("ElektaNeuromag"), FIFFV_COORD_HEAD},
169 {QStringLiteral("CapTrak"), FIFFV_COORD_HEAD},
170 {QStringLiteral("ACPC"), FIFFV_COORD_MRI},
171 {QStringLiteral("fsaverage"), FIFFV_MNE_COORD_MNI_TAL},
172 {QStringLiteral("MNI305"), FIFFV_MNE_COORD_MNI_TAL},
173 {QStringLiteral("fsaverageSymm"), FIFFV_MNE_COORD_MNI_TAL},
174 {QStringLiteral("Other"), FIFFV_COORD_UNKNOWN},
175 };
176}
177
181inline QMap<int, QString> fiffFrameToBidsCoord()
182{
183 return {
184 {FIFFV_COORD_HEAD, QStringLiteral("CapTrak")},
185 {FIFFV_COORD_MRI, QStringLiteral("ACPC")},
186 {FIFFV_MNE_COORD_MNI_TAL, QStringLiteral("MNI305")},
187 {FIFFV_COORD_UNKNOWN, QStringLiteral("Other")},
188 };
189}
190
191//=============================================================================================================
192// Allowed coordinate systems for iEEG
193//=============================================================================================================
194
196inline QStringList ieegAllowedCoordSystems()
197{
198 return {QStringLiteral("ACPC"),
199 QStringLiteral("Talairach"),
200 QStringLiteral("Other"),
201 QStringLiteral("fsaverage"),
202 QStringLiteral("fsaverageSymm"),
203 QStringLiteral("MNI305"),
204 QStringLiteral("MNI152Lin"),
205 QStringLiteral("MNI152NLin2009aSym"),
206 QStringLiteral("MNI152NLin2009bSym"),
207 QStringLiteral("MNI152NLin2009cSym"),
208 QStringLiteral("MNI152NLin2009aAsym"),
209 QStringLiteral("MNI152NLin2009bAsym"),
210 QStringLiteral("MNI152NLin2009cAsym"),
211 QStringLiteral("individual")};
212}
213
214//=============================================================================================================
215// BIDS entity ordering (for filename construction)
216//=============================================================================================================
217
219inline QStringList bidsEntityOrder()
220{
221 return {QStringLiteral("sub"),
222 QStringLiteral("ses"),
223 QStringLiteral("task"),
224 QStringLiteral("acq"),
225 QStringLiteral("run"),
226 QStringLiteral("proc"),
227 QStringLiteral("space"),
228 QStringLiteral("rec"),
229 QStringLiteral("split"),
230 QStringLiteral("desc"),
231 QStringLiteral("tracking_system")};
232}
233
234} // namespace BIDSLIB
235
236#endif // BIDS_CONST_H
Fiff constants.
#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:62
QStringList eegAllowedExtensions()
Definition bids_const.h:98
const QString BIDS_DATATYPE_EEG
Definition bids_const.h:61
const QString BIDS_DATATYPE_MEG
Definition bids_const.h:60
QStringList allowedElectrophysiologyDatatypes()
Definition bids_const.h:70
const QString BIDS_DATATYPE_BEH
Definition bids_const.h:67
QStringList ieegAllowedExtensions()
Definition bids_const.h:88
QMap< int, QString > fiffKindToBidsType()
Definition bids_const.h:115
QStringList allowedDatatypes()
Definition bids_const.h:76
QStringList ieegAllowedCoordSystems()
Definition bids_const.h:196
QMap< QString, int > bidsCoordToFiffFrame()
Definition bids_const.h:164
QStringList bidsEntityOrder()
Definition bids_const.h:219
const QString BIDS_DATATYPE_DWI
Definition bids_const.h:65
const QString BIDS_DATATYPE_FUNC
Definition bids_const.h:64
const QString BIDS_DATATYPE_ANAT
Definition bids_const.h:63
QMap< QString, int > bidsTypeToFiffKind()
Definition bids_const.h:137
const QString BIDS_DATATYPE_PERF
Definition bids_const.h:66
QMap< int, QString > fiffFrameToBidsCoord()
Definition bids_const.h:181