好的,我直截了当地说这是我的代码
def digestfragmentwithenzyme(seqs, enzymes):
fragment = []
for seq in seqs:
for enzyme in enzymes:
results = []
prog = re.compile(enzyme[0])
for dingen in prog.finditer(seq):
results.append(dingen.start() + enzyme[1])
results.reverse()
#result = 0
for result in results:
fragment.append(seq[result:])
seq = seq[:result]
fragment.append(seq[:result])
fragment.reverse()
return fragment
此函数的输入是多个字符串的列表(seq),例如:
^{pr2}$和酶作为输入:
[["TC", 1],["GC",1]]
(注:可以有多个给定值,但大多数都是用ATCG的字母表示的)
函数应返回一个列表,在本例中,该列表包含两个列表:
Outputlist = [["AATT","CCGGT","CGGGG","CT","CGGGGG"],["AAAG","CAAAAT","CAAAAAAG","CAAAAAAT","C"]]
现在,我很难将其拆分两次并获得正确的输出。在
关于函数的更多信息。它通过字符串(seq)查找识别点。在这种情况下,TC或GC并在第二个酶指数上拆分它。它应该对列表中的两个字符串使用这两种酶。在
下面是一些应该使用regex的方法。在这个解决方案中,我找到所有出现的酶串,并使用它们对应的索引进行拆分。在
假设这个想法是在每种酶上分裂,在酶是多个字母的索引点,而分裂,本质上是在两个字母之间。不需要正则表达式。在
您可以通过查找匹配项并在正确的索引处插入拆分指示符,然后对结果进行后期处理以实际拆分。在
例如:
我的解决方案是:
将}(这是根据给定的索引完成的),然后根据空格字符拆分。。。。在
TC
替换为T C
,将GC
替换为{结果是:
对于
^{pr2}$([["TC", 1],["GC",1]])
对于
([["AAT", 2],["GC",1]])
相关问题 更多 >
编程相关推荐