在biopython中仅显示dna对齐得分

问题描述 投票:0回答:1

我有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但是如果有更好的方法,那将是值得赞赏的。

python bioinformatics biopython dna-sequence pairwise
1个回答
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

如果您只想获得分数,那么避免生成完整对齐对于两个模块来说都是最快且最有效的内存方式。

© www.soinside.com 2019 - 2024. All rights reserved.