OpenMS
FileTypes.h
Go to the documentation of this file.
1 // Copyright (c) 2002-2023, The OpenMS Team -- EKU Tuebingen, ETH Zurich, and FU Berlin
2 // SPDX-License-Identifier: BSD-3-Clause
3 //
4 // --------------------------------------------------------------------------
5 // $Maintainer: Timo Sachsenberg $
6 // $Authors: Stephan Aiche, Andreas Bertsch, Marc Sturm, Chris Bielow $
7 // --------------------------------------------------------------------------
8 
9 #pragma once
10 
11 #include <OpenMS/config.h>
13 
14 #include <vector>
15 
16 namespace OpenMS
17 {
26  struct OPENMS_DLLAPI FileTypes
27  {
28 
30  enum Type
31  {
33  DTA,
40  MGF,
41  INI,
44  MZML,
46  MS2,
51  QCML,
52  MZQC,
55  MSP,
58  PNG,
60  TSV,
66  EDTA,
67  CSV,
68  TXT,
69  OBO,
70  HTML,
72  XSD,
73  PSQ,
74  MRM,
76  PQP,
77  MS,
78  OSW,
79  PSMS,
80  PIN,
86  JSON,
87  RAW,
88  OMS,
89  EXE,
90  XML,
91  BZ2,
92  GZ,
93  SIZE_OF_TYPE
94  };
95 
97  static String typeToName(Type type);
98 
103 
106  static Type nameToType(const String& name);
107 
109  static String typeToMZML(Type type);
110  };
111 
112  enum class FilterLayout
113  {
114  COMPACT,
115  ONE_BY_ONE,
116  BOTH
117  };
123  class OPENMS_DLLAPI FileTypeList
124  {
125  public:
126  FileTypeList(const std::vector<FileTypes::Type>& types);
127 
129  bool contains(const FileTypes::Type& type) const;
130 
131  const std::vector<FileTypes::Type>& getTypes() const
132  {
133  return type_list_;
134  }
135 
140  String toFileDialogFilter(const FilterLayout style, bool add_all_filter) const;
141 
156  FileTypes::Type fromFileDialogFilter(const String& filter, const FileTypes::Type fallback = FileTypes::Type::UNKNOWN) const;
157 
158  private:
161  {
162  std::vector<String> items;
163  std::vector<FileTypes::Type> types;
164  };
168  FilterElements_ asFilterElements_(const FilterLayout style, bool add_all_filter) const;
169 
170  std::vector<FileTypes::Type> type_list_;
171  };
172 
173 } // namespace OpenMS
174 
holds a vector of known file types, e.g. as a way to specify supported input formats
Definition: FileTypes.h:124
std::vector< FileTypes::Type > types
Definition: FileTypes.h:163
String toFileDialogFilter(const FilterLayout style, bool add_all_filter) const
std::vector< String > items
Definition: FileTypes.h:162
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:170
const std::vector< FileTypes::Type > & getTypes() const
Definition: FileTypes.h:131
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:161
A more convenient string class.
Definition: String.h:34
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:22
FilterLayout
Definition: FileTypes.h:113
@ 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:27
static String typeToDescription(Type type)
Type
Actual file types enum.
Definition: FileTypes.h:31
@ PSMS
Percolator tab-delimited output (PSM level)
Definition: FileTypes.h:79
@ PIN
Percolator tab-delimited input (PSM level)
Definition: FileTypes.h:80
@ FASTA
FASTA file (.fasta)
Definition: FileTypes.h:65
@ TRAML
TraML (HUPO PSI format) for transitions (.traML)
Definition: FileTypes.h:54
@ MZIDENTML
mzIdentML (HUPO PSI AnalysisXML followup format) (.mzid)
Definition: FileTypes.h:49
@ SPLIB
SpectraST binary spectral library file (sptxt is the equivalent text-based format,...
Definition: FileTypes.h:82
@ MZQUANTML
mzQuantML (HUPO PSI AnalysisXML followup format) (.mzq)
Definition: FileTypes.h:50
@ QCML
qcML (will undergo standardisation maybe) (.qcml)
Definition: FileTypes.h:51
@ GZ
any Gzipped file
Definition: FileTypes.h:92
@ MGF
Mascot Generic Format (.mgf)
Definition: FileTypes.h:40
@ CSV
general comma separated files format (might also be tab or space separated!!!), data should be regula...
Definition: FileTypes.h:67
@ PARAMXML
internal format for writing and reading parameters (also used as part of CTD)
Definition: FileTypes.h:81
@ INI
OpenMS parameters file (.ini)
Definition: FileTypes.h:41
@ GELML
GelML (HUPO PSI format) (.gelML)
Definition: FileTypes.h:53
@ HARDKLOER
hardkloer file (.hardkloer)
Definition: FileTypes.h:63
@ NOVOR
Novor custom parameter file.
Definition: FileTypes.h:83
@ PSQ
NCBI binary blast db.
Definition: FileTypes.h:73
@ TXT
any text format, which has only loose definition of what it actually contains – thus it is usually ha...
Definition: FileTypes.h:68
@ MSP
NIST spectra library file format (.msp)
Definition: FileTypes.h:55
@ KROENIK
kroenik file (.kroenik)
Definition: FileTypes.h:64
@ XML
any XML format
Definition: FileTypes.h:90
@ DTA2D
DTA2D file (.dta2d)
Definition: FileTypes.h:34
@ UNKNOWN
Unknown file extension.
Definition: FileTypes.h:32
@ CONSENSUSXML
OpenMS consensus map format (.consensusXML)
Definition: FileTypes.h:39
@ FEATUREXML
OpenMS feature file (.featureXML)
Definition: FileTypes.h:37
@ MZTAB
mzTab file (.mzTab)
Definition: FileTypes.h:61
@ PQP
OpenSWATH Peptide Query Parameter (PQP) SQLite DB, see TransitionPQPFile.
Definition: FileTypes.h:76
@ PROTXML
TPP protXML file (.protXML)
Definition: FileTypes.h:48
@ XSD
XSD schema format.
Definition: FileTypes.h:72
@ PNG
Portable Network Graphics (.png)
Definition: FileTypes.h:58
@ PEPLIST
specArray file (.peplist)
Definition: FileTypes.h:62
@ XMASS
XMass Analysis file (fid)
Definition: FileTypes.h:59
@ PEPXML
TPP pepXML file (.pepXML)
Definition: FileTypes.h:47
@ BZ2
any BZ2 compressed file
Definition: FileTypes.h:91
@ TSV
any TSV file, for example msInspect file or OpenSWATH transition file (see TransitionTSVFile)
Definition: FileTypes.h:60
@ MZQC
mzQC (HUPO PSI format) (.mzQC)
Definition: FileTypes.h:52
@ SPECXML
xQuest XML file format for matched spectra for spectra visualization in the xQuest results manager (....
Definition: FileTypes.h:85
@ MS
SIRIUS file format (.ms)
Definition: FileTypes.h:77
@ TRANSFORMATIONXML
Transformation description file (.trafoXML)
Definition: FileTypes.h:43
@ JSON
JavaScript Object Notation file (.json)
Definition: FileTypes.h:86
@ OMSSAXML
OMSSA XML file format for peptide identifications (.xml)
Definition: FileTypes.h:56
@ IDXML
OpenMS identification format (.idXML)
Definition: FileTypes.h:38
@ MZML
MzML file (.mzML)
Definition: FileTypes.h:44
@ RAW
Thermo Raw File (.raw)
Definition: FileTypes.h:87
@ EDTA
enhanced comma separated files (RT, m/z, Intensity, [meta])
Definition: FileTypes.h:66
@ TOPPAS
OpenMS parameters file with workflow information (.toppas)
Definition: FileTypes.h:42
@ XQUESTXML
xQuest XML file format for protein-protein cross-link identifications (.xquest.xml)
Definition: FileTypes.h:84
@ MS2
MS2 file (.ms2)
Definition: FileTypes.h:46
@ SQMASS
SqLite format for mass and chromatograms, see SqMassFile.
Definition: FileTypes.h:75
@ HTML
any HTML format
Definition: FileTypes.h:70
@ ANALYSISXML
analysisXML format
Definition: FileTypes.h:71
@ DTA
DTA file (.dta)
Definition: FileTypes.h:33
@ MASCOTXML
Mascot XML file format for peptide identifications (.xml)
Definition: FileTypes.h:57
@ CACHEDMZML
CachedMzML file (.cachedmzML)
Definition: FileTypes.h:45
@ EXE
Executable (.exe)
Definition: FileTypes.h:89
@ MZDATA
MzData file (.mzData)
Definition: FileTypes.h:35
@ OSW
OpenSWATH OpenSWATH report (OSW) SQLite DB.
Definition: FileTypes.h:78
@ MZXML
MzXML file (.mzXML)
Definition: FileTypes.h:36
@ OMS
OpenMS database file.
Definition: FileTypes.h:88
@ OBO
Controlled Vocabulary format.
Definition: FileTypes.h:69
@ MRM
SpectraST MRM List.
Definition: FileTypes.h:74
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.