- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我当前的代码:
import re
from Bio.Seq import Seq
def check_promoter(binding_element,promoter_seq):
promoter_seq = str(promoter_seq)
residues = list()
for i in range(0,len(promoter_seq)):
if binding_element[0] == promoter_seq[i]:
ind = promoter_seq[i]
for j in range(0,len(binding_element)):
if binding_element[0+j] == promoter_seq[i+j-len(binding_element)]:
residues.append(i+j-len(binding_element))
return residues
ESR1_promoter = Seq('''aagtcaggctgagagaatctcagaaggttgtggaagggtctatctacttt\
gggagcattttgcagaggaagaaactgaggtcctggcaggttgcattctc\
ctgatggcaaaatgcagctcttcctatatgtataccctgaatctccgccc\
ccttcccctcagatgccccctgtcagttcccccagctgctaaatatagct\
gtctgtggctggctgcgtatgcaaccgcacaccccattctatctgcccta\
tctcggttacagtgtagtcctccccagggtcatcctatgtacacactacg\
tatttctagccaacgaggagggggaatcaaacagaaagagagacaaacag\
agatatatcggagtctggcacggggcacataaggcagcacattagagaaa\
gccggcccctggatccgtctttcgcgtttattttaagcccagtcttccct\
gggccacctttagcagatcctcgtgcgcccccgccccctggccgtgaaac\
tcagcctctatccagcagcgacgacaagtaaagtaaagttcagggaagct\
gctctttgggatcgctccaaatcgagttgtgcctggagtgatgtttaagc\
caatgtcagggcaaggcaacagtccctggccgtcctccagcacctttgta\
atgcatatgagctcgggagaccagtacttaaagttggaggcccgggagcc\
caggagctggcggagggcgttcgtcctgggactgcacttgctcccgtcgg\
gtcgcccggcttcaccggacccgcaggctcccggggcagggccggggcca\
gagctcgcgtgtcggcgggacatgcgctgcgtcgcctctaacctcgggct\
gtgctctttttccaggtggcccgccggtttctgagccttctgccctgcgg\
ggacacggtctgcaccctgcccgcggccacggaccatgaccatgaccctc\
cacaccaaagcatctgggatggccctactgcatcagatccaagggaacga''')
ESR1_complement = ESR1_promoter.complement()
SBE = 'CAGACA'
print check_promoter(SBE,ESR1_promoter)
print check_promoter(SBE,ESR1_complement)
当我使用字符串 'aa' 进行测试并返回找到 'aa' 的索引列表时,此代码有效,但是当我使用其他序列(即 'tcc')进行测试时,它发现没有匹配项,但显然存在序列中的“tcc”。此外,字符串 'CAGACA' 在补码字符串中用 re.findall 方法识别,但这不提供索引。
任何人都可以建议我做错了什么吗?
此外,还有一个次要问题 - 如您所见,我作弊了一点,因为我的代码只会检查第一个问题:
promoter_seq[i+j-len(binding_element)]
元素,因为我得到一个索引错误。有人知道解决这个问题的方法吗?
谢谢
最佳答案
我很惊讶 Bio
中没有预先存在的函数来进行这种类型的搜索——这似乎是一种非常常见的操作。也许您需要花一些时间阅读文档。
无论如何,您可以只使用 re.finditer()
它将返回一个返回匹配对象的迭代器:
import re
from Bio.Seq import Seq
def check_promoter(binding_element, promoter_seq):
return [m.start() for m in
re.finditer(str(binding_element).lower(),
str(promoter_seq).lower())]
ESR1_promoter = Seq('aagtcaggctgagagaatctcagaaggttgtggaagggtctatctactttgggagcattttgcagaggaagaaactgaggtcctggcaggttgcattctcctgatggcaaaatgcagctcttcctatatgtataccctgaatctccgcccccttcccctcagatgccccctgtcagttcccccagctgctaaatatagctgtctgtggctggctgcgtatgcaaccgcacaccccattctatctgccctatctcggttacagtgtagtcctccccagggtcatcctatgtacacactacgtatttctagccaacgaggagggggaatcaaacagaaagagagacaaacagagatatatcggagtctggcacggggcacataaggcagcacattagagaaagccggcccctggatccgtctttcgcgtttattttaagcccagtcttccctgggccacctttagcagatcctcgtgcgcccccgccccctggccgtgaaactcagcctctatccagcagcgacgacaagtaaagtaaagttcagggaagctgctctttgggatcgctccaaatcgagttgtgcctggagtgatgtttaagccaatgtcagggcaaggcaacagtccctggccgtcctccagcacctttgtaatgcatatgagctcgggagaccagtacttaaagttggaggcccgggagcccaggagctggcggagggcgttcgtcctgggactgcacttgctcccgtcgggtcgcccggcttcaccggacccgcaggctcccggggcagggccggggccagagctcgcgtgtcggcgggacatgcgctgcgtcgcctctaacctcgggctgtgctctttttccaggtggcccgccggtttctgagccttctgccctgcggggacacggtctgcaccctgcccgcggccacggaccatgaccatgaccctccacaccaaagcatctgggatggccctactgcatcagatccaagggaacga')
ESR1_complement = ESR1_promoter.complement()
SBE = 'CAGACA'
>>> check_promoter(SBE, ESR1_promoter)
[]
>>> check_promoter(SBE, ESR1_complement)
[200]
>>> check_promoter('tcc', ESR1_promoter)
[80, 98, 121, 143, 153, 177, 267, 270, 282, 413, 445, 467, 510, 565, 622, 632, 635, 723, 741, 778, 860, 948, 987]
>>> check_promoter('TCC', ESR1_promoter)
[80, 98, 121, 143, 153, 177, 267, 270, 282, 413, 445, 467, 510, 565, 622, 632, 635, 723, 741, 778, 860, 948, 987]
>>> check_promoter(Seq('CAGACA'), ESR1_complement)
请注意,binding_element
可以是 Seq
或字符串,并且区分大小写,因此将其转换为小写以进行搜索,如 promoter_seq
。
关于python - 我的代码 : identifying sequence within another sequence 中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28898732/
更新:添加关于 Hashable 的相同错误 我已经创建了一个 Identifiable 兼容协议(protocol)和兼容结构。然后,当我创建列表并在 ForEach 中引用它时,我收到错误 Typ
这只是我偶然发现的例子! 我正在使用 cout与 operator // imports the declaration of std::cout using namespace std; // ma
我有一些表,我使用 MySQL Workbench 创建了 role_has_action 表。 创建的字段是:(role_id,action_id,action_controller_id): (为
我有一个 codesign 无法完全验证的应用程序,因为它“不满足其指定的要求”。第一次检查返回“在磁盘上有效”,所以没关系。 codesign -dvvvv -r- PATH_TO_APP 告诉我要
我正在使用 Java SDK 创建 SAS 来访问 blob。这是代码: SharedAccessBlobPolicy policy = new SharedAccessBlobPolicy(); p
#include "stdafx.h" #include #include #include #include #include using namespace std; #define T
我在代码中看到了这两种方法。你能解释一下这两者有什么区别吗?正如我认为它与 C++ 完成命名空间查找的方式有关,您能否也提供一些相关信息,或者提供一个好的文档的链接?谢谢。 最佳答案 示例: #inc
我一直在使用一个工具 sbconstants从我的 Xcode 项目中的 Storyboard 标识符和重用标识符创建外部常量。 我已将包含这些常量的所有声明的 header #imported 到项
我想知道 bundle Identifier(在 info.plist 中)之间的区别。以及产品 Bundle Identifier(在 Build Setting -> Packaging -> P
我有课Identifier它本质上是 UUID 的类型安全包装器(因此类 Foo 包含 Identifier )。 FooStore类有一个方法 List> bulkReadIdentifiers()
在 Go 中,公共(public)名称以大写字母开头,私有(private)名称以小写字母开头。 我正在编写一个不是库的程序,它是一个单独的包。是否有任何 Go 习语规定我的标识符应该全部公开还是全部
我有一个页面 url,它看起来像: http://mydomain.com/nodes/32/article/new?return=view 安装 tomcat 7 后,尝试访问它时出现此异常: /n
我正在学习以下教程: http://www.appcoda.com/ios7-programming-ibeacons-tutorial/ 但是,我没有使用 iPhone 作为信标,而是使用制造商(R
我在为我的 iPhone 应用程序的下一版本上传 .app 文件时收到此错误“Bundle Identifier differents from prior bundle identifier”。 注
Scene 1, Layer 'script', Frame 1, Line 9 1084: Syntax error: expecting identifier before this. Sc
升级到 Xcode 7 后,我注意到 CFBundleIdentifier 已开始指向在 Build Settings/Packaging 中找到的产品捆绑标识符,而不是 Info.Plist 中的捆
关闭。这个问题需要debugging details .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 5年前关闭。 Improve this question 我在
我使用 Apache DBCP 来获取连接池,我每次都使用 PoolingDataSource 来获取连接。当我向数据库中插入一个对象时,它工作得很好,但是当我尝试从数据库中选择一个元素时,就会出现问
由于我项目的 react-native 版本 (0.44.3),我正在尝试在版本 0.6.4 中安装包 react-native-today-widget,我能够成功安装包: yarn add rea
之前有人问过这个问题,我已经查看了所有其他 stackoverflow 主题的答案,但我无法解决这个问题。 我的应用程序在所有平台的模拟器中运行良好,但是当我在我的设备上运行该应用程序时,我收到错误代
我是一名优秀的程序员,十分优秀!