35 #ifndef OPENMS_FORMAT_MZTAB_H
36 #define OPENMS_FORMAT_MZTAB_H
69 virtual bool isNull()
const = 0;
70 virtual void setNull(
bool b) = 0;
80 virtual bool isNaN()
const = 0;
82 virtual bool isInf()
const = 0;
172 throw Exception::ElementNotFound(__FILE__, __LINE__, __PRETTY_FUNCTION__,
String(
"Trying to extract MzTab Double value from non-double valued cell. Did you check the cell state before querying the value?"));
204 else if (lower ==
"nan")
208 else if (lower ==
"inf")
252 for (std::vector<MzTabDouble>::const_iterator it =
entries_.begin(); it !=
entries_.end(); ++it)
258 ret += it->toCellString();
275 std::vector<String> fields;
276 ss.
split(
",", fields);
277 for (
Size i = 0; i != fields.size(); ++i)
286 std::vector<MzTabDouble>
get()
const
291 void set(
const std::vector<MzTabDouble>& entries)
318 throw Exception::ElementNotFound(__FILE__, __LINE__, __PRETTY_FUNCTION__,
String(
"Trying to extract MzTab Integer value from non-integer valued cell. Did you check the cell state before querying the value?"));
350 else if (lower ==
"nan")
354 else if (lower ==
"inf")
372 void set(
const bool& value)
591 std::vector<String> quoted_fields;
592 ss.
split(
"\"", quoted_fields);
594 if (quoted_fields.size() != 3)
599 name_ = quoted_fields[1];
602 std::vector<String> comma_fields;
603 ss.
split(
",", comma_fields);
604 if (comma_fields.size() != 4)
611 comma_fields[0].remove(
'[');
612 comma_fields[3].remove(
']');
620 std::vector<String> fields;
621 ss.
split(
",", fields);
622 if (fields.size() != 4)
629 fields[0].remove(
'[');
630 fields[3].remove(
']');
633 name_ = fields[2].remove(
'"');
679 ret += it->toCellString();
697 std::vector<String> fields;
698 ss.
split(
"|", fields);
699 for (
Size i = 0; i != fields.size(); ++i)
714 std::vector<MzTabParameter>
get()
const
719 void set(
const std::vector<MzTabParameter>& parameters)
765 for (std::vector<MzTabString>::const_iterator it =
entries_.begin(); it !=
entries_.end(); ++it)
771 ret += it->toCellString();
789 std::vector<String> fields;
791 for (
Size i = 0; i != fields.size(); ++i)
800 std::vector<MzTabString>
get()
const
805 void set(
const std::vector<MzTabString>& entries)
879 pos_param_string +=
String(
"|");
886 throw Exception::ConversionError(__FILE__, __LINE__, __PRETTY_FUNCTION__,
String(
"Modification or Substitution identifier MUST NOT be null or empty in MzTabModification"));
891 if (!pos_param_string.empty())
921 std::vector<String> fields;
922 ss.
split(
"-", fields);
924 if (fields.size() != 2)
930 std::vector<String> position_fields;
931 fields[0].split(
"|", position_fields);
933 for (
Size i = 0; i != position_fields.size(); ++i)
935 Size spos = position_fields[i].find_first_of(
"[");
937 if (spos == std::string::npos)
944 Int pos =
String(position_fields[i].begin(), position_fields[i].begin() + spos).
toInt();
987 for (std::vector<MzTabModification>::const_iterator it =
entries_.begin(); it !=
entries_.end(); ++it)
993 ret += it->toCellString();
1003 if (lower ==
"null")
1010 std::vector<String> fields;
1014 ss.
split(
",", fields);
1015 for (
Size i = 0; i != fields.size(); ++i)
1027 bool in_param_bracket =
false;
1028 bool in_quotes =
false;
1030 for (
Size pos = 0; pos != ss.size(); ++pos)
1033 if (ss[pos] ==
'[' && !in_quotes)
1035 in_param_bracket =
true;
1039 if (ss[pos] ==
']' && !in_quotes)
1041 in_param_bracket =
false;
1046 if (ss[pos] ==
'\"')
1048 in_quotes = !in_quotes;
1053 if (ss[pos] ==
',' && !in_quotes && in_param_bracket)
1055 ss[pos] = ((char)007);
1061 ss.
split(
",", fields);
1068 for (
Size i = 0; i != fields.size(); ++i)
1070 fields[i].substitute(((
char)007),
',');
1079 std::vector<MzTabModification>
get()
const
1084 void set(
const std::vector<MzTabModification>& entries)
1128 assert(!spec_ref.empty());
1129 if (!spec_ref.empty())
1149 assert(!spec_ref.empty());
1150 if (!spec_ref.empty())
1172 if (lower ==
"null")
1179 std::vector<String> fields;
1180 ss.
split(
":", fields);
1181 if (fields.size() != 2)
1187 ms_file_ = (
Size)(fields[0].substitute(
"ms_file[",
"").remove(
']').toInt());
1281 std::vector<MzTabOptionalColumnEntry>
opt_;
1305 std::vector<MzTabOptionalColumnEntry>
opt_;
1332 std::vector<MzTabOptionalColumnEntry>
opt_;
1366 return map_unitid_to_meta_data_;
1371 map_unitid_to_meta_data_ = md;
1376 return map_unitid_to_protein_data_;
1381 map_unitid_to_protein_data_ = psd;
1386 return map_unitid_to_peptide_data_;
1391 map_unitid_to_peptide_data_ = psd;
1396 return map_unitid_to_small_molecule_data_;
1401 map_unitid_to_small_molecule_data_ = smsd;
1407 std::vector<String> names;
1409 if (!protein_section.empty())
1412 if (!protein_rows.empty())
1414 const std::vector<MzTabOptionalColumnEntry>& opt_ = protein_rows[0].opt_;
1415 for (std::vector<MzTabOptionalColumnEntry>::const_iterator it = opt_.begin(); it != opt_.end(); ++it)
1417 names.push_back(it->first);
1427 std::vector<String> names;
1429 if (!peptide_section.empty())
1432 if (!peptide_rows.empty())
1434 const std::vector<MzTabOptionalColumnEntry>& opt_ = peptide_rows[0].opt_;
1435 for (std::vector<MzTabOptionalColumnEntry>::const_iterator it = opt_.begin(); it != opt_.end(); ++it)
1437 names.push_back(it->first);
1447 std::vector<String> names;
1449 if (!small_molecule_section.empty())
1452 if (!small_molecule_rows.empty())
1454 const std::vector<MzTabOptionalColumnEntry>& opt_ = small_molecule_rows[0].opt_;
1455 for (std::vector<MzTabOptionalColumnEntry>::const_iterator it = opt_.begin(); it != opt_.end(); ++it)
1457 names.push_back(it->first);
1473 #endif // OPENMS_FORMAT_MZTAB_H
MzTabSpectraRef spectra_ref
Definition: MzTab.h:1301
MzTabSpectraRef spectra_ref
Definition: MzTab.h:1325
String toCellString() const
Definition: MzTab.h:856
MzTabString uri
Definition: MzTab.h:1275
std::vector< MzTabDouble > smallmolecule_abundance_stdev_sub
Definition: MzTab.h:1330
void fromCellString(const String &s)
Definition: MzTab.h:264
void fromCellString(const String &s)
Definition: MzTab.h:777
virtual String toCellString() const =0
void setNull(bool b)
Definition: MzTab.h:235
MzTabString database
Definition: MzTab.h:1291
std::map< String, MzTabProteinSectionRows > MzTabProteinSectionData
Definition: MzTab.h:1343
A more convenient string class.
Definition: String.h:56
MzTabString accession
Definition: MzTab.h:1288
void set(const DoubleReal &value)
Definition: MzTab.h:158
std::vector< MzTabDouble > protein_abundance_sub
Definition: MzTab.h:1278
MzTabString sequence
Definition: MzTab.h:1287
DoubleReal toDouble() const
Conversion to double.
Element could not be found exception.
Definition: Exception.h:648
void fromCellString(const String &s)
Definition: MzTab.h:479
MzTabParameterList search_engine
Definition: MzTab.h:1267
virtual bool isNull() const =0
MzTab()
Default constructor.
Definition: MzTab.h:1359
bool isNaN() const
Definition: MzTab.h:130
const MzTabSmallMoleculeSectionData & getSmallMoleculeSectionData() const
Definition: MzTab.h:1394
MzTabString inchi_key
Definition: MzTab.h:1314
void setNull(bool b)
Definition: MzTab.h:825
MzTabString getModOrSubstIdentifier() const
Definition: MzTab.h:850
std::vector< MzTabOptionalColumnEntry > opt_
Definition: MzTab.h:1305
MzTabString database
Definition: MzTab.h:1265
bool isNull() const
Definition: MzTab.h:651
String toCellString() const
Definition: MzTab.h:467
String getName() const
Definition: MzTab.h:540
String value_
Definition: MzTab.h:485
String getAccession() const
Definition: MzTab.h:534
std::map< String, MzTabUnitIdMetaData > MzTabMetaData
Definition: MzTab.h:1341
MzTabString database_version
Definition: MzTab.h:1266
String CV_label_
Definition: MzTab.h:641
MzTabParameterList search_engine
Definition: MzTab.h:1293
MzTabSmallMoleculeSectionData map_unitid_to_small_molecule_data_
Definition: MzTab.h:1468
MzTabStringList identifier
Definition: MzTab.h:1311
std::vector< MzTabDouble > peptide_abundance_stdev_sub
Definition: MzTab.h:1303
std::vector< MzTabSmallMoleculeSectionRow > MzTabSmallMoleculeSectionRows
Definition: MzTab.h:1339
MzTabProteinSectionRow()
Definition: MzTab.h:1253
MzTabParameterList search_engine_score
Definition: MzTab.h:1294
void setCVLabel(const String &CV_label)
Definition: MzTab.h:508
std::vector< MzTabModification > entries_
Definition: MzTab.h:1090
MzTabCellStateType state_
Definition: MzTab.h:151
void setNull(bool b)
Definition: MzTab.h:125
void fromCellString(const String &s)
Definition: MzTab.h:196
bool isNull() const
Definition: MzTab.h:1103
std::vector< MzTabOptionalColumnEntry > opt_
Definition: MzTab.h:1332
std::vector< MzTabDouble > peptide_abundance_std_error_sub
Definition: MzTab.h:1304
MzTabString mod_or_subst_identifier_
Definition: MzTab.h:958
char sep_
Definition: MzTab.h:812
Int value_
Definition: MzTab.h:365
void setSpecRefFile(const String &spec_ref)
Definition: MzTab.h:1147
String toCellString() const
Definition: MzTab.h:978
std::vector< MzTabDouble > protein_abundance_stdev_sub
Definition: MzTab.h:1279
MzTabString uri
Definition: MzTab.h:1324
std::vector< MzTabProteinSectionRow > MzTabProteinSectionRows
Definition: MzTab.h:1335
MzTabDoubleList retention_time
Definition: MzTab.h:1318
bool isNull() const
Definition: MzTab.h:96
MzTabSpectraRef()
Definition: MzTab.h:1098
MzTabBoolean unique
Definition: MzTab.h:1290
void set(const String &value)
Definition: MzTab.h:435
MzTabInteger reliability
Definition: MzTab.h:1295
MzTabProteinSectionData map_unitid_to_protein_data_
Definition: MzTab.h:1466
~MzTab()
Destructor.
Definition: MzTab.h:1362
MzTabCellStateType
Data model of MzTab files. Please see the official MzTab specification at https://code.google.com/p/mztab/.
Definition: MzTab.h:56
void setNull(bool b)
Definition: MzTab.h:1108
void setValue(const String &value)
Definition: MzTab.h:523
std::vector< String > getPeptideOptionalColumnNames() const
Definition: MzTab.h:1425
String getCVLabel() const
Definition: MzTab.h:528
MzTabPeptideSectionData map_unitid_to_peptide_data_
Definition: MzTab.h:1467
MzTabString description
Definition: MzTab.h:1315
void set(const std::vector< MzTabModification > &entries)
Definition: MzTab.h:1084
MzTabString accession
Definition: MzTab.h:1260
String toCellString() const
Definition: MzTab.h:243
bool isInf() const
Definition: MzTab.h:140
std::map< String, MzTabSmallMoleculeSectionRows > MzTabSmallMoleculeSectionData
Definition: MzTab.h:1347
MzTabModificationList modifications
Definition: MzTab.h:1274
MzTabDouble mass_to_charge
Definition: MzTab.h:1299
MzTabNullAbleBase()
Definition: MzTab.h:91
Int toInt() const
Conversion to int.
String accession_
Definition: MzTab.h:642
String getSpecRef() const
Definition: MzTab.h:1135
MzTabString species
Definition: MzTab.h:1320
void setNull(bool b)
Definition: MzTab.h:748
const MzTabProteinSectionData & getProteinSectionData() const
Definition: MzTab.h:1374
String spec_ref_
Definition: MzTab.h:1193
bool value_
Definition: MzTab.h:428
void setPositionsAndParameters(const std::vector< std::pair< Int, MzTabParameter > > &ppp)
Definition: MzTab.h:835
MzTabInteger reliability
Definition: MzTab.h:1269
std::vector< MzTabDouble > protein_abundance_std_error_sub
Definition: MzTab.h:1280
void fromCellString(const String &s)
Definition: MzTab.h:999
void setPeptideSectionData(const MzTabPeptideSectionData &psd)
Definition: MzTab.h:1389
String & toLower()
Converts the string to lowercase.
String toCellString() const
Definition: MzTab.h:1156
bool hasSubstring(const String &string) const
true if String contains the string, false otherwise
DoubleReal value_
Definition: MzTab.h:219
MzTabString description
Definition: MzTab.h:1262
String & trim()
removes whitespaces (space, tab, line feed, carriage return) at the beginning and the end of the stri...
MzTabDouble charge
Definition: MzTab.h:1298
std::vector< MzTabDouble > entries_
Definition: MzTab.h:297
void set(const std::vector< MzTabDouble > &entries)
Definition: MzTab.h:291
MzTabInteger taxid
Definition: MzTab.h:1319
Size getMSFile() const
Definition: MzTab.h:1141
const MzTabMetaData & getMetaData() const
Definition: MzTab.h:1364
void setName(const String &name)
Definition: MzTab.h:518
String toCellString() const
Definition: MzTab.h:552
bool isNull() const
Definition: MzTab.h:820
MzTabDoubleList retention_time
Definition: MzTab.h:1297
std::vector< MzTabParameter > parameters_
Definition: MzTab.h:725
MzTabDouble mass_to_charge
Definition: MzTab.h:1316
virtual bool isInf() const =0
void set(const std::vector< MzTabString > &entries)
Definition: MzTab.h:805
std::vector< String > getSmallMoleculeOptionalColumnNames() const
Definition: MzTab.h:1445
std::vector< MzTabDouble > smallmolecule_abundance_std_error_sub
Definition: MzTab.h:1331
void set(const Int &value)
Definition: MzTab.h:304
std::vector< MzTabDouble > peptide_abundance_sub
Definition: MzTab.h:1302
void setSeparator(char sep)
Definition: MzTab.h:738
MzTabString species
Definition: MzTab.h:1264
const MzTabPeptideSectionData & getPeptideSectionData() const
Definition: MzTab.h:1384
MzTabDouble protein_coverage
Definition: MzTab.h:1277
MzTabModificationList modifications
Definition: MzTab.h:1296
Size ms_file_
Definition: MzTab.h:1192
void fromCellString(const String &s)
Definition: MzTab.h:402
String toCellString() const
Definition: MzTab.h:756
MzTabStringList go_terms
Definition: MzTab.h:1276
Invalid conversion exception.
Definition: Exception.h:363
void fromCellString(const String &s)
Definition: MzTab.h:576
std::vector< MzTabPeptideSectionRow > MzTabPeptideSectionRows
Definition: MzTab.h:1337
void setModOrSubstIdentifier(const MzTabString &mod_id)
Definition: MzTab.h:845
bool isNull() const
Definition: MzTab.h:965
String toCellString() const
Definition: MzTab.h:177
String getValue() const
Definition: MzTab.h:546
MzTabMetaData map_unitid_to_meta_data_
Definition: MzTab.h:1465
MzTabStringList ambiguity_members
Definition: MzTab.h:1273
void setProteinSectionData(const MzTabProteinSectionData &psd)
Definition: MzTab.h:1379
void setNull(bool b)
Definition: MzTab.h:101
bool isNull() const
Definition: MzTab.h:492
MzTabParameterList search_engine_score
Definition: MzTab.h:1327
std::vector< MzTabDouble > smallmolecule_abundance_sub
Definition: MzTab.h:1329
MzTabModificationList modifications
Definition: MzTab.h:1328
bool isNull() const
Definition: MzTab.h:743
std::map< String, MzTabPeptideSectionRows > MzTabPeptideSectionData
Definition: MzTab.h:1345
String toCellString() const
Definition: MzTab.h:664
void setMSFile(Size index)
Definition: MzTab.h:1117
MzTabInteger num_peptides
Definition: MzTab.h:1270
MzTabStringList()
Definition: MzTab.h:732
MzTabParameterList search_engine
Definition: MzTab.h:1326
String toCellString() const
Definition: MzTab.h:323
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:144
void set(const bool &value)
Definition: MzTab.h:372
String & substitute(char from, char to)
Replaces all occurences of the character from by the character to.
bool null_
Definition: MzTab.h:107
void set(const std::vector< MzTabParameter > ¶meters)
Definition: MzTab.h:719
String name_
Definition: MzTab.h:643
virtual void setNull(bool b)=0
void setInf()
Definition: MzTab.h:145
MzTabString database
Definition: MzTab.h:1321
void fromCellString(const String &s)
Definition: MzTab.h:903
MzTabInteger num_peptides_unambiguous
Definition: MzTab.h:1272
MzTabString uri
Definition: MzTab.h:1300
void setMetaData(const MzTabMetaData &md)
Definition: MzTab.h:1369
virtual void fromCellString(const String &)=0
std::vector< String > getProteinOptionalColumnNames() const
Definition: MzTab.h:1405
std::vector< std::pair< Int, MzTabParameter > > getPositionsAndParameters() const
Definition: MzTab.h:840
std::vector< MzTabString > entries_
Definition: MzTab.h:811
MzTabInteger reliability
Definition: MzTab.h:1323
MzTabParameterList search_engine_score
Definition: MzTab.h:1268
bool isNull() const
Definition: MzTab.h:454
void setSpecRef(String spec_ref)
Definition: MzTab.h:1126
MzTabInteger taxid
Definition: MzTab.h:1263
bool isNull() const
Definition: MzTab.h:120
void setNull(bool b)
Definition: MzTab.h:459
void fromCellString(const String &s)
Definition: MzTab.h:685
bool isNull() const
Definition: MzTab.h:230
std::vector< MzTabOptionalColumnEntry > opt_
Definition: MzTab.h:1281
void fromCellString(const String &s)
Definition: MzTab.h:1168
MzTabString database_version
Definition: MzTab.h:1322
MzTabString chemical_formula
Definition: MzTab.h:1312
MzTabString database_version
Definition: MzTab.h:1292
virtual bool isNaN() const =0
void fromCellString(const String &s)
Definition: MzTab.h:342
int Int
Signed integer type.
Definition: Types.h:100
MzTabDouble charge
Definition: MzTab.h:1317
void setNull(bool b)
Definition: MzTab.h:497
void setAccession(const String &accession)
Definition: MzTab.h:513
bool split(const char splitter, std::vector< String > &substrings, bool quote_protect=false) const
Splits a string into substrings using splitter as delimiter.
void setNull(bool b)
Definition: MzTab.h:970
String value_
Definition: MzTab.h:644
void setNaN()
Definition: MzTab.h:135
std::vector< std::pair< Int, MzTabParameter > > pos_param_pairs_
Definition: MzTab.h:957
String toCellString() const
Definition: MzTab.h:383
void setSmallMoleculeSectionData(const MzTabSmallMoleculeSectionData &smsd)
Definition: MzTab.h:1399
MzTabInteger num_peptides_distinct
Definition: MzTab.h:1271
MzTabString smiles
Definition: MzTab.h:1313
MzTabDoubleList()
Definition: MzTab.h:226
std::pair< String, MzTabString > MzTabOptionalColumnEntry
Definition: MzTab.h:1248
Data model of MzTab files. Please see the official MzTab specification at https://code.google.com/p/mztab/.
Definition: MzTab.h:1355
MzTabNullNaNAndInfAbleBase()
Definition: MzTab.h:115
void setNull(bool b)
Definition: MzTab.h:656