Fix computing Transformation
based on pairwise alignment
#63
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Thanks for maintaining this package, saves me a lot of work!
I have found a subtle bug in the function that computes a
Transformation
based on a pairwise alignment. In it, we want to collect all atoms belonging to residues that were (mis)matched in the alignment. To ensure that the number of atoms that are later used for the Kabsch algorithm are equal, we have to check for every residue if their atom counts match, even if the residues produced a mismatch in the alignment. However, the previous code only checked if the so-far collected atoms have the same amount (the invariant we want to maintain) where it should check if the atoms about to be added have the same amount.I adapted the code and added a short explanatory comment. Let me know if anything else should be added!