transcribe DNA sequence to RNA sequence in python
Jan 19, 2008Biopython里有reverse_complement()方法,功能是把DNA的一条链的序列翻译为它的互补链序列。
但是找不到从DNA转录到RNA的transcribe()方法。
发现有以下2个简单的方法可以实现transcribe()。
A.正则表达式:
#! usr/bin/python
import re
myDNA=’CAAGAGAAACGCAAAGAAACTGACAGAAGAGAGTGAGCACACAAAGGCAATTT’
regexp = re.complie(‘T’)
myRNA = regexp.sub(‘U’, myDNA)
与perl不同,python的正则表达式是通过re这个module实现的。
regexp = re.compile(‘T’) 是把正则表达式’T’编译成RegexObject 实例regexp
RegexObject有各种方法,包括查找和替换。
regexp.sub()就是到正则表达式匹配的所有子串,并将其用一个不同的字符串替换。
更多可参考:python正则表达式指南
B.更简单的方法
myRNA = myDNA.replace(‘T’,’U’)
不需要用到re module
reference: http://python.genedrift.org/2007/01/16/the-regular-expression/
p.s.
October 28, 2005: Biopython 1.41 release note里提到:
Added transcribe, translate, and reverse_complement functions to Bio.Seq
that work both on Seq objects and plain strings.
不过我无论用plain string还是Seq objects都报错:
AttributeError: ‘str’ object has no attribute ‘transcribe’
AttributeError: Seq instance has no attribute ‘transcribe’
Why??