[Bioperl-l] RE: Integrating caBIOperl with BIOperl

Covitz, Peter (NIH/NCI) covitzp at mail.nih.gov
Thu Nov 4 12:02:54 EST 2004


Steve,

What we do is take the MAGE-OM UML model (as an .XMI file) and feed it to a
template-driven code generator.  Up until now we have generated only our
Java code that way, using templates that target the Java language.
caBIOperl has up until now been hand-coded, and does not yet include the
MAGE package. 

In the next major release (~March 2005) we expect to start autogenerating
caBIOperl as well.  That will enable us to include our MAGE API
implementation in Perl as well as Java, since it is a fairly complicated
model that would be difficult to hand-code.  

The caBIO APIs (including caBIOperl) provide standardized, object-oriented
query interfaces to our model-driven data management systems.  That means
you will be able to retrieve MAGE-OM objects based on parameterized queries
against their attributes. This API is not, however, a direct interface to
MAGEstk.  

It is worth pointing out that we are using the MAGE-OM for a different
purpose than it was originally designed for.  Its original purpose was to
provide a foundation for creating a MAGE-ML XML generator.  We, however, are
using it as a direct data service API specification for our microarray
database.  It isn't a perfect fit, since the MAGE-OM is quite complex, and
therefore the API is complex.  But we've found some value in having the API
based upon the standard, since it fits well with our adoption of the
model-driven architecture paradigm, and plan to support it going forward. 

Hope this explains it adequately, please let me know if not.  

Regards,

Peter 

> -----Original Message-----
> From: Steve Chervitz Trutane [mailto:steve at trutane.net]
> Sent: Wednesday, November 03, 2004 8:35 PM
> To: Hilmar Lapp; Covitz, Peter (NIH/NCI)
> Cc: 'bioperl-l at bioperl.org'; Lincoln Stein
> Subject: Re: [Bioperl-l] RE: Integrating caBIOperl with BIOperl
> 
> 
> Note: 
> * perl MAGEstk - any tie in?
> * Always thought it would be nice to have a bridge into bioperl from
> MAGEstk. Would caBIO perl act as this bridge?
> * Are the caBio perl MAGE objects autogenerated from MAGE-OM?
> 
> Steve
> 
> > From: Hilmar Lapp <hlapp at gmx.net>
> > Date: Wed, 3 Nov 2004 09:35:59 -0800
> > To: "Covitz, Peter (NIH/NCI)" <covitzp at mail.nih.gov>
> > Cc: "'bioperl-l at bioperl.org'" <bioperl-l at bioperl.org>, 
> "'lstein at cshl.edu'"
> > <lstein at cshl.edu>
> > Subject: Re: [Bioperl-l] RE: Integrating caBIOperl with BIOperl
> > 
> > I very much agree with Lincoln's comment. One of the more frequent
> > comments we have gotten is that expecially to newbies the 
> plethora of
> > modules in Bioperl and the apparent diversity of its APIs 
> are already
> > confusing. A bridge that binds the caBIOperl API to the existing
> > Bioperl object model would be a great addition though.
> > 
> > -hilmar
> > 
> > On Wednesday, November 3, 2004, at 06:47  AM, Covitz, Peter 
> (NIH/NCI)
> > wrote:
> > 
> >> Agreed, getting it into CPAN is the first order of business.
> >> 
> >> caBIOperl is itself a wrapper around a lower-level 
> SOAP-XML API.  That
> >> gives
> >> us some flexibility on how we present the visible API interfaces.
> >> Once we
> >> get it into CPAN, I'd be interested in continuing the discussion of
> >> what the
> >> appropriate bridging and interface strategy would be to 
> make it more
> >> suitable for use with bioperl.
> >> 
> >> Thanks for the feedback!
> >> 
> >> Regards,
> >> 
> >> Peter
> >> 
> >> -----Original Message-----
> >> From: Lincoln Stein [mailto:lstein at cshl.edu]
> >> Sent: Tuesday, November 02, 2004 5:48 PM
> >> To: Covitz, Peter (NIH/NCI); 'bioperl-l at bioperl.org'
> >> Subject: Re: [Bioperl-l] RE: Integrating caBIOperl with BIOperl
> >> 
> >> 
> >> 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)
> >> _______________________________________________
> >> Bioperl-l mailing list
> >> Bioperl-l at portal.open-bio.org
> >> http://portal.open-bio.org/mailman/listinfo/bioperl-l
> >> 
> >> 
> > -- 
> > -------------------------------------------------------------
> > Hilmar Lapp                            email: lapp at gnf.org
> > GNF, San Diego, Ca. 92121              phone: +1-858-812-1757
> > -------------------------------------------------------------
> > 
> > 
> > _______________________________________________
> > Bioperl-l mailing list
> > Bioperl-l at portal.open-bio.org
> > http://portal.open-bio.org/mailman/listinfo/bioperl-l
> 
> 


More information about the Bioperl-l mailing list