| OpenMS 2.5.0

MzTab.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-2020.
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: Timo Sachsenberg $
33 // --------------------------------------------------------------------------
34
35 #pragma once
36
37 #include <OpenMS/FORMAT/SVOutStream.h>
38 #include <OpenMS/CONCEPT/Exception.h>
39 #include <OpenMS/KERNEL/StandardTypes.h>
40 #include <OpenMS/KERNEL/FeatureMap.h>
41 #include <OpenMS/KERNEL/ConsensusMap.h>
42 #include <OpenMS/CHEMISTRY/AASequence.h>
43 #include <OpenMS/METADATA/PeptideEvidence.h>
44
45 #include <map>
46 #include <vector>
47 #include <list>
48 #include <algorithm>
49
50 #pragma clang diagnostic push
51 #pragma clang diagnostic ignored "-Wnon-virtual-dtor"
52
53 namespace OpenMS
54 {
63 enum MzTabCellStateType
65 {
66 MZTAB_CELLSTATE_DEFAULT,
67 MZTAB_CELLSTATE_NULL,
68 MZTAB_CELLSTATE_NAN,
69 MZTAB_CELLSTATE_INF,
70 SIZE_OF_MZTAB_CELLTYPE
71 };
72
74 class OPENMS_DLLAPI MzTabNullAbleInterface
75 {
76 public:
77 virtual ~MzTabNullAbleInterface();
78 virtual bool isNull() const = 0;
79 virtual void setNull(bool b) = 0;
80 virtual String toCellString() const = 0;
81 virtual void fromCellString(const String&) = 0;
82 };
83
85 class OPENMS_DLLAPI MzTabNullNaNAndInfAbleInterface :
86 public MzTabNullAbleInterface
87 {
88 public:
89 ~MzTabNullNaNAndInfAbleInterface() override;
90 virtual bool isNaN() const = 0;
91 virtual void setNaN() = 0;
92 virtual bool isInf() const = 0;
93 virtual void setInf() = 0;
94 };
95
97 class OPENMS_DLLAPI MzTabNullAbleBase :
98 public MzTabNullAbleInterface
99 {
100 public:
101 MzTabNullAbleBase();
102
103 ~MzTabNullAbleBase() override;
104
105 bool isNull() const override;
106
107 void setNull(bool b) override;
108
109 protected:
110 bool null_;
111 };
112
114 class OPENMS_DLLAPI MzTabNullNaNAndInfAbleBase :
115 public MzTabNullNaNAndInfAbleInterface
116 {
117 public:
118 MzTabNullNaNAndInfAbleBase();
119
120 ~MzTabNullNaNAndInfAbleBase() override;
121
122 bool isNull() const override;
123
124 void setNull(bool b) override;
125
126 bool isNaN() const override;
127
128 void setNaN() override;
129
130 bool isInf() const override;
131
132 void setInf() override;
133
134 protected:
135 MzTabCellStateType state_;
136 };
137
138 class OPENMS_DLLAPI MzTabDouble :
139 public MzTabNullNaNAndInfAbleBase
140 {
141 public:
142 MzTabDouble();
143
144 explicit MzTabDouble(const double v);
145
146 ~MzTabDouble() override;
147
148 void set(const double& value);
149
150 double get() const;
151
152 String toCellString() const override;
153
154 void fromCellString(const String& s) override;
155
156 protected:
157 double value_;
158 };
159
160 class OPENMS_DLLAPI MzTabDoubleList :
161 public MzTabNullAbleBase
162 {
163 public:
164 MzTabDoubleList();
165
166 ~MzTabDoubleList() override;
167
168 bool isNull() const override;
169
170 void setNull(bool b) override;
171
172 String toCellString() const override;
173
174 void fromCellString(const String& s) override;
175
176 std::vector<MzTabDouble> get() const;
177
178 void set(const std::vector<MzTabDouble>& entries);
179
180 protected:
181 std::vector<MzTabDouble> entries_;
182 };
183
184 class OPENMS_DLLAPI MzTabInteger :
185 public MzTabNullNaNAndInfAbleBase
186 {
187 public:
188 MzTabInteger();
189
190 explicit MzTabInteger(const int v);
191
192 ~MzTabInteger() override;
193
194 void set(const Int& value);
195
196 Int get() const;
197
198 String toCellString() const override;
199
200 void fromCellString(const String& s) override;
201
202 protected:
203 Int value_;
204 };
205
206 class OPENMS_DLLAPI MzTabIntegerList :
207 public MzTabNullAbleBase
208 {
209 public:
210 MzTabIntegerList();
211
212 bool isNull() const override;
213
214 void setNull(bool b) override;
215
216 String toCellString() const override;
217
218 void fromCellString(const String& s) override;
219
220 std::vector<MzTabInteger> get() const;
221
222 void set(const std::vector<MzTabInteger>& entries);
223
224 protected:
225 std::vector<MzTabInteger> entries_;
226 };
227
228 class OPENMS_DLLAPI MzTabBoolean :
229 public MzTabNullAbleBase
230 {
231 public:
232 MzTabBoolean();
233
234 explicit MzTabBoolean(bool v);
235
236 ~MzTabBoolean() override;
237
238 void set(const bool& value);
239
240 Int get() const;
241
242 String toCellString() const override;
243
244 void fromCellString(const String& s) override;
245
246 protected:
247 bool value_;
248 };
249
250 class OPENMS_DLLAPI MzTabString :
251 public MzTabNullAbleInterface
252 {
253 public:
254 MzTabString();
255
256 explicit MzTabString(const String& s);
257
258 ~MzTabString() override;
259
260 void set(const String& value);
261
262 String get() const;
263
264 bool isNull() const override;
265
266 void setNull(bool b) override;
267
268 String toCellString() const override;
269
270 void fromCellString(const String& s) override;
271
272 protected:
273 String value_;
274 };
275
276 class OPENMS_DLLAPI MzTabParameter :
277 public MzTabNullAbleInterface
278 {
279 public:
280 MzTabParameter();
281
282 ~MzTabParameter() override;
283
284 bool isNull() const override;
285
286 void setNull(bool b) override;
287
288 void setCVLabel(const String& CV_label);
289
290 void setAccession(const String& accession);
291
292 void setName(const String& name);
293
294 void setValue(const String& value);
295
296 String getCVLabel() const;
297
298 String getAccession() const;
299
300 String getName() const;
301
302 String getValue() const;
303
304 String toCellString() const override;
305
306 void fromCellString(const String& s) override;
307
308 protected:
309 String CV_label_;
310 String accession_;
311 String name_;
312 String value_;
313 };
314
315 class OPENMS_DLLAPI MzTabParameterList :
316 public MzTabNullAbleInterface
317 {
318 public:
319
320 ~MzTabParameterList() override;
321
322 bool isNull() const override;
323
324 void setNull(bool b) override;
325
326 String toCellString() const override;
327
328 void fromCellString(const String& s) override;
329
330 std::vector<MzTabParameter> get() const;
331
332 void set(const std::vector<MzTabParameter>& parameters);
333
334 protected:
335 std::vector<MzTabParameter> parameters_;
336 };
337
338 class OPENMS_DLLAPI MzTabStringList :
339 public MzTabNullAbleInterface
340 {
341 public:
342 MzTabStringList();
343
344 ~MzTabStringList() override;
345
347 void setSeparator(char sep);
348
349 bool isNull() const override;
350
351 void setNull(bool b) override;
352
353 String toCellString() const override;
354
355 void fromCellString(const String& s) override;
356
357 std::vector<MzTabString> get() const;
358
359 void set(const std::vector<MzTabString>& entries);
360
361 protected:
362 std::vector<MzTabString> entries_;
363 char sep_;
364 };
365
366 class OPENMS_DLLAPI MzTabModification :
367 public MzTabNullAbleInterface
368 {
369 public:
370 MzTabModification();
371
372 ~MzTabModification() override;
373
374 bool isNull() const override;
375
376 void setNull(bool b) override;
377
379 void setPositionsAndParameters(const std::vector<std::pair<Size, MzTabParameter> >& ppp);
380
381 std::vector<std::pair<Size, MzTabParameter> > getPositionsAndParameters() const;
382
383 void setModificationIdentifier(const MzTabString& mod_id);
384
385 MzTabString getModOrSubstIdentifier() const;
386
387 String toCellString() const override;
388
389 void fromCellString(const String& s) override;
390
391 protected:
392 std::vector<std::pair<Size, MzTabParameter> > pos_param_pairs_;
393 MzTabString mod_identifier_;
394 };
395
396 class OPENMS_DLLAPI MzTabModificationList :
397 public MzTabNullAbleBase
398 {
399 public:
400 ~MzTabModificationList() override;
401
402 bool isNull() const override;
403
404 void setNull(bool b) override;
405
406 String toCellString() const override;
407
408 void fromCellString(const String& s) override;
409
410 std::vector<MzTabModification> get() const;
411
412 void set(const std::vector<MzTabModification>& entries);
413
414 protected:
415 std::vector<MzTabModification> entries_;
416
417 };
418
419 class OPENMS_DLLAPI MzTabSpectraRef :
420 public MzTabNullAbleInterface
421 {
422 public:
423 MzTabSpectraRef();
424
425 ~MzTabSpectraRef() override;
426
427 bool isNull() const override;
428
429 void setNull(bool b) override;
430
431 void setMSFile(Size index);
432
433 void setSpecRef(const String& spec_ref);
434
435 String getSpecRef() const;
436
437 Size getMSFile() const;
438
439 void setSpecRefFile(const String& spec_ref);
440
441 String toCellString() const override;
442
443 void fromCellString(const String& s) override;
444
445 protected:
446 Size ms_run_; //< number is specified in the meta data section.
447 String spec_ref_;
448 };
449
450 // MTD
451
452 struct OPENMS_DLLAPI MzTabSampleMetaData
453 {
454 MzTabString description;
455 std::map<Size, MzTabParameter> species;
456 std::map<Size, MzTabParameter> tissue;
457 std::map<Size, MzTabParameter> cell_type;
458 std::map<Size, MzTabParameter> disease;
459 std::map<Size, MzTabParameter> custom;
460 };
461
462 struct OPENMS_DLLAPI MzTabSoftwareMetaData
463 {
464 MzTabParameter software;
465 //TODO shouldn't settings always consist of the name of the setting
466 // and the value?
467 std::map<Size, MzTabString> setting;
468 };
469
470 struct OPENMS_DLLAPI MzTabModificationMetaData
471 {
472 MzTabParameter modification;
473 MzTabString site;
474 MzTabString position;
475 };
476
477 struct OPENMS_DLLAPI MzTabAssayMetaData
478 {
479 MzTabParameter quantification_reagent;
480 std::map<Size, MzTabModificationMetaData> quantification_mod;
481 MzTabString sample_ref;
482 std::vector<int> ms_run_ref; // adapted to address https://github.com/HUPO-PSI/mzTab/issues/26
483 };
484
485 struct OPENMS_DLLAPI MzTabCVMetaData
486 {
487 MzTabString label;
488 MzTabString full_name;
489 MzTabString version;
490 MzTabString url;
491 };
492
493 struct OPENMS_DLLAPI MzTabInstrumentMetaData
494 {
495 MzTabParameter name;
496 MzTabParameter source;
497 std::map<Size, MzTabParameter> analyzer;
498 MzTabParameter detector;
499 };
500
501 struct OPENMS_DLLAPI MzTabContactMetaData
502 {
503 MzTabString name;
504 MzTabString affiliation;
505 MzTabString email;
506 };
507
508 struct OPENMS_DLLAPI MzTabMSRunMetaData
509 {
510 MzTabParameter format;
511 MzTabString location;
512 MzTabParameter id_format;
513 MzTabParameterList fragmentation_method;
514 };
515
516 struct OPENMS_DLLAPI MzTabStudyVariableMetaData
517 {
518 std::vector<int> assay_refs;
519 std::vector<int> sample_refs;
520 MzTabString description;
521 };
522
524 class OPENMS_DLLAPI MzTabMetaData
525 {
526 public:
527 MzTabMetaData();
528
529 MzTabString mz_tab_version;
530 MzTabString mz_tab_mode;
531 MzTabString mz_tab_type;
532 MzTabString mz_tab_id;
533 MzTabString title;
534 MzTabString description;
535
536 std::map<Size, MzTabParameter> protein_search_engine_score;
537 std::map<Size, MzTabParameter> peptide_search_engine_score;
538 std::map<Size, MzTabParameter> psm_search_engine_score;
539 std::map<Size, MzTabParameter> smallmolecule_search_engine_score;
540 std::map<Size, MzTabParameter> nucleic_acid_search_engine_score;
541 std::map<Size, MzTabParameter> oligonucleotide_search_engine_score;
542 std::map<Size, MzTabParameter> osm_search_engine_score;
543
544 std::map<Size, MzTabParameterList> sample_processing;
545
546 std::map<Size, MzTabInstrumentMetaData> instrument;
547
548 std::map<Size, MzTabSoftwareMetaData> software;
549
550 MzTabParameterList false_discovery_rate;
551
552 std::map<Size, MzTabString> publication;
553
554 std::map<Size, MzTabContactMetaData> contact;
555
556 std::map<Size, MzTabString> uri;
557
558 std::map<Size, MzTabModificationMetaData> fixed_mod;
559
560 std::map<Size, MzTabModificationMetaData> variable_mod;
561
562 MzTabParameter quantification_method;
563
564 MzTabParameter protein_quantification_unit;
565 MzTabParameter peptide_quantification_unit;
566 MzTabParameter small_molecule_quantification_unit;
567
568 std::map<Size, MzTabMSRunMetaData> ms_run;
569
570 std::map<Size, MzTabParameter> custom;
571
572 std::map<Size, MzTabSampleMetaData> sample;
573
574 std::map<Size, MzTabAssayMetaData> assay;
575
576 std::map<Size, MzTabStudyVariableMetaData> study_variable;
577
578 std::map<Size, MzTabCVMetaData> cv;
579
580 std::vector<String> colunit_protein;
581 std::vector<String> colunit_peptide;
582 std::vector<String> colunit_psm;
583 std::vector<String> colunit_small_molecule;
584 };
585
586 typedef std::pair<String, MzTabString> MzTabOptionalColumnEntry; //< column name (not null able), value (null able)
587
589 struct OPENMS_DLLAPI MzTabProteinSectionRow
590 {
591 MzTabProteinSectionRow();
592 MzTabString accession;
593 MzTabString description;
594 MzTabInteger taxid;
595 MzTabString species;
596 MzTabString database;
597 MzTabString database_version;
598 MzTabParameterList search_engine;
599 std::map<Size, MzTabDouble> best_search_engine_score;
600 std::map<Size, std::map<Size, MzTabDouble> > search_engine_score_ms_run;
601 MzTabInteger reliability;
602 std::map<Size, MzTabInteger> num_psms_ms_run;
603 std::map<Size, MzTabInteger> num_peptides_distinct_ms_run;
604 std::map<Size, MzTabInteger> num_peptides_unique_ms_run;
605 MzTabStringList ambiguity_members;
606 MzTabModificationList modifications;
607 MzTabString uri;
608 MzTabStringList go_terms;
609 MzTabDouble coverage;
610 std::map<Size, MzTabDouble> protein_abundance_assay;
611 std::map<Size, MzTabDouble> protein_abundance_study_variable;
612 std::map<Size, MzTabDouble> protein_abundance_stdev_study_variable;
613 std::map<Size, MzTabDouble> protein_abundance_std_error_study_variable;
614 std::vector<MzTabOptionalColumnEntry> opt_;
615
617 struct RowCompare
618 {
619 bool operator()(const MzTabProteinSectionRow& row1,
620 const MzTabProteinSectionRow& row2) const
621 {
622 return row1.accession.get() < row2.accession.get();
623 }
624 };
625 };
626
628 struct OPENMS_DLLAPI MzTabPeptideSectionRow
629 {
630 MzTabString sequence;
631 MzTabString accession;
632 MzTabBoolean unique;
633 MzTabString database;
634 MzTabString database_version;
635 MzTabParameterList search_engine;
636 std::map<Size, MzTabDouble> best_search_engine_score;
637 std::map<Size, std::map<Size, MzTabDouble> > search_engine_score_ms_run;
638 MzTabInteger reliability;
639 MzTabModificationList modifications;
640 MzTabDoubleList retention_time;
641 MzTabDoubleList retention_time_window;
642 MzTabInteger charge;
643 MzTabDouble mass_to_charge;
644 MzTabString uri;
645 MzTabSpectraRef spectra_ref;
646 std::map<Size, MzTabDouble> peptide_abundance_assay;
647 std::map<Size, MzTabDouble> peptide_abundance_study_variable;
648 std::map<Size, MzTabDouble> peptide_abundance_stdev_study_variable;
649 std::map<Size, MzTabDouble> peptide_abundance_std_error_study_variable;
650 std::vector<MzTabOptionalColumnEntry> opt_;
651
653 struct RowCompare
654 {
655 bool operator()(const MzTabPeptideSectionRow& row1,
656 const MzTabPeptideSectionRow& row2) const
657 {
658 return (std::make_pair(row1.sequence.get(), row1.accession.get()) <
659 std::make_pair(row2.sequence.get(), row2.accession.get()));
660 }
661 };
662 };
663
665 struct OPENMS_DLLAPI MzTabPSMSectionRow
666 {
667 MzTabString sequence;
668 MzTabInteger PSM_ID;
669 MzTabString accession;
670 MzTabBoolean unique;
671 MzTabString database;
672 MzTabString database_version;
673 MzTabParameterList search_engine;
674 std::map<Size, MzTabDouble> search_engine_score;
675 MzTabInteger reliability;
676 MzTabModificationList modifications;
677 MzTabDoubleList retention_time;
678 MzTabInteger charge;
679 MzTabDouble exp_mass_to_charge;
680 MzTabDouble calc_mass_to_charge;
681 MzTabString uri;
682 MzTabSpectraRef spectra_ref;
683 MzTabString pre;
684 MzTabString post;
685 MzTabString start;
686 MzTabString end;
687 std::vector<MzTabOptionalColumnEntry> opt_;
688
690 struct RowCompare
691 {
692 bool operator()(const MzTabPSMSectionRow& row1,
693 const MzTabPSMSectionRow& row2) const
694 {
695 // @TODO: sort by "PSM_ID"? what's the point of that field?
696 return (std::make_tuple(row1.sequence.get(),
697 row1.spectra_ref.getMSFile(),
698 row1.spectra_ref.getSpecRef(),
699 row1.accession.get()) <
700 std::make_tuple(row2.sequence.get(),
701 row2.spectra_ref.getMSFile(),
702 row2.spectra_ref.getSpecRef(),
703 row2.accession.get()));
704 }
705 };
706 };
707
709 struct OPENMS_DLLAPI MzTabSmallMoleculeSectionRow
710 {
711 MzTabStringList identifier;
712 MzTabString chemical_formula;
713 MzTabString smiles;
714 MzTabString inchi_key;
715 MzTabString description;
716 MzTabDouble exp_mass_to_charge;
717 MzTabDouble calc_mass_to_charge;
718 MzTabInteger charge;
719 MzTabDoubleList retention_time;
720 MzTabInteger taxid;
721 MzTabString species;
722 MzTabString database;
723 MzTabString database_version;
724 MzTabInteger reliability;
725 MzTabString uri;
726 MzTabSpectraRef spectra_ref;
727 MzTabParameterList search_engine;
728 std::map<Size, MzTabDouble> best_search_engine_score;
729 std::map<Size, std::map<Size, MzTabDouble> > search_engine_score_ms_run;
730 MzTabString modifications;
731 std::map<Size, MzTabDouble> smallmolecule_abundance_assay;
732 std::map<Size, MzTabDouble> smallmolecule_abundance_study_variable;
733 std::map<Size, MzTabDouble> smallmolecule_abundance_stdev_study_variable;
734 std::map<Size, MzTabDouble> smallmolecule_abundance_std_error_study_variable;
735 std::vector<MzTabOptionalColumnEntry> opt_;
736 };
737
739 struct OPENMS_DLLAPI MzTabNucleicAcidSectionRow
740 {
741 MzTabString accession;
742 MzTabString description;
743 MzTabInteger taxid;
744 MzTabString species;
745 MzTabString database;
746 MzTabString database_version;
747 MzTabParameterList search_engine;
748 std::map<Size, MzTabDouble> best_search_engine_score;
749 std::map<Size, std::map<Size, MzTabDouble> > search_engine_score_ms_run;
750 MzTabInteger reliability;
751 std::map<Size, MzTabInteger> num_osms_ms_run;
752 std::map<Size, MzTabInteger> num_oligos_distinct_ms_run;
753 std::map<Size, MzTabInteger> num_oligos_unique_ms_run;
754 MzTabStringList ambiguity_members;
755 MzTabModificationList modifications;
756 MzTabString uri;
757 // do GO terms make sense for nucleic acid sequences?
758 MzTabStringList go_terms;
759 MzTabDouble coverage;
760 std::vector<MzTabOptionalColumnEntry> opt_;
761
763 struct RowCompare
764 {
765 bool operator()(const MzTabNucleicAcidSectionRow& row1,
766 const MzTabNucleicAcidSectionRow& row2) const
767 {
768 return row1.accession.get() < row2.accession.get();
769 }
770 };
771 };
772
774 struct OPENMS_DLLAPI MzTabOligonucleotideSectionRow
775 {
776 MzTabString sequence;
777 MzTabString accession;
778 MzTabBoolean unique;
779 MzTabParameterList search_engine;
780 std::map<Size, MzTabDouble> best_search_engine_score;
781 std::map<Size, std::map<Size, MzTabDouble>> search_engine_score_ms_run;
782 MzTabInteger reliability;
783 MzTabModificationList modifications;
784 MzTabDoubleList retention_time;
785 MzTabDoubleList retention_time_window;
786 MzTabString uri;
787 MzTabString pre;
788 MzTabString post;
789 MzTabString start;
790 MzTabString end;
791 std::vector<MzTabOptionalColumnEntry> opt_;
792
794 struct RowCompare
795 {
796 bool operator()(const MzTabOligonucleotideSectionRow& row1,
797 const MzTabOligonucleotideSectionRow& row2) const
798 {
799 return (std::make_tuple(row1.sequence.get(), row1.accession.get(),
800 row1.start.get(), row1.end.get()) <
801 std::make_tuple(row2.sequence.get(), row2.accession.get(),
802 row2.start.get(), row2.end.get()));
803 }
804 };
805
806 };
807
809 struct OPENMS_DLLAPI MzTabOSMSectionRow
810 {
811 MzTabString sequence;
812 MzTabParameterList search_engine;
813 std::map<Size, MzTabDouble> search_engine_score;
814 MzTabInteger reliability;
815 MzTabModificationList modifications;
816 MzTabDoubleList retention_time;
817 MzTabInteger charge;
818 MzTabDouble exp_mass_to_charge;
819 MzTabDouble calc_mass_to_charge;
820 MzTabString uri;
821 MzTabSpectraRef spectra_ref;
822 std::vector<MzTabOptionalColumnEntry> opt_;
823
825 struct RowCompare
826 {
827 bool operator()(const MzTabOSMSectionRow& row1,
828 const MzTabOSMSectionRow& row2) const
829 {
830 return (std::make_tuple(row1.sequence.get(),
831 row1.spectra_ref.getMSFile(),
832 row1.spectra_ref.getSpecRef()) <
833 std::make_tuple(row2.sequence.get(),
834 row2.spectra_ref.getMSFile(),
835 row2.spectra_ref.getSpecRef()));
836 }
837 };
838 };
839
840 typedef std::vector<MzTabProteinSectionRow> MzTabProteinSectionRows;
841 typedef std::vector<MzTabPeptideSectionRow> MzTabPeptideSectionRows;
842 typedef std::vector<MzTabPSMSectionRow> MzTabPSMSectionRows;
843 typedef std::vector<MzTabSmallMoleculeSectionRow> MzTabSmallMoleculeSectionRows;
844 typedef std::vector<MzTabNucleicAcidSectionRow> MzTabNucleicAcidSectionRows;
845 typedef std::vector<MzTabOligonucleotideSectionRow> MzTabOligonucleotideSectionRows;
846 typedef std::vector<MzTabOSMSectionRow> MzTabOSMSectionRows;
847
848
855 class OPENMS_DLLAPI MzTab
856 {
857 public:
859 MzTab();
860
862 virtual ~MzTab();
863
864 const MzTabMetaData& getMetaData() const;
865
866 void setMetaData(const MzTabMetaData& md);
867
868 const MzTabProteinSectionRows& getProteinSectionRows() const;
869
870 void setProteinSectionRows(const MzTabProteinSectionRows& psd);
871
872 const MzTabPeptideSectionRows& getPeptideSectionRows() const;
873
874 void setPeptideSectionRows(const MzTabPeptideSectionRows& psd);
875
876 const MzTabPSMSectionRows& getPSMSectionRows() const;
877
878 void setPSMSectionRows(const MzTabPSMSectionRows& psd);
879
880 const MzTabSmallMoleculeSectionRows& getSmallMoleculeSectionRows() const;
881
882 void setSmallMoleculeSectionRows(const MzTabSmallMoleculeSectionRows& smsd);
883
884 const MzTabNucleicAcidSectionRows& getNucleicAcidSectionRows() const;
885
886 void setNucleicAcidSectionRows(const MzTabNucleicAcidSectionRows& nasd);
887
888 const MzTabOligonucleotideSectionRows& getOligonucleotideSectionRows() const;
889
890 void setOligonucleotideSectionRows(const MzTabOligonucleotideSectionRows& onsd);
891
892 const MzTabOSMSectionRows& getOSMSectionRows() const;
893
894 void setOSMSectionRows(const MzTabOSMSectionRows& osd);
895
896 void setCommentRows(const std::map<Size, String>& com);
897
898 void setEmptyRows(const std::vector<Size>& empty);
899
900 const std::vector<Size>& getEmptyRows() const;
901
902 const std::map<Size, String>& getCommentRows() const;
903
905 std::vector<String> getProteinOptionalColumnNames() const;
906
908 std::vector<String> getPeptideOptionalColumnNames() const;
909
911 std::vector<String> getPSMOptionalColumnNames() const;
912
914 std::vector<String> getSmallMoleculeOptionalColumnNames() const;
915
916
924 static void addPepEvidenceToRows(const std::vector<PeptideEvidence>& peptide_evidences, MzTabPSMSectionRow& row, MzTabPSMSectionRows& rows);
925
927 std::vector<String> getNucleicAcidOptionalColumnNames() const;
928
930 std::vector<String> getOligonucleotideOptionalColumnNames() const;
931
932 static void addMetaInfoToOptionalColumns(const std::set<String>& keys, std::vector<MzTabOptionalColumnEntry>& opt, const String& id, const MetaInfoInterface& meta);
933
935 std::vector<String> getOSMOptionalColumnNames() const;
936
937 static std::map<Size, MzTabModificationMetaData> generateMzTabStringFromModifications(const std::vector<String>& mods);
938
939 static std::map<Size, MzTabModificationMetaData> generateMzTabStringFromVariableModifications(const std::vector<String>& mods);
940
941 static std::map<Size, MzTabModificationMetaData> generateMzTabStringFromFixedModifications(const std::vector<String>& mods);
942
943 static MzTab exportFeatureMapToMzTab(const FeatureMap& feature_map, const String& filename);
944
959 static MzTab exportIdentificationsToMzTab(
960 const std::vector<ProteinIdentification>& prot_ids,
961 const std::vector<PeptideIdentification>& peptide_ids,
962 const String& filename,
963 bool first_run_inference_only,
964 std::map<std::pair<size_t,size_t>,size_t>& map_run_fileidx_2_msfileidx,
965 std::map<String, size_t>& idrun_2_run_index,
966 bool export_empty_pep_ids = false);
967
971 static MzTabModificationList extractModificationListFromAASequence(const AASequence& aas, const std::vector<String>& fixed_mods = std::vector<String>());
972
984 static MzTab exportConsensusMapToMzTab(
985 const ConsensusMap& consensus_map,
986 const String& filename,
987 const bool first_run_inference_only,
988 const bool export_unidentified_features,
989 const bool export_unassigned_ids,
990 const bool export_subfeatures,
991 const bool export_empty_pep_ids = false,
992 const String& title = "ConsensusMap export from OpenMS");
993
994
995 protected:
997 template <typename SectionRows>
998 std::vector<String> getOptionalColumnNames_(const SectionRows& rows) const
999 {
1000 // vector is used to preserve the column order
1001 std::vector<String> names;
1002 if (!rows.empty())
1003 {
1004 for (typename SectionRows::const_iterator it = rows.begin(); it != rows.end(); ++it)
1005 {
1006 for (std::vector<MzTabOptionalColumnEntry>::const_iterator it_opt = it->opt_.begin(); it_opt != it->opt_.end(); ++it_opt)
1007 {
1008 if (std::find(names.begin(), names.end(), it_opt->first) == names.end())
1009 {
1010 names.push_back(it_opt->first);
1011 }
1012 }
1013 }
1014 }
1015 return names;
1016 }
1017
1018 static void checkSequenceUniqueness_(const std::vector<PeptideIdentification>& curr_pep_ids);
1019
1020 MzTabMetaData meta_data_;
1021 MzTabProteinSectionRows protein_data_;
1022 MzTabPeptideSectionRows peptide_data_;
1023 MzTabPSMSectionRows psm_data_;
1024 MzTabSmallMoleculeSectionRows small_molecule_data_;
1025 MzTabNucleicAcidSectionRows nucleic_acid_data_;
1026 MzTabOligonucleotideSectionRows oligonucleotide_data_;
1027 MzTabOSMSectionRows osm_data_;
1028 std::vector<Size> empty_rows_;
1029 std::map<Size, String> comment_rows_;
1030 };
1031
1032 } // namespace OpenMS
1033
1034 #pragma clang diagnostic pop
1035
OpenMS::MzTabStudyVariableMetaData::assay_refs
std::vector< int > assay_refs
Definition: MzTab.h:518
OpenMS::MzTabPeptideSectionRow::database_version
MzTabString database_version
Version (and optionally # of entries).
Definition: MzTab.h:634
OpenMS::MzTabPSMSectionRow::calc_mass_to_charge
MzTabDouble calc_mass_to_charge
Definition: MzTab.h:680
OpenMS::MzTabMSRunMetaData::format
MzTabParameter format
Definition: MzTab.h:510
OpenMS::MzTabString::get
String get() const
OpenMS::MzTabContactMetaData::name
MzTabString name
Definition: MzTab.h:503
OpenMS::MzTab::getOptionalColumnNames_
std::vector< String > getOptionalColumnNames_(const SectionRows &rows) const
Helper function for "get...OptionalColumnNames" functions.
Definition: MzTab.h:998
OpenMS::MzTabProteinSectionRow::protein_abundance_stdev_study_variable
std::map< Size, MzTabDouble > protein_abundance_stdev_study_variable
Definition: MzTab.h:612
OpenMS::MzTabStringList::entries_
std::vector< MzTabString > entries_
Definition: MzTab.h:362
OpenMS::MzTabMetaData::protein_search_engine_score
std::map< Size, MzTabParameter > protein_search_engine_score
Definition: MzTab.h:536
OpenMS::MzTabMetaData::description
MzTabString description
Definition: MzTab.h:534
OpenMS::MzTabProteinSectionRow::species
MzTabString species
Human readable name of the species.
Definition: MzTab.h:595
OpenMS::String
A more convenient string class.
Definition: String.h:58
OpenMS::MzTabContactMetaData::affiliation
MzTabString affiliation
Definition: MzTab.h:504
OpenMS::MzTabPeptideSectionRow::charge
MzTabInteger charge
Precursor ion’s charge.
Definition: MzTab.h:642
OpenMS::MzTabAssayMetaData::quantification_reagent
MzTabParameter quantification_reagent
Definition: MzTab.h:479
OpenMS::MzTabMetaData
all meta data of a mzTab file. Please refer to specification for documentation.
Definition: MzTab.h:524
OpenMS::MzTabSmallMoleculeSectionRows
std::vector< MzTabSmallMoleculeSectionRow > MzTabSmallMoleculeSectionRows
Definition: MzTab.h:843
OpenMS::MzTabNullAbleInterface
basic interface for all MzTab datatypes (can be null; are converted from and to cell string) ...
Definition: MzTab.h:74
OpenMS::MzTabProteinSectionRow::best_search_engine_score
std::map< Size, MzTabDouble > best_search_engine_score
best_search_engine_score[1-n]
Definition: MzTab.h:599
OpenMS::MzTabSoftwareMetaData::setting
std::map< Size, MzTabString > setting
Definition: MzTab.h:467
OpenMS::MzTab::nucleic_acid_data_
MzTabNucleicAcidSectionRows nucleic_acid_data_
Definition: MzTab.h:1025
OpenMS::MzTabDouble::value_
double value_
Definition: MzTab.h:157
OpenMS::MzTabPeptideSectionRow::peptide_abundance_study_variable
std::map< Size, MzTabDouble > peptide_abundance_study_variable
Definition: MzTab.h:647
OpenMS::MzTabProteinSectionRow::num_peptides_distinct_ms_run
std::map< Size, MzTabInteger > num_peptides_distinct_ms_run
Definition: MzTab.h:603
OpenMS::MzTabMetaData::mz_tab_version
MzTabString mz_tab_version
Definition: MzTab.h:529
OpenMS::MzTabParameter::name_
String name_
Definition: MzTab.h:311
OpenMS::MzTabPeptideSectionRows
std::vector< MzTabPeptideSectionRow > MzTabPeptideSectionRows
Definition: MzTab.h:841
OpenMS::MzTabInstrumentMetaData::analyzer
std::map< Size, MzTabParameter > analyzer
Definition: MzTab.h:497
OpenMS::MzTab::comment_rows_
std::map< Size, String > comment_rows_
comments
Definition: MzTab.h:1029
OpenMS::MzTabModificationMetaData::position
MzTabString position
Definition: MzTab.h:474
OpenMS::MzTabStudyVariableMetaData::sample_refs
std::vector< int > sample_refs
Definition: MzTab.h:519
OpenMS::MzTabSmallMoleculeSectionRow::smallmolecule_abundance_study_variable
std::map< Size, MzTabDouble > smallmolecule_abundance_study_variable
Definition: MzTab.h:732
OpenMS::MzTabMetaData::sample_processing
std::map< Size, MzTabParameterList > sample_processing
Definition: MzTab.h:544
OpenMS::MzTabMetaData::small_molecule_quantification_unit
MzTabParameter small_molecule_quantification_unit
Definition: MzTab.h:566
OpenMS::MzTabProteinSectionRow::uri
MzTabString uri
Location of the protein’s source entry.
Definition: MzTab.h:607
OpenMS::MzTabNucleicAcidSectionRow::num_oligos_unique_ms_run
std::map< Size, MzTabInteger > num_oligos_unique_ms_run
Definition: MzTab.h:753
OpenMS::MzTabMetaData::uri
std::map< Size, MzTabString > uri
Definition: MzTab.h:556
OpenMS::MzTabDoubleList
Definition: MzTab.h:160
OpenMS::MzTabPeptideSectionRow::modifications
MzTabModificationList modifications
Modifications identified in the peptide.
Definition: MzTab.h:639
OpenMS::MzTabInstrumentMetaData::detector
MzTabParameter detector
Definition: MzTab.h:498
OpenMS::MzTabAssayMetaData::ms_run_ref
std::vector< int > ms_run_ref
Definition: MzTab.h:482
OpenMS::MzTabMetaData::mz_tab_id
MzTabString mz_tab_id
Definition: MzTab.h:532
OpenMS::MzTabPeptideSectionRow::retention_time_window
MzTabDoubleList retention_time_window
Definition: MzTab.h:641
AASequence.h
OpenMS::MzTabSmallMoleculeSectionRow::identifier
MzTabStringList identifier
The small molecule’s identifier.
Definition: MzTab.h:711
OpenMS::MzTabMetaData::software
std::map< Size, MzTabSoftwareMetaData > software
Definition: MzTab.h:548
OpenMS::MzTabMSRunMetaData::fragmentation_method
MzTabParameterList fragmentation_method
Definition: MzTab.h:513
OpenMS::MzTabMetaData::colunit_psm
std::vector< String > colunit_psm
Definition: MzTab.h:582
OpenMS::MzTabSpectraRef::spec_ref_
String spec_ref_
Definition: MzTab.h:447
OpenMS::MzTabProteinSectionRow::database_version
MzTabString database_version
String Version of the protein database.
Definition: MzTab.h:597
OpenMS::MzTabSmallMoleculeSectionRow::chemical_formula
MzTabString chemical_formula
Chemical formula of the identified compound.
Definition: MzTab.h:712
OpenMS::MzTabNucleicAcidSectionRow::go_terms
MzTabStringList go_terms
List of GO terms for the nucleic acid.
Definition: MzTab.h:758
SVOutStream.h
OpenMS::MzTabMetaData::osm_search_engine_score
std::map< Size, MzTabParameter > osm_search_engine_score
Definition: MzTab.h:542
OpenMS::MzTabMetaData::peptide_quantification_unit
MzTabParameter peptide_quantification_unit
Definition: MzTab.h:565
OpenMS::MzTab::empty_rows_
std::vector< Size > empty_rows_
index of empty rows
Definition: MzTab.h:1028
Exception.h
OpenMS::MzTabMetaData::instrument
std::map< Size, MzTabInstrumentMetaData > instrument
Definition: MzTab.h:546
OpenMS::FeatureMap
A container for features.
Definition: FeatureMap.h:95
OpenMS::MzTabNucleicAcidSectionRow::RowCompare::operator()
bool operator()(const MzTabNucleicAcidSectionRow &row1, const MzTabNucleicAcidSectionRow &row2) const
Definition: MzTab.h:765
OpenMS::MzTabAssayMetaData::quantification_mod
std::map< Size, MzTabModificationMetaData > quantification_mod
Definition: MzTab.h:480
OpenMS::MzTabProteinSectionRow::ambiguity_members
MzTabStringList ambiguity_members
Alternative protein identifications.
Definition: MzTab.h:605
OpenMS::MzTabPeptideSectionRow::peptide_abundance_stdev_study_variable
std::map< Size, MzTabDouble > peptide_abundance_stdev_study_variable
Definition: MzTab.h:648
OpenMS::MzTabParameter
Definition: MzTab.h:276
OpenMS::MzTabPSMSectionRow::end
MzTabString end
Definition: MzTab.h:686
OpenMS::MzTabMSRunMetaData
Definition: MzTab.h:508
OpenMS::MzTabStudyVariableMetaData
Definition: MzTab.h:516
OpenMS::MzTabModificationMetaData
Definition: MzTab.h:470
OpenMS::MzTabAssayMetaData
Definition: MzTab.h:477
OpenMS::MzTabCVMetaData
Definition: MzTab.h:485
OpenMS::MzTabInstrumentMetaData
Definition: MzTab.h:493
OpenMS::MzTabContactMetaData
Definition: MzTab.h:501
OpenMS::MzTabSampleMetaData
Definition: MzTab.h:452
OpenMS::MzTabSoftwareMetaData
Definition: MzTab.h:462
StandardTypes.h
OpenMS::MzTabCVMetaData::label
MzTabString label
Definition: MzTab.h:487
OpenMS::MzTabInteger::value_
Int value_
Definition: MzTab.h:203
OpenMS::MzTabPeptideSectionRow::mass_to_charge
MzTabDouble mass_to_charge
Precursor ion’s m/z.
Definition: MzTab.h:643
OpenMS::MzTabMetaData::quantification_method
MzTabParameter quantification_method
Definition: MzTab.h:562
OpenMS::MzTabPSMSectionRow::post
MzTabString post
Definition: MzTab.h:684
OpenMS::MzTabProteinSectionRow::taxid
MzTabInteger taxid
NEWT taxonomy for the species.
Definition: MzTab.h:594
OpenMS::MzTabNucleicAcidSectionRow
NUC - Nucleic acid section (table-based)
Definition: MzTab.h:739
OpenMS::MzTabMetaData::smallmolecule_search_engine_score
std::map< Size, MzTabParameter > smallmolecule_search_engine_score
Definition: MzTab.h:539
OpenMS::MzTabOligonucleotideSectionRow
OLI - Oligonucleotide section (table-based)
Definition: MzTab.h:774
OpenMS::MzTabOSMSectionRow
OSM - OSM (oligonucleotide-spectrum match) section (table-based)
Definition: MzTab.h:809
OpenMS::MzTabPeptideSectionRow
PEP - Peptide section (Table based)
Definition: MzTab.h:628
OpenMS::MzTabPeptideSectionRow::RowCompare::operator()
bool operator()(const MzTabPeptideSectionRow &row1, const MzTabPeptideSectionRow &row2) const
Definition: MzTab.h:655
OpenMS::MzTabPSMSectionRow
PSM - PSM section (Table based)
Definition: MzTab.h:665
OpenMS::MzTabSmallMoleculeSectionRow
SML Small molecule section (table based)
Definition: MzTab.h:709
OpenMS::MzTabPeptideSectionRow::reliability
MzTabInteger reliability
(1-3) 0=null Identification reliability for the peptide.
Definition: MzTab.h:638
OpenMS::MzTabMetaData::custom
std::map< Size, MzTabParameter > custom
Definition: MzTab.h:570
OpenMS::MzTab::meta_data_
MzTabMetaData meta_data_
Definition: MzTab.h:1020
OpenMS::MzTabSampleMetaData::disease
std::map< Size, MzTabParameter > disease
Definition: MzTab.h:458
OpenMS::MzTabProteinSectionRow::protein_abundance_std_error_study_variable
std::map< Size, MzTabDouble > protein_abundance_std_error_study_variable
Definition: MzTab.h:613
OpenMS::MzTabCVMetaData::full_name
MzTabString full_name
Definition: MzTab.h:488
OpenMS::MzTabMetaData::oligonucleotide_search_engine_score
std::map< Size, MzTabParameter > oligonucleotide_search_engine_score
Definition: MzTab.h:541
OpenMS::MzTabProteinSectionRow::RowCompare
Comparison operator for sorting rows.
Definition: MzTab.h:617
OpenMS::MzTabOligonucleotideSectionRows
std::vector< MzTabOligonucleotideSectionRow > MzTabOligonucleotideSectionRows
Definition: MzTab.h:845
OpenMS::MzTabNullAbleBase
base class for atomic, non-container types (Double, Int)
Definition: MzTab.h:97
OpenMS::MzTabMSRunMetaData::location
MzTabString location
Definition: MzTab.h:511
OpenMS::MzTabPeptideSectionRow::retention_time
MzTabDoubleList retention_time
Time points in seconds. Semantics may vary.
Definition: MzTab.h:640
OpenMS::MzTabModificationMetaData::site
MzTabString site
Definition: MzTab.h:473
OpenMS::MzTabSpectraRef
Definition: MzTab.h:419
OpenMS::MzTabPSMSectionRow::RowCompare::operator()
bool operator()(const MzTabPSMSectionRow &row1, const MzTabPSMSectionRow &row2) const
Definition: MzTab.h:692
OpenMS::MzTabPeptideSectionRow::sequence
MzTabString sequence
The peptide’s sequence.
Definition: MzTab.h:630
OpenMS::MzTabMetaData::peptide_search_engine_score
std::map< Size, MzTabParameter > peptide_search_engine_score
Definition: MzTab.h:537
OpenMS::MzTabSmallMoleculeSectionRow::smallmolecule_abundance_std_error_study_variable
std::map< Size, MzTabDouble > smallmolecule_abundance_std_error_study_variable
Definition: MzTab.h:734
OpenMS::MzTabString::value_
String value_
Definition: MzTab.h:273
OpenMS::MzTabModificationList::entries_
std::vector< MzTabModification > entries_
Definition: MzTab.h:415
OpenMS::MzTabMetaData::protein_quantification_unit
MzTabParameter protein_quantification_unit
Definition: MzTab.h:564
PeptideEvidence.h
OpenMS::MzTabProteinSectionRow::description
MzTabString description
Human readable description (i.e. the name)
Definition: MzTab.h:593
OpenMS::MzTabInstrumentMetaData::source
MzTabParameter source
Definition: MzTab.h:496
ConsensusMap.h
OpenMS::MzTabModification::mod_identifier_
MzTabString mod_identifier_
Definition: MzTab.h:393
OpenMS::MzTabMetaData::study_variable
std::map< Size, MzTabStudyVariableMetaData > study_variable
Definition: MzTab.h:576
OpenMS::MzTabNucleicAcidSectionRow::ambiguity_members
MzTabStringList ambiguity_members
Alternative nucleic acid identifications.
Definition: MzTab.h:754
OpenMS::MzTabNucleicAcidSectionRow::coverage
MzTabDouble coverage
(0-1) Fraction of nucleic acid sequence identified.
Definition: MzTab.h:759
OpenMS::MzTabProteinSectionRow::protein_abundance_study_variable
std::map< Size, MzTabDouble > protein_abundance_study_variable
Definition: MzTab.h:611
OpenMS::MzTabOSMSectionRows
std::vector< MzTabOSMSectionRow > MzTabOSMSectionRows
Definition: MzTab.h:846
OpenMS::MzTabProteinSectionRows
std::vector< MzTabProteinSectionRow > MzTabProteinSectionRows
Definition: MzTab.h:840
OpenMS::MzTabSmallMoleculeSectionRow::taxid
MzTabInteger taxid
NEWT taxonomy for the species.
Definition: MzTab.h:720
OpenMS::MzTabSmallMoleculeSectionRow::modifications
MzTabString modifications
Modifications identified on the small molecule.
Definition: MzTab.h:730
OpenMS::MzTab::psm_data_
MzTabPSMSectionRows psm_data_
Definition: MzTab.h:1023
OpenMS::AASequence
Representation of a peptide/protein sequence.
Definition: AASequence.h:113
OpenMS::MzTabIntegerList
Definition: MzTab.h:206
OpenMS::MzTabMetaData::ms_run
std::map< Size, MzTabMSRunMetaData > ms_run
Definition: MzTab.h:568
FeatureMap.h
OpenMS::MzTabPSMSectionRows
std::vector< MzTabPSMSectionRow > MzTabPSMSectionRows
Definition: MzTab.h:842
OpenMS::MzTabPeptideSectionRow::peptide_abundance_std_error_study_variable
std::map< Size, MzTabDouble > peptide_abundance_std_error_study_variable
Definition: MzTab.h:649
OpenMS::MzTabMetaData::mz_tab_mode
MzTabString mz_tab_mode
Definition: MzTab.h:530
OpenMS::MzTabPeptideSectionRow::RowCompare
Comparison operator for sorting rows.
Definition: MzTab.h:653
OpenMS::MzTabDouble
Definition: MzTab.h:138
OpenMS::MzTabSmallMoleculeSectionRow::inchi_key
MzTabString inchi_key
InChi Key of the identified compound.
Definition: MzTab.h:714
OpenMS::MzTabModification::pos_param_pairs_
std::vector< std::pair< Size, MzTabParameter > > pos_param_pairs_
Definition: MzTab.h:392
OpenMS::MzTabOSMSectionRow::RowCompare::operator()
bool operator()(const MzTabOSMSectionRow &row1, const MzTabOSMSectionRow &row2) const
Definition: MzTab.h:827
OpenMS::MzTabProteinSectionRow::modifications
MzTabModificationList modifications
Modifications identified in the protein.
Definition: MzTab.h:606
OpenMS::MzTabProteinSectionRow
PRT - Protein section (Table based)
Definition: MzTab.h:589
OpenMS::MzTabNullNaNAndInfAbleInterface
interface for NaN- and Inf- able datatypes (Double and Integer in MzTab). These are as well null-able...
Definition: MzTab.h:85
OpenMS::MzTabParameter::CV_label_
String CV_label_
Definition: MzTab.h:309
OpenMS::MzTabIntegerList::entries_
std::vector< MzTabInteger > entries_
Definition: MzTab.h:225
OpenMS::MzTabProteinSectionRow::accession
MzTabString accession
The protein’s accession.
Definition: MzTab.h:592
OpenMS::MzTabStringList::sep_
char sep_
Definition: MzTab.h:363
OpenMS::MzTabPeptideSectionRow::spectra_ref
MzTabSpectraRef spectra_ref
Spectra identifying the peptide.
Definition: MzTab.h:645
OpenMS::MzTabProteinSectionRow::num_peptides_unique_ms_run
std::map< Size, MzTabInteger > num_peptides_unique_ms_run
Definition: MzTab.h:604
OpenMS::MzTabMetaData::colunit_small_molecule
std::vector< String > colunit_small_molecule
Definition: MzTab.h:583
OpenMS::MzTabPSMSectionRow::start
MzTabString start
Definition: MzTab.h:685
OpenMS::MzTabOligonucleotideSectionRow::RowCompare::operator()
bool operator()(const MzTabOligonucleotideSectionRow &row1, const MzTabOligonucleotideSectionRow &row2) const
Definition: MzTab.h:796
OpenMS::MzTabNullAbleBase::null_
bool null_
Definition: MzTab.h:110
OpenMS::MzTabPSMSectionRow::pre
MzTabString pre
Definition: MzTab.h:683
OpenMS
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:46
OpenMS::MzTabSpectraRef::getMSFile
Size getMSFile() const
OpenMS::MzTabProteinSectionRow::go_terms
MzTabStringList go_terms
List of GO terms for the protein.
Definition: MzTab.h:608
OpenMS::MzTabCellStateType
MzTabCellStateType
Data model of MzTab files.
Definition: MzTab.h:64
OpenMS::MzTabProteinSectionRow::opt_
std::vector< MzTabOptionalColumnEntry > opt_
Optional Columns must start with “opt_”
Definition: MzTab.h:614
OpenMS::MzTabStringList
Definition: MzTab.h:338
OpenMS::SIZE_OF_MZTAB_CELLTYPE
Definition: MzTab.h:70
OpenMS::MzTabNucleicAcidSectionRows
std::vector< MzTabNucleicAcidSectionRow > MzTabNucleicAcidSectionRows
Definition: MzTab.h:844
OpenMS::MzTabProteinSectionRow::num_psms_ms_run
std::map< Size, MzTabInteger > num_psms_ms_run
Definition: MzTab.h:602
OpenMS::MzTabModificationMetaData::modification
MzTabParameter modification
Definition: MzTab.h:472
OpenMS::MzTabParameter::accession_
String accession_
Definition: MzTab.h:310
OpenMS::MzTabNucleicAcidSectionRow::RowCompare
Comparison operator for sorting rows.
Definition: MzTab.h:763
OpenMS::MzTabString
Definition: MzTab.h:250
OpenMS::MzTabPeptideSectionRow::peptide_abundance_assay
std::map< Size, MzTabDouble > peptide_abundance_assay
Definition: MzTab.h:646
OpenMS::MzTabMetaData::nucleic_acid_search_engine_score
std::map< Size, MzTabParameter > nucleic_acid_search_engine_score
Definition: MzTab.h:540
OpenMS::MzTabMetaData::fixed_mod
std::map< Size, MzTabModificationMetaData > fixed_mod
Definition: MzTab.h:558
OpenMS::MzTabPSMSectionRow::RowCompare
Comparison operator for sorting rows.
Definition: MzTab.h:690
OpenMS::MzTabInteger
Definition: MzTab.h:184
OpenMS::MzTabSoftwareMetaData::software
MzTabParameter software
Definition: MzTab.h:464
OpenMS::MzTabSmallMoleculeSectionRow::smallmolecule_abundance_assay
std::map< Size, MzTabDouble > smallmolecule_abundance_assay
Definition: MzTab.h:731
OpenMS::MzTabPSMSectionRow::exp_mass_to_charge
MzTabDouble exp_mass_to_charge
The m/z ratio of the experimental precursor ion.
Definition: MzTab.h:679
OpenMS::MzTabNullNaNAndInfAbleBase
base class for the atomic non-container like MzTab data types (Double, Int)
Definition: MzTab.h:114
OpenMS::MzTabPeptideSectionRow::uri
MzTabString uri
Location of the PSMs source entry.
Definition: MzTab.h:644
OpenMS::MZTAB_CELLSTATE_NULL
Definition: MzTab.h:67
OpenMS::MzTabMetaData::false_discovery_rate
MzTabParameterList false_discovery_rate
Definition: MzTab.h:550
OpenMS::MzTab::peptide_data_
MzTabPeptideSectionRows peptide_data_
Definition: MzTab.h:1022
OpenMS::MzTabProteinSectionRow::search_engine
MzTabParameterList search_engine
Search engine(s) identifying the protein.
Definition: MzTab.h:598
OpenMS::MzTabProteinSectionRow::reliability
MzTabInteger reliability
Definition: MzTab.h:601
OpenMS::MzTabDoubleList::entries_
std::vector< MzTabDouble > entries_
Definition: MzTab.h:181
OpenMS::MzTabSmallMoleculeSectionRow::species
MzTabString species
Human readable name of the species.
Definition: MzTab.h:721
OpenMS::MzTabMetaData::cv
std::map< Size, MzTabCVMetaData > cv
Definition: MzTab.h:578
OpenMS::MzTabMSRunMetaData::id_format
MzTabParameter id_format
Definition: MzTab.h:512
OpenMS::MzTabContactMetaData::email
MzTabString email
Definition: MzTab.h:505
seqan::find
bool find(TFinder &finder, const Pattern< TNeedle, FuzzyAC > &me, PatternAuxData< TNeedle > &dh)
Definition: AhoCorasickAmbiguous.h:884
OpenMS::MzTab
Data model of MzTab files. Please see the official MzTab specification at https://code.google.com/p/mztab/.
Definition: MzTab.h:855
OpenMS::MzTabModificationList
Definition: MzTab.h:396
OpenMS::MzTabProteinSectionRow::database
MzTabString database
Name of the protein database.
Definition: MzTab.h:596
OpenMS::MzTabNucleicAcidSectionRow::num_oligos_distinct_ms_run
std::map< Size, MzTabInteger > num_oligos_distinct_ms_run
Definition: MzTab.h:752
OpenMS::MzTabOligonucleotideSectionRow::RowCompare
Comparison operator for sorting rows.
Definition: MzTab.h:794
OpenMS::MzTabParameterList
Definition: MzTab.h:315
OpenMS::MZTAB_CELLSTATE_INF
Definition: MzTab.h:69
OpenMS::MzTabMetaData::colunit_protein
std::vector< String > colunit_protein
Definition: MzTab.h:580
OpenMS::MzTabMetaData::publication
std::map< Size, MzTabString > publication
Definition: MzTab.h:552
OpenMS::MzTabBoolean
Definition: MzTab.h:228
OpenMS::MzTabPeptideSectionRow::database
MzTabString database
Name of the sequence database.
Definition: MzTab.h:633
OpenMS::MZTAB_CELLSTATE_DEFAULT
Definition: MzTab.h:66
OpenMS::MzTabSampleMetaData::cell_type
std::map< Size, MzTabParameter > cell_type
Definition: MzTab.h:457
OpenMS::MzTabMetaData::sample
std::map< Size, MzTabSampleMetaData > sample
Definition: MzTab.h:572
OpenMS::MzTabSampleMetaData::species
std::map< Size, MzTabParameter > species
Definition: MzTab.h:455
OpenMS::MzTabParameter::value_
String value_
Definition: MzTab.h:312
OpenMS::MzTabSampleMetaData::description
MzTabString description
Definition: MzTab.h:454
OpenMS::MzTabMetaData::mz_tab_type
MzTabString mz_tab_type
Definition: MzTab.h:531
OpenMS::MzTab::small_molecule_data_
MzTabSmallMoleculeSectionRows small_molecule_data_
Definition: MzTab.h:1024
OpenMS::MzTabCVMetaData::version
MzTabString version
Definition: MzTab.h:489
OpenMS::MzTabParameterList::parameters_
std::vector< MzTabParameter > parameters_
Definition: MzTab.h:335
OpenMS::MzTabSmallMoleculeSectionRow::smiles
MzTabString smiles
Molecular structure in SMILES format.
Definition: MzTab.h:713
OpenMS::MzTabProteinSectionRow::RowCompare::operator()
bool operator()(const MzTabProteinSectionRow &row1, const MzTabProteinSectionRow &row2) const
Definition: MzTab.h:619
int
OpenMS::MzTabMetaData::assay
std::map< Size, MzTabAssayMetaData > assay
Definition: MzTab.h:574
OpenMS::MzTabSmallMoleculeSectionRow::smallmolecule_abundance_stdev_study_variable
std::map< Size, MzTabDouble > smallmolecule_abundance_stdev_study_variable
Definition: MzTab.h:733
OpenMS::MzTabNucleicAcidSectionRow::num_osms_ms_run
std::map< Size, MzTabInteger > num_osms_ms_run
Definition: MzTab.h:751
OpenMS::MzTabBoolean::value_
bool value_
Definition: MzTab.h:247
OpenMS::ConsensusMap
A container for consensus elements.
Definition: ConsensusMap.h:79
OpenMS::MzTabPeptideSectionRow::best_search_engine_score
std::map< Size, MzTabDouble > best_search_engine_score
Search engine(s) score(s) for the peptide.
Definition: MzTab.h:636
OpenMS::MzTabPSMSectionRow::search_engine_score
std::map< Size, MzTabDouble > search_engine_score
Search engine(s) score(s) for the peptide.
Definition: MzTab.h:674
OpenMS::MzTabCVMetaData::url
MzTabString url
Definition: MzTab.h:490
OpenMS::MzTabOSMSectionRow::RowCompare
Comparison operator for sorting rows.
Definition: MzTab.h:825
OpenMS::MzTabModification
Definition: MzTab.h:366
OpenMS::MzTabAssayMetaData::sample_ref
MzTabString sample_ref
Definition: MzTab.h:481
OpenMS::MzTabPeptideSectionRow::opt_
std::vector< MzTabOptionalColumnEntry > opt_
Optional columns must start with “opt_”.
Definition: MzTab.h:650
OpenMS::MzTabPeptideSectionRow::search_engine_score_ms_run
std::map< Size, std::map< Size, MzTabDouble > > search_engine_score_ms_run
Definition: MzTab.h:637
OpenMS::MzTabMetaData::contact
std::map< Size, MzTabContactMetaData > contact
Definition: MzTab.h:554
OpenMS::MzTabInstrumentMetaData::name
MzTabParameter name
Definition: MzTab.h:495
OpenMS::MzTabProteinSectionRow::coverage
MzTabDouble coverage
(0-1) Amount of protein sequence identified.
Definition: MzTab.h:609
OpenMS::MzTabSpectraRef::getSpecRef
String getSpecRef() const
OpenMS::MzTabPSMSectionRow::PSM_ID
MzTabInteger PSM_ID
Definition: MzTab.h:668
OpenMS::MzTab::oligonucleotide_data_
MzTabOligonucleotideSectionRows oligonucleotide_data_
Definition: MzTab.h:1026
OpenMS::MzTabMetaData::psm_search_engine_score
std::map< Size, MzTabParameter > psm_search_engine_score
Definition: MzTab.h:538
OpenMS::MzTabNullNaNAndInfAbleBase::state_
MzTabCellStateType state_
Definition: MzTab.h:135
OpenMS::MzTab::osm_data_
MzTabOSMSectionRows osm_data_
/ oligonucleotide-spectrum matches
Definition: MzTab.h:1027
OpenMS::MzTabSampleMetaData::custom
std::map< Size, MzTabParameter > custom
Definition: MzTab.h:459
OpenMS::MzTabMetaData::title
MzTabString title
Definition: MzTab.h:533
OpenMS::MzTabSpectraRef::ms_run_
Size ms_run_
Definition: MzTab.h:446
OpenMS::MzTabProteinSectionRow::protein_abundance_assay
std::map< Size, MzTabDouble > protein_abundance_assay
Definition: MzTab.h:610
OpenMS::MzTabOptionalColumnEntry
std::pair< String, MzTabString > MzTabOptionalColumnEntry
Definition: MzTab.h:586
OpenMS::MZTAB_CELLSTATE_NAN
Definition: MzTab.h:68
OpenMS::MzTabMetaData::colunit_peptide
std::vector< String > colunit_peptide
Definition: MzTab.h:581
OpenMS::MzTabPeptideSectionRow::accession
MzTabString accession
The protein’s accession.
Definition: MzTab.h:631
OpenMS::MzTabSampleMetaData::tissue
std::map< Size, MzTabParameter > tissue
Definition: MzTab.h:456
OpenMS::MetaInfoInterface
Interface for classes that can store arbitrary meta information (Type-Name-Value tuples).
Definition: MetaInfoInterface.h:60
OpenMS::MzTabProteinSectionRow::search_engine_score_ms_run
std::map< Size, std::map< Size, MzTabDouble > > search_engine_score_ms_run
search_engine_score[index1]_ms_run[index2]
Definition: MzTab.h:600
OpenMS::Size
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:127
OpenMS::MzTab::protein_data_
MzTabProteinSectionRows protein_data_
Definition: MzTab.h:1021
OpenMS::MzTabMetaData::variable_mod
std::map< Size, MzTabModificationMetaData > variable_mod
Definition: MzTab.h:560
OpenMS::MzTabPeptideSectionRow::unique
MzTabBoolean unique
0=false, 1=true, null else: Peptide is unique for the protein.
Definition: MzTab.h:632
OpenMS::MzTabPeptideSectionRow::search_engine
MzTabParameterList search_engine
Search engine(s) that identified the peptide.
Definition: MzTab.h:635