首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >k-mer模式的d-邻域是所有k-mers的集合,这些k-mers最多距离d与模式之间的距离。

k-mer模式的d-邻域是所有k-mers的集合,这些k-mers最多距离d与模式之间的距离。
EN

Stack Overflow用户
提问于 2022-06-21 12:47:28
回答 1查看 483关注 0票数 -7

k-mer模式的d-邻域是所有k-mers的集合,这些k-mers最多距离d与模式之间的距离。

模式的三个邻域中有多少个4-mers = ACGT?

请注意,模式的d邻域包括模式。

EN

回答 1

Stack Overflow用户

发布于 2022-06-25 09:09:17

通常,你不应该在堆叠溢出时问家庭作业问题,因为它们非常具体,不会帮助别人。我不会给您一个复制粘贴解决方案,但是下面是我解决这个问题的方法:

  1. 编写函数计算两种模式之间的汉明距离

这可以通过迭代一个模式,然后将值与另一个模式中相同位置的值进行比较,并在不匹配的情况下增加一个计数器:

代码语言:javascript
运行
复制
def hamming_distance(pattern_1, pattern_2):
    for idx, c in enumerate(pattern_1):
        if c != pattern_2[idx]:
            # increase a counter
    return counter

  1. 生成所有4-mers

接下来,您需要生成要检查的所有4-mers。为此,您可以使用itertools产品。

代码语言:javascript
运行
复制
itertools.product("AGCT", repeat=4)

然后,您需要将这些组合加入到可以与上面编写的函数进行比较的字符串中。也许,您还需要对本质上不存在的组合进行一些筛选。

3-neighborhood中的

  1. 计数所有4-mers

最后,循环所有生成的组合,并计算与参考模式的汉明距离。如果它小于或等于3,增加一个计数器。然后打印计数器,你就完成了!

代码语言:javascript
运行
复制
reference_pattern = "ACGT"
counter = 0
for pattern in generate_all_k_mers(k=4):
    if hamming_distance(reference_pattern, pattern) <= 3:
        counter += 1
print(f"{counter} patterns are in the 3-neighborhood of {reference_pattern}")

祝好运!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72701050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档