我有DNA序列数据。 例如,
X="ACGGGT"
Y="ACGGT"
我想知道比对得分,因此我使用了biopython pairwise2函数。 例如,
from Bio import pairwise2
from Bio.pairwise2 import format_alignment
alignments = pairwise2.align.globalxx(X, Y)
for a in alignments:
print(format_alignment(*a))
这成功显示了DNA比对,但我只需要以下得分。 有什么办法只能显示分数吗?
我使用了biopython,但如果有更好的方法,将不胜感激。
答案 0 :(得分:3)
获取每个对齐元组的第3项(或为获得最佳分数,仅解析score_only
参数)
>>> from Bio import pairwise2
>>> X="ACGGGT"
>>> Y="ACGGT"
>>> alignments = pairwise2.align.globalxx(X, Y)
>>> [a[2] for a in alignments]
[5.0, 5.0, 5.0]
>>> pairwise2.align.globalxx(X, Y, score_only=True)
5.0
另请参见更新的Bio.Align
模块,该模块在许多用例中可能会更有效。如果您只想获得最高分,则可以将aligner.score()
用作Markus注释:
>>> from Bio import Align
>>> aligner = Align.PairwiseAligner()
>>> alignments = aligner.align(X,Y)
>>> [a.score for a in alignments]
[5.0, 5.0, 5.0]
>>> aligner.score(X, Y)
5.0
如果仅 需要分数,则避免生成完全比对是两个模块最快,最节省内存的方式。