使用 for while 循环拼接 mRNA
Splicing mRNA using for a while loops
我正在 Python 3 中进行编码 class,我需要帮助找出我的代码有什么问题。基本上我所做的是获取 mRNA 序列并剪接序列中的外显子。我给函数一个序列和外显子的位置,然后它必须将它们拼接出来,return 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
就像现在一样,我的代码 return 的 mRNA 序列只有第一个外显子被剪掉,而外显子位置列表中的任何其他外显子都没有。像这样:
>> splice("AAACCCTTTTGGGTTTAA", [(3,6), (10,16)])
'AAATTTTGGGTTTAA'
它应该 return 这个(对于我给出的例子):'AAATTTTAA'
有人对如何使这项工作有任何建议吗?谢谢!
(提醒一下,除了Java中的一点点,我在这学期之前从未编码过,所以请不要对我太挑剔。)
试试这个:
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'
我不知道你是否需要一个while循环。这是一个仅使用 for 循环的版本:
def splice(seq, exons):
newseq = ""
i = 0
n = 0
for x in exons:
newseq = seq[i:x[0]-n]+seq[x[1]-n:]
seq = newseq
n = x[1]-x[0]
i = x[0] - n
return newseq
splice("AAACCCTTTTGGGTTTAA", [(3,6), (10,16)])
我正在 Python 3 中进行编码 class,我需要帮助找出我的代码有什么问题。基本上我所做的是获取 mRNA 序列并剪接序列中的外显子。我给函数一个序列和外显子的位置,然后它必须将它们拼接出来,return 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
就像现在一样,我的代码 return 的 mRNA 序列只有第一个外显子被剪掉,而外显子位置列表中的任何其他外显子都没有。像这样:
>> splice("AAACCCTTTTGGGTTTAA", [(3,6), (10,16)])
'AAATTTTGGGTTTAA'
它应该 return 这个(对于我给出的例子):'AAATTTTAA'
有人对如何使这项工作有任何建议吗?谢谢! (提醒一下,除了Java中的一点点,我在这学期之前从未编码过,所以请不要对我太挑剔。)
试试这个:
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'
我不知道你是否需要一个while循环。这是一个仅使用 for 循环的版本:
def splice(seq, exons):
newseq = ""
i = 0
n = 0
for x in exons:
newseq = seq[i:x[0]-n]+seq[x[1]-n:]
seq = newseq
n = x[1]-x[0]
i = x[0] - n
return newseq
splice("AAACCCTTTTGGGTTTAA", [(3,6), (10,16)])