35#include <QCommandLineParser>
36#include <QElapsedTimer>
58void subtractPairs(QVector<QPair<int, T>>& sums,
const QVector<QPair<int, T>>& trial,
int rows)
60 if (sums.size() != trial.size())
62 for (
int i = 0; i < rows && i < sums.size(); ++i)
63 sums[i].second -= trial.at(i).second;
69 const int rows =
static_cast<int>(trial.
matData.rows());
96 qRegisterMetaType<CONNECTIVITYLIB::ConnectivitySettings>(
"CONNECTIVITYLIB::ConnectivitySettings");
134 for (
int i = 0; i < matInputData.size(); ++i) {
135 this->
append(matInputData.at(i));
143 ConnectivitySettings::IntermediateTrialData tempData;
144 tempData.
matData = matInputData;
182 qDebug() <<
"ConnectivitySettings::removeFirst - No elements to delete. Returning.";
187 qDebug() <<
"ConnectivitySettings::removeFirst - Not enough elements stored in list in order to delete them. Returning.";
191 for (
int j = 0; j < iAmount; ++j) {
202 qDebug() <<
"ConnectivitySettings::removeLast - No elements to delete. Returning.";
207 qDebug() <<
"ConnectivitySettings::removeLast - Not enough elements stored in list in order to delete them. Returning.";
211 for (
int j = 0; j < iAmount; ++j) {
296 const RowVectorXi& picks)
300 for (
int i = 0; i < picks.cols(); ++i) {
313 MatrixX3f matNodeVertLeft, matNodeVertRight;
318 matNodeVertLeft.resize(lhHemi->cluster_info.centroidVertno.size(), 3);
319 for (
int j = 0; j < matNodeVertLeft.rows(); ++j) {
320 matNodeVertLeft.row(j) = surfSet[0].rr().row(lhHemi->cluster_info.centroidVertno.at(j)) - surfSet[0].offset().transpose();
323 matNodeVertRight.resize(rhHemi->cluster_info.centroidVertno.size(), 3);
324 for (
int j = 0; j < matNodeVertRight.rows(); ++j) {
325 matNodeVertRight.row(j) = surfSet[1].rr().row(rhHemi->cluster_info.centroidVertno.at(j)) - surfSet[1].offset().transpose();
328 matNodeVertLeft.resize(forwardSolution.
src[0].vertno.rows(), 3);
329 for (
int j = 0; j < matNodeVertLeft.rows(); ++j) {
330 matNodeVertLeft.row(j) = surfSet[0].rr().row(forwardSolution.
src[0].vertno(j)) - surfSet[0].offset().transpose();
333 matNodeVertRight.resize(forwardSolution.
src[1].vertno.rows(), 3);
334 for (
int j = 0; j < matNodeVertRight.rows(); ++j) {
335 matNodeVertRight.row(j) = surfSet[1].rr().row(forwardSolution.
src[1].vertno(j)) - surfSet[1].offset().transpose();
Full FIFF measurement metadata: everything from FIFFB_MEAS / FIFFB_MEAS_INFO needed to interpret a re...
Input-data and parameter container shared by every functional-connectivity metric in CONNECTIVITYLIB.
Bi-hemispheric grouping of FreeSurfer surfaces (lh + rh) loaded as a single object.
Forward solution (gain matrix mapping source dipoles to sensor measurements).
Functional connectivity metrics (coherence, PLV, cross-correlation, etc.).
Core MNE data structures (source spaces, source estimates, hemispheres).
FreeSurfer surface, annotation and parcellation I/O for mne-cpp.
FIFF file I/O, in-memory data structures and high-level readers/writers.
IntermediateSumData m_intermediateSumData
QList< IntermediateTrialData > & getTrialData()
void setConnectivityMethods(const QStringList &sConnectivityMethods)
void setSamplingFrequency(int iSFreq)
void removeFirst(int iAmount=1)
const QStringList & getConnectivityMethods() const
const IntermediateTrialData & at(int i) const
void setWindowType(const QString &sWindowType)
void clearIntermediateData()
int getSamplingFrequency() const
void setNodePositions(const FIFFLIB::FiffInfo &fiffInfo, const Eigen::RowVectorXi &picks)
void removeLast(int iAmount=1)
QStringList m_sConnectivityMethods
void append(const QList< Eigen::MatrixXd > &matInputData)
IntermediateSumData & getIntermediateSumData()
void setFFTSize(int iNfft)
QList< IntermediateTrialData > m_trialData
const Eigen::MatrixX3f & getNodePositions() const
const QString & getWindowType() const
Eigen::MatrixX3f m_matNodePositions
Per-trial intermediate frequency-domain data used during connectivity computation.
QVector< QPair< int, Eigen::MatrixXd > > vecPairCsdImagAbs
QVector< QPair< int, Eigen::MatrixXcd > > vecPairCsdNormalized
QVector< QPair< int, Eigen::MatrixXd > > vecPairCsdImagSign
QVector< QPair< int, Eigen::MatrixXd > > vecPairCsdImagSqrd
QVector< QPair< int, Eigen::MatrixXcd > > vecPairCsd
Accumulated cross-spectral and auto-spectral sums across trials for final metric normalization.
QVector< QPair< int, Eigen::MatrixXcd > > vecPairCsdNormalizedSum
Eigen::MatrixXd matPsdSum
QVector< QPair< int, Eigen::MatrixXcd > > vecPairCsdSum
QVector< QPair< int, Eigen::MatrixXd > > vecPairCsdImagSignSum
QVector< QPair< int, Eigen::MatrixXd > > vecPairCsdImagSqrdSum
QVector< QPair< int, Eigen::MatrixXd > > vecPairCsdImagAbsSum
Per-channel FIFF descriptor: identifiers, kind, calibration, coil type, channel-frame coil position a...
Full FIFF measurement info: per-channel descriptors, sampling and filter setup, projectors,...
Container holding the lh and/or rh FsSurface for one subject and one surface kind.
In-memory representation of an -fwd.fif forward solution.
MNELIB::MNESourceSpaces src
MNEHemisphere * hemisphereAt(qint32 idx)