Skip to content

This repo provides a space efficient method to solve Sequence Alignment problem using Divide & Conquer and Dynamic Programming.

Notifications You must be signed in to change notification settings

jingtaoh/Sequence-Alignment

 
 

Repository files navigation

CSCI570_Final_Project

The project is the c++ implementation of the two different solutions provided in chapter 6 of the Kleinberg textbook for the Sequence Alignment problem (see project description).

Compile & Run

# Compile and run basic program
./run_basic.sh

# Compile and run efficient program
./run_efficient.sh

Measure time & memory performance

# Measure programs and write metrics into the corresponding output files
# %e - Elapsed real time (in seconds).
# %M - Maximum resident set size of the process during its lifetime (in Kbytes).

# Measure basic program
/usr/bin/time -a -f "%e\n%M" -o ../data/output_basic.txt ./basic ../data/input.txt

# Measure efficient program
/usr/bin/time -a -f "%e\n%M" -o ../data/output_efficient.txt ./efficient ../data/input.txt

Graphs

gnuplot --persist ../graphs/time_plot.p

CPU time plot

gnuplot --persist ../graphs/memory_plot.p

Memory usage plot

Note

The optimal table is unique but the optimal alignment is not unique

About

This repo provides a space efficient method to solve Sequence Alignment problem using Divide & Conquer and Dynamic Programming.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 85.6%
  • Gnuplot 8.3%
  • CMake 3.3%
  • Shell 2.8%