diff --git a/modules/mol/alg/src/accessibility.cc b/modules/mol/alg/src/accessibility.cc index 6b3903638fd5829e98b543e1c4051261b04f68ae..a1becdd7f83c3de0b939e22788d6bf4bb3f22926 100644 --- a/modules/mol/alg/src/accessibility.cc +++ b/modules/mol/alg/src/accessibility.cc @@ -742,13 +742,19 @@ Real SetAccessibilityProps(ost::mol::EntityView& ent, const String& asa_rel, ost::mol::alg::AccessibilityAlgorithm algorithm) { + // first set accessibilities of all involved residues to 0.0 + for(uint idx = 0; idx < asa.size(); ++idx) { + ost::mol::ResidueView res = atom_list[idx].GetResidue(); + res.SetFloatProp(asa_abs, 0.0); + } + // assign absolute accessibilities Real summed_asa = 0.0; for(uint idx = 0; idx < asa.size(); ++idx) { Real val = asa[idx]; atom_list[idx].SetFloatProp(asa_atom, val); ost::mol::ResidueView res = atom_list[idx].GetResidue(); - Real current_asa = res.GetFloatProp(asa_abs, 0.0); + Real current_asa = res.GetFloatProp(asa_abs); res.SetFloatProp(asa_abs, current_asa + val); summed_asa += val; }