gpt4 book ai didi

python - 寻找多个序列之间的共享基序

转载 作者:太空宇宙 更新时间:2023-11-03 18:28:19 25 4
gpt4 key购买 nike

我需要编写一个脚本,该脚本将循环序列列表,找到它们之间的共享图案(不同图案可能存在多种解决方案)并打印所有序列之间共享的该图案。

在下面的例子中

链 = ['GATTACA', 'TAGACCA', 'ATACA']

AT 是共享主题之一。我将感谢此类任务的任何解决方案,包括 BioPython 函数的使用。

最近我制作了一个脚本,它为较短的序列循环相同的集合,将其设置为引用,然后尝试在其他链的每个位置中找到该引用序列。但我真的不知道如何在不定义引用的情况下找到共享主题

# reference
xz=" ".join(chains)
ref= min(xz.split(), key=len)


# LOOKING FOR THE MOTIFS
for chain in chains:
for i in range(len(chain)):
if chain==ref:
pass
elif ref not in chain:
print "%s has not been found in the %s"%(ref, chain)
break
elif chain[i:].startswith(ref):
print "%s has been detected in %s in the %d position" %(ref, chain, i+1)

最佳答案

这只是一个快速的想法。你必须改进它,因为它几乎搜索所有空间。我希望它会有所帮助。

def cut_into_parts(chain, n):
return [chain[x:x+n] for x in range(0, len(chain)-n)]

def cut_chains(chains, n):
rlist = []
for k,v in enumerate(chains):
rlist.extend(cut_into_parts(chains, n))
return rlist

def is_str_common(str, chains):
for k,v in enumerate(chains):
if !chains[k].contains(str):
return false
return true

def find_best_common(chains):
clist = []
for i in inverse(range(0, len(chains)))://inverse - I dont remmeber exactly the name of func
clist.extend(cut_chains(chains, i))
for k, v in enumerate(clist):
return is_str_common(clist[k], chains)

关于python - 寻找多个序列之间的共享基序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22805959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com