Replacing Biopython with Biotite for better performance #291
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.
Hi! First of all, thanks for the great talk at BPDMC!
I have written a drop-in replacement for the
biopython_utils
using the Biotite and fastpdb libraries . As Biotite is based on NumPy, and can perform vectorized operations it can be much faster than Biopython.The graph below is a from a run with
number_of_final_designs= 3
where I have ran both Biotite and Biopython versions and checked the outputs (validate_design_sequence
takes ~30μs so it is hard to see in the graph).PS: In the
hotspot_residues
function inbiopython_utils
thetarget_residue
variable created but not added tointeracting_residues
or used again. So I removed that step.