OpenMS
FileTypes.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-2023.
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: Stephan Aiche, Andreas Bertsch, Marc Sturm, Chris Bielow $
33 // --------------------------------------------------------------------------
34 
35 #pragma once
36 
37 #include <OpenMS/config.h>
39 
40 #include <vector>
41 
42 namespace OpenMS
43 {
52  struct OPENMS_DLLAPI FileTypes
53  {
54 
56  enum Type
57  {
59  DTA,
66  MGF,
67  INI,
70  MZML,
72  MS2,
77  QCML,
78  MZQC,
81  MSP,
84  PNG,
86  TSV,
92  EDTA,
93  CSV,
94  TXT,
95  OBO,
96  HTML,
98  XSD,
99  PSQ,
100  MRM,
102  PQP,
103  MS,
104  OSW,
106  PIN,
113  RAW,
114  OMS,
115  EXE,
116  XML,
117  BZ2,
118  GZ,
119  SIZE_OF_TYPE
120  };
121 
123  static String typeToName(Type type);
124 
129 
132  static Type nameToType(const String& name);
133 
135  static String typeToMZML(Type type);
136  };
137 
138  enum class FilterLayout
139  {
140  COMPACT,
141  ONE_BY_ONE,
142  BOTH
143  };
149  class OPENMS_DLLAPI FileTypeList
150  {
151  public:
152  FileTypeList(const std::vector<FileTypes::Type>& types);
153 
155  bool contains(const FileTypes::Type& type) const;
156 
157  const std::vector<FileTypes::Type>& getTypes() const
158  {
159  return type_list_;
160  }
161 
166  String toFileDialogFilter(const FilterLayout style, bool add_all_filter) const;
167 
182  FileTypes::Type fromFileDialogFilter(const String& filter, const FileTypes::Type fallback = FileTypes::Type::UNKNOWN) const;
183 
184  private:
187  {
188  std::vector<String> items;
189  std::vector<FileTypes::Type> types;
190  };
194  FilterElements_ asFilterElements_(const FilterLayout style, bool add_all_filter) const;
195 
196  std::vector<FileTypes::Type> type_list_;
197  };
198 
199 } // namespace OpenMS
200 
holds a vector of known file types, e.g. as a way to specify supported input formats
Definition: FileTypes.h:150
std::vector< FileTypes::Type > types
Definition: FileTypes.h:189
String toFileDialogFilter(const FilterLayout style, bool add_all_filter) const
std::vector< String > items
Definition: FileTypes.h:188
bool contains(const FileTypes::Type &type) const
check if type is contained in this array
FileTypes::Type fromFileDialogFilter(const String &filter, const FileTypes::Type fallback=FileTypes::Type::UNKNOWN) const
Convert a Qt filter back to a Type if possible.
std::vector< FileTypes::Type > type_list_
Definition: FileTypes.h:196
const std::vector< FileTypes::Type > & getTypes() const
Definition: FileTypes.h:157
FilterElements_ asFilterElements_(const FilterLayout style, bool add_all_filter) const
FileTypeList(const std::vector< FileTypes::Type > &types)
hold filter items (for Qt dialogs) along with their OpenMS type
Definition: FileTypes.h:187
A more convenient string class.
Definition: String.h:60
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:48
FilterLayout
Definition: FileTypes.h:139
@ BOTH
combine COMPACT and ONE_BY_ONE
@ ONE_BY_ONE
list all types individually, e.g. 'mzML files (*.mzML);;mzXML files (*.mzXML);;'
@ COMPACT
make a single item, e.g. 'all readable files (*.mzML *.mzXML);;'
Centralizes the file types recognized by FileHandler.
Definition: FileTypes.h:53
static String typeToDescription(Type type)
Type
Actual file types enum.
Definition: FileTypes.h:57
@ PSMS
Percolator tab-delimited output (PSM level)
Definition: FileTypes.h:105
@ PIN
Percolator tab-delimited input (PSM level)
Definition: FileTypes.h:106
@ FASTA
FASTA file (.fasta)
Definition: FileTypes.h:91
@ TRAML
TraML (HUPO PSI format) for transitions (.traML)
Definition: FileTypes.h:80
@ MZIDENTML
mzIdentML (HUPO PSI AnalysisXML followup format) (.mzid)
Definition: FileTypes.h:75
@ SPLIB
SpectraST binary spectral library file (sptxt is the equivalent text-based format,...
Definition: FileTypes.h:108
@ MZQUANTML
mzQuantML (HUPO PSI AnalysisXML followup format) (.mzq)
Definition: FileTypes.h:76
@ QCML
qcML (will undergo standardisation maybe) (.qcml)
Definition: FileTypes.h:77
@ GZ
any Gzipped file
Definition: FileTypes.h:118
@ MGF
Mascot Generic Format (.mgf)
Definition: FileTypes.h:66
@ CSV
general comma separated files format (might also be tab or space separated!!!), data should be regula...
Definition: FileTypes.h:93
@ PARAMXML
internal format for writing and reading parameters (also used as part of CTD)
Definition: FileTypes.h:107
@ INI
OpenMS parameters file (.ini)
Definition: FileTypes.h:67
@ GELML
GelML (HUPO PSI format) (.gelML)
Definition: FileTypes.h:79
@ HARDKLOER
hardkloer file (.hardkloer)
Definition: FileTypes.h:89
@ NOVOR
Novor custom parameter file.
Definition: FileTypes.h:109
@ PSQ
NCBI binary blast db.
Definition: FileTypes.h:99
@ TXT
any text format, which has only loose definition of what it actually contains – thus it is usually ha...
Definition: FileTypes.h:94
@ MSP
NIST spectra library file format (.msp)
Definition: FileTypes.h:81
@ KROENIK
kroenik file (.kroenik)
Definition: FileTypes.h:90
@ XML
any XML format
Definition: FileTypes.h:116
@ DTA2D
DTA2D file (.dta2d)
Definition: FileTypes.h:60
@ UNKNOWN
Unknown file extension.
Definition: FileTypes.h:58
@ CONSENSUSXML
OpenMS consensus map format (.consensusXML)
Definition: FileTypes.h:65
@ FEATUREXML
OpenMS feature file (.featureXML)
Definition: FileTypes.h:63
@ MZTAB
mzTab file (.mzTab)
Definition: FileTypes.h:87
@ PQP
OpenSWATH Peptide Query Parameter (PQP) SQLite DB, see TransitionPQPFile.
Definition: FileTypes.h:102
@ PROTXML
TPP protXML file (.protXML)
Definition: FileTypes.h:74
@ XSD
XSD schema format.
Definition: FileTypes.h:98
@ PNG
Portable Network Graphics (.png)
Definition: FileTypes.h:84
@ PEPLIST
specArray file (.peplist)
Definition: FileTypes.h:88
@ XMASS
XMass Analysis file (fid)
Definition: FileTypes.h:85
@ PEPXML
TPP pepXML file (.pepXML)
Definition: FileTypes.h:73
@ BZ2
any BZ2 compressed file
Definition: FileTypes.h:117
@ TSV
any TSV file, for example msInspect file or OpenSWATH transition file (see TransitionTSVFile)
Definition: FileTypes.h:86
@ MZQC
mzQC (HUPO PSI format) (.mzQC)
Definition: FileTypes.h:78
@ SPECXML
xQuest XML file format for matched spectra for spectra visualization in the xQuest results manager (....
Definition: FileTypes.h:111
@ MS
SIRIUS file format (.ms)
Definition: FileTypes.h:103
@ TRANSFORMATIONXML
Transformation description file (.trafoXML)
Definition: FileTypes.h:69
@ JSON
JavaScript Object Notation file (.json)
Definition: FileTypes.h:112
@ OMSSAXML
OMSSA XML file format for peptide identifications (.xml)
Definition: FileTypes.h:82
@ IDXML
OpenMS identification format (.idXML)
Definition: FileTypes.h:64
@ MZML
MzML file (.mzML)
Definition: FileTypes.h:70
@ RAW
Thermo Raw File (.raw)
Definition: FileTypes.h:113
@ EDTA
enhanced comma separated files (RT, m/z, Intensity, [meta])
Definition: FileTypes.h:92
@ TOPPAS
OpenMS parameters file with workflow information (.toppas)
Definition: FileTypes.h:68
@ XQUESTXML
xQuest XML file format for protein-protein cross-link identifications (.xquest.xml)
Definition: FileTypes.h:110
@ MS2
MS2 file (.ms2)
Definition: FileTypes.h:72
@ SQMASS
SqLite format for mass and chromatograms, see SqMassFile.
Definition: FileTypes.h:101
@ HTML
any HTML format
Definition: FileTypes.h:96
@ ANALYSISXML
analysisXML format
Definition: FileTypes.h:97
@ DTA
DTA file (.dta)
Definition: FileTypes.h:59
@ MASCOTXML
Mascot XML file format for peptide identifications (.xml)
Definition: FileTypes.h:83
@ CACHEDMZML
CachedMzML file (.cachedmzML)
Definition: FileTypes.h:71
@ EXE
Executable (.exe)
Definition: FileTypes.h:115
@ MZDATA
MzData file (.mzData)
Definition: FileTypes.h:61
@ OSW
OpenSWATH OpenSWATH report (OSW) SQLite DB.
Definition: FileTypes.h:104
@ MZXML
MzXML file (.mzXML)
Definition: FileTypes.h:62
@ OMS
OpenMS database file.
Definition: FileTypes.h:114
@ OBO
Controlled Vocabulary format.
Definition: FileTypes.h:95
@ MRM
SpectraST MRM List.
Definition: FileTypes.h:100
static Type nameToType(const String &name)
static String typeToMZML(Type type)
Returns the mzML name (TODO: switch to accession since they are more stable!)
static String typeToName(Type type)
Returns the name/extension of the type.