v2.0.0
Loading...
Searching...
No Matches
fiff_evoked_set.h
Go to the documentation of this file.
1//=============================================================================================================
36
37#ifndef FIFF_EVOKED_SET_H
38#define FIFF_EVOKED_SET_H
39
40//=============================================================================================================
41// INCLUDES
42//=============================================================================================================
43
44#include "fiff_info.h"
45#include "fiff_evoked.h"
46#include "fiff_global.h"
47
48#include <Eigen/Core>
49#include <QVector>
50
51//=============================================================================================================
52// QT INCLUDES
53//=============================================================================================================
54
55#include <QIODevice>
56#include <QList>
57#include <QSharedPointer>
58#include <QStringList>
59
60//=============================================================================================================
61// EIGEN INCLUDES
62//=============================================================================================================
63
64#include <Eigen/Core>
65#include <memory>
66
67//=============================================================================================================
68// DEFINE NAMESPACE MNELIB
69//=============================================================================================================
70
71namespace FIFFLIB
72{
73
74class FiffRawData;
75
76//=============================================================================================================
82 float stimIgnore = 0.0f;
83 float megGradReject = 2000e-13f;
84 float megMagReject = 3e-12f;
85 float eegReject = 100e-6f;
86 float eogReject = 150e-6f;
87 float ecgReject = 0.0f;
88 float megGradFlat = 0.0f;
89 float megMagFlat = 0.0f;
90 float eegFlat = 0.0f;
91 float eogFlat = 0.0f;
92 float ecgFlat = 0.0f;
93};
94
95//=============================================================================================================
101 QString comment;
102 QVector<unsigned int> events;
103 unsigned int nextEvent = 0;
104 unsigned int prevEvent = 0;
105 unsigned int ignore = 0;
106 unsigned int prevIgnore = 0;
107 unsigned int nextIgnore = 0;
108 float delay = 0.0f;
109 float tmin = -0.2f;
110 float tmax = 0.5f;
111 float bmin = 0.0f;
112 float bmax = 0.0f;
113 bool doBaseline = false;
114 bool doStdErr = false;
115 bool doAbs = false;
116 float color[3] = {0,0,0};
117};
118
119//=============================================================================================================
125 QString comment;
126 QList<AverageCategory> categories;
128 bool fixSkew = false;
129 QString filename;
130 QString eventFile;
131 QString logFile;
132};
133
134//=============================================================================================================
141{
142
143public:
144 using SPtr = QSharedPointer<FiffEvokedSet>;
145 using ConstSPtr = QSharedPointer<const FiffEvokedSet>;
146 using UPtr = std::unique_ptr<FiffEvokedSet>;
147 using ConstUPtr = std::unique_ptr<const FiffEvokedSet>;
148
149 //=========================================================================================================
154
155 //=========================================================================================================
161 FiffEvokedSet(QIODevice& p_IODevice);
162
163 //=========================================================================================================
169 FiffEvokedSet(const FiffEvokedSet& p_FiffEvokedSet);
170
171 //=========================================================================================================
176
177 //=========================================================================================================
181 void clear();
182
183 //=========================================================================================================
194 FiffEvokedSet pick_channels(const QStringList& include = defaultQStringList,
195 const QStringList& exclude = defaultQStringList) const;
196
197 //=========================================================================================================
208 bool compensate_to(FiffEvokedSet &p_FiffEvokedSet,
209 fiff_int_t to) const;
210
211 //=========================================================================================================
221 bool find_evoked(const FiffEvokedSet& p_FiffEvokedSet) const;
222
223 //=========================================================================================================
241 static bool read(QIODevice& p_IODevice,
242 FiffEvokedSet& p_FiffEvokedSet,
243 QPair<float,float> baseline = defaultFloatPair,
244 bool proj = true);
245
246 //=========================================================================================================
253 bool save(const QString &fileName) const;
254
255 //=========================================================================================================
264 static FiffEvokedSet computeGrandAverage(const QList<FiffEvokedSet> &evokedSets);
265
266 //=========================================================================================================
279 static FiffEvokedSet computeAverages(const FiffRawData &raw,
280 const AverageDescription &desc,
281 const Eigen::MatrixXi &events,
282 QString &log);
283
284 //=========================================================================================================
295 static bool checkArtifacts(const Eigen::MatrixXd &epoch,
296 const FiffInfo &info,
297 const QStringList &bads,
298 const RejectionParams &rej,
299 QString &reason);
300
311 static void subtractBaseline(Eigen::MatrixXd &epoch, int bminSamp, int bmaxSamp);
312
313public:
315 QList<FiffEvoked> evoked;
316};
317} // NAMESPACE
318
319#ifndef metatype_fiffevokedset
320#define metatype_fiffevokedset
322#endif
323
324#ifndef metatype_fiffevokedsetsptr
325#define metatype_fiffevokedsetsptr
327#endif
328
329#endif // FIFF_EVOKED_SET_H
FiffInfo class declaration.
Fiff library export/import macros.
#define FIFFSHARED_EXPORT
Definition fiff_global.h:52
FiffEvoked class declaration.
Q_DECLARE_METATYPE(FIFFLIB::FiffEvokedSet)
FIFF file I/O and data structures (raw, epochs, evoked, covariance, forward).
qint32 fiff_int_t
Definition fiff_types.h:89
QVector< unsigned int > events
QList< AverageCategory > categories
bool compensate_to(FiffEvokedSet &p_FiffEvokedSet, fiff_int_t to) const
bool find_evoked(const FiffEvokedSet &p_FiffEvokedSet) const
static FiffEvokedSet computeAverages(const FiffRawData &raw, const AverageDescription &desc, const Eigen::MatrixXi &events, QString &log)
static void subtractBaseline(Eigen::MatrixXd &epoch, int bminSamp, int bmaxSamp)
Subtract baseline from each channel of an epoch.
QSharedPointer< const FiffEvokedSet > ConstSPtr
static bool checkArtifacts(const Eigen::MatrixXd &epoch, const FiffInfo &info, const QStringList &bads, const RejectionParams &rej, QString &reason)
QSharedPointer< FiffEvokedSet > SPtr
FiffEvokedSet pick_channels(const QStringList &include=defaultQStringList, const QStringList &exclude=defaultQStringList) const
static FiffEvokedSet computeGrandAverage(const QList< FiffEvokedSet > &evokedSets)
std::unique_ptr< const FiffEvokedSet > ConstUPtr
std::unique_ptr< FiffEvokedSet > UPtr
static bool read(QIODevice &p_IODevice, FiffEvokedSet &p_FiffEvokedSet, QPair< float, float > baseline=defaultFloatPair, bool proj=true)
QList< FiffEvoked > evoked
bool save(const QString &fileName) const
FIFF measurement file information.
Definition fiff_info.h:86
FIFF raw measurement data.