Skip to content

mariokostelac/cpppoa

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CPPPOA

CPPPOA is tool for generating consensus from multiple sequences. It is C++ implementation of Partial Order Alignment algorithm for Multiple sequence alignment based on simple python implementation (https://github.com/ljdursi/poapy) and explanation of this implementation given in blog post (http://simpsonlab.github.io/2015/05/01/understanding-poa/).

Algorithm is described in following papers:

Multiple sequence alignment using partial order graphs (2002) by Lee, Grasso, and Sharlow and Generating consensus sequences from partial order multiple sequence alignment graphs (2003) by Lee

It was created because of neccessity for having fast POA implementation which provides programming interface for generating consensus sequence (so that programmer doesn't have to store intermediate outputs of algorithm in a file).

The tool should be compatible with most UNIX flavors and has been successfully test on the following operating systems:

  • Mac OS X 10.10.3
  • Ubuntu 14.04 LTS

Requirements

Installation

To build the CPPPOA run the following commands from the folder where you want to install the tool:

git clone https://github.com/mculinovic/cpppoa.git
cd cpppoa/
make

Running the make command without arguments will build the release version of the programming interface. The static library file libcpppoa.a will be generated and public header poa.hpp will be available in the include/cpppoa directory. (see Usage instructions).

To build the debug version of the tool use:

make debug

To build both the debug and release versions use:

make all

To delete all files generated during the build process, for both debug and release, use:

make clean

Documentation

The documentation for this tool was written to work with the doxygen documentation generator. To successfully generate the documentation, the doxygen executable must be in your PATH variable.

To create the documentation in HTML and LaTeX format run the following command from the root of the tool:

make docs

HTML documentation is placed in docs/html, while the LaTeX documentation is placed in docs/latex. To view the HTML documentation open docs/html/index.html in any web browser. The PDF documentation is obtainable by compiling the generated LaTeX code with the provided makefile.

Use the following commands from the root of the project to create the PDF version of the documentation:

cd docs/latex/
make
open refman.pdf

Usage

To use cpppoa in your project include poa.hpp in your source code and provide it with a library file libcpppoa.a when linking the executable file.

...
#include "include/cpppoa/poa.hpp"
...
...
string seq1("PESLLYGRFTIESDVW");
string seq2("PEAALYGRFTIKSDVW");
vector<string> sequences;
sequences.emplace_back(seq1);
sequences.emplace_back(seq2);

string consensus = poa_consensus(sequences);
...

Contributors

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 98.9%
  • Makefile 1.1%