在biopython中仅显示dna对齐分数

时间:2019-03-24 17:38:05

标签: python bioinformatics biopython dna-sequence pairwise

我有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比对,但我只需要以下得分。 有什么办法只能显示分数吗?

enter image description here

我使用了biopython,但如果有更好的方法,将不胜感激。

1 个答案:

答案 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

如果仅 需要分数,则避免生成完全比对是两个模块最快,最节省内存的方式。