gpt4 book ai didi

python - 如何找到 2 个序列之间的重叠,并将其返回

转载 作者:太空狗 更新时间:2023-10-29 17:53:15 27 4
gpt4 key购买 nike

我需要找出两个序列之间的重叠部分。重叠在第一个序列的左端和第二个序列的右端。我希望函数找到重叠部分并将其返回。

我的序列是:

s1 = "CGATTCCAGGCTCCCCACGGGGTACCCATAACTTGACAGTAGATCTC"
s2 = "GGCTCCCCACGGGGTACCCATAACTTGACAGTAGATCTCGTCCAGACCCCTAGC"

我的函数应该命名

def getOverlap(left, right)

s1为左序列,s2为右序列。

结果应该是

'GGCTCCCCACGGGGTACCCATAACTTGACAGTAGATCTC'

感谢任何帮助。

最佳答案

看看 difflib图书馆,更准确地说是 find_longest_match() :

import difflib

def get_overlap(s1, s2):
s = difflib.SequenceMatcher(None, s1, s2)
pos_a, pos_b, size = s.find_longest_match(0, len(s1), 0, len(s2))
return s1[pos_a:pos_a+size]

s1 = "CGATTCCAGGCTCCCCACGGGGTACCCATAACTTGACAGTAGATCTC"
s2 = "GGCTCCCCACGGGGTACCCATAACTTGACAGTAGATCTCGTCCAGACCCCTAGC"

print(get_overlap(s1, s2)) # GGCTCCCCACGGGGTACCCATAACTTGACAGTAGATCTC

关于python - 如何找到 2 个序列之间的重叠,并将其返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14128763/

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