用户输入,用BioPython检查限制位点的DNA序列

2024-07-01 07:00:57 发布

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

我希望编写一个脚本,它接受用户输入的限制酶名称(因此是一个字符串),并解析给定的DNA序列(也是一个字符串)以获取限制酶序列的实例。输入将访问包含在生物限制模块。一个非常简单的例子:

from Bio.Restriction import *

sequence=('ACGGCTATCGATAACTG...')
enzyme=input('Enter the name of your restriction enzyme: ')
enzymeSite=Bio.Restriction.enzyme.site
enzymeSite in sequence
#True or False

当然,问题是变量enzyme是一个字符串对象,而不是访问类所需的RestrictionType对象。在

^{pr2}$

我试着用importlib包。然而,这些酶似乎是类而不是模块,因此importlib也无能为力。在

i=importlib.import_module('Bio.Restriction',fromlist=[''])
dir(i)
#list of Bio.Restriction contents

i=importlib.import_module('Bio.Restriction.EcoRI',fromlist=[''])
Traceback (most recent call last):
  File "<pyshell#391>", line 1, in <module>
    i=__import__('Bio.Restriction.EcoRI',fromlist=[''])
ImportError: No module named 'Bio.Restriction.EcoRI'

我对Python也相当陌生,所以我没有从阅读限制源文件中得到太多。在

在命令行中强制访问限制性酶有明显的限制。这个问题的一个解决方案是使用两个python脚本,其中一个提示用户输入酶,然后替换代码并从另一个脚本导入输出。另一个解决方法是简单地创建一个字典,列出所有可能的限制性酶及其位点。这两种解决方案都是可怕的。对我来说,理想的解决方案是将用户输入的字符串转换为适当的RestrictionType对象,然后可以使用该对象访问站点。谢谢你的阅读,如果你能帮我解决这个问题,我将不胜感激。在


Tags: 模块对象字符串用户import脚本序列importlib
1条回答
网友
1楼 · 发布于 2024-07-01 07:00:57

我以前从未使用过生物光子,但我对生物信息学很感兴趣,所以我研究了一下。我不能保证这是做这件事的最佳方式,因为这很奇怪,但似乎有效。在

我创建了一个RestrictionBatch,并将该酶作为字符串添加到批处理中,然后使用batch.get()检索{}对象,使用与查询相同的字符串。我知道酶的名字非常区分大小写,我用EcoRI来测试。我用了你的例子:

from Bio.Restriction.Restriction import RestrictionBatch

sequence=('ACGGCGAATTCTATCGATAACTG...')

# Read enzyme name from input. 
enzyme_name = input("Enter enzyme name:\n") # E.g EcoRI
print (type(enzyme_name)) # <type 'str'>

# Get RestrictionType by name
batch = RestrictionBatch()
batch.add(enzyme_name)
enzyme = batch.get(enzyme_name)
print (type(enzyme)) # RestrictionType

print (enzyme.site in sequence) # True

这和你要找的一样吗?在

相关问题 更多 >

    热门问题