azalea says

transcribe DNA sequence to RNA sequence in python

Biopython里有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??

bioinformatics programming python · Tweet Edit