Skip to content

removing Bio::Ontology::SimpleGOEngine::GraphAdaptor #398

@carandraug

Description

@carandraug

The module Bio::Ontology::SimpleGOEngine::GraphAdaptor brings the dependency on the Graph distribution into Bioperl (see #314) which would be nice to not have (the issue is that Graph requires Set::Object which requires a C compiler).

Turns out that this module was part of the Bio::Ontology::SimpleGOEngine "tree" which was deprecated in 1.6 and removed sometime before 1.6.901 (99c8d8a). The ...::SimpleGOEngine::GraphAdapator module was later added again when tests failed (9bbc189). The commit message that added the module back talks about renaming it but seems that was never done.

Basically, what's happening is that Bio::Ontology::OBOEngine makes use of ...::SimpleGOEngine::GraphAdaptor.

...::SimpleGOEngine::GraphAdaptor is effectively a pass-through to Graph (with the exception of a a few methods to workaround a performance in Graph version 0.5). It would be trivial to move the contents that matter from ...::GraphAdaptor into ...::OBOEngine. While such change would not remove the dependency on Graph, it would hopefully help in drawing the logical limits of separate distributions.

With regards to the performance issue in Graph 0.5, I'm not sure if it was ever fixed since there is no issue that describes it (version 0.5 was new at the time). My guess is that it's related to Graph RT issue 11498 which was closed as resolved without details but there's an entry on Graph Changes file that reads:

- Document that using attributes does have a slowing down
 effect on other graph operations
 [rt.cpan.org #11498]
 "Performance problem: edge attributes slow source_vertices"
 This is unlikely to get fixed any time soon, I am afraid,
 this is one of those working-as-designed-and-correctly-but-
 unfortunately-slow things.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions