<p>向stackoverflow社区致意</p>
<p>我目前正在攻读生物信息学模块,作为生物医学学位的一部分(我基本上是一个python新手),以下任务是python编程任务的一部分:</p>
<p>提取motif序列(氨基酸序列,基本上是程序语言中的字符串),这些序列是从实现多序列比对和随后迭代数据库扫描以生成最佳保守序列的算法中删除的。最终的想法是从这些“母题”中推断出功能意义。在</p>
<p>这些模体存储在公共数据库的文件中,这些文件具有与每个蛋白质对应的多个数据字段(uniprot ID、登录号、排列本身存储在hyperlink.seq文件中),目前其中一个在这个范围内是感兴趣的。数据字段称为“提取的模体集”。在</p>
<p>我的问题是如何编写一个脚本来解析“motif字符串”并将它们输出到文件中。我现在已经对脚本进行了编码,如下所示(我还没有将结果写入文件):</p>
<pre><code>import os, re, sys, string
printsdb = open('/users/spyros/folder1/python/PRINTSmotifs/prints41_1.kdat', 'r')
protname = None
final_motifs = []
for line in printsdb.readlines():
if line.startswith('gc;'):
protname = line.lstrip()
#string.lower(name) # convert to lowercase
break
def extract_final_motifs(protname):
"""Extracts the sequences of the 'final motifs sets' for a PRINTS entry.
Sequences are on lines starting 'fd;' A simple regex is used for retrieval"""
for line in printsdb.readlines():
if line.startswith('fd;'):
final_motifs = re.compile('^\s+([A-Z]+)\s+<')
final_motifs = final_motifs.match(line)
#print(final_motifs.groups()[0])
motif_dict = {protname : final_motifs}
break
return
motif_dict = extract_final_motifs('ADENOSINER')
print(motif_dict)
</code></pre>
<p>现在的问题是,当我的代码在原始数据库文件(prints41)上循环时!。kdat)而不是像下面Simon Cockell建议的那样使用urllib模块连接到公共数据库,而是在pythonshell上简单地“none”,而它应该创建一个列表,比如[AAYIGIEVLI,AAYIGIEVLI,AAYIGIEVLI,等等]</p>
<p>有人知道逻辑错误在哪里吗?感谢您的任何意见!!
我很抱歉文本太多了,我只是希望尽可能的清楚。提前感谢您的帮助!在</p>