Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.Sign up
GitHub is where the world builds software
Millions of developers and companies build, ship, and maintain their software on GitHub — the largest and most advanced development platform in the world.
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.