2014-10-06 64 views
0

我已经定义了一个类“DNA”。我现在试图在该类中创建一个函数,使我可以将DNA翻译成RNA(这基本上意味着用“U”代替任何“T”)。我的DNA类继承了另一个类的参数。 我必须使用string.replace方法。使用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

你阅读的与string.replace文件?该功能将完成您​​所需的一切。 – user3885927 2014-10-06 23:53:26

回答

0

定义您内部的方法,在表示数据的字符串上使用string.replace()方法。 (你没有解释如何表示这些数据)。

版: 您应该使用在DNA类的字符串变量,将节省您初始化与DNA实例的字符串。你应该定义一个类似的RNA类。 那么,就可以实现在DNA类这样的函数:

def translate(self): 
    new_string=self.string_representation.replace("T","U") 
    rna1 = RNA(new_string) 
    return rna1 

为印刷者,你需要实现你的RNA类的字符串转换。 (使用STR

+0

我已经为定义的RNA定义了类似的类。作为新手,我很抱歉aksing,但是我应该放什么而不是string_representation? (我的编辑是给我一个属性错误:DNA实例没有属性“string_representation” – 2014-10-06 23:43:51

+0

你应该在__init__方法创建它,并把字符串参数里面 – ByoTic 2014-10-06 23:45:47

+0

我很抱歉,我有这么多的麻烦了解你。 。我相信你的回答是正确的,但我不能得到它的工作,我已经发布了我的整个代码,如果你能详细说明你的灵魂,那将是非常棒的,如果我错过了任何有价值的知识,请告诉我。 – 2014-10-07 00:04:54

相关问题