在 biopython 中仅显示 dna 比对分数

Show only dna alignment score in biopython

我有 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,如果有更好的方法,我将不胜感激。

取每个对齐元组的第 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

如果您想要分数,那么避免生成完整比对是两个模块最快和最节省内存的方法。