-
Notifications
You must be signed in to change notification settings - Fork 185
Description
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.