利用Biopython来进行序列比对

作者:童蒙
编辑:angelica

前言

序列比对在生物信息中很常见,通过比较序列的相似度来推测其相关的功能。序列比对一般针对的是两条或者多条序列,可以是DNA、RNA或者蛋白序列,来推测序列间的区域的相似度。

识别相似区域使我们能够推断出许多信息,比如物种之间保存了哪些特征,不同物种在遗传上有多接近,物种是如何进化的等等。Biopython为序列比对提供了广泛的支持。

我们今天从最简单的两条序列比对开始,使用Biopython里面的pairwise2

两两序列的比对

顾名思义,pairwise2针对两条序列进行比对,来推测序列的相似度。Biopython进行两两比对的模块是Bio.pairwise2。下面我们看几个例子。

from Bio import pairwise2
from Bio.Seq import Seq
seq1 = Seq('ACCGGT')
seq2 = Seq('ACGT')
alignments = pairwise2.align.globalxx(seq1, seq2)
for alignment in alignments: 
    print(alignment)

结果为:

('ACCGGT', 'A-C-GT', 4.0, 0, 6) 
('ACCGGT', 'AC--GT', 4.0, 0, 6) 
('ACCGGT', 'A-CG-T', 4.0, 0, 6) 
('ACCGGT', 'AC-G-T', 4.0, 0, 6)

使用参数

上述例子中,代码都很好理解,只有pairwise2.align.globalxx可能有点费劲,给大家解释一下。

pairwise2.align后,可以是local也可以是global,如果是local模式,可以使用localxx,大家可以自行测试一下。而对于xx有如下参数。

  • 第一个x是对于matches的参数,有x/m/d/c几种,如下:

CODE DESCRIPTION
x No parameters. Identical characters have score of 1, otherwise 0.
m A match score is the score of identical chars, otherwise mismatch
score.
d A dictionary returns the score of any pair of characters.
c A callback function returns scores.

  • 第二个是对于开gap惩罚的参数;有x/s/d/c几种,如下:

CODE DESCRIPTION
x No gap penalties.
s Same open and extend gap penalties for both sequences.
d The sequences have different open and extend gap penalties.
c A callback function returns the gap penalties.

不同的组合可能有不同的参数,大家可以使用以下命令来查看对应的参数,来看看需要传什么参数。
help(pairwise2.align.globalxs)

结果查看

可以使用一下例子

tt = pairwise2.align.globalxx(seq1,seq2)
ss = tt[0]
ss.score ### 比对的分数
ss.seqA
ss.seqB

其中,可以使用score获得比对的分数,根据分数来设定阈值,来确定是否要输出结果。

本文简单介绍了pairwise的用法,希望对大家有所帮助。

参考文献

https://biopython.org/docs/1.75/api/Bio.pairwise2.html

你可能感兴趣的:(利用Biopython来进行序列比对)