J'essaie d'obtenir des résultats d'UniProt, qui est une base de données de protéines (les détails ne sont pas importants). J'essaie d'utiliser un script qui traduit d'un type d'ID à l'autre. J'étais capable de le faire manuellement sur le navigateur, mais je ne pouvais pas le faire en Python.Comment puis-je parler à UniProt via HTTP en Python?
Dans , il existe quelques exemples de scripts. J'ai essayé le Perl et il semble fonctionner, donc le problème est mes tentatives de Python. Le script (travail) est:
## 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";
Mes questions sont les suivantes:
1) Comment voulez-vous faire en Python?
2) Serai-je en mesure de "mettre à l'échelle" massivement (c'est-à-dire, utiliser beaucoup d'entrées dans le champ de requête)?
ajouter votre code python tentative – nosklo
Il était assez d'ouvrir la même adresse que je voudrais dans le navigateur, avec urllib2.urlopen. –