我已经定义了一个类“DNA”。我现在正试图在该类中创建一个函数,允许我将DNA转换为RNA(这基本上意味着用“U”替换任何“T”)。我的DNA类继承了另一个类的参数。 我必须使用string.replace方法。
class DNA(Seq):
def __init__(self, seq):
Seq.__init__(self, seq, pattern=(re.compile('[^ACGTacgt]')))
self.data = seq.upper()
def __repr__(self):
return self.data
我想在DNA类的dna序列上使用该函数。
编辑: 我希望能够做到以下几点:
dna1 = DNA('ACCCGT')
rna1 = dna1.translate_to_RNA()
print rna1
translate_to_RNA()是我定义的函数,输出是('ACCCGU')
Edit2:
class Seq:
def __init__(self, seq, pattern):
if pattern.search(seq):
print " Warning : sequence contains illegal characters "
self.data = seq.upper()
def __getitem__(self, index):
return self.data[index]
def __len__(self):
return len(self.data)
import re
class DNA(Seq):
def __init__(self, seq):
Seq.__init__(self, seq, pattern=(re.compile('[^ACGTacgt]')))
self.data = seq.upper()
self.seq = seq
def __repr__(self):
return self.data
def translate_to_RNA(self):
new_string = self.seq("T","U")
rna1 = RNA(new_string)
return rna1
class RNA(Seq):
def __init__(self, seq):
Seq.__init__(self, seq, pattern=(re.compile('[^ACGUacgu]')))
self.data = seq.upper()
def __repr__(self):
return self.data
答案 0 :(得分:0)
在您内部定义一个方法,对表示数据的字符串使用string.replace()方法。 (你没有解释这些数据是如何表示的。)
版: 你应该在DNA类中使用一个字符串变量来保存你初始化DNA实例的字符串。你应该定义一个类似的RNA类。 那么,你可以像这样在DNA类中实现一个函数:
def translate(self):
new_string=self.string_representation.replace("T","U")
rna1 = RNA(new_string)
return rna1
对于print运算符,您需要为您的RNA类实现一个字符串转换。 (使用 str )