v2.0.0
Loading...
Searching...
No Matches
fiff_evoked.h
Go to the documentation of this file.
1//=============================================================================================================
29
30#ifndef FIFF_EVOKED_H
31#define FIFF_EVOKED_H
32
33//=============================================================================================================
34// INCLUDES
35//=============================================================================================================
36
37#include "fiff_global.h"
38#include "fiff_info.h"
39#include "fiff_types.h"
40#include "fiff_file.h"
41
42//=============================================================================================================
43// EIGEN INCLUDES
44//=============================================================================================================
45
46#include <Eigen/Core>
47
48//=============================================================================================================
49// QT INCLUDES
50//=============================================================================================================
51
52#include <QString>
53#include <QVariant>
54#include <QPair>
55#include <QSharedPointer>
56#include <memory>
57
58//=============================================================================================================
59// DEFINE NAMESPACE MNELIB
60//=============================================================================================================
61
62namespace FIFFLIB
63{
64
65//=============================================================================================================
77{
78public:
79 using SPtr = QSharedPointer<FiffEvoked>;
80 using ConstSPtr = QSharedPointer<const FiffEvoked>;
81 using UPtr = std::unique_ptr<FiffEvoked>;
82 using ConstUPtr = std::unique_ptr<const FiffEvoked>;
83
84 //=========================================================================================================
88 FiffEvoked();
89
90 //=========================================================================================================
103 FiffEvoked(QIODevice& p_IODevice,
104 QVariant setno = 0,
105 QPair<float, float> t_baseline = defaultFloatPair,
106 bool proj = true,
107 fiff_int_t p_aspect_kind = FIFFV_ASPECT_AVERAGE);
108
109 //=========================================================================================================
115 FiffEvoked(const FiffEvoked& p_FiffEvoked);
116
117 //=========================================================================================================
128 FiffEvoked& operator=(const FiffEvoked& other) = default;
129
130 //=========================================================================================================
134 ~FiffEvoked();
135
136 //=========================================================================================================
142 inline QStringList ch_names();
143
144 //=========================================================================================================
148 void clear();
149
150 //=========================================================================================================
157 inline QString aspectKindToString() const;
158
159 //=========================================================================================================
165 inline bool isEmpty() const;
166
167 //=========================================================================================================
179 FiffEvoked pick_channels(const QStringList& include = defaultQStringList,
180 const QStringList& exclude = defaultQStringList) const;
181
182 //=========================================================================================================
203 static bool read(QIODevice& p_IODevice,
204 FiffEvoked& p_FiffEvoked,
205 QVariant setno = 0, QPair<float, float> t_baseline = defaultFloatPair,
206 bool proj = true,
207 fiff_int_t p_aspect_kind = FIFFV_ASPECT_AVERAGE);
208
209 //=========================================================================================================
216 void setInfo(const FiffInfo& p_info,
217 bool applyProj = true);
218
219 //=========================================================================================================
227 FiffEvoked& operator+=(const Eigen::MatrixXd& newData);
228
230 enum class CombineWeights
231 {
232 Nave,
233 Equal
234 };
235
236 //=========================================================================================================
250 static FiffEvoked combine(const QList<FiffEvoked>& evokeds, const Eigen::VectorXd& weights);
251
252 //=========================================================================================================
261 static FiffEvoked combine(const QList<FiffEvoked>& evokeds, CombineWeights weights);
262
263 //=========================================================================================================
269 void applyBaselineCorrection(QPair<float, float>& p_baseline);
270
271public:
277 QString comment;
278 Eigen::RowVectorXf times;
279 Eigen::MatrixXd data;
280 Eigen::MatrixXd proj;
281 QPair<float, float> baseline;
282};
283
284//=============================================================================================================
285// INLINE DEFINITIONS
286//=============================================================================================================
287
288inline QStringList FiffEvoked::ch_names()
289{
290 return info.ch_names;
291}
292
293//=============================================================================================================
294
295inline QString FiffEvoked::aspectKindToString() const
296{
298 return QString("Average");
300 return QString("Standard_error");
301 else
302 return QString("Unknown");
303}
304
305//=============================================================================================================
306
307inline bool FiffEvoked::isEmpty() const
308{
309 return nave == -1;
310}
311
312} // NAMESPACE
313
314#ifndef metatype_fiffevoked
315#define metatype_fiffevoked
317#endif
318
319#ifndef metatype_fiffevokedsptr
320#define metatype_fiffevokedsptr
322#endif
323
324#endif // FIFF_EVOKED_H
Q_DECLARE_METATYPE(FIFFLIB::FiffEvoked)
Full FIFF measurement metadata: everything from FIFFB_MEAS / FIFFB_MEAS_INFO needed to interpret a re...
FIFF tag-kind, block-kind and type-code numerical definitions, authoritative for FIFFLIB.
constexpr auto FIFFV_ASPECT_AVERAGE
Definition fiff_file.h:429
constexpr auto FIFFV_ASPECT_STD_ERR
Definition fiff_file.h:430
Export/import macros and build-info accessors for the FIFFLIB shared library.
#define FIFFSHARED_EXPORT
Definition fiff_global.h:44
Primitive scalar typedefs and forward-compatible aliases backing the FIFF type system.
FIFF file I/O, in-memory data structures and high-level readers/writers.
qint32 fiff_int_t
Definition fiff_types.h:86
Single averaged evoked response: time axis, data, baseline, channel info and averaging metadata.
Definition fiff_evoked.h:77
QSharedPointer< FiffEvoked > SPtr
Definition fiff_evoked.h:79
Eigen::MatrixXd proj
Eigen::RowVectorXf times
static FiffEvoked combine(const QList< FiffEvoked > &evokeds, const Eigen::VectorXd &weights)
Eigen::MatrixXd data
FiffEvoked pick_channels(const QStringList &include=defaultQStringList, const QStringList &exclude=defaultQStringList) const
bool isEmpty() const
QStringList ch_names()
QString aspectKindToString() const
FiffEvoked & operator=(const FiffEvoked &other)=default
fiff_int_t aspect_kind
QPair< float, float > baseline
void setInfo(const FiffInfo &p_info, bool applyProj=true)
QSharedPointer< const FiffEvoked > ConstSPtr
Definition fiff_evoked.h:80
std::unique_ptr< const FiffEvoked > ConstUPtr
Definition fiff_evoked.h:82
FiffEvoked & operator+=(const Eigen::MatrixXd &newData)
static bool read(QIODevice &p_IODevice, FiffEvoked &p_FiffEvoked, QVariant setno=0, QPair< float, float > t_baseline=defaultFloatPair, bool proj=true, fiff_int_t p_aspect_kind=FIFFV_ASPECT_AVERAGE)
std::unique_ptr< FiffEvoked > UPtr
Definition fiff_evoked.h:81
void applyBaselineCorrection(QPair< float, float > &p_baseline)
Full FIFF measurement info: per-channel descriptors, sampling and filter setup, projectors,...
Definition fiff_info.h:90