Home  · Classes  · Annotated Classes  · Modules  · Members  · Namespaces  · Related Pages
MetaDataBrowser.h
Go to the documentation of this file.
1 // --------------------------------------------------------------------------
2 // OpenMS -- Open-Source Mass Spectrometry
3 // --------------------------------------------------------------------------
4 // Copyright The OpenMS Team -- Eberhard Karls University Tuebingen,
5 // ETH Zurich, and Freie Universitaet Berlin 2002-2013.
6 //
7 // This software is released under a three-clause BSD license:
8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above copyright
11 // notice, this list of conditions and the following disclaimer in the
12 // documentation and/or other materials provided with the distribution.
13 // * Neither the name of any author or any participating institution
14 // may be used to endorse or promote products derived from this software
15 // without specific prior written permission.
16 // For a full list of authors, refer to the file AUTHORS.
17 // --------------------------------------------------------------------------
18 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 // ARE DISCLAIMED. IN NO EVENT SHALL ANY OF THE AUTHORS OR THE CONTRIBUTING
22 // INSTITUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
25 // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
26 // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
27 // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
28 // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 //
30 // --------------------------------------------------------------------------
31 // $Maintainer: Timo Sachsenberg $
32 // $Authors: Marc Sturm $
33 // --------------------------------------------------------------------------
34 
35 #ifndef OPENMS_VISUAL_METADATABROWSER_H
36 #define OPENMS_VISUAL_METADATABROWSER_H
37 
41 
42 //QT
43 #include <QtGui/QDialog>
44 #include <QtGui/QTreeWidget>
45 class QTreeWidgetItem;
46 class QPushButton;
47 class QStackedWidget;
48 class QHBoxLayout;
49 class QVBoxLayout;
50 class QGridLayout;
51 
52 namespace OpenMS
53 {
54  class BaseVisualizerGUI;
55  class Acquisition;
56  class AcquisitionInfo;
57  class ContactPerson;
58  class Digestion;
59  class ExperimentalSettings;
60  class Gradient;
61  class HPLC;
62  class PeptideIdentification;
63  class Instrument;
64  class IonDetector;
65  class IonSource;
66  class MassAnalyzer;
67  class MetaInfo;
68  class MetaInfoDescription;
69  class MetaInfoInterface;
70  class MetaInfoRegistry;
71  class Modification;
72  class PeptideHit;
73  class Precursor;
74  class DataProcessing;
75  class ProteinHit;
76  class ProteinIdentification;
77  class Sample;
78  class SampleTreatment;
79  class Software;
80  class SourceFile;
81  class SpectrumSettings;
82  class Tagging;
83  class DocumentIdentifier;
84  class Product;
85 
101  class OPENMS_GUI_DLLAPI MetaDataBrowser :
102  public QDialog
103  {
104  Q_OBJECT
105 
106 public:
107 
109  MetaDataBrowser(bool editable = FALSE, QWidget * parent = 0, bool modal = FALSE);
110 
112  template <class PeakType>
114  {
115  add(static_cast<ExperimentalSettings &>(exp));
116  treeview_->expandItem(treeview_->findItems(QString::number(0), Qt::MatchExactly, 1).first());
117  }
118 
120  template <class PeakType>
121  void add(MSSpectrum<PeakType> & spectrum)
122  {
123  //spectrum settings
124  add(static_cast<SpectrumSettings &>(spectrum));
125 
126  //MetaInfoDescriptions
127  for (Size i = 0; i < spectrum.getFloatDataArrays().size(); ++i)
128  {
129  add(spectrum.getFloatDataArrays()[i]);
130  }
131  for (Size i = 0; i < spectrum.getIntegerDataArrays().size(); ++i)
132  {
133  add(spectrum.getIntegerDataArrays()[i]);
134  }
135  for (Size i = 0; i < spectrum.getStringDataArrays().size(); ++i)
136  {
137  add(spectrum.getStringDataArrays()[i]);
138  }
139 
140  add(static_cast<MetaInfoInterface &>(spectrum));
141 
142  treeview_->expandItem(treeview_->findItems(QString::number(0), Qt::MatchExactly, 1).first());
143  }
144 
146  template <class FeatureType>
148  {
149  //identifier
150  add(static_cast<DocumentIdentifier &>(map));
151 
152  //protein ids
153  for (Size i = 0; i < map.getProteinIdentifications().size(); ++i)
154  {
155  add(map.getProteinIdentifications()[i]);
156  }
157 
158  //unassigned peptide ids
159  for (Size i = 0; i < map.getUnassignedPeptideIdentifications().size(); ++i)
160  {
162  }
163 
164  treeview_->expandItem(treeview_->findItems(QString::number(0), Qt::MatchExactly, 1).first());
165  }
166 
168  void add(Feature & feature);
170  void add(ConsensusFeature & feature);
171 
173  void add(ConsensusMap & map);
174 
180  template <class MetaDataType>
181  void add(MetaDataType & meta_data_object)
182  {
183  visualize_(meta_data_object);
184  treeview_->expandItem(treeview_->findItems(QString::number(0), Qt::MatchExactly, 1).first());
185  }
186 
188  bool isEditable();
189 
193 
194 public slots:
195 
197  void setStatus(std::string status);
198 
199 protected slots:
200 
202  void showDetails_();
203 
205  void saveAll_();
206 
207 protected:
208 
210 
211  void visualize_(ExperimentalSettings & meta, QTreeWidgetItem * parent = 0);
212  void visualize_(SpectrumSettings & meta, QTreeWidgetItem * parent = 0);
213  void visualize_(MetaInfoInterface & meta, QTreeWidgetItem * parent = 0);
214  void visualize_(Sample & meta, QTreeWidgetItem * parent = 0);
215  void visualize_(HPLC & meta, QTreeWidgetItem * parent = 0);
216  void visualize_(Digestion & meta, QTreeWidgetItem * parent = 0);
217  void visualize_(Modification & meta, QTreeWidgetItem * parent = 0);
218  void visualize_(Tagging & meta, QTreeWidgetItem * parent = 0);
219  void visualize_(Gradient & meta, QTreeWidgetItem * parent = 0);
220  void visualize_(Software & meta, QTreeWidgetItem * parent = 0);
221  void visualize_(ScanWindow & meta, QTreeWidgetItem * parent = 0);
222  void visualize_(SourceFile & meta, QTreeWidgetItem * parent = 0);
223  void visualize_(ContactPerson & meta, QTreeWidgetItem * parent = 0);
224  void visualize_(Instrument & meta, QTreeWidgetItem * parent = 0);
225  void visualize_(IonSource & meta, QTreeWidgetItem * parent = 0);
226  void visualize_(IonDetector & meta, QTreeWidgetItem * parent = 0);
227  void visualize_(MassAnalyzer & meta, QTreeWidgetItem * parent = 0);
228  void visualize_(DataProcessing & meta, QTreeWidgetItem * parent = 0);
229  void visualize_(ProteinIdentification & meta, QTreeWidgetItem * parent = 0);
230  void visualize_(ProteinHit & meta, QTreeWidgetItem * parent = 0);
231  void visualize_(PeptideHit & meta, QTreeWidgetItem * parent = 0);
232  void visualize_(Acquisition & meta, QTreeWidgetItem * parent = 0);
233  void visualize_(AcquisitionInfo & meta, QTreeWidgetItem * parent = 0);
234  void visualize_(MetaInfoDescription & meta, QTreeWidgetItem * parent = 0);
235  void visualize_(Precursor & meta, QTreeWidgetItem * parent = 0);
236  void visualize_(Product & meta, QTreeWidgetItem * parent = 0);
237  void visualize_(InstrumentSettings & meta, QTreeWidgetItem * parent = 0);
238  void visualize_(PeptideIdentification & meta, QTreeWidgetItem * parent = 0);
239  void visualize_(DocumentIdentifier & meta, QTreeWidgetItem * parent = 0);
241 
243  template <typename ContainerType>
244  void visualizeAll_(ContainerType & container, QTreeWidgetItem * parent)
245  {
246  for (typename ContainerType::iterator it = container.begin(); it != container.end(); ++it)
247  {
248  visualize_(*it, parent);
249  }
250  }
251 
253  void connectVisualizer_(BaseVisualizerGUI * ptr);
254 
256  void filterHits_(DoubleReal threshold, bool higher_better, int tree_item_id);
258  void showAllHits_(int tree_item_id);
259 
261  std::string status_list_;
262 
264  bool editable_;
265 
267  QStackedWidget * ws_;
269  QPushButton * saveallbutton_;
271  QPushButton * closebutton_;
273  QPushButton * cancelbutton_;
275  QPushButton * undobutton_;
276 
279  };
280 }
281 #endif
Representation of a protein identification run.
Definition: ProteinIdentification.h:61
Descripton of the applied preprocessing steps.
Definition: DataProcessing.h:51
Description of a MS instrument.
Definition: Instrument.h:64
Description of the settings a MS Instrument was run with.
Definition: InstrumentSettings.h:48
Precursor meta information.
Definition: Precursor.h:56
const std::vector< ProteinIdentification > & getProteinIdentifications() const
non-mutable access to the protein identifications
Definition: FeatureMap.h:410
Product meta information.
Definition: Product.h:49
Description of the combination of raw data to a single spectrum.
Definition: AcquisitionInfo.h:54
std::string status_list_
A list of setting errors due to invalid formats.
Definition: MetaDataBrowser.h:261
bool editable_
Indicates the mode.
Definition: MetaDataBrowser.h:264
Contact person information.
Definition: ContactPerson.h:50
A container for features.
Definition: FeatureMap.h:111
const std::vector< PeptideIdentification > & getUnassignedPeptideIdentifications() const
non-mutable access to the unassigned peptide identifications
Definition: FeatureMap.h:428
Representation of a HPLC experiment.
Definition: HPLC.h:51
A container for consensus elements.
Definition: ConsensusMap.h:60
void visualizeAll_(ContainerType &container, QTreeWidgetItem *parent)
Visualizes all elements of a container.
Definition: MetaDataBrowser.h:244
Representation of 1D spectrum settings.
Definition: SpectrumSettings.h:64
Description of a file location, used to store the origin of (meta) data.
Definition: SourceFile.h:47
void add(MetaDataType &meta_data_object)
A generic function to add data.
Definition: MetaDataBrowser.h:181
A base class for all visualizer classes.
Definition: BaseVisualizerGUI.h:63
Description of the software used for processing.
Definition: Software.h:49
const IntegerDataArrays & getIntegerDataArrays() const
Returns a const reference to the integer meta data arrays.
Definition: MSSpectrum.h:294
Description of the meta data arrays of MSSpectrum.
Definition: MetaInfoDescription.h:49
A meta data visualization widget.
Definition: MetaDataBrowser.h:101
Class that displays all meta information for ProteinIdentification objects.
Definition: ProteinIdentificationVisualizer.h:53
QStackedWidget * ws_
A widgetstack that keeps track of all widgets.
Definition: MetaDataBrowser.h:267
void add(FeatureMap< FeatureType > &map)
Adds a feature map.
Definition: MetaDataBrowser.h:147
Representation of a HPLC gradient.
Definition: Gradient.h:53
Representation of a peptide hit.
Definition: PeptideHit.h:54
Scan window description.
Definition: ScanWindow.h:47
void add(MSSpectrum< PeakType > &spectrum)
Adds a peak spectrum.
Definition: MetaDataBrowser.h:121
Meta information about the sample.
Definition: Sample.h:60
Meta information about digestion of a sample.
Definition: Digestion.h:50
Description of a ion detector (part of a MS Instrument)
Definition: IonDetector.h:47
Information about one raw data spectrum that was combined with several other raw data spectra...
Definition: Acquisition.h:50
Class that displays all meta information for PeptideIdentification objects.
Definition: PeptideIdentificationVisualizer.h:53
An LC-MS feature.
Definition: Feature.h:66
QPushButton * undobutton_
Undo Button.
Definition: MetaDataBrowser.h:275
Interface for classes that can store arbitrary meta information (Type-Name-Value tuples).
Definition: MetaInfoInterface.h:61
Representation of a protein hit.
Definition: ProteinHit.h:54
Representation of a mass spectrometry experiment.
Definition: MSExperiment.h:68
Meta information about tagging of a sample e.g. ICAT labeling.
Definition: Tagging.h:50
Meta information about chemical modification of a sample.
Definition: Modification.h:52
const StringDataArrays & getStringDataArrays() const
Returns a const reference to the string meta data arrays.
Definition: MSSpectrum.h:282
QPushButton * closebutton_
Close Button.
Definition: MetaDataBrowser.h:271
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:144
QPushButton * cancelbutton_
Cancel Button.
Definition: MetaDataBrowser.h:273
void add(MSExperiment< PeakType > &exp)
Adds a peak map.
Definition: MetaDataBrowser.h:113
const FloatDataArrays & getFloatDataArrays() const
Returns a const reference to the float meta data arrays.
Definition: MSSpectrum.h:270
Descripton of a mass analyzer (part of a MS Instrument)
Definition: MassAnalyzer.h:48
Description of a ion source (part of a MS Instrument)
Definition: IonSource.h:47
QTreeWidget * treeview_
The tree.
Definition: MetaDataBrowser.h:278
Description of the experimental settings.
Definition: ExperimentalSettings.h:59
QPushButton * saveallbutton_
Save button.
Definition: MetaDataBrowser.h:269
Manage source document information.
Definition: DocumentIdentifier.h:56
A 2-dimensional consensus feature.
Definition: ConsensusFeature.h:59
Represents the peptide hits for a spectrum.
Definition: PeptideIdentification.h:63

OpenMS / TOPP release 1.11.1 Documentation generated on Thu Nov 14 2013 11:19:17 using doxygen 1.8.5