Vespucci  1.0.0
metaanalyzer.h
Go to the documentation of this file.
1 /*******************************************************************************
2  Copyright (C) 2014-2016 Wright State University - All Rights Reserved
3  Daniel P. Foose - Maintainer/Lead Developer
4 
5  This file is part of Vespucci.
6 
7  Vespucci is free software: you can redistribute it and/or modify
8  it under the terms of the GNU General Public License as published by
9  the Free Software Foundation, either version 3 of the License, or
10  (at your option) any later version.
11 
12  Vespucci is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with Vespucci. If not, see <http://www.gnu.org/licenses/>.
19 *******************************************************************************/
20 #ifndef METAANALYZER_H
21 #define METAANALYZER_H
34 {
35 public:
36  MetaAnalyzer(QSharedPointer<VespucciWorkspace> ws);
37  ~MetaAnalyzer();
38 
39  void Univariate(const QString &name,
40  double &left_bound,
41  double &right_bound,
42  arma::uword bound_window);
43  void FitPeak(const QString &name,
44  const QString &peak_shape,
45  double &left_bound,
46  double &right_bound);
47  void BandRatio(const QString &name,
48  double &first_left_bound,
49  double &first_right_bound,
50  double &second_left_bound,
51  double &second_right_bound,
52  arma::uword bound_window);
53  void ClassicalLeastSquares(const QString &name,
54  const QStringList &reference_keys);
55  void VertexComponents(const QString &name,
56  uword endmembers);
57  void KMeans(const QString &name,
58  const QString &metric_text,
59  const QString &partition_policy,
60  bool allow_empty,
61  size_t clusters);
62  void PrincipalComponents(const QString &name);
63  void PrincipalComponents(const QString &name,
64  bool scale_data);
65  void PartialLeastSquares(const QString &name,
66  uword components);
67  void PLSCalibration(const QString &name,
68  const QStringList &control_keys);
69  void TrainPLSDA(const QString &name,
70  const QStringList &label_keys);
71  void AgglomerativeClustering(const QString &name,
72  const QString &metric,
73  const QString &linkage);
74 
75  size_t columns() const;
76  double AbscissaMin() const;
77  double AbscissaMax() const;
78  arma::vec abscissa() const;
79  arma::vec PointSpectrum(arma::uword index) const;
80 private:
88  virtual void AddAnalysisResults(QSharedPointer<AnalysisResults> results, QStringList matrices) = 0;
89 
93  virtual void GetData() = 0;
94 
95  virtual QString FindUniqueName(QString name) = 0;
96 protected:
100  QSharedPointer<VespucciWorkspace> workspace_;
101  mat data_;
103 };
104 
105 #endif // METAANALYZER_H
void Univariate(const QString &name, double &left_bound, double &right_bound, arma::uword bound_window)
void PartialLeastSquares(const QString &name, uword components)
QSharedPointer< VespucciWorkspace > workspace_
workspace_ The global workspace, used to obtain access to matrices
Definition: metaanalyzer.h:100
arma::vec PointSpectrum(arma::uword index) const
void VertexComponents(const QString &name, uword endmembers)
MetaAnalyzer(QSharedPointer< VespucciWorkspace > ws)
The AbstractDataAnalyzer class Pure abstract class describing an object that can be passed as a point...
void AgglomerativeClustering(const QString &name, const QString &metric, const QString &linkage)
void KMeans(const QString &name, const QString &metric_text, const QString &partition_policy, bool allow_empty, size_t clusters)
double AbscissaMax() const
void FitPeak(const QString &name, const QString &peak_shape, double &left_bound, double &right_bound)
The MetaAnalyzer class This class is used to perform analysis on "pseudo-datasets". This allows us perform analysis on a concatentated spectra matrix from multiple datasets (the MultiAnalyzer derived class) or on a single matrix in a single dataset (the MatrixAnalyzer derived class). This class is not concerned with how the data_ and abscissa_ members are initialized (this is handled by GetData in derived classes).
Definition: metaanalyzer.h:33
double AbscissaMin() const
void PLSCalibration(const QString &name, const QStringList &control_keys)
arma::vec abscissa() const
void BandRatio(const QString &name, double &first_left_bound, double &first_right_bound, double &second_left_bound, double &second_right_bound, arma::uword bound_window)
void TrainPLSDA(const QString &name, const QStringList &label_keys)
void PrincipalComponents(const QString &name)
void ClassicalLeastSquares(const QString &name, const QStringList &reference_keys)
size_t columns() const