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]