InterProScan is an excellent tool to query the InterPro database with a protein sequence and return annotated features. It also returns XML which is useful in many ways, not least of which is that Bioperl’s Bio::SeqIO::interpro.pm can process it.
Can't locate object method "findnodes" via package "XML::DOM::Document" at /usr/local/share/perl/5.8.7/Bio/SeqIO/interpro.pm line 136, line 57.
After a thorough investigation of the many Perl XML modules, it turns out that the findnodes() method is part of XML::DOM::XPath. I installed this from CPAN but the error persisted, even though interpro.pm contains “use XML::DOM”. Finally I added “use XML::DOM::XPath” to my script, which does the trick.
Not sure whether this classes as a bug or is a consequence of the horror that is most peoples Perl XML module installation.
Update: a clean install of bioperl-1.5.2_102 seems to fix this problem; no requirement for XML::DOM::XPath