This project implements an efficient system for processing, sorting, and analyzing DNA sequences in C++, using advanced programming techniques such as parallelization with OpenMP. Additionally, it includes support for performance analysis with Python visualization scripts.
View detailed project documentation on DeepWiki: 👉 deepwiki.com/FernandoV17/PIA_Advanced-Programing/1-overview
git clone https://github.com/FernandoV17/PIA_Advanced-Programing.git
cd PIA_Advanced-ProgramingEnsure g++ with OpenMP support is installed.
make./builds/main- Ensure the input file
data/input/data.txtexists. - The program will generate sorted output in
data/output/data_sorted.txt.
The project includes Python scripts for performance visualization.
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activatepip install -r requirements.txt-
It is strongly recommended to run this project on Linux systems to ensure full compatibility and optimal performance, particularly during the execution of visualization scripts.
-
Install the graphical backend
TkAggvia your package manager to ensure proper rendering of plots usingmatplotlibin Python.
-
On Debian/Ubuntu:
sudo apt-get install python3-tk
-
On Arch Linux (I use Arch BTW):
sudo pacman -S tk
python scrips/simple_eval.py
#or
python scrips/complex_eval.pyPIA_Advanced-Programing/
├── cpp/
│ ├── main.cpp
│ └── lib/
│ ├── merge_sort/
│ │ ├── merge_sort.cpp
│ │ └── merge_sort.h
│ └── counting/
│ ├── counting.cpp
│ └── counting.h
├── builds/
├── scrips/
│ └── test_files.py
├── data/
│ ├── input/
│ │ └── data.txt
│ └── output/
│ └── data_sorted.txt
├── execution_data.npz
├── Makefile
├── requirements.txt
└── README.md
- ✔️ Binary DNA Sequence Reading
- ✔️ Valid Nucleotide Counting (A, T, C, G, U)
- ✔️ Efficient Merge Sort
- ✔️ Python Performance Visualization
- Performance depends heavily on file I/O and sequence size.
- Code is designed for clarity, modularity, and extensibility.