Показывать только оценку выравнивания днк в биопионе - PullRequest
0 голосов
/ 24 марта 2019

У меня есть данные последовательности ДНК. Например,

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))

Это успешно показало выравнивание ДНК, но мне нужен только балл, как показано ниже. Есть ли способ показать только результат?

enter image description here

Я использовал биопайтон, но если есть лучший способ, это будет оценено.

1 Ответ

3 голосов
/ 25 марта 2019

Возьмите 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

Если вы only хотите получить оценки, то избегайте генерацииПолное выравнивание - самый быстрый и наиболее эффективный способ памяти для обоих модулей.

...