From df1128ac017e1c2ef475edbdb4d950dcbce280af Mon Sep 17 00:00:00 2001 From: Gabriel Studer <gabriel.studer@unibas.ch> Date: Fri, 18 Aug 2017 10:38:42 +0200 Subject: [PATCH] Set the accessibility of all residues to 0.0 in the beginning The reason is that we iterate over the atoms and add the per atom accessibility to the current value. You can guess what happens when calling the Accessibility function several times... --- modules/mol/alg/src/accessibility.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/mol/alg/src/accessibility.cc b/modules/mol/alg/src/accessibility.cc index 6b3903638..a1becdd7f 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; } -- GitLab