BioPython の pairwise2 ライブラリーのメソッドを利用すると、2 つの配列をアラインメントすることができる。アラインメントは、グローバルおよびローカルの両方が行える。
グローバルアラインメント
2 つの配列からグローバルアラインメントを求めるとき、globalms
メソッドを利用する。例えば、マッチは +2、ミスマッチは -1、ギャップ開始 -0.5、ギャップ身長 -0.1 とした場合は、次のようになる。
from Bio import pairwise2
from Bio.pairwise2 import format_alignment
for a in pairwise2.align.globalms("ACCGT", "ACG", 2, -1, -0.5, -0.1):
print(format_alignment(*a))
## ACCGT
## |||||
## A-CG-
## Score=5
##
## ACCGT
## |||||
## AC-G-
## Score=5
ローカルアラインメント
2 つの配列からローカルアラインメントを求めるとき、localms
メソッドを利用する。例えば、マッチは +2、ミスマッチは -1、ギャップ開始 -0.5、ギャップ身長 -0.1 とした場合は、次のようになる。
from Bio import pairwise2
from Bio.pairwise2 import format_alignment
for a in pairwise2.align.globalms("ACCGTCC", "ACG", 2, -1, -0.5, -0.1):
print(format_alignment(*a))
## ACCGTCC
## ||||
## A-CG---
## Score=5.5
##
## ACCGTCC
## ||||
## AC-G---
## Score=5.5
アミノ酸置換行列を利用したアラインメント
アミノ酸配列をアラインメントするときに、BLOSUM<62 などのアミノ酸置換行列を利用することもできる。
from Bio import pairwise2
from Bio.pairwise2 import format_alignment
from Bio.SubsMat import MatrixInfo as matlist
matrix = matlist.blosum62
for a in pairwise2.align.globaldx("KEVLA", "EVL", matrix):
print(format_alignment(*a))
## KEVLA
## |||||
## -EVL-
## Score=13