[Bioperl-l] Bioperl 1.5.2 RC2

Niels Larsen niels at genomics.dk
Tue Oct 17 16:58:14 UTC 2006


Ok, here are ways to reproduce; I sure apologize if I made the
test scripts wrong. And I suppose EBI/DDBJ's interfaces are not
a bioperl issue really.

Niels

------------ EBI

I invoked the EBI script

http://www.ebi.ac.uk/Tools/webservices/downloads/WSWUBlastSOAPLite.zip

like this

WSWUBlastClient.pl -p blastn -D embl test.fasta

where the content of test.fasta is below, and got

Can't find method element in the message at 
/ebi/extserv/bin/perl-5.8.3/lib/site_perl/5.8.3/SOAP/Lite.pm line 2311.

 >Planctomyces sp. 282; Genbank Taxonomy ID: 79927
AATGAACGTTGGCGGCATGGATTAGGCATGCAAGTCGAGGGAGAACCCGCAAGGGGACACCGGCG
AACGGGGTAGGAATACATAGGTAACGTACCCTCAGGACGGGGATAGCCAAGGGAAACTTTGGGTA
ATACCCGATGTGATGGCAAGATGTGAATGCTTGTCATCAAAGGTGAGATTCCACCTGAGGAGCGG
CTTATGCATCATTAGCTTGTTGGCGGGGTAACGGCCCACCAAGGCTGCGATGATTAGGGGGTGTG
AGAGCATGGCCCCCACCACTGGCACTGAGACACTGGCCAGACACCTACGGGTGGCTGCAGTCGAG

I tried with this test sequence in fasta format and with just the
sequence.

------------ DDBJ

Inspired by this page,

http://xml.nig.ac.jp/doc/Blast.txt

I made this test script

------ cut --
#!/usr/bin/env perl

use strict;
use warnings FATAL => qw ( all );

my ( $service, $seqstr, $result );

use SOAP::Lite;
use Data::Dumper;

$service = SOAP::Lite->service('http://xml.nig.ac.jp/wsdl/Blast.wsdl');

$seqstr = "MSSRIARALALVVTLLHLTRLALSTCPAACHCPLEAPKCAPGVGLVRDGCGCCKVCAKQL";

$result = $service->searchSimple( "blastp", "SWISS", $seqstr );

print Dumper( $result );
------ cut --

which for me prints undef.

------------- NCBI/Bioperl

I installed 1.5.2-RC2, looked at the RemoteBlast example in

http://www.bioperl.org/wiki/Bptutorial.pl

and then put that into this test code, more or less cut/paste,

--- cut --
#!/usr/bin/env perl

use strict;
use warnings FATAL => qw ( all );

use Bio::Tools::Run::RemoteBlast;
use Data::Dumper;

my ( $remote_blast, $r, $rc, $rid, @rids );

$remote_blast = Bio::Tools::Run::RemoteBlast->new (
                 -prog => 'blastn', -data => 'ecoli', -expect => '1e-10' );

$r = $remote_blast->submit_blast("ecoli.fasta");

while ( @rids = $remote_blast->each_rid )
{
#    print Dumper( \@rids );

     for $rid ( @rids ) {
         $rc = $remote_blast->retrieve_blast($rid);
#        print Dumper( $rc );
     }

     sleep 10;
}
--- cut --

which saves the same blast report to TMPDIR for every 10 seconds.
The "ecoli.fasta" file contains this

 >test
gggggctctgttggttctcccgcaacgctactctgtttaccaggtcaggtccggaaggaa
gcagccaaggcagatgacgcgtgtgccgggatgtagctggcagggcccccaccc

Maybe I am supposed to add a check for content in $rc and then stop
the inner loop? I could figure that out maybe, but I wish there was a
function which simply takes a single sequence + arguments and only
returns a list of matches when done, and does not return until then
(or until a specified timeout).


------------------------------------------------------------------------

Niels Larsen
Danish Genome Institute
Gustav Wieds vej 10 C
DK-8000 Aarhus C
Denmark

Electronic mail: niels at genomics.dk
Skype: niels_larsen_denmark

Telephone: +45-8942-5268
Telefax: +45-8620-1222

------------------------------------------------------------------------



More information about the Bioperl-l mailing list