MNE-CPP  0.1.9
A Framework for Electrophysiology
connectivitysettings.h
Go to the documentation of this file.
1 //=============================================================================================================
36 #ifndef CONNECTIVITYSETTINGS_H
37 #define CONNECTIVITYSETTINGS_H
38 
39 //=============================================================================================================
40 // INCLUDES
41 //=============================================================================================================
42 
43 #include "connectivity_global.h"
44 
45 //=============================================================================================================
46 // QT INCLUDES
47 //=============================================================================================================
48 
49 #include <QSharedPointer>
50 #include <QStringList>
51 #include <QVector>
52 
53 //=============================================================================================================
54 // EIGEN INCLUDES
55 //=============================================================================================================
56 
57 #include <Eigen/Core>
58 
59 //=============================================================================================================
60 // FORWARD DECLARATIONS
61 //=============================================================================================================
62 
63 namespace MNELIB {
64  class MNEForwardSolution;
65 }
66 
67 namespace FSLIB {
68  class SurfaceSet;
69 }
70 
71 namespace FIFFLIB {
72  class FiffInfo;
73 }
74 
75 //=============================================================================================================
76 // DEFINE NAMESPACE CONNECTIVITYLIB
77 //=============================================================================================================
78 
79 namespace CONNECTIVITYLIB {
80 
81 //=============================================================================================================
82 // CONNECTIVITYLIB FORWARD DECLARATIONS
83 //=============================================================================================================
84 
85 //=============================================================================================================
92 {
93 
94 public:
95  typedef QSharedPointer<ConnectivitySettings> SPtr;
96  typedef QSharedPointer<const ConnectivitySettings> ConstSPtr;
99  Eigen::MatrixXd matData;
100  Eigen::MatrixXd matPsd;
101  QVector<Eigen::MatrixXcd> vecTapSpectra;
102  QVector<QPair<int,Eigen::MatrixXcd> > vecPairCsd;
103  QVector<QPair<int,Eigen::MatrixXcd> > vecPairCsdNormalized;
104  QVector<QPair<int,Eigen::MatrixXd> > vecPairCsdImagSign;
105  QVector<QPair<int,Eigen::MatrixXd> > vecPairCsdImagAbs;
106  QVector<QPair<int,Eigen::MatrixXd> > vecPairCsdImagSqrd;
107  };
108 
110  Eigen::MatrixXd matPsdSum;
111  QVector<QPair<int,Eigen::MatrixXcd> > vecPairCsdSum;
112  QVector<QPair<int,Eigen::MatrixXcd> > vecPairCsdNormalizedSum;
113  QVector<QPair<int,Eigen::MatrixXd> > vecPairCsdImagSignSum;
114  QVector<QPair<int,Eigen::MatrixXd> > vecPairCsdImagAbsSum;
115  QVector<QPair<int,Eigen::MatrixXd> > vecPairCsdImagSqrdSum;
116  };
117 
118  //=========================================================================================================
122  explicit ConnectivitySettings();
123 
124  void clearAllData();
125 
126  void clearIntermediateData();
127 
128  void append(const QList<Eigen::MatrixXd>& matInputData);
129 
130  void append(const Eigen::MatrixXd& matInputData);
131 
132  void append(const ConnectivitySettings::IntermediateTrialData& inputData);
133 
134  const IntermediateTrialData& at(int i) const;
135 
136  int size() const;
137 
138  bool isEmpty() const;
139 
140  void removeFirst(int iAmount = 1);
141 
142  void removeLast(int iAmount = 1);
143 
144  void setConnectivityMethods(const QStringList& sConnectivityMethods);
145 
146  const QStringList& getConnectivityMethods() const;
147 
148  void setSamplingFrequency(int iSFreq);
149 
150  int getSamplingFrequency() const;
151 
152  void setFFTSize(int iNfft);
153 
154  int getFFTSize() const;
155 
156  void setWindowType(const QString& sWindowType);
157 
158  const QString& getWindowType() const;
159 
160  void setNodePositions(const FIFFLIB::FiffInfo& fiffInfo,
161  const Eigen::RowVectorXi& picks);
162 
163  void setNodePositions(const MNELIB::MNEForwardSolution& forwardSolution,
164  const FSLIB::SurfaceSet& surfSet);
165 
166  void setNodePositions(const Eigen::MatrixX3f& matNodePositions);
167 
168  const Eigen::MatrixX3f& getNodePositions() const;
169 
170  QList<IntermediateTrialData>& getTrialData();
171 
172  IntermediateSumData& getIntermediateSumData();
173 
174 protected:
176  QString m_sWindowType;
178  float m_fSFreq;
179  int m_iNfft;
182  Eigen::MatrixX3f m_matNodePositions;
185  QList<IntermediateTrialData> m_trialData;
186 };
187 
188 //=============================================================================================================
189 // INLINE DEFINITIONS
190 //=============================================================================================================
191 } // namespace CONNECTIVITYLIB
192 
193 #ifndef metatype_connectivitysettings
194 #define metatype_connectivitysettings
196 #endif
197 
198 #endif // CONNECTIVITYSETTINGS_H
This class is a container for connectivity settings.
connectivity library export/import macros.
QList< IntermediateTrialData > m_trialData
QSharedPointer< const ConnectivitySettings > ConstSPtr
FIFF measurement file information.
Definition: fiff_info.h:84
QSharedPointer< ConnectivitySettings > SPtr
Q_DECLARE_METATYPE(Eigen::MatrixXf)
#define CONNECTIVITYSHARED_EXPORT
A hemisphere set of surfaces.
Definition: surfaceset.h:71