feat: add Smith-Waterman algorithm for local sequence alignment #3070
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.
Description
This PR adds the Smith-Waterman algorithm implementation to the dynamic_programming directory.
Algorithm Overview
The Smith-Waterman algorithm is a dynamic programming algorithm for determining similar regions between two sequences (nucleotide or protein sequences). It performs local sequence alignment and is particularly useful in bioinformatics.
Key Features:
Implementation Details:
score_function: Calculates alignment scores for character pairssmith_waterman: Builds the scoring matrix using dynamic programmingtraceback: Reconstructs the optimal alignment from the scoring matrixCode Quality
The implementation follows TheAlgorithms/C-Plus-Plus standards:
Testing
The implementation includes 8 comprehensive test cases:
All tests pass:
Documentation
Checklist
References