Skip to content
Snippets Groups Projects
Commit 277bd0c2 authored by Studer Gabriel's avatar Studer Gabriel
Browse files

allow to access the force field specific residue/atom renaming

data
parent 330ec03a
No related branches found
No related tags found
No related merge requests found
...@@ -78,6 +78,11 @@ void export_Forcefield() ...@@ -78,6 +78,11 @@ void export_Forcefield()
.def("SetFudgeLJ",&ost::mol::mm::Forcefield::SetFudgeLJ) .def("SetFudgeLJ",&ost::mol::mm::Forcefield::SetFudgeLJ)
.def("SetFudgeQQ",&ost::mol::mm::Forcefield::SetFudgeQQ) .def("SetFudgeQQ",&ost::mol::mm::Forcefield::SetFudgeQQ)
.def("SetGenPairs",&ost::mol::mm::Forcefield::SetGenPairs) .def("SetGenPairs",&ost::mol::mm::Forcefield::SetGenPairs)
.def("GetResidueRenamingMain",&ost::mol::mm::Forcefield::GetResidueRenamingMain,(arg("res_name")))
.def("GetResidueRenamingNTer",&ost::mol::mm::Forcefield::GetResidueRenamingNTer,(arg("res_name")))
.def("GetResidueRenamingCTer",&ost::mol::mm::Forcefield::GetResidueRenamingCTer,(arg("res_name")))
.def("GetResidueRenamingTwoTer",&ost::mol::mm::Forcefield::GetResidueRenamingTwoTer,(arg("res_name")))
.def("GetAtomRenaming",&ost::mol::mm::Forcefield::GetAtomRenaming,(arg("res_name"),arg("atom_name")))
.def("AssignFFSpecificNames",&ost::mol::mm::Forcefield::AssignFFSpecificNames,(arg("ent"),arg("reverse")=true)) .def("AssignFFSpecificNames",&ost::mol::mm::Forcefield::AssignFFSpecificNames,(arg("ent"),arg("reverse")=true))
; ;
......
...@@ -781,6 +781,49 @@ void Forcefield::AddAtomRenamingRule(const String& res_name, ...@@ -781,6 +781,49 @@ void Forcefield::AddAtomRenamingRule(const String& res_name,
atom_renaming_ff_specific_[res_name].push_back(std::make_pair(old_atom_name,new_atom_name)); atom_renaming_ff_specific_[res_name].push_back(std::make_pair(old_atom_name,new_atom_name));
} }
String Forcefield::GetResidueRenamingMain(const String& name) const{
boost::unordered_map<String, ResidueNamesPtr>::const_iterator i = res_renaming_ff_specific_.find(name);
if(i == res_renaming_ff_specific_.end()){
return name;
}
return i->second->main;
}
String Forcefield::GetResidueRenamingNTer(const String& name) const{
boost::unordered_map<String, ResidueNamesPtr>::const_iterator i = res_renaming_ff_specific_.find(name);
if(i == res_renaming_ff_specific_.end()){
return name;
}
return i->second->nter;
}
String Forcefield::GetResidueRenamingCTer(const String& name) const{
boost::unordered_map<String, ResidueNamesPtr>::const_iterator i = res_renaming_ff_specific_.find(name);
if(i == res_renaming_ff_specific_.end()){
return name;
}
return i->second->cter;
}
String Forcefield::GetResidueRenamingTwoTer(const String& name) const{
boost::unordered_map<String, ResidueNamesPtr>::const_iterator i = res_renaming_ff_specific_.find(name);
if(i == res_renaming_ff_specific_.end()){
return name;
}
return i->second->twoter;
}
String Forcefield::GetAtomRenaming(const String& res_name, const String& atom_name) const{
boost::unordered_map<String,std::vector<std::pair<String,String> > >::const_iterator i = atom_renaming_ff_specific_.find(res_name);
if(i == atom_renaming_ff_specific_.end()) return atom_name;
for(std::vector<std::pair<String,String> >::const_iterator j = i->second.begin(), e = i->second.end();
j != e; ++j){
if(atom_name == j->first) return j->second;
}
return atom_name;
}
void Forcefield::AssignFFSpecificNames(ost::mol::EntityHandle& handle, bool reverse) const{ void Forcefield::AssignFFSpecificNames(ost::mol::EntityHandle& handle, bool reverse) const{
//the whole FF specific renaming procedure assumes a standard naming, //the whole FF specific renaming procedure assumes a standard naming,
......
...@@ -151,6 +151,16 @@ public: ...@@ -151,6 +151,16 @@ public:
const String& old_atom_name, const String& old_atom_name,
const String& new_atom_name); const String& new_atom_name);
String GetResidueRenamingMain(const String& name) const;
String GetResidueRenamingNTer(const String& name) const;
String GetResidueRenamingCTer(const String& name) const;
String GetResidueRenamingTwoTer(const String& name) const;
String GetAtomRenaming(const String& res_name, const String& atom_name) const;
void AddHydrogenConstructor(const String& residue_name, HydrogenConstructorPtr p){ void AddHydrogenConstructor(const String& residue_name, HydrogenConstructorPtr p){
hydrogen_constructors_[residue_name] = p; hydrogen_constructors_[residue_name] = p;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment