Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nekyro/dna-sequence-alignment
This project implements a DNA sequence alignment algorithm using dynamic programming techniques. The primary goal is to align two DNA sequences effectively, allowing for optimal matches while accounting for potential mismatches and gaps.
https://github.com/nekyro/dna-sequence-alignment
dinamic-programming dna-sequences needleman-wunsch python
Last synced: 28 days ago
JSON representation
This project implements a DNA sequence alignment algorithm using dynamic programming techniques. The primary goal is to align two DNA sequences effectively, allowing for optimal matches while accounting for potential mismatches and gaps.
- Host: GitHub
- URL: https://github.com/nekyro/dna-sequence-alignment
- Owner: Nekyro
- License: other
- Created: 2024-10-22T02:46:06.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2024-10-24T05:02:54.000Z (2 months ago)
- Last Synced: 2024-11-27T03:29:45.727Z (about 1 month ago)
- Topics: dinamic-programming, dna-sequences, needleman-wunsch, python
- Language: Python
- Homepage:
- Size: 23.5 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# DNA Sequence Alignment Tool
## Overview
This project provides an efficient DNA sequence alignment tool utilizing dynamic programming techniques to ensure optimal matching of two DNA sequences, including handling mismatches and gaps. The tool now features an easy-to-use **Graphical User Interface (GUI)** that simplifies the process of uploading sequences and viewing the alignment results.
## Key Features
- **Graphical User Interface (GUI)**: Simplifies interaction with the tool by allowing users to select CSV files for processing.
- **Score Matrix Construction**: Automatically creates a score matrix to compare the sequences based on user-defined scoring parameters.
- **Dynamic Programming**: Utilizes dynamic programming to fill the score matrix, ensuring accurate and optimal alignments.
- **Backtracking Algorithm**: Traces back through the score matrix to retrieve the best sequence alignment.
- **File Selection for Input**: Users can select a `.csv` file through a file dialog, and the app will process the sequences and display the alignment results.
- **Customizable Scoring**: Allows the user to adjust match, mismatch, and gap penalties for flexible alignment criteria.## Installation
1. Clone this repository:
```bash
git clone https://github.com/Yamil-Serrano/DNA-Sequence-Alignment.git
2. Install the requirements:
```bash
pip install -r requirements.txt
## How It Works1. **Select CSV File**: To begin the alignment process, click the button to select your .csv file. The CSV file should contain the DNA sequences to be aligned.
2. **Automatic Processing**: Once the CSV file is uploaded, the tool automatically processes the sequences, builds the score matrix, and computes the optimal alignment.
3. **View Results**: The aligned sequences and the alignment score will be displayed in the results box on the right side of the interface.## Screenshot of the Interface
![image](https://github.com/user-attachments/assets/73feb913-419f-4bc3-8805-aca24846bdb0)
## Changes
In the screenshot above, the application shows the drag-and-drop (DnD) functionality for file input. However, due to complications encountered while creating the executable, I have decided to change this functionality to a file selection method instead.
## Example CSV Format
In the "Test_files" folder you will find an example of the .csv file that you can use.
## License
This project is licensed under the [Creative Commons Attribution-NonCommercial 4.0 International License](LICENSE.md).
## Icon Attribution
- **[Dna icons](https://www.flaticon.com/free-icons/dna)** created by [Freepik](https://www.flaticon.com/authors/freepik) - Flaticon
- **[File icons](https://www.flaticon.com/free-icons/file)** created by [Good Ware](https://www.flaticon.com/authors/good-ware) - Flaticon## Contact
For any questions or suggestions, feel free to reach out:
GitHub: [Neowizen](https://github.com/Yamil-Serrano)