Needleman-Wunsch global sequence alignment
Project description
This module provides a python module and a command-line interface to do global- sequence alignment using the Needleman-Wunsch algorithm. It uses cython and numpy for speed.
Command-Line Usage
the nwalign executable is installed to the PATH by setuptools
$ nwalign alphabet alpet alphabet alp---et
specify an alignment scoring matrix
$ nwalign --matrix /usr/share/ncbi/data/BLOSUM62 EEAEE EEEEG EEAEE- EE-EEG
with specified penalties
$ nwalign --gap_open -10 --gap_extend -4 --match 12 ASDFF ASFF ASDFF AS-FF
Python Usage
Alignment
>>> import nwalign as nw >>> nw.global_align("CEELECANTH", "PELICAN", matrix='PAM250') ('CEELE-CANTH', '-PEL-ICAN--') # with a specified penalty for open and extend. >>> nw.global_align("CEELECANTH", "PELICAN", gap_open=-10, gap_extend=-4, matrix='PAM250') ('CEELECANTH', '-PELICAN--')
the matrix is specified as the full path to an scoring matrix as is distributed with the NCBI toolset.
Scoring
get the score of an alignment. (the first 2 args are from an alignment and must have the same length.
>>> nw.score_alignment('CEELECANTH', '-PELICAN--', gap_open=-5, ... gap_extend=-2, matrix='PAM250') 11 >>> nw.score_alignment('CEELE-CANTH', '-PEL-ICAN--', gap_open=-5, ... gap_extend=-2, matrix='PAM250') 6