void Residue::setModification(const String & modification) { //modification_ = modification; ModificationsDB * mod_db = ModificationsDB::getInstance(); ResidueModification mod = mod_db->getModification(one_letter_code_, modification, ResidueModification::ANYWHERE); modification_ = mod.getId(); // update all the members if (mod.getAverageMass() != 0) { average_weight_ = mod.getAverageMass(); } if (mod.getMonoMass() != 0) { mono_weight_ = mod.getMonoMass(); } bool updated_formula(false); if (!mod.getDiffFormula().isEmpty()) { updated_formula = true; setFormula(getFormula() + mod.getDiffFormula()); } if (mod.getFormula() != "" && !updated_formula) { updated_formula = true; String formula = mod.getFormula(); formula.removeWhitespaces(); formula_ = EmpiricalFormula(formula); } if (updated_formula) { average_weight_ = formula_.getAverageWeight(); mono_weight_ = formula_.getMonoWeight(); } else { if (mod.getAverageMass() != 0) { average_weight_ = mod.getAverageMass(); } if (mod.getMonoMass() != 0) { mono_weight_ = mod.getMonoMass(); } } // neutral losses loss_formulas_.clear(); loss_names_.clear(); if (mod.hasNeutralLoss()) { loss_formulas_.push_back(mod.getNeutralLossDiffFormula()); loss_names_.push_back(mod.getNeutralLossDiffFormula().toString()); } is_modified_ = true; }
NOT_TESTABLE END_SECTION START_SECTION((void setNeutralLossAverageMass(double average_mass))) ptr->setNeutralLossAverageMass(23.345678); TEST_REAL_SIMILAR(ptr->getNeutralLossAverageMass(), 23.345678) END_SECTION START_SECTION(double getNeutralLossAverageMass() const) NOT_TESTABLE END_SECTION START_SECTION((bool hasNeutralLoss() const)) TEST_EQUAL(ptr->hasNeutralLoss(), true) ResidueModification mod; TEST_EQUAL(mod.hasNeutralLoss(), false) mod.setNeutralLossDiffFormula(EmpiricalFormula("H2O")); TEST_EQUAL(mod.hasNeutralLoss(), true) END_SECTION START_SECTION((void setFullId(const String& full_id))) ptr->setFullId("blubb_new_fullid"); TEST_STRING_EQUAL(ptr->getFullId(), "blubb_new_fullid") END_SECTION START_SECTION((const String& getFullId() const)) NOT_TESTABLE END_SECTION START_SECTION((void setUniModAccession(const String &id))) ptr->setUniModAccession("blubb_new_UniModAccession");