查看原文
其他

利用Biopython来进行序列比对

生信阿拉丁 生信阿拉丁 2022-04-26


利用Biopython来进行序列比对



前言



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

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

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



两两序列的比对

顾名思义,pairwise2针对两条序列进行比对,来推测序列的相似度。Biopython进行两两比对的模块是Bio.pairwise2。下面我们看几个例子。
from Bio import pairwise2from Bio.Seq import Seqseq1 = 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 DESCRIPTIONx 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 DESCRIPTIONx 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.seqAss.seqB

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



结语

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


参考文献

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


作者:童蒙

编辑:angelica


往期精彩


当红辣子鸡-空间转录组与单细胞转录组的整合分析(上篇)

使用python批量设计引物

MAGMA软件实现gene-based & gene-set-based关联分析

使用barcode对高通量转录组进行药物筛选

认识单细胞分析中的各种数据结构


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存