如何在Python中通过HTTP与UniProt交谈?

如何在Python中通过HTTP与UniProt交谈?,第1张

概述我试图从UniProt获得一些结果,这是一个蛋白质数据库(细节并不重要).我正在尝试使用一种从一种ID转换为另一种ID的脚本.我能够在浏览器上手动执行此 *** 作,但无法在Python中执行此 *** 作.在http://www.uniprot.org/faq/28中有一些示例脚本.我尝试了Perl,它似乎工作,所以问题是我的Python尝试. (工作)脚本是:## to

我试图从UniProt获得一些结果,这是一个蛋白质数据库(细节并不重要).我正在尝试使用一种从一种ID转换为另一种ID的脚本.我能够在浏览器上手动执行此 *** 作,但无法在Python中执行此 *** 作.

在http://www.uniprot.org/faq/28中有一些示例脚本.我尝试了Perl,它似乎工作,所以问题是我的Python尝试. (工作)脚本是:

## tool_example.pl ##use strict;use warnings;use LWP::UserAgent;my $base = 'http://www.uniprot.org';my $tool = 'mapPing';my $params = {  from => 'ACC',to => 'P_REFSEQ_AC',format => 'tab',query => 'P13368 P20806 Q9UM73 P97793 Q17192'};my $agent = LWP::UserAgent->new;push @{$agent->requests_redirectable},'POST';print STDERR "submitting...\n";my $response = $agent->post("$base/$tool/",$params);while (my $wait = $response->header('Retry-After')) {  print STDERR "Waiting ($wait)...\n";  sleep $wait;  print STDERR "Checking...\n";  $response = $agent->get($response->base);}$response->is_success ?  print $response->content :  dIE 'Failed,got ' . $response->status_line .     ' for ' . $response->request->uri . "\n";

我的问题是:

1)你会如何在Python中做到这一点?

2)我能够大规模“缩放”那个(即在查询字段中使用大量条目)吗?

最佳答案问题#1:

这可以使用python的urllibs完成:

import urllib,urllib2import timeimport sysquery = ' '.join(sys.argv)   # encode params as a List of 2-tuplesparams = ( ('from','ACC'),('to','P_REFSEQ_AC'),('format','tab'),('query',query))# url encode themdata = urllib.urlencode(params)    url = 'http://www.uniprot.org/mapPing/'# fetch the datatry:    foo = urllib2.urlopen(url,data)except urllib2.httpError,e:    if e.code == 503:        # blah blah get the value of the header...        wait_time = int(e.hdrs.get('Retry-after',0))        print 'SleePing %i seconds...' % (wait_time,)        time.sleep(wait_time)        foo = urllib2.urlopen(url,data)# foo is a file-like object,do with it what you will.foo.read()
总结

以上是内存溢出为你收集整理的如何在Python中通过HTTP与UniProt交谈?全部内容,希望文章能够帮你解决如何在Python中通过HTTP与UniProt交谈?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1205551.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存