Wed, 22 May 2002 10:30:40 -0400
This is a little bit of a side-issue, but I would like to see the API
for retrieving a stream of analytic sequence features be the same as
the API for retrieving a stream of features from a database. In both
cases, you pass the stream constructor a series of factory-specific
arguments, and retrieve a series of sequence features using
I'm not sure how this relates to the next_seq() API used in SeqIO.
Catherine Letondal writes:
> Jason Stajich wrote:
> >Some projects on the table that one might hope would be part of 1.2:
> > * Design the interface based on the Bioperl/PISE to describe
> > remote analysis queues and add those classes to the main trunk. Use
> > this interface for local execution as well as remote.
> Is it time to start discussions? I don't know exactly what questions are to be discussed
> yet? Anyway, these are my questions and suggestions ...
> 1) creating the factory and running:
> # a) analysis queue (returns a Bio::Factory::Pise)
> $factory = new Bio::Factory::EMBOSS;
> # or:
> $factory = new Bio::Factory::Pise;
> # b) analysis application object (returns a Bio::Tools::Run::PiseApplication or
> # Bio::Tools::Run::EMBOSSApplication)
> $mfold = $factory->program('mfold');
> # c) analysis results
> $result = $mfold->run();
> ... is that OK for EMBOSS and openBSA?
> 2) general execution parameters:
> a) local or remote execution
> - default could be local for EMBOSS and remote for Pise?
> - in Pise, the default remote server could be different for different programs (I
> mean, not only at Pasteur...:-) )
> - so one should be able to choose between local/remote execution and, if remote, to
> choose a non-default server location; this choices could happen either at
> factory creation, or at application creation, or at run step:
> # a) at factory creation
> $factory = new Bio::Factory::Pise(-remote => 'http://somewhere/cgi-bin/Pise');
> # b) at application creation - take the default remote server
> $needle = $factory->program('needle', -remote => 1);
> # c) at run time
> $result = $mfold->run(-remote => 'http://bioweb.pasteur.fr/cgi-bin/seqanal/mfold.pl');
> b) email could be specified once at factory creation (for Pise)
> 3) parameters specification
> a) when?
> # at factory creation?
> $water = $factory->program('water', sequencea => $seqa, seqall => $seqb);
> $result1 = $water->run();
> # before running?
> $result2 = $water->run();
> # when running?
> $result3 = $water->run(sequencea => $seqd);
> b) how? -name or name
> 4) analysis results: what is it, a string, an object, ...?
> $result = $fasta->run();
> - in Pise/bioperl $result is an instance of PiseJob, i.e a kind of "handle" from
> which you can fetch results (image files, treefile, ...)
> print $result->content("treefile");
> print $result->stdout;
> - in Bio::Tools::Run::EMBOSSApplication, it's a string (the actual result): don't
> you think it's more general to have an object?
> 5) use of analysis result:
> - it's convenient to be able to build a handle from a result, in order
> to feed it to bioperl parsers or to other programs
> $aln = Bio::AlignIO->newFh (-fh => $needle_result->fh("outfile.align"),
> -format => "fasta");
> $neighbor = $factory->program('neighbor', infile => $protdist_job->fh('outfile'));
> - construct an analysis result from an ID:
> $neighbor = $factory->result('http://bioweb.pasteur.fr/seqanal/tmp/blast2/A12465102130064/')
> 6) misc:
> - It should be possible to issue an asynchronous run request (to enable parallel
> execution for long jobs)
> How is all that compatible with OpenBSA?
> Catherine Letondal -- Pasteur Institute Computing Center
> Bioperl-l mailing list
Lincoln D. Stein Cold Spring Harbor Laboratory
email@example.com Cold Spring Harbor, NY
Positions available at my lab: see http://stein.cshl.org/#hire