More and more, I am attracted to things which only do their task and don't force me to redo a task already done. One such thing is Alzabo. Another such thing is DBIx::Simple by Juerd Waalboer.
On 10/25/05, Sean Davis <[EMAIL PROTECTED]> wrote:
Using RDBO 0.78. Schema, class definitions, and class definitions are
below. I get the following errors in executing the test code. Sorry to
post so many questions in such a short period of time.
No Rose::DB::Object-derived class found for catalog '' schema 'public' table
'g_main' at /Library/Perl/5.8.6/Rose/DB/Object/Metadata/Auto.pm line 402.
No Rose::DB::Object-derived class found for catalog '' schema 'public' table
'ug_main' at /Library/Perl/5.8.6/Rose/DB/Object/Metadata/Auto.pm line 402.
Use of uninitialized value in join or string at rosetest.pl line 21.
Can't locate object method "unigenes" via package
"AnnoDB::Model::Gene::Main"
Methods for the following relationships and foreign keys were deferred and
then never actually created.
TYPE NAME
---- ----
Relationship unigenes
at /Library/Perl/5.8.6/Rose/DB/Object.pm line 1054
Rose::DB::Object::AUTOLOAD('AnnoDB::Model::Gene::Main=HASH(0x18014ac)')
called at rosetest.pl line 24
7778 ZNFP1
Thanks for any insight.
Sean
create table ug_main (
ug_id varchar primary key not null,
species varchar,
symbol varchar,
description varchar,
cytoband varchar,
scount integer,
homol varchar,
rest_expr varchar,
mgi varchar
) without OIDS;
create table g_main (
tax_id integer,
gene_id integer primary key,
symbol varchar,
locustag varchar,
chromosome varchar,
map_location varchar,
description varchar,
gene_type varchar,
symbol_from_nomenclature_auth varchar,
full_name_from_nomenclature_auth varchar,
nomenclature_status varchar,
discontinued boolean default false,
new_gene_id integer default NULL
) without OIDS;
create table g_ug (
g_ug_id serial primary key,
gene_id integer references g_main(gene_id) on update cascade on delete
cascade deferrable,
ug_id varchar references ug_main(ug_id) on update cascade on delete
cascade deferrable
) without OIDS;
Rose::DB::Object Class definitions
package AnnoDB::Model::Gene::Main;
use AnnoDB::Model::Gene2Unigene;
use base qw(AnnoDB::Model);
__PACKAGE__->meta->table('g_main');
__PACKAGE__->meta->relationships
(
unigenes =>
{
type => 'many to many',
map_class => 'AnnoDB::Model::Gene2Unigene'
},
);
__PACKAGE__->meta->auto_initialize();
package AnnoDB::Model::Gene::Main::Manager;
use Rose::DB::Object::Manager;
our @ISA = qw(Rose::DB::Object::Manager);
sub object_class{'AnnoDB::Model::Gene::Main'};
__PACKAGE__->make_manager_methods('gmain');
1;
package AnnoDB::Model::Unigene::Main;
use AnnoDB::Model::Gene2Unigene;
use base qw(AnnoDB::Model);
__PACKAGE__->meta->table('ug_main');
__PACKAGE__->meta->relationships
(
genes =>
{
type => 'many to many',
map_class => 'AnnoDB::Model::Gene2Unigene'
},
);
package AnnoDB::Model::Unigene::Main::Manager;
use Rose::DB::Object::Manager;
our @ISA = qw(Rose::DB::Object::Manager);
sub object_class{'AnnoDB::Model::Unigene::Main'};
__PACKAGE__->make_manager_methods('ugmain');
1;
package AnnoDB::Model::Gene2Unigene;
use AnnoDB::Model::Gene::Main;
use AnnoDB::Model::Unigene::Main;
use base qw(AnnoDB::Model);
__PACKAGE__->meta->table('g_ug');
__PACKAGE__->meta->auto_initialize();
package AnnoDB::Model::Gene2Unigene::Manager;
use Rose::DB::Object::Manager;
our @ISA = qw(Rose::DB::Object::Manager);
sub object_class{'AnnoDB::Model::Gene2Unigene'};
__PACKAGE__->make_manager_methods('gug');
1;
And finally some test code:
#!/usr/bin/perl
use strict;
use lib './lib';
use AnnoDB::Model::Gene::Main;
use AnnoDB::Model::Gene::Alias;
use AnnoDB::Model::Gene::Sts;
use AnnoDB::Model::Gene::Refseq;
use AnnoDB::Model::Gene::Refprot;
use AnnoDB::Model::Unigene::Main;
use AnnoDB::Model::Gene::Pubmed;
my $genes = AnnoDB::Model::Gene::Main::Manager->get_gmain_iterator
(
query=>[
symbol => {like => 'ZNF%'},
tax_id => 9606,
],
sort_by => 't1.tax_id');
while (my $gene = $genes->next) {
print join("\t",$gene->gene_id,
$gene->symbol,
$gene->description)."\n";
foreach ($gene->unigenes) {
print " Unigene:".$_->ug_id."\n";
}
}
print "";
-------------------------------------------------------
This SF.Net email is sponsored by the JBoss Inc.
Get Certified Today * Register for a JBoss Training Course
Free Certification Exam for All Training Attendees Through End of 2005
Visit http://www.jboss.com/services/certification for more information
_______________________________________________
Rose-db-object mailing list
Rose-db-object@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rose-db-object