[Bioperl-l] broken term relationships from dagedit files fixed

Hilmar Lapp hlapp at gmx.net
Thu Jun 30 12:20:12 EDT 2005

I fixed the bug in Bioperl that prevented relationships from being 
returned when $ontology->get_relationships() is called without 
arguments. (if you called $ontology->get_relationships($term), 
everything worked fine)

The rest is a sort of a post-mortem and probably largely uninteresting 
to most people unless you're a developer.

The bug consisted of $graph->edges_at() being called incorrectly with 
an undef argument instead of calling $graph->edges() iff the term ID is 
undef (in Bio::Ontology::SimpleGOEngine.pm). The fix consisted of 
changing a single line of code. A test in the Bioperl test suite 
(t/Ontology.t) would readily expose the problem. However, versions of 
Graph.pm earlier than somewhere in 0.6.x behaved as if edges() had been 
called when the argument to edges_at() was undef, so that I only 
recently noticed the test failures, which had never been reported by 
someone actually experiencing the problem.

This single-line bug which would be detected by an existing test 
triggered a motivation to migrate away from using Bioperl because it 
was considered broken, as opposed to a motivation to debug the problem 
in Bioperl and fix it.

I am wondering whether this is just the way it goes or whether this 
experience could be used to draw some lessons for how GMOD developers 
and Bioperl developers could work together more productively, because 
generally I believe both groups of people could benefit significantly 
from each other. Also, I don't see being a GMOD developer as mutually 
exclusive with being a Bioperl developer and vice versa, so I'm not 
even sure these are two distinct groups of people ...

Any comments greatly welcome.


On Jun 13, 2005, at 2:26 PM, Scott Cain wrote:

> Hello Elena,
> Unfortunately, this isn't going to work for you.  Bioperl is currently
> broken in that it doesn't capture cvterm relationship information from
> the DAG-Edit formatted files, so the cvterm_relationship table isn't
> populated.  This will be fixed when I migrate to using go-perl for
> loading ontologies, but that is a few weeks away at the earliest.
> As a side note, that shell script is also broken, as it uses $USER and
> $DBNAME where it should be using $CHADO_DB_USERNAME and $CHADO_DB_NAME,
> but that is very much a moot point, as this script will be deprecated 
> in
> favor of the postgres function for populationg the cvtermpath table.
> Thanks,
> Scott
Hilmar Lapp                            email: lapp at gnf.org
GNF, San Diego, Ca. 92121              phone: +1-858-812-1757

More information about the Bioperl-l mailing list