v2.0.0
Loading...
Searching...
No Matches
connectivity.cpp
Go to the documentation of this file.
1//=============================================================================================================
36
37//=============================================================================================================
38// INCLUDES
39//=============================================================================================================
40
41#include "connectivity.h"
42
44#include "network/network.h"
45#include "metrics/correlation.h"
47#include "metrics/coherence.h"
57
58//=============================================================================================================
59// QT INCLUDES
60//=============================================================================================================
61
62#include <QDebug>
63#include <QFutureSynchronizer>
64#include <QtConcurrent>
65
66//=============================================================================================================
67// EIGEN INCLUDES
68//=============================================================================================================
69
70//=============================================================================================================
71// USED NAMESPACES
72//=============================================================================================================
73
74using namespace CONNLIB;
75
76//=============================================================================================================
77// DEFINE GLOBAL METHODS
78//=============================================================================================================
79
80//=============================================================================================================
81// DEFINE MEMBER METHODS
82//=============================================================================================================
83
87
88//=============================================================================================================
89
90QList<Network> Connectivity::calculate(ConnectivitySettings& connectivitySettings)
91{
92 QStringList lMethods = connectivitySettings.getConnectivityMethods();
93 QList<Network> results;
94 QElapsedTimer timer;
95 timer.start();
96
97 if(lMethods.contains("WPLI")) {
98 results.append(WeightedPhaseLagIndex::calculate(connectivitySettings));
99 }
100
101 if(lMethods.contains("USPLI")) {
102 results.append(UnbiasedSquaredPhaseLagIndex::calculate(connectivitySettings));
103 }
104
105 if(lMethods.contains("COR")) {
106 results.append(Correlation::calculate(connectivitySettings));
107 }
108
109 if(lMethods.contains("XCOR")) {
110 results.append(CrossCorrelation::calculate(connectivitySettings));
111 }
112
113 if(lMethods.contains("PLI")) {
114 results.append(PhaseLagIndex::calculate(connectivitySettings));
115 }
116
117 if(lMethods.contains("COH")) {
118 results.append(Coherence::calculate(connectivitySettings));
119 }
120
121 if(lMethods.contains("IMAGCOH")) {
122 results.append(ImagCoherence::calculate(connectivitySettings));
123 }
124
125 if(lMethods.contains("PLV")) {
126 results.append(PhaseLockingValue::calculate(connectivitySettings));
127 }
128
129 if(lMethods.contains("DSWPLI")) {
130 results.append(DebiasedSquaredWeightedPhaseLagIndex::calculate(connectivitySettings));
131 }
132
133 if(lMethods.contains("GC")) {
134 results.append(GrangerCausality::calculate(connectivitySettings));
135 }
136
137 if(lMethods.contains("DTF")) {
138 results.append(DirectedTransferFunction::calculate(connectivitySettings));
139 }
140
141 if(lMethods.contains("PDC")) {
142 results.append(PartialDirectedCoherence::calculate(connectivitySettings));
143 }
144
145 qWarning() << "Total" << timer.elapsed();
146 qDebug() << "Connectivity::calculateMultiMethods - Calculated"<< lMethods <<"for" << connectivitySettings.size() << "trials in"<< timer.elapsed() << "msecs.";
147
148 return results;
149}
ConnectivitySettings class declaration.
Network class declaration.
PhaseLagIndex class declaration.
UnbiasedSquaredPhaseLagIndex class declaration.
Coherence class declaration.
CrossCorrelation class declaration.
Correlation class declaration.
PhaseLockingValue class declaration.
GrangerCausality class declaration.
Imaginary coherence class declaration.
DebiasedSquaredWeightedPhaseLagIndex class declaration.
PartialDirectedCoherence class declaration.
WeightedPhaseLagIndex class declaration.
DirectedTransferFunction class declaration.
Connectivity class declaration.
Functional connectivity metrics (coherence, PLV, cross-correlation, etc.).
static QList< Network > calculate(ConnectivitySettings &connectivitySettings)
This class is a container for connectivity settings.
const QStringList & getConnectivityMethods() const
static Network calculate(ConnectivitySettings &connectivitySettings)
Definition coherence.cpp:83
static Network calculate(ConnectivitySettings &connectivitySettings)
static Network calculate(ConnectivitySettings &connectivitySettings)
static Network calculate(ConnectivitySettings &connectivitySettings)
static Network calculate(ConnectivitySettings &connectivitySettings)
static Network calculate(ConnectivitySettings &connectivitySettings)
static Network calculate(ConnectivitySettings &connectivitySettings)
static Network calculate(ConnectivitySettings &connectivitySettings)
static Network calculate(ConnectivitySettings &connectivitySettings)
static Network calculate(ConnectivitySettings &connectivitySettings)
static Network calculate(ConnectivitySettings &connectivitySettings)
static Network calculate(ConnectivitySettings &connectivitySettings)