我正在使用format_alignment来查找两个序列之间的pariwise对齐。我想在完全对齐中突出显示具有不同颜色(在基数40和基数54之间)的序列的一部分,以便清楚它已对齐的部分。上述序列需要在两个序列中突出显示。你能建议我如何在biopython中做到这一点
示例序列:
序列1:ccagctgtttaattgagttgtcatatgttaataacggtatattggaacactgtataa
序列2:CCAGCTGTTTAATTGAGTTGTCATATGTTAATAACGGTATATTGGAACACTGTATAA
答案 0 :(得分: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-T-A-A-T-A-A-C-G-G-T-A-T-A-T-T-G-G-A-A-C-A-C-T-G-T-A-T-AA Score=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))
你得到: