Python 如何使用作者全名(无首字母缩写)搜索蛋白质数据库

Python 如何使用作者全名(无首字母缩写)搜索蛋白质数据库,python,Python,我试图用作者的名字搜索蛋白质数据库,但唯一的选择是使用全名和首字母缩写,因此有一些错误的点击。有没有办法用python实现这一点?下面是我使用的代码: import urllib2 #http://www.rcsb.org/pdb/software/rest.do#search url = 'http://www.rcsb.org/pdb/rest/search' queryText = """ <?xml version="1.0" encoding="UTF-8"?&g

我试图用作者的名字搜索蛋白质数据库,但唯一的选择是使用全名和首字母缩写,因此有一些错误的点击。有没有办法用python实现这一点?下面是我使用的代码:

    import urllib2

#http://www.rcsb.org/pdb/software/rest.do#search

url = 'http://www.rcsb.org/pdb/rest/search'

queryText = """

<?xml version="1.0" encoding="UTF-8"?>
<orgPdbQuery>
  <queryType>org.pdb.query.simple.AdvancedAuthorQuery</queryType>
  <description>Author Name: Search type is All Authors and Author is Wang, R. and Exact match is true</description>
    <searchType>All Authors</searchType>
    <audit_author.name>Wang, R. </audit_author.name>
    <exactMatch>true</exactMatch>
</orgPdbQuery>
"""


print "query:\n", queryText

print "querying PDB...\n"

req = urllib2.Request(url, data=queryText)

f = urllib2.urlopen(req)

result = f.read()


if result:

    print "Found number of PDB entries:", result.count('\n')
    print result
else:

    print "Failed to retrieve results"enter code here

PyPDB可以按作者、关键字或主题区域对RCSB蛋白质数据库执行高级搜索。存储库是可用的,但也可以在PyPI上找到:

pip安装pypdb

对于您的应用程序,我建议首先使用作者姓名对PDB ID进行常规关键字搜索,然后在元数据中搜索结果PDB列表中包含作者姓名的条目:

肌动蛋白网络的关键词搜索

from pypdb import *

author_name = 'J.A. Doudna'    
search_dict = make_query(author_name)
found_pdbs = do_search(search_dict)
现在遍历结果,查找作者的姓名

matching_results = list()
for pdb_id in found_pdbs:
    desc_pdb = describe_pdb(item)
    if author_name in desc_pdb['citation_authors']:
        matching_results.append(pdb_id)

您可以想象使用更高级的正则表达式来改进作者姓名或首字母的使用方式。还有一种更好的方法可以编写捆绑请求的代码。

您可以循环a.到Z,然后尝试a.a.到Z.Z.等等。请参阅。但是不使用精确匹配,然后使用正则表达式过滤掉不需要的匹配可能会更快。有什么方法可以做到吗?如果数据库中不包含作者的名字,那么就没有办法从特定的数据库中获取。我的意思是,有没有一种方法可以用全名进行搜索,而不仅仅是使用完整的姓氏和首字母。有一种搜索全名的方法,我想,我可以下载所有PDB条目并将它们存储在本地驱动器中,然后我可以在标题信息中搜索所有条目的全名,这将花费相当长的时间。谢谢,Rufflewind。我想我可以先过滤掉那些姓氏+首字母的,然后使用RE从中进一步选择。我要试一试。