Estoy tratando de obtener algunos resultados de UniProt, que es una base de datos de proteínas (los detalles no son importantes). Intento usar algún script que traduzca de un tipo de ID a otro. Pude hacer esto manualmente en el navegador, pero no pude hacerlo en Python.¿Cómo puedo hablar con UniProt a través de HTTP en Python?
En http://www.uniprot.org/faq/28 hay algunos scripts de muestra. Probé el Perl y parece que funciona, así que el problema son mis intentos de Python. El guión (de trabajo) es:
## 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";
Mis preguntas son:
1) ¿cómo hacer que en Python?
2) ¿Seré capaz de "escalar" masivamente eso (es decir, usar muchas entradas en el campo de consulta)?
añadir su código intento pitón – nosklo
Se estaba abriendo más o menos la misma dirección que lo haría en el navegador, con urllib2.urlopen. –