生信算法4 - 获取overlap序列索引和序列的算法
2023-12-16 11:38:04
生信序列基本操作算法
建议在Jupyter实践,python版本3.9
1. 获取overlap序列索引和序列的算法实现
# min_length 最小overlap碱基数量3个
def getOverlapIndexAndSequence(a, b, min_length=3):
""" Return length of longest suffix of 'a' matching
a prefix of 'b' that is at least 'min_length'
characters long. If no such overlap exists,
return 0. """
# 开始位置
start = 0
while True:
# 在序列a中查找b的最小长度后缀
start = a.find(b[:min_length], start)
# 如果没有匹配到则返回0
if start == -1:
return 0
# 如果存在overlap序列,则输出a序列开始索引以及overlap序列
# 即序列b的开始 min_length 个碱基与a序列的 min_length 个碱基的后缀序列相同
if b.startswith(a[start:]):
return len(a)-start, a[start:]
# 右移1个碱基
start += 1
2. 算法测试
getOverlapIndexAndSequence('TTACGT', 'CGTGTGC')
# (3, 'CGT') overlap序列开始索引和对应序列碱基
getOverlapIndexAndSequence('TTACGT', 'GTGTGC')
# 0
文章来源:https://blog.csdn.net/LittleComputerRobot/article/details/134975827
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!