From: Allen D. <all...@us...> - 2004-10-06 05:46:54
|
Update of /cvsroot/gmod/Generic-Genome-Browser/lib/Bio/DB/Das In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23312/lib/Bio/DB/Das Modified Files: Tag: gbrowse-template-branch Chado.pm Log Message: changes to implement Bio::Das::FeatureTypeI for chado. Index: Chado.pm =================================================================== RCS file: /cvsroot/gmod/Generic-Genome-Browser/lib/Bio/DB/Das/Chado.pm,v retrieving revision 1.62.2.1 retrieving revision 1.62.2.2 diff -C2 -d -r1.62.2.1 -r1.62.2.2 *** Chado.pm 18 Sep 2004 05:41:15 -0000 1.62.2.1 --- Chado.pm 6 Oct 2004 05:46:32 -0000 1.62.2.2 *************** *** 402,407 **** feature appears in the database. ! NOTE: This currently raises a "not-implemented" exception, as the ! BioSQL API does not appear to provide this functionality. =cut --- 402,407 ---- feature appears in the database. ! NONO NOTE: This currently raises a "not-implemented" exception, as the ! NONO BioSQL API does not appear to provide this functionality. =cut *************** *** 417,420 **** --- 417,457 ---- + #FIXME this code is almost identical to that in map2type. we need a refactor here + if(!$self->{'types'}){ + my $dbh = $self->dbh(); + + my $cvterm_query = qq( + SELECT c.*, dbxref.accession + FROM + (SELECT cv.name AS cv, cvterm.name AS term, cvterm.definition AS definition, cvterm.dbxref_id + FROM + cv, cvterm + WHERE + cvterm.cv_id = cv.cv_id + AND + cv.name IN ('Sequence Ontology','Relationship Ontology') + ) AS c + LEFT JOIN + dbxref + ON + (c.dbxref_id = dbxref.dbxref_id) + ORDER BY cv,term + ); + + my $sth = $dbh->prepare($cvterm_query) or warn "unable to prepare select cvterms"; + $sth->execute or $self->throw("unable to select cvterms"); + + while (my $row = $sth->fetchrow_hashref) { + my $type = Bio::DB::Das::Chado::Type->new(); + $type->name( $row->{'term'} ); + $type->definition( $row->{'definition'} ); + $type->accession( $row->{'accession'} ); + $type->ontology( $row->{'cv'} ); + + push @{ $self->{'types'} }, $type; + } + } + + return @{ $self->{'types'} }; } |