[Bioperl-l] Fwd: Bio::SearchIO::Writer::HTMLResultWriter problem
Jason Stajich
jason at bioperl.org
Fri Jan 19 01:43:37 UTC 2007
Folks on the list will have a better time answering you. You should
report what version of BioPerl you are using as well.
-jason
Begin forwarded message:
> From: "Antonio J. Pérez" <ajperezpulido at gmail.com>
> Date: January 18, 2007 3:07:00 PM PST
> To: G.Williams at hgmp.mrc.ac.uk, jason at bioperl.org
> Subject: Bio::SearchIO::Writer::HTMLResultWriter problem
>
> Dear Drs., I am trying to use a remoteBlast for a Bioinformatics
> course. I use the Bio::SearchIO::Writer::HTMLResultWriter module
> but I obtain a plain output without carriage returns. Could it be a
> bug or my code is wrong? I send enclosed a copy of my script, and
> the blast is implemented in:
> http://jaguar.genetica.uma.es/blastUNIA/blastHTTP.html
>
> Please, could you help me? Thanks in advance and yours sincerely,
>
> Antonio.
>
> --
> Participa en mi blog sobre Diversidad Funcional y Bioinformática:
> http://ajperezbioinfo.blogspot.com
>
> #!/usr/bin/perl
>
> # Recibe una secuencia desde un formulario web
> # y la envia a un NCBI-Blast remoto
> # Este es un ejemplo de CGI en Perl
> # que utiliza algunos modulos de la libreria BioPerl
>
> # AJPerez, 25/08/2005
>
> use CGI; # Libreria CGI de Perl
> use Bio::SeqIO; # Modulo de
> tratamiento de secuencias
> use Bio::Tools::Run::RemoteBlast; # Modulo para
> ejecutar Blast remotos
> use Bio::SearchIO; # Modulo parsear
> salidas Blast
> use Bio::SearchIO::Writer::HTMLResultWriter; # Modulo para
> presentar resultados Blast en HTML
>
> # Recoge los parametros del formulario
> my $form = new CGI;
> my $seq_form = $form->param('seq_form');
> my $database_form = $form->param('database_form');
>
> # Eliminamos los posibles espacios en blanco de la secuencia
> $seq_form =~ s/\s+//g;
>
> # Selecciona el programa Blast y la base de datos, segun nuestra
> eleccion
> if ($database_form eq "NT") { # Base de datos no redundante de
> nucleotidos
> $program = "blastn";
> $database = "nt";
> } else { # Base de datos de aminoacidos SWISS-PROT
> $program = "blastp";
> $database = "swissprot";
> }
>
> # Crea un objeto secuencia, con nuestra secuencia de aminoacidos,
> # que luego podremos enviar al Blast remoto
> my $seq_input = Bio::PrimarySeq->new ('-seq' => $seq_form);
>
> # Objeto con los parametros Blast definidos
> my $remote_blast = Bio::Tools::Run::RemoteBlast->new(
> '-prog' => $program,
> '-data' => $database,
> '-readmethod' =>
> 'SearchIO'
> );
>
> # Se lanza el Blast, y la salida se va a recoger en un nuevo objeto
> my $blast_report = $remote_blast->submit_blast($seq_input);
>
> # Definición del tipo de documento de salida, para que el
> explorador sepa que es una pagina web
> print "Content-type: text/html\n\n";
>
> # Recibe los resultados del Blast desde la cola del NCBI
> # RID = Remote Blast ID (ejemplo:
> 1125048844-28013-78894277386.BLASTQ2)
> while ( my @rids = $remote_blast->each_rid ) {
> foreach my $rid ( @rids ) {
>
> # Objeto con el estado de la ejecución del Blast
> my $rc = $remote_blast->retrieve_blast($rid);
>
> if( !ref($rc) ) {
> if( $rc < 0 ) { # retrieve_blast retorna -1 cuando hay error
> print "Existe algun problema con el RemoteBlast del
> NCBI.<br>\n";
> print "Por favor, inténtelo de nuevo mas tarde.<br>\n";
> $remote_blast->remove_rid($rid);
> }
> # retrieve_blast retorna 0 cuando el Blast aun no ha finalizado
> # Por ello, esperamos 5 segundos mas
> sleep 5;
>
> } else {
> # Cuando la ejecucion finalizado, presentamos los resultados
> my $result = $rc->next_result();
>
> # Los resultados son presentados, haciendo uso de SearchIO
> # y, en particular, de su modulo para formatear en HTML
> my $writer = new Bio::SearchIO::Writer::HTMLResultWriter();
> my $out = new Bio::SearchIO(-writer => $writer, -fh =>
> \*STDOUT);
> $out->write_result($result);
>
> # Elimina el resultado recien presentado por pantalla
> $remote_blast->remove_rid($rid);
> $exito = 1;
> }
> }
> }
>
> # Si no han habido resultados, se presenta un mensaje de error
> if (!$exito) {
> print "Existe un problema con los parámetros
> introducidos.<br>\n";
> print "Por favor, regrese al formulario y revíselos.<br>\n";
> }
>
> exit;
More information about the Bioperl-l
mailing list