我的当前代码:
import re
from Bio.Seq import Seq
def check_promoter(binding_element,promoter_seq):
promoter_seq = str(promoter_seq)
residues = list()
for i in range(0,len(promoter_seq)):
if binding_element[0] == promoter_seq[i]:
ind = promoter_seq[i]
for j in range(0,len(binding_element)):
if binding_element[0+j] == promoter_seq[i+j-len(binding_element)]:
residues.append(i+j-len(binding_element))
return residues
ESR1_promoter = Seq('''aagtcaggctgagagaatctcagaaggttgtggaagggtctatctacttt\
gggagcattttgcagaggaagaaactgaggtcctggcaggttgcattctc\
ctgatggcaaaatgcagctcttcctatatgtataccctgaatctccgccc\
ccttcccctcagatgccccctgtcagttcccccagctgctaaatatagct\
gtctgtggctggctgcgtatgcaaccgcacaccccattctatctgcccta\
tctcggttacagtgtagtcctccccagggtcatcctatgtacacactacg\
tatttctagccaacgaggagggggaatcaaacagaaagagagacaaacag\
agatatatcggagtctggcacggggcacataaggcagcacattagagaaa\
gccggcccctggatccgtctttcgcgtttattttaagcccagtcttccct\
gggccacctttagcagatcctcgtgcgcccccgccccctggccgtgaaac\
tcagcctctatccagcagcgacgacaagtaaagtaaagttcagggaagct\
gctctttgggatcgctccaaatcgagttgtgcctggagtgatgtttaagc\
caatgtcagggcaaggcaacagtccctggccgtcctccagcacctttgta\
atgcatatgagctcgggagaccagtacttaaagttggaggcccgggagcc\
caggagctggcggagggcgttcgtcctgggactgcacttgctcccgtcgg\
gtcgcccggcttcaccggacccgcaggctcccggggcagggccggggcca\
gagctcgcgtgtcggcgggacatgcgctgcgtcgcctctaacctcgggct\
gtgctctttttccaggtggcccgccggtttctgagccttctgccctgcgg\
ggacacggtctgcaccctgcccgcggccacggaccatgaccatgaccctc\
cacaccaaagcatctgggatggccctactgcatcagatccaagggaacga''')
ESR1_complement = ESR1_promoter.complement()
SBE = 'CAGACA'
print check_promoter(SBE,ESR1_promoter)
print check_promoter(SBE,ESR1_complement)
当我使用字符串“aa”进行测试并返回找到“aa”的索引列表时,此代码起作用,但当我使用其他序列(即“tcc”)进行测试时,如果序列中明显存在“tcc”,则找不到匹配项。此外,字符串“CAGACA”是用补码字符串中的re.findall方法标识的,但这不提供索引
有人能指出我做错了什么吗
另外,还有一个次要的问题-正如你所看到的,我有点作弊,因为我的代码只检查第一个:
promoter_seq[i+j-len(binding_element)]
元素,因为我得到一个索引错误。有人知道怎么解决这个问题吗
谢谢
我很惊讶在
Bio
中没有预先存在的函数来执行这种类型的搜索-这似乎是一种非常常见的操作。也许您需要花一些时间来处理文档无论如何,您可以使用
re.finditer()
,它将返回一个返回匹配对象的迭代器:请注意,
binding_element
可以是Seq
或字符串,并且它区分大小写,因此它被转换为小写,以便按promoter_seq
进行搜索相关问题 更多 >
编程相关推荐