今天的题目是寻找序列中的motif的位置:http://rosalind.info/problems/subs/
刚开始认为,通过python的re模块可以很方便解决这个问题,但在实际过程中发现,使用re模块只会传回两个位置,并不像题目中,会传回三个位置。这样的话只能自己设计一个循环,匹配motif的位置。当然,python还有一个模块,可以很方便的完成这题。
#_*_ coding: utf-8 _*
import regex
def search_motif(str, substr):
'''寻找序列中的模体'''
match = regex.finditer(substr, str, overlapped=True) #返回序列中与子串匹配的序列的位置,并包含重叠位置
position = [x.start() for x in match]
print position
if __name__ == '__main__':
str = 'GATATATGCATATACTT'
substr = 'ATAT'
search_motif(str, substr)