python实现DNA序列字符串转换,互补链,反向链,反向互补链

Posted 青蛙快飞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python实现DNA序列字符串转换,互补链,反向链,反向互补链相关的知识,希望对你有一定的参考价值。

 

在生物信息学分析中,经常对DNA序列进行一系列操作,包括子序列截取,互补序列获取,反向序列获取,反向互补序列获取。在python语言中,可编写如下函数完成这些简单功能。

子序列截取

python中对序列截取使用字符串切片功能就可以完成,例如:

>>> seq="ATGATATAGtatatatgCAAGAGg"
>>> subseq = seq[1:6]
>>> subseq
"TGATA"

 

注意,切片操作是“0-base”的,包左不包右。

互补序列获取

比较常见的做法是定义一个碱基替换字典,如下所示:

def complement(s):
    basecomplemt = {
         "A":"T",
          "T":"A",
          "G":"C",
          "C":G",
          "a":"t",
          "t":"a",
          "g":"c",
          "c":"g",
          }
    letters = list(s)
    letters = [basecomplement[base] for base in letters]
    return ‘‘.join(letters)

 

使用python3字符串使用的translate方法

def complement(seq):
    return seq.translate(str.maketrans(ACGTacgtRYMKrymkVBHDvbhd, TGCAtgcaYRKMyrkmBVDHbvdh))

 

python2 string包中的maketrans方法

from string import maketrans

def complement(seq):
    return seq.translate(maketrans(ACGTacgtRYMKrymkVBHDvbhd, TGCAtgcaYRKMyrkmBVDHbvdh))

 

反向互补序列获取

def revcomp(seq): 
    return complement(seq)[::-1]

参考资料

DNA反向互补序列获取

以上是关于python实现DNA序列字符串转换,互补链,反向链,反向互补链的主要内容,如果未能解决你的问题,请参考以下文章

利用python求一段DNA序列的互补序列

配对碱基链

关于DNA正负链的定义

什么是DNA的弥散性复制?有全保留复制么?它们与半保留复制有什么区别?

动态规划:基因序列比对

AC日记——配对碱基链 openjudge 1.7 07