A DBIx::Class layer for Chado
Oxford, UK
August 6-7, 2009
What is DBIx::Class?
- Object-relational mapping framework for Perl
- is now the de-facto standard
- very powerful features for:
continued...
What is DBIx::Class?
- Object-relational mapping framework for Perl
- is now the de-facto standard
- very powerful features for:
- query building (the magic of chainable ResultSets)
continued...
What is DBIx::Class?
- Object-relational mapping framework for Perl
- is now the de-facto standard
- very powerful features for:
- query building (the magic of chainable ResultSets)
- cross-database deployment (using SQL::Translator in the backend)
continued...
What is DBIx::Class?
- Object-relational mapping framework for Perl
- is now the de-facto standard
- very powerful features for:
- query building (the magic of chainable ResultSets)
- cross-database deployment (using SQL::Translator in the backend)
- testing with Fixtures
see http://search.cpan.org/dist/DBIx-Class/lib/DBIx/Class/Manual.pod
Chado needs middleware
A layer of software between the application (e.g. website) and the relational database.
Chado needs middleware
Chado's design makes for:
- complex queries
- steep learning curve
- hard to get good performance
Chado needs middleware
Middleware can help by:
continued...
Chado needs middleware
Middleware can help by:
- complex queries
- storing and/or automating them
continued...
Chado needs middleware
Middleware can help by:
- complex queries
- storing and/or automating them
- steep learning curve
continued...
Chado needs middleware
Middleware can help by:
- complex queries
- storing and/or automating them
- steep learning curve
- codifying best practices
- unified, high-level documentation
- can help with database administration
continued...
Chado needs middleware
Middleware can help by:
- complex queries
- storing and/or automating them
- steep learning curve
- codifying best practices
- unified, high-level documentation
- can help with database administration
- hard to get good performance
continued...
Chado needs middleware
Middleware can help by:
- complex queries
- storing and/or automating them
- steep learning curve
- codifying best practices
- unified, high-level documentation
- can help with database administration
- hard to get good performance
- some performance optimizations can be put in middleware
- can assist in creating indexes and materialed views
Further Work: fix relationships
Still need to add in some DBIx::Class relationships:
- many_to_many
- has_many and belongs_to for relationships across Chado module boundaries, e.g. feature.type_id -> cvterm.cvterm_id
Further Work: add more useful things
More useful things are needed:
- automate common querying and loading patterns
- compatibility with BioPerl objects
- the things that Modware does, and more
Rob proposes
- other people should start building features onto and into it
- and do some of the things on the previous slides
- make a new version of Modware based on it
- do you think somebody could get funding to work on it full time?