1

我正在使用 format_alignment 来查找两个序列之间的 pariwise 对齐。我想在完全对齐中用不同的颜色(比如在碱基数 40 和碱基数 54 之间)突出显示序列的一部分,以便清楚它与哪个部分对齐。上述序列需要在两个序列中突出显示。你能建议我如何在 biopython 中做到这一点

示例序列:

序列1:ccagctgtttaattgagttgtcatatgttaataacggtatattggaacactgtataa

序列 2:CCAGCTGTTTAATTGAGTTGTCATATGTTAATAACGGTATATGGAACACTGTATAA

4

1 回答 1

1

你可以试试,

from Bio.pairwise2 import format_alignment
from Bio import pairwise2
#note: seq1 is equal to seq2 .... however, I use it
seq1 = "ccagctgtttaattgagttgtcatatgttaataacggtatattggaacactgtataa"
seq2 = "CCAGCTGTTTAATTGAGTTGTCATATGTTAATAACGGTATATTGGAACACTGTATAA" 
first = pairwise2.align.globalxx(seq1, seq2)[0]
print(format_alignment(*first))

你得到,

---------------------------------------ccagctgtttaattgagttgtcatatgttaataacggtatattggaacactgtataa-
|||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||||||||||||||||||||||||||
CCAGCTGTTTAATTGAGTTGTCATATGT-TAATAACGGTATATTGGAACA-CTGTAT-AA
  分数=0
class bcolors:
    MY_COLOR = '\033[93m'
    ENDC = '\033[0m'

wcolor = (first[0][:40] + bcolors.MY_COLOR + first[0][40:55] + bcolors.ENDC + first[0][55:], first[1], first[2], first[3], first[4])
print(format_alignment(*wcolor))

你得到:

颜色对齐

wcolor = (first[0][:27] + bcolors.MY_COLOR + first[0][27:84] + bcolors.ENDC + first[0][84:], 
          first[1][:27] + bcolors.MY_COLOR + first[1][27:84] + bcolors.ENDC + first[1][84:], 
          first[2], first[3], first[4])
print(format_alignment(*wcolor))

你得到:

对齐颜色 2

于 2015-09-28T15:05:59.213 回答