diff --git a/modules/mol/mm/src/topology_creator.cc b/modules/mol/mm/src/topology_creator.cc index 00ba0738d68f5730d362097d0eee446d4ccef39b..9f0222b9c43edd72db0290fe1670b241315615ec 100644 --- a/modules/mol/mm/src/topology_creator.cc +++ b/modules/mol/mm/src/topology_creator.cc @@ -88,7 +88,8 @@ TopologyPtr TopologyCreator::Create(ost::mol::EntityHandle& ent, //this should be enough for most needs ost::mol::ResidueHandle next,prev; - bool n_ter,c_ter; + bool n_ter, c_ter; + std::set<unsigned long> n_ter_residues, c_ter_residues; ost::mol::AtomHandle peptide_n,peptide_c,nucleotide_p,nucleotide_o; for(ost::mol::ResidueHandleList::iterator i = res_list.begin(); @@ -133,8 +134,8 @@ TopologyPtr TopologyCreator::Create(ost::mol::EntityHandle& ent, } } - if(n_ter) i->SetBoolProp("n_ter",true); - if(c_ter) i->SetBoolProp("c_ter",true); + if(n_ter) n_ter_residues.insert(i->GetHashCode()); + if(c_ter) c_ter_residues.insert(i->GetHashCode()); } @@ -181,7 +182,7 @@ TopologyPtr TopologyCreator::Create(ost::mol::EntityHandle& ent, } } //check for n terminus - if(i->HasProp("n_ter")){ + if(n_ter_residues.find(i->GetHashCode()) != n_ter_residues.end()){ String exception_name = ""; if(settings->termini_exceptions->HasException(*i)){ exception_name = settings->termini_exceptions->GetException(*i); @@ -193,7 +194,7 @@ TopologyPtr TopologyCreator::Create(ost::mol::EntityHandle& ent, block->RemoveInteractionsToPrev(); } } - if(i->HasProp("c_ter")){ + if(c_ter_residues.find(i->GetHashCode()) != c_ter_residues.end()){ String exception_name = ""; if(settings->termini_exceptions->HasException(*i)){ exception_name = settings->termini_exceptions->GetException(*i);