MNE-CPP  beta 1.0
mne.h
1 //=============================================================================================================
37 #ifndef MNE_H
38 #define MNE_H
39 
40 //*************************************************************************************************************
41 //=============================================================================================================
42 // MNE INCLUDES
43 //=============================================================================================================
44 
45 #include "mne_global.h"
46 
47 #include "mne_inverse_operator.h"
48 #include "mne_forwardsolution.h"
49 #include "mne_hemisphere.h"
50 #include "mne_sourcespace.h"
51 #include "mne_surface.h"
52 
53 
54 //*************************************************************************************************************
55 //=============================================================================================================
56 // FIFF INCLUDES
57 //=============================================================================================================
58 
59 #include <fiff/fiff_constants.h>
60 #include <fiff/fiff_cov.h>
61 
62 
63 #include <utils/mnemath.h>
64 
65 
66 //*************************************************************************************************************
67 //=============================================================================================================
68 // Qt INCLUDES
69 //=============================================================================================================
70 
71 #include <QMap>
72 
73 
74 //*************************************************************************************************************
75 //=============================================================================================================
76 // DEFINE NAMESPACE MNELIB
77 //=============================================================================================================
78 
79 namespace MNELIB
80 {
81 
82 //*************************************************************************************************************
83 //=============================================================================================================
84 // USED NAMESPACES
85 //=============================================================================================================
86 
87 using namespace UTILSLIB;
88 using namespace FIFFLIB;
89 
90 
91 //*************************************************************************************************************
92 //=============================================================================================================
93 // FORWARD DECLARATIONS
94 //=============================================================================================================
95 
96 
97 //=============================================================================================================
103 class MNESHARED_EXPORT MNE
104 {
105 
106 public:
107 
108  //=========================================================================================================
112  virtual ~MNE()
113  { }
114 
115  //=========================================================================================================
129  inline static VectorXd* combine_xyz(const VectorXd& vec)
130  {
131  return MNEMath::combine_xyz(vec);
132  }
133 
134  //=========================================================================================================
142  // static inline MatrixXd extract_block_diag(MatrixXd& A, qint32 n);
143 
144  //=========================================================================================================
158  inline static qint32 find_source_space_hemi(MNEHemisphere& p_Hemisphere)
159  {
160  return MNESourceSpace::find_source_space_hemi(p_Hemisphere);
161  }
162 
163  //=========================================================================================================
177  static inline qint32 get_current_comp(FiffInfo* info)
178  {
179  return info->get_current_comp();
180  }
181 
182  //ToDo Why is make_block_diag part of MNEForwardSolution - restructure this
183  //=========================================================================================================
202  static inline SparseMatrix<double>* make_block_diag(const MatrixXd &A, qint32 n)
203  {
204  return MNEMath::make_block_diag(A, n);
205  }
206 
207  //=========================================================================================================
225  inline static bool make_compensator(const FiffInfo& info, fiff_int_t from, fiff_int_t to, FiffCtfComp& ctf_comp, bool exclude_comp_chs = false)
226  {
227  return info.make_compensator(from, to, ctf_comp, exclude_comp_chs);
228  }
229 
230  //=========================================================================================================
250  inline static fiff_int_t make_projector(const QList<FiffProj>& projs, const QStringList& ch_names, MatrixXd& proj, const QStringList& bads = defaultQStringList, MatrixXd& U = defaultMatrixXd)
251  {
252  return FiffProj::make_projector(projs, ch_names, proj, bads, U);
253  }
254 
255  //=========================================================================================================
270  static inline qint32 make_projector(FiffInfo& info, MatrixXd& proj)
271  {
272  return info.make_projector(proj);
273  }
274 
275  //=========================================================================================================
287  static bool patch_info(MNEHemisphere &p_Hemisphere)
288  {
289  return MNESourceSpace::patch_info(p_Hemisphere);
290  }
291 
292  //=========================================================================================================
310  inline static MNEInverseOperator prepare_inverse_operator(MNEInverseOperator& orig, qint32 nave ,float lambda2, bool dSPM, bool sLORETA = false)
311  {
312  return orig.prepare_inverse_operator(nave, lambda2, dSPM, sLORETA);
313  }
314 
315 // ToDo Eventlist Class??
316  //=========================================================================================================
329  static bool read_events(QIODevice &p_IODevice, MatrixXi& eventlist);
330 
331  //=========================================================================================================
348  inline static bool read_cov(FiffStream* p_pStream, FiffDirTree& p_Node, fiff_int_t cov_kind, FiffCov& p_covData)
349  {
350  return p_pStream->read_cov(p_Node, cov_kind, p_covData);
351  }
352 
353  //=========================================================================================================
368  static bool read_inverse_operator(QIODevice& p_pIODevice, MNEInverseOperator& inv)
369  {
370  return MNEInverseOperator::read_inverse_operator(p_pIODevice, inv);
371  }
372 
373  //=========================================================================================================
392  static inline bool read_forward_solution(QIODevice& p_IODevice, MNEForwardSolution& fwd, bool force_fixed = false, bool surf_ori = false, const QStringList& include = defaultQStringList, const QStringList& exclude = defaultQStringList)
393  {
394  return MNEForwardSolution::read(p_IODevice, fwd, force_fixed, surf_ori, include, exclude);
395  }
396 
397  //=========================================================================================================
415  static bool read_source_spaces(FiffStream::SPtr& p_pStream, bool add_geom, FiffDirTree& p_Tree, MNESourceSpace& p_SourceSpace)
416  {
417  return MNESourceSpace::readFromStream(p_pStream, add_geom, p_Tree, p_SourceSpace);
418  }
419 
420  //=========================================================================================================
438  static bool read_bem_surface(FiffStream::SPtr& p_pStream, bool add_geom, FiffDirTree& p_Tree, QList<MNESurface::SPtr>& p_Surfaces)
439  {
440  return MNESurface::read(p_pStream, add_geom, p_Tree, p_Surfaces);
441  }
442 
443  //ToDo FiffChInfoList Class
444  //=========================================================================================================
461  static QList<FiffChInfo> set_current_comp(QList<FiffChInfo>& chs, fiff_int_t value)
462  {
463  return FiffInfo::set_current_comp(chs, value);
464  }
465 
466  //=========================================================================================================
482  static inline bool transform_source_space_to(MNESourceSpace* p_pMNESourceSpace, fiff_int_t dest, FiffCoordTrans& trans)
483  {
484  return p_pMNESourceSpace->transform_source_space_to(dest, trans);
485  }
486 
487  //=========================================================================================================
500  static inline void transpose_named_matrix(FiffNamedMatrix* mat)
501  {
502  mat->transpose_named_matrix();
503  }
504 };
505 
506 
507 } // NAMESPACE
508 
509 #endif // MNE_H
static qint32 find_source_space_hemi(MNEHemisphere &p_Hemisphere)
static bool make_compensator(const FiffInfo &info, fiff_int_t from, fiff_int_t to, FiffCtfComp &ctf_comp, bool exclude_comp_chs=false)
Definition: mne.h:225
FIFF measurement file information.
Definition: fiff_info.h:96
Source Space descritpion.
virtual ~MNE()
Definition: mne.h:112
static bool read_cov(FiffStream *p_pStream, FiffDirTree &p_Node, fiff_int_t cov_kind, FiffCov &p_covData)
Definition: mne.h:348
bool transform_source_space_to(fiff_int_t dest, FiffCoordTrans &trans)
static bool read_bem_surface(FiffStream::SPtr &p_pStream, bool add_geom, FiffDirTree &p_Tree, QList< MNESurface::SPtr > &p_Surfaces)
Definition: mne.h:438
static bool read_forward_solution(QIODevice &p_IODevice, MNEForwardSolution &fwd, bool force_fixed=false, bool surf_ori=false, const QStringList &include=defaultQStringList, const QStringList &exclude=defaultQStringList)
Definition: mne.h:392
qint32 get_current_comp()
Definition: fiff_info.cpp:128
static SparseMatrix< double > * make_block_diag(const MatrixXd &A, qint32 n)
Definition: mne.h:202
Fiff constants.
MNEHemisphere class declaration.
void set_current_comp(fiff_int_t value)
Definition: fiff_info.h:293
static VectorXd * combine_xyz(const VectorXd &vec)
Definition: mnemath.cpp:79
static bool readFromStream(FiffStream::SPtr &p_pStream, bool add_geom, FiffDirTree &p_Tree, MNESourceSpace &p_SourceSpace)
static qint32 make_projector(FiffInfo &info, MatrixXd &proj)
Definition: mne.h:270
static fiff_int_t make_projector(const QList< FiffProj > &projs, const QStringList &ch_names, MatrixXd &proj, const QStringList &bads=defaultQStringList, MatrixXd &U=defaultMatrixXd)
Definition: mne.h:250
static bool read_inverse_operator(QIODevice &p_IODevice, MNEInverseOperator &inv)
static SparseMatrix< double > * make_block_diag(const MatrixXd &A, qint32 n)
Definition: mnemath.cpp:295
QSharedPointer< FiffStream > SPtr
Definition: fiff_stream.h:132
static VectorXd * combine_xyz(const VectorXd &vec)
Definition: mne.h:129
MNEForwardSolution class declaration, which provides the forward solution including the source space ...
static bool read(QIODevice &p_IODevice, QList< MNESurface::SPtr > &surfaces)
Definition: mne_surface.cpp:73
Hemisphere provides geometry information.
Directory tree structure.
Definition: fiff_dir_tree.h:80
MNEInverseOperator prepare_inverse_operator(qint32 nave, float lambda2, bool dSPM, bool sLORETA=false) const
static bool patch_info(MNEHemisphere &p_Hemisphere)
bool make_compensator(fiff_int_t from, fiff_int_t to, FiffCtfComp &ctf_comp, bool exclude_comp_chs=false) const
Definition: fiff_info.cpp:151
MNEInverseOperator class declaration.
static fiff_int_t make_projector(const QList< FiffProj > &projs, const QStringList &ch_names, MatrixXd &proj, const QStringList &bads=defaultQStringList, MatrixXd &U=defaultMatrixXd, bool include_active=true)
Definition: fiff_proj.cpp:125
covariance data
Definition: fiff_cov.h:94
Contains the declaration of the MNESurface class.
Definition: fiff.h:98
static void transpose_named_matrix(FiffNamedMatrix *mat)
Definition: mne.h:500
static bool read(QIODevice &p_IODevice, MNEForwardSolution &fwd, bool force_fixed=false, bool surf_ori=false, const QStringList &include=defaultQStringList, const QStringList &exclude=defaultQStringList, bool bExcludeBads=true)
qint32 make_projector(MatrixXd &proj) const
Definition: fiff_info.h:277
Coordinate transformation description.
MNESourceSpace class declaration.
CTF software compensation data.
Definition: fiff_ctf_comp.h:87
static QList< FiffChInfo > set_current_comp(QList< FiffChInfo > &chs, fiff_int_t value)
Definition: mne.h:461
MNEMath class declaration.
static bool transform_source_space_to(MNESourceSpace *p_pMNESourceSpace, fiff_int_t dest, FiffCoordTrans &trans)
Definition: mne.h:482
bool read_cov(const FiffDirTree &p_Node, fiff_int_t cov_kind, FiffCov &p_covData)
The MNE class provides wrapper functions to stay consistent with mne matlab toolbox.
Definition: mne.h:103
static qint32 get_current_comp(FiffInfo *info)
Definition: mne.h:177
static bool read_source_spaces(FiffStream::SPtr &p_pStream, bool add_geom, FiffDirTree &p_Tree, MNESourceSpace &p_SourceSpace)
Definition: mne.h:415
FIFF File I/O routines.
Definition: fiff_stream.h:129
static bool read_inverse_operator(QIODevice &p_pIODevice, MNEInverseOperator &inv)
Definition: mne.h:368
static MNEInverseOperator prepare_inverse_operator(MNEInverseOperator &orig, qint32 nave, float lambda2, bool dSPM, bool sLORETA=false)
Definition: mne.h:310
static bool patch_info(MNEHemisphere &p_Hemisphere)
Definition: mne.h:287
static qint32 find_source_space_hemi(MNEHemisphere &p_Hemisphere)
Definition: mne.h:158
FiffCov class declaration.