按顺序寻找主题

Posted

技术标签:

【中文标题】按顺序寻找主题【英文标题】:Looking for the motifs in sequence 【发布时间】:2014-03-30 17:41:36 【问题描述】:

我正在寻找可能的脚本算法,它将搜索我在 str 对象中定义的长 DNA 序列以查找指定的基序(较短的 DNA 片段),计算每个发现(假设我的 seq 有几个相同的基序),然后打印已检测到基序的序列中的第一个核苷酸编号。

假设在每个对象下方定义,我应该在某个循环中使用此类搜索,因为下面的两个示例都只能找到 1 次主题。指定这种循环的正确方法是什么?

#Loading data
seq = open('motif.txt', 'r')
chains=[]
[chains.append(line[:-1]) for line in seq]
Seq,Motif = chains[0], chains[1]
count=0


# Search motif
Seq.find(Motif)

if y == 1:
    print "%s has been detected" %(Motif)

if Motif in Seq:
    print "%s has been detected" %(Motif)

【问题讨论】:

【参考方案1】:

是否已经存在可以做到这一点的东西? biopython?但无论如何,这并不难,你也不需要循环:

import re

seq='aaattatagggatatata'

motif='ata'

Q=re.compile(motif)

[item.start(0) for item in Q.finditer(seq)] #or maybe item.start(0)+1 if you want it
#Out[23]: [5, 11, 15]

【讨论】:

【参考方案2】:

这个问题在我看来在术语上有点模棱两可。既然你说你在你的问题中寻找“主题”,我想问一下你是否真的想找到一个确切的序列,或者你的目的是否是搜索 TFBS。如果您正在寻找特定字符串的确切出现,那么@CT Zhu 的答案就是您的正确答案。

但是,如果您正在寻找 TFBS,这可能不像寻找精确序列那么简单,因为这些序列是退化的,并不总是对应于相同的序列,尽管它们共享一些模式。在这种情况下,我建议查看 Jaspar 或 TRANSFAC 等主题数据库,也许 Biopython“motifs”模块可能是一个很好的起点: http://biopython.org/DIST/docs/api/Bio.motifs-module.html

可以在文献中找到更复杂的基序发现方法: http://www.ploscompbiol.org/article/info%3Adoi%2F10.1371%2Fjournal.pcbi.1003214#pcbi-1003214-g008

【讨论】:

【参考方案3】:

我将此添加为另一个答案,因为我不允许制作 cmets...

不过,我想你可以在这个问题中找到答案:Python regex find all overlapping matches?

【讨论】:

以上是关于按顺序寻找主题的主要内容,如果未能解决你的问题,请参考以下文章

xmind怎么更改子标题顺序

使用mysql按两个字段对结果顺序进行排序

Kafka 架构多分区还是多主题?

Instagram 按名称 API 查找 Hashtag

Docker系列 WordPress系列 配置argon主题

ResourceDictionary主题资源替换 :通过加载顺序来覆盖之前的主题资源