生物圈能表演吗顺序查找()解释歧义代码

2024-04-29 10:12:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望能够搜索一个Seq对象,寻找一个子部分Seq对象来解释歧义代码。例如,以下情况应是正确的:

from Bio.Seq import Seq
from Bio.Alphabet.IUPAC import IUPACAmbiguousDNA

amb = IUPACAmbiguousDNA()
s1 = Seq("GGAAAAGG", amb)
s2 = Seq("ARAA", amb)     # R = A or G
print s1.find(s2)

如果考虑到模糊代码,答案应该是

^{pr2}$

但我得到的答案是没有找到匹配项,或者

>>> -1

看看biopython的源代码,似乎没有考虑歧义代码,因为subquence使用私有的_get_seq_str_check_alphabet方法转换为字符串,然后使用内置的string方法find()。当然,如果是这样,“R”歧义代码将被视为字面意思“R”,而不是a或G

我可以用一个自制的方法来实现这一点,但它似乎应该在使用Seq对象的biopython包中得到处理。我在这里遗漏了一些东西。在

有没有一种方法可以搜索子序列成员关系来解释模糊代码?在


Tags: 对象方法答案代码fromimportfindseq
1条回答
网友
1楼 · 发布于 2024-04-29 10:12:22

Seq.find的文档中可以看到:

http://biopython.org/DIST/docs/api/Bio.Seq.Seq-class.html#find

这个方法的工作方式似乎与str.find方法相似,因为它寻找的是精确的匹配。因此,虽然dna序列可以包含歧义代码,但是Seq.find()方法只会在精确的子序列匹配时返回匹配。在

要执行您想要的操作,可能ntsearch函数可以工作:

Search for motifs with degenerate positions

相关问题 更多 >