Subject: | Nodes appear to unblessed after using articulation_points() |
Jarkko,
Very, very useful package, thank you. I'm a Bioperl contributor and I'm using Graph to
examine biological networks. Unfortunately I'm not a "real" programmer, so I may not be
describing the problem perfectly. I use Graph::Undirected, and I create graphs where each
node is a Bioperl Bio::Seq::RichSeq object. For example, $n:
main::(t/psi_xml.t:58): my $n = $g1->nodes_by_id('O24853');
DB<2>
main::(t/psi_xml.t:59): ok $n->species->binomial,"Helicobacter pylori 26695";
DB<2> x $n
0 Bio::Seq::RichSeq=HASH(0x1cdb72c)
'_annotation' => Bio::Annotation::Collection=HASH(0x1cda3c8)
'_annotation' => HASH(0x1cdae9c)
'dblink' => ARRAY(0x1cdb07c)
0 Bio::Annotation::DBLink=HASH(0x1cda4b8)
'_root_verbose' => 0
'database' => 'PIR'
'primary_id' => 'A64520'
'tagname' => 'dblink'
1 Bio::Annotation::DBLink=HASH(0x1cdaecc)
'_root_verbose' => 0
'database' => 'psixml'
'primary_id' => 'G_2'
'tagname' => 'dblink'
2 Bio::Annotation::DBLink=HASH(0x1cdaf5c)
<much more deleted here>
However, in the very same *t file, here's what happens when I use articulation_points:
main::(t/psi_xml.t:61): my @rts = $g1->articulation_points;
DB<3>
main::(t/psi_xml.t:62): ok scalar @rts,1;
DB<3>
ok 9
main::(t/psi_xml.t:63): ok $rts[0]->primary_seq->desc,"hypothetical HP001"; # same as $n
above
DB<3> x $rts[0]
0 'Bio::Seq::RichSeq=HASH(0x1cdb72c)'
DB<4>
Notice how Bio::Seq::RichSeq=HASH(0x1cdb72c) is singly quoted above. Also notice that
both nodes have the same memory address, that's by design in the *t file to prove that's
there nothing wrong with the node itself. The difference is that this last one, above, is empty
and can't access its methods:
DB<4> n
Can't locate object method "primary_seq" via package "Bio::Seq::RichSeq=HASH(0x1cdb72c)"
(perhaps you forgot to load "Bio::Seq::RichSeq=HASH(0x1cdb72c)"?) at t/psi_xml.t line 63.
at t/psi_xml.t line 63
ok 10 # skip Missing dependencies. Skipping tests
ok 11 # skip Missing dependencies. Skipping tests
ok 12 # skip Missing dependencies. Skipping tests
ok 13 # skip Missing dependencies. Skipping tests
Debugged program terminated. Use q to quit or R to restart,
use O inhibit_exit to avoid stopping after program termination,
h q, h R or h O to get additional info.
The t script clearly has loaded Bio::Seq::RichSeq since I've used its method just a few lines
earlier. Also, it's exactly the same node but the last "incarnation" of the node is stripped,
somehow. I should mention that although I subclass Graph to make ProteinGraph I have not
touched the articulation_points method.
Unfortunately if you can't see this bug yourself using your own script it's going to be difficult
for you to reproduce it, it requires Bioperl as well as some modules in development that exist
only on this machine.
103 ~>perl -v
This is perl, v5.8.6 built for darwin-thread-multi-2level
(with 2 registered patches, see perl -V for more detail)
Mac OS 10.4.4
Thanks again,
Brian O.