Ich versuche, einige Ergebnisse von UniProt zu erhalten, das ist eine Protein-Datenbank (Details sind nicht wichtig). Ich versuche, ein Skript zu verwenden, das von einer Art von ID in eine andere übersetzt. Ich konnte dies manuell im Browser machen, aber nicht in Python.
In http://www.uniprot.org/faq/28 gibt es einige Beispielskripte. Ich habe das Perl-Skript ausprobiert und es scheint zu funktionieren, also liegt das Problem an meinen Python-Versuchen. Das (funktionierende) Skript ist:
## 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 "Submiting...\n";
my $response = $agent->post("$base/$tool/", $params);
while (my $wait = $response->header('Retry-After')) {
print STDERR "Wartezeit ($wait)...\n";
sleep $wait;
print STDERR "Überprüfen...\n";
$response = $agent->get($response->base);
}
$response->is_success ?
print $response->content :
die 'Fehlgeschlagen, erhalten ' . $response->status_line .
' für ' . $response->request->uri . "\n";
Meine Fragen sind:
1) Wie würde man das in Python machen?
2) Werde ich in der Lage sein, das massiv zu "skalieren" (d.h. viele Einträge im Abfragefeld zu verwenden)?