[BioSQL-l] Consistency between bio* projects
Hilmar Lapp
hlapp at gnf.org
Fri Jan 14 12:58:15 EST 2005
On Friday, January 14, 2005, at 01:10 AM,
mark.schreiber at group.novartis.com wrote:
> Unfortunately, Bioperl stores identifiers as
> follows:
>
> Bioentry.bioentry_id is the unique internal reference number
> Bioentry.name is the GI number
The GI number goes to Bioentry.Identifier, which is was designated the
purpose of storing the identifier within an external database.
Bioentry.name should hold the locus name, which for contigs and many
other entries etc will be identical to the accession (but not the GI
number!).
If you find it in Bioentry.name then I suspect you weren't loading from
genbank or embl formatted input?
From memory the basic idea of BioSQL was to define a schema that bio*
> projects could both read and write from in a language independant
> manner.
> For reasons best left to the designers (mostly I think cause MySQL
> couldn't handle stored proceedures) the level of interaction is right
> down
> at the schema level.
Right. Also, not all database drivers in all languages support stored
procedure calls equally well. In e.g. PostgreSQL and Oracle you can
always get around this by writing a view and putting an INSTEAD OF
INSERT (or UPDATE) trigger on it that will then call the procedure, but
this is clearly not even close to an option in MySQL.
It's maybe worth considering whether opening a dichotomy here between
MySQL and the rest to provide people who need it with a SQL-level API
that both perl and java will use. People who are interested in this by
definition will not be interested in MySQL anyway.
> Unfortunaltey this means that the way data is stored
> needs to be very consistent between projects if any API's that use
> BioSQL
> can be portable. My biojava API cannot be applied to a DB previously
> setup
> with bioperl which was the original idea behind BioSQL in the first
> place.
>
> Help!!
I think you're raising a great point. Indeed, such a contract hasn't
really been written. We're probably one of few who use both perl and
java to access a biosql database (and I'm not using biojava as the
object model on the java side, which is why I'm not running into this
problem). (Note as an aside that you could also write adaptors that
transform between the SymGene and the Biojava model when storing or
retrieving objects from/to the database.)
It'd be great if you were willing to take the lead for getting this all
spelled out and laid down in a document?
-hilmar
--
-------------------------------------------------------------
Hilmar Lapp email: lapp at gnf.org
GNF, San Diego, Ca. 92121 phone: +1-858-812-1757
-------------------------------------------------------------
More information about the BioSQL-l
mailing list