Ich versuche, einige Ergebnisse von UniProt zu erhalten, die eine Proteindatenbank ist (Details sind nicht wichtig). Ich versuche ein Skript zu verwenden, das von einer ID zur anderen übersetzt. Ich konnte dies manuell im Browser tun, konnte es aber nicht in Python tun.Wie kann ich mit UniProt über HTTP in Python sprechen?
In http://www.uniprot.org/faq/28 gibt es einige Beispielskripte. Ich habe es mit der Perl versucht und es scheint zu funktionieren, also ist das Problem meine Python-Versuche. Die (Arbeits-) 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 "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";
Meine Fragen sind:
1) Wie würden Sie tun, dass in Python?
2) Kann ich das massiv "skalieren" (d. H. Viele Einträge im Abfragefeld verwenden)?
fügen Sie Ihren Python Versuch Code – nosklo
Es ziemlich wurde die gleiche Adresse wie ich würde im Browser zu öffnen, mit urllib2.urlopen. –