我正在尝试编写一个脚本,该脚本可以使用 3 的阅读框架来检测特定模式,然后从该序列中,以 3 的倍数查找另一个模式
sequence = 'TCATGAGGCTTTGGTAAATAT'
我需要它:
...使用 3 的阅读框进行扫描,直到找到所需的模式(即“ATG”)
...标记原始序列中第一个模式(“ATG”)开始的位置以及第二个模式(“TAA”)开始的位置。在本例中,“ATG”的位置为 3,“TAA”的位置为 15。
...创建一个列表,其中每个三元组遵循第一个模式,直到到达第二个模式“TAA”(即“ATG”、“AGG”、“CTT”、TGG”、“TAA”)
如何构建一个阅读框架来以 3 为一组进行阅读?我知道,一旦我找到一种方法来获取读数,我可以创建一个 if 语句说
reading_frame=[]
for frame in sequence:
if k == 'ATG':
reading_frame.append(k)
首先我需要阅读框架
最佳答案
您可以首先将序列
分解为一系列3元素框架
sequence = 'TCATGAGGCTTTGGTAAATAT'
frames = [sequence[i:i+3] for i in range(0,len(sequence),3)]
print "Frames:",frames
frames_before_ATG,frames_after_ATG = frames[:frames.index("ATG")],frames[frames.index("ATG")+1:]
然后迭代frames
列表,直到找到第一个模式。
关于python - 扫描阅读框架[3] Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12521650/