Java icon indicating copy to clipboard operation
Java copied to clipboard

Add Nussinov Algorithm for RNA Secondary Structure Prediction

Open alexcerezo opened this issue 1 year ago • 0 comments

Description: This pull request introduces the implementation of the Nussinov algorithm, which predicts the secondary structure of RNA by maximizing base-pair compatibility. The algorithm uses dynamic programming to compute an optimal structure based on RNA sequence input.

Changes:

  • Added Nussinov class: Implements the Nussinov algorithm with methods for:
    • Checking base-pair compatibility.
    • Constructing the dynamic programming matrix to predict secondary structures.
    • Reconstructing the optimal folding structure from the computed matrix.
    • Evaluating the accuracy of predictions based on paired bases.
  • Test file: estRNAFolding
    • Tests base-pair compatibility with various pairs.
    • Verifies correct secondary structure prediction for short RNA sequences.

Files Added:

  1. Nussinov.java: Contains the main algorithm.
  2. TestRNAFolding.java: Includes unit tests to verify functionality and accuracy.

Additional Notes:

  • The implementation follows standard dynamic programming principles and is optimized for clarity.
  • Future improvements could involve more complex test cases and compatibility with additional nucleotide pairs.

Testing: All tests included in TestRNAFolding have been successfully run, covering both base-pair compatibility and basic structure prediction. A library it needed, link on the Nussinov.java file.

This addition should be a valuable resource for bioinformatics and computational biology algorithms in the repository.

alexcerezo avatar Oct 30 '24 21:10 alexcerezo