Sequence alignment library in C++ and python
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
alignlib
bench
cython
doc
m4
python
tests
AUTHORS
COPYING
ChangeLog
INSTALL
Makefile.am
NEWS
README
acinclude.m4
build.xml
config.h.in
configure.in
reconf

README

Welcome to alignlib.

alignlib is free software. Please see the file COPYING for details.
For documentation, please see the files in the doc subdirectory.
For building and installation instructions please see the INSTALL file.

History:

Alignlib contains a collection of methods for classical biological sequence
alignment. It started in 1999 from C code that I had created for a program
called RADAR that is used to find repeats in protein sequences. This program
switches between different alignment algorithms and between sequences and profiles,
so I wanted to create a library that aligns any collection of objects with various 
algorithms using the same syntax. This somewhat explains my naming convention:

	Alignandum: something that is to be aligned, to-date these are sequences and profiles.

	Alignator: something that aligns. Other classes ending in -or perform other
		tasks like building trees (Treetor) or weight sequences (Weightor)

	Alignata:	things that have been aligned. Otherwise called an "Alignment".
	
	Alignatum:	something that has been aligned. This is basically a string that
		can be mapped onto an alignment. A multiple alignments is then a collection
		of Alignatum objects.

The library contains a somewhat random selection of algorithms that was assembled
from whatever I needed for my research. I did not know much C++ when I started
and I would probably do things differently now. 

It was from the outset aimed to be interfaced by scripting languages, and
in particular, python. I used to use SWIG (www.swig.org) for a long time
to interface to python. Recently I found that a combination of py++
and boost.python reduced the effort I had to spend on maintaining the
interface definitions, so I switched.