MNE-CPP  0.1.9
A Framework for Electrophysiology
network.h
Go to the documentation of this file.
1 //=============================================================================================================
35 #ifndef NETWORK_H
36 #define NETWORK_H
37 
38 //=============================================================================================================
39 // INCLUDES
40 //=============================================================================================================
41 
42 #include "../connectivity_global.h"
43 
44 //=============================================================================================================
45 // QT INCLUDES
46 //=============================================================================================================
47 
48 #include <QSharedPointer>
49 
50 //=============================================================================================================
51 // EIGEN INCLUDES
52 //=============================================================================================================
53 
54 #include <Eigen/Core>
55 
56 //=============================================================================================================
57 // FORWARD DECLARATIONS
58 //=============================================================================================================
59 
60 //=============================================================================================================
61 // DEFINE NAMESPACE CONNECTIVITYLIB
62 //=============================================================================================================
63 
64 namespace CONNECTIVITYLIB {
65 
66 //=============================================================================================================
67 // CONNECTIVITYLIB FORWARD DECLARATIONS
68 //=============================================================================================================
69 
70 class NetworkEdge;
71 class NetworkNode;
72 
74  QString sMethod = "Map";
75  QString sColormap = "Viridis";
76  Eigen::Vector4i colNodes = Eigen::Vector4i(255, 0, 0, 255);
77  Eigen::Vector4i colEdges = Eigen::Vector4i(255, 0, 0, 255);
78 };
79 
80 //=============================================================================================================
88 {
89 
90 public:
91  typedef QSharedPointer<Network> SPtr;
92  typedef QSharedPointer<const Network> ConstSPtr;
94  //=========================================================================================================
101  explicit Network(const QString& sConnectivityMethod = "Unknown",
102  double dThreshold = 0.0);
103 
104  //=========================================================================================================
114  Eigen::MatrixXd getFullConnectivityMatrix(bool bGetMirroredVersion = true) const;
115 
116  //=========================================================================================================
126  Eigen::MatrixXd getThresholdedConnectivityMatrix(bool bGetMirroredVersion = true) const;
127 
128  //=========================================================================================================
134  const QList<QSharedPointer<NetworkEdge> >& getFullEdges() const;
135 
136  //=========================================================================================================
142  const QList<QSharedPointer<NetworkEdge> >& getThresholdedEdges() const;
143 
144  //=========================================================================================================
150  const QList<QSharedPointer<NetworkNode> >& getNodes() const;
151 
152  //=========================================================================================================
160  QSharedPointer<NetworkEdge> getEdgeAt(int i);
161 
162  //=========================================================================================================
170  QSharedPointer<NetworkNode> getNodeAt(int i);
171 
172  //=========================================================================================================
178  qint16 getFullDistribution() const;
179 
180  //=========================================================================================================
186  qint16 getThresholdedDistribution() const;
187 
188  //=========================================================================================================
194  void setConnectivityMethod(const QString& sConnectivityMethod);
195 
196  //=========================================================================================================
202  QString getConnectivityMethod() const;
203 
204  //=========================================================================================================
210  QPair<double, double> getMinMaxFullWeights() const;
211 
212  //=========================================================================================================
218  QPair<double, double> getMinMaxThresholdedWeights() const;
219 
220  //=========================================================================================================
226  QPair<int,int> getMinMaxFullDegrees() const;
227 
228  //=========================================================================================================
234  QPair<int,int> getMinMaxThresholdedDegrees() const;
235 
236  //=========================================================================================================
242  QPair<int,int> getMinMaxFullIndegrees() const;
243 
244  //=========================================================================================================
250  QPair<int,int> getMinMaxThresholdedIndegrees() const;
251 
252  //=========================================================================================================
258  QPair<int,int> getMinMaxFullOutdegrees() const;
259 
260  //=========================================================================================================
266  QPair<int,int> getMinMaxThresholdedOutdegrees() const;
267 
268  //=========================================================================================================
274  void setThreshold(double dThreshold = 0.0);
275 
276  //=========================================================================================================
282  double getThreshold();
283 
284  //=========================================================================================================
291  void setFrequencyRange(float fLowerFreq, float fUpperFreq);
292 
293  //=========================================================================================================
299  const QPair<float,float>& getFrequencyRange() const;
300 
301  //=========================================================================================================
307  void append(QSharedPointer<NetworkEdge> newEdge);
308 
309  //=========================================================================================================
315  void append(QSharedPointer<NetworkNode> newNode);
316 
317  //=========================================================================================================
323  bool isEmpty() const;
324 
325  //=========================================================================================================
329  void normalize();
330 
331  //=========================================================================================================
337  VisualizationInfo getVisualizationInfo() const;
338 
339  //=========================================================================================================
345  void setVisualizationInfo(const VisualizationInfo& visualizationInfo);
346 
347  //=========================================================================================================
353  float getSamplingFrequency() const;
354 
355  //=========================================================================================================
361  void setSamplingFrequency(float fSFreq);
362 
363  //=========================================================================================================
369  int getUsedFreqBins() const;
370 
371  //=========================================================================================================
377  void setUsedFreqBins(int iNumberFreqBins);
378 
379  //=========================================================================================================
385  void setFFTSize(int iFFTSize);
386 
387  //=========================================================================================================
393  int getFFTSize();
394 
395 protected:
396  QList<QSharedPointer<NetworkEdge> > m_lFullEdges;
397  QList<QSharedPointer<NetworkEdge> > m_lThresholdedEdges;
399  QList<QSharedPointer<NetworkNode> > m_lNodes;
401  Eigen::MatrixXd m_matDistMatrix;
405  QPair<double,double> m_minMaxFullWeights;
406  QPair<double,double> m_minMaxThresholdedWeights;
407  QPair<float,float> m_minMaxFrequency;
409  double m_dThreshold;
410  float m_fSFreq;
415 };
416 
417 //=============================================================================================================
418 // INLINE DEFINITIONS
419 //=============================================================================================================
420 } // namespace CONNECTIVITYLIB
421 
422 #ifndef metatype_networks
423 #define metatype_networks
425 #endif
426 
427 #ifndef metatype_networkslist
428 #define metatype_networkslist
429 Q_DECLARE_METATYPE(QList<CONNECTIVITYLIB::Network>);
430 #endif
431 
432 #ifndef metatype_networkssptr
433 #define metatype_networkssptr
435 #endif
436 
437 #ifndef metatype_networkssptrlist
438 #define metatype_networkssptrlist
439 Q_DECLARE_METATYPE(QList<CONNECTIVITYLIB::Network::SPtr>);
440 #endif
441 
442 #endif // NETWORK_H
CONNECTIVITYLIB::Network::m_sConnectivityMethod
QString m_sConnectivityMethod
Definition: network.h:403
Q_DECLARE_METATYPE
Q_DECLARE_METATYPE(Eigen::MatrixXf)
CONNECTIVITYLIB::Network::m_visualizationInfo
VisualizationInfo m_visualizationInfo
Definition: network.h:414
CONNECTIVITYLIB::VisualizationInfo::colEdges
Eigen::Vector4i colEdges
Definition: network.h:77
CONNECTIVITYLIB::Network::m_matDistMatrix
Eigen::MatrixXd m_matDistMatrix
Definition: network.h:401
CONNECTIVITYLIB::Network::m_lThresholdedEdges
QList< QSharedPointer< NetworkEdge > > m_lThresholdedEdges
Definition: network.h:397
CONNECTIVITYLIB::Network::m_lFullEdges
QList< QSharedPointer< NetworkEdge > > m_lFullEdges
Definition: network.h:396
CONNECTIVITYLIB::VisualizationInfo::sMethod
QString sMethod
Definition: network.h:74
CONNECTIVITYLIB::VisualizationInfo::colNodes
Eigen::Vector4i colNodes
Definition: network.h:76
CONNECTIVITYLIB::Network::m_minMaxFullWeights
QPair< double, double > m_minMaxFullWeights
Definition: network.h:405
CONNECTIVITYLIB::Network::SPtr
QSharedPointer< Network > SPtr
Definition: network.h:91
CONNECTIVITYLIB::VisualizationInfo::sColormap
QString sColormap
Definition: network.h:75
CONNECTIVITYSHARED_EXPORT
#define CONNECTIVITYSHARED_EXPORT
Definition: connectivity_global.h:54
CONNECTIVITYLIB::Network::m_lNodes
QList< QSharedPointer< NetworkNode > > m_lNodes
Definition: network.h:399
CONNECTIVITYLIB::Network::m_minMaxFrequency
QPair< float, float > m_minMaxFrequency
Definition: network.h:407
CONNECTIVITYLIB::Network::m_iNumberFreqBins
int m_iNumberFreqBins
Definition: network.h:411
CONNECTIVITYLIB::Network::m_minMaxThresholdedWeights
QPair< double, double > m_minMaxThresholdedWeights
Definition: network.h:406
CONNECTIVITYLIB::Network::ConstSPtr
QSharedPointer< const Network > ConstSPtr
Definition: network.h:92
CONNECTIVITYLIB::VisualizationInfo
Definition: network.h:73
CONNECTIVITYLIB::Network::m_iFFTSize
int m_iFFTSize
Definition: network.h:412
CONNECTIVITYLIB::Network
This class holds information about a network, can compute a distance table and provide network metric...
Definition: network.h:87
CONNECTIVITYLIB::Network::m_fSFreq
float m_fSFreq
Definition: network.h:410
CONNECTIVITYLIB::Network::m_dThreshold
double m_dThreshold
Definition: network.h:409