[Bioperl-l] RE: Integrating caBIOperl with BIOperl

Lincoln Stein lstein at cshl.edu
Tue Nov 2 17:48:03 EST 2004


I think that caBIOperl and BioPerl will both need some work in order to make 
the APIs coherent with each other.  I am not eager to see caBIOperl just 
dropped in without a more thorough integration.  Why not just release 
caBIOPerl onto CPAN?

Lincoln

On Tuesday 02 November 2004 03:13 pm, Covitz, Peter (NIH/NCI) wrote:
> Ewan,
>
> I thought jump in and pick up this thread.  I understand and agree with
> your point about needing a 'bridge' between caBIO classes and equivalent
> existing bioperl classes.  Your suggestion on how to go about implementing
> such a bridge was helpful, thanks.
>
> Beyond that, I had been thinking that it might be useful to contribute the
> entire caBIOperl module to bioperl and make it part of the bioperl core
> package.  caBIOperl is really just an object-oriented query interface to
> caBIO data servers, so I naively thought it might fit nicely under
> Bio::DB::Query, perhaps Bio::DB::Query::caBIO ??
>
> Of course people can use caBIOperl without it being part of bioperl.
> However, there are a some classes and subject areas in caBIO that are not
> in bioperl, so we thought it might be a useful extension to bioperl itself.
>  In the next major caBIOperl release (~March 2005) we are going to include
> a full implementation of the MAGE-OM microarray data standard as part of
> the caBIOperl API, so that might be among the subject areas of interest to
> the bioperl community.
>
> I'd be interested to hear whether you and others think there might be value
> in incorporating caBIOperl itself into bioperl, or if you'd rather just
> consider incorporating the 'bridge' module.
>
> Regards,
>
> Peter Covitz
>
> -----Original Message-----
> From: Ewan Birney [mailto:birney at ebi.ac.uk]
> Sent: Tuesday, October 12, 2004 4:07 AM
> To: Jiang, Shan (NIH/NCI)
> Cc: bioperl-l at bioperl.org
> Subject: Re: Integrating caBIOperl with BIOperl
>
> On Mon, 11 Oct 2004, Jiang, Shan (NIH/NCI) wrote:
> > Hi Ewan,
> >
> > I would like to introduce myself. I am a colleage of Gene Levinson at the
> > National Cancer Institue in the US. I am the original developer of
> > caBIOperl, which Gene presented at BOSC '04. I believe Gene talked to you
> > quite extensively during the meeting as well. (Gene asked me to say hi!)
> >
> > Currently, I am undertaking the task of integrating caBIOperl with
> > BIOperl.Gene indicated that you would be a great source to talk to. I am
>
> in
>
> > the process of learning BIOperl before deciding how to proceed. So I
> > would much appreciate your help in learning BIOperl as well as looking
> > into possible ways of integrating caBIOperl with BIOperl.
>
> Great - I'm cc'ing this message to the main bioperl list to check I give
> you the best advice!
>
> > Let me start asking some questions to start the ball rolling.
> >
> > 1. Has similar kinds of integration work been done before? If so is there
>
> a
>
> > general recommended approach?
>
> The recommendation is definitely to have an caBIOperl "bridge" to Bioperl
> objects. The main ones you want to have are Bio::SeqI,
> Bio::DB::RandomAccessI and Bio::AnnotationCollectionI and Bio::SeqFeatureI
>
> The "I" means interface (a bit like Java)
>
> In each case you would have wrapper classes that has-a caBIOPerl object
> and is-a Bioperl object, for example, imagining the caBIOPerl sequence
> object has methods "human_readable_name" and "sequence_as_string" (of
> course, they might have something completely different...)
>
>   package Bio::caBIOBridge::Seq;
>
>   @ISA = qw( Bio::SeqI );
>
>   ...
>   ...
>
>   # Bio::SeqI isa Bio::PrimarySeqI, and needs to implement
>   # display_id. this should give back the human readable name
>   sub display_id {
>     my $obj = shift;
>
>     # the caBIOPerl method is "human_readable_name"
>     return $obj->{'_cabioperl_object'}->human_readable_name()
>   }
>
>   # Bio::SeqI needs to implement seq
>   sub seq {
>     return $obj->{'_cabioperl_object'}->sequence_as_string()
>   }
>
>
> etc etc
>
>
> This is, BTW, something I am planning to do with Ensembl as - make an
> Ensembl-Bioperl bridge.
>
> > 2. Do you have a repository where people can just "donate" their code
>
> into?
>
> I would suggest that the caBIO-Bioperl bridge was its own cvs module and
> donated into CPAN. You could run the cvs module at Bioperl.org or do it in
> your own shop - entirely up to you.
>
> > 3. caBIOperl has its own object model, if the end vision is to integrate
> > this model with BIOperl, how should I proceed?
>
> see above
>
> > 4. Can I get access to the CVS repository?
>
> You shouldn't need access to the bioperl cvs repository to come up with
> some working code - if you want to have the caBio-Bioperl bridge
> repository hosted at bioperl.org that's feasible, but probably building
> some proof-of-concept classes first off would be great.
>
>
> A great first step would be if someone could write a script like:
>
>
> use Bio::caBIOBridge::DBAccess;
> use Bio::SeqIO;
>
> # default to well known caBio server
> $db = Bio::caBIOBridge::DBAccess->new();
>
> $ca_wrapped_seq = $db->get_Seq_by_id('some_id');
>
> # $ca_wrapped_seq is Bio::SeqI object but is actually a thin wrapper over
> # caBIO objects
>
> # Bio::SeqIO is a Bioperl object writer that works with Bio::SeqI
> # compliant objects
> $seqout = Bio::SeqIO->new( -format => 'EMBL');
>
> # Here we see the bridge in action!
> $seqout->write_seq($ca_wrapped_seq);
>
> > I am not sure how familiar you are with caBIOperl. So if you have any
> > question, please do not hesistate to ask me.
> >
> > Regards,
> > Shan Jiang
> > (Contractor)
>
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at portal.open-bio.org
> http://portal.open-bio.org/mailman/listinfo/bioperl-l

-- 
Lincoln Stein
lstein at cshl.edu
Cold Spring Harbor Laboratory
1 Bungtown Road
Cold Spring Harbor, NY 11724
(516) 367-8380 (voice)
(516) 367-8389 (fax)


More information about the Bioperl-l mailing list