| 679 | } |
| 680 | |
| 681 | MzTab MzTab::exportFeatureMapToMzTab( |
| 682 | const FeatureMap & feature_map, |
| 683 | const String & filename) |
| 684 | { |
| 685 | OPENMS_LOG_INFO << "exporting feature map: \"" << filename << "\" to mzTab: " << std::endl; |
| 686 | MzTab mztab; |
| 687 | MzTabMetaData meta_data; |
| 688 | |
| 689 | const vector<ProteinIdentification> &prot_ids = feature_map.getProteinIdentifications(); |
| 690 | vector<String> var_mods, fixed_mods; |
| 691 | MzTabString db, db_version; |
| 692 | if (!prot_ids.empty()) |
| 693 | { |
| 694 | const ProteinIdentification::SearchParameters &sp = prot_ids[0].getSearchParameters(); |
| 695 | var_mods = sp.variable_modifications; |
| 696 | fixed_mods = sp.fixed_modifications; |
| 697 | db = sp.db.empty() ? MzTabString() : MzTabString(sp.db); |
| 698 | db_version = sp.db_version.empty() ? MzTabString() : MzTabString(sp.db_version); |
| 699 | } |
| 700 | |
| 701 | meta_data.variable_mod = generateMzTabStringFromVariableModifications(var_mods); |
| 702 | meta_data.fixed_mod = generateMzTabStringFromFixedModifications(fixed_mods); |
| 703 | |
| 704 | // mandatory meta values |
| 705 | meta_data.mz_tab_type = MzTabString("Quantification"); |
| 706 | meta_data.mz_tab_mode = MzTabString("Summary"); |
| 707 | meta_data.description = MzTabString("OpenMS export from featureXML"); |
| 708 | |
| 709 | MzTabMSRunMetaData ms_run; |
| 710 | StringList spectra_data; |
| 711 | feature_map.getPrimaryMSRunPath(spectra_data); |
| 712 | |
| 713 | if (!spectra_data.empty()) |
| 714 | { |
| 715 | // prepend file:// if not there yet |
| 716 | String m = spectra_data[0]; |
| 717 | if (!m.hasPrefix("file://")) {m = String("file://") + m; } |
| 718 | ms_run.location = MzTabString(m); |
| 719 | } |
| 720 | else |
| 721 | { |
| 722 | ms_run.location = MzTabString(); |
| 723 | } |
| 724 | |
| 725 | meta_data.ms_run[1] = ms_run; |
| 726 | meta_data.uri[1] = MzTabString(filename); |
| 727 | meta_data.psm_search_engine_score[1] = MzTabParameter(); // TODO: we currently only support psm search engine scores annotated to the identification run |
| 728 | meta_data.peptide_search_engine_score[1] = MzTabParameter(); |
| 729 | |
| 730 | mztab.setMetaData(meta_data); |
| 731 | |
| 732 | // pre-analyze data for occurring meta values at feature and peptide hit level |
| 733 | // these are used to build optional columns containing the meta values in internal data structures |
| 734 | set<String> feature_user_value_keys; |
| 735 | set<String> peptide_identifications_user_value_keys; |
| 736 | set<String> peptide_hit_user_value_keys; |
| 737 | MzTab::getFeatureMapMetaValues_( |
| 738 | feature_map, |
nothing calls this directly
no test coverage detected