我试图从 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) 我是否能够大规模“扩展”它(即,在查询字段中使用大量条目)?