使用一段时间循环剪接mRNA

时间:2016-04-09 18:28:29

标签: python python-3.x splice

我正在使用Python 3中的编码类,我需要帮助找出我的代码有什么问题。基本上我正在做的是采用mRNA序列并拼接序列中的外显子。我给函数一个序列和外显子的位置,然后它必须将它们拼接出来并返回mRNA串。赋值的关键是我们不应该使用列表推导,拆分或连接方法。以下是我到目前为止的情况:

def splice(seq, exons):
    newseq = ""
    i = 0
    for x in exons:
        while i < len(seq):
            if i == x[0]:
                i += (x[1] - x[0])
            else:
                newseq += seq[i]
                i = i + 1
    return newseq

就像现在一样,我的代码返回的mRNA序列只有第一个外显子拼接而不是外显子位置列表中的任何其他外显子。像这样:

>> splice("AAACCCTTTTGGGTTTAA", [(3,6), (10,16)])
'AAATTTTGGGTTTAA'

它应该返回(对于我给出的例子):'AAATTTTAA'

有没有人对如何使这项工作有任何建议?谢谢! (提醒我在本学期之前从未编写过,除了Java中的一小部分,所以请不要过于批评我。)

1 个答案:

答案 0 :(得分:0)

试试这个:

def splice(seq, exons):
    newseq = ""
    next = 0
    for x, y in exons:
        newseq += seq[next:x]
        next = y
    newseq += seq[next:]        
    return newseq

并测试:

>>> splice("AAACCCTTTTGGGTTTAA", [(3,6), (10,16)])
'AAATTTTAA'