| 592 | } |
| 593 | |
| 594 | map<Size, MzTabModificationMetaData> MzTab::generateMzTabStringFromModifications(const vector<String>& mods) |
| 595 | { |
| 596 | map<Size, MzTabModificationMetaData> mods_mztab; |
| 597 | Size index(1); |
| 598 | for (String const & s : mods) |
| 599 | { |
| 600 | MzTabModificationMetaData mod; |
| 601 | MzTabParameter mp; |
| 602 | ModificationsDB* mod_db = ModificationsDB::getInstance(); |
| 603 | String unimod_accession; |
| 604 | try |
| 605 | { |
| 606 | const ResidueModification* m = mod_db->getModification(s); |
| 607 | unimod_accession = m->getUniModAccession(); |
| 608 | if (!unimod_accession.empty()) |
| 609 | { |
| 610 | // MzTab standard is to report Unimod accession. |
| 611 | mp.setCVLabel("UNIMOD"); |
| 612 | mp.setAccession(unimod_accession.toUpper()); |
| 613 | } |
| 614 | mp.setName(m->getId()); |
| 615 | mod.modification = mp; |
| 616 | |
| 617 | if (m->getTermSpecificity() == ResidueModification::C_TERM) |
| 618 | { |
| 619 | mod.position = MzTabString("Any C-term"); |
| 620 | } |
| 621 | else if (m->getTermSpecificity() == ResidueModification::N_TERM) |
| 622 | { |
| 623 | mod.position = MzTabString("Any N-term"); |
| 624 | } |
| 625 | else if (m->getTermSpecificity() == ResidueModification::ANYWHERE) |
| 626 | { |
| 627 | mod.position = MzTabString("Anywhere"); |
| 628 | } |
| 629 | else if (m->getTermSpecificity() == ResidueModification::PROTEIN_C_TERM) |
| 630 | { |
| 631 | mod.position = MzTabString("Protein C-term"); |
| 632 | } |
| 633 | else if (m->getTermSpecificity() == ResidueModification::PROTEIN_N_TERM) |
| 634 | { |
| 635 | mod.position = MzTabString("Protein N-term"); |
| 636 | } |
| 637 | mod.site = MzTabString(String(m->getOrigin())); |
| 638 | mods_mztab[index] = mod; |
| 639 | } |
| 640 | catch(...) |
| 641 | { |
| 642 | OPENMS_LOG_WARN << "Skipping unknown residue modification: '" + s + "'" << endl; |
| 643 | } |
| 644 | ++index; |
| 645 | } |
| 646 | return mods_mztab; |
| 647 | } |
| 648 | |
| 649 | map<Size, MzTabModificationMetaData> MzTab::generateMzTabStringFromVariableModifications(const vector<String>& mods) |
| 650 | { |
nothing calls this directly
no test coverage detected