Tôi đang cố gắng để có được một số kết quả từ UniProt, một cơ sở dữ liệu protein (chi tiết không quan trọng). Tôi đang cố gắng sử dụng một số kịch bản dịch từ một loại ID khác. Tôi đã có thể làm điều này bằng tay trên trình duyệt, nhưng không thể làm điều đó trong Python.Tôi có thể nói chuyện với UniProt qua HTTP bằng Python bằng cách nào?
Trong http://www.uniprot.org/faq/28 có một số tập lệnh mẫu. Tôi đã thử một Perl và nó có vẻ làm việc, do đó, vấn đề là nỗ lực Python của tôi. The (làm việc) kịch bản là:
## 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";
Câu hỏi của tôi là:
1) Làm thế nào bạn sẽ làm điều đó bằng Python?
2) Tôi có thể "mở rộng" một cách ồ ạt (tức là sử dụng nhiều mục nhập trong trường truy vấn) không?
thêm python của bạn nỗ lực đang – nosklo
Nó được khá nhiều mở địa chỉ giống như tôi sẽ trong trình duyệt, với urllib2.urlopen. –