Sébastien MORETTI | 14 Feb 09:09 2013
Picon
Picon

Re: PhyloXML

>>>>>> # Add annotation
>>>>>> $treeio->add_phyloXML_annotation(-obj => $tree,
>>>>>>                                 -xml => '<name>SUMF family</name>',
>>>>>>                                );
>>>>>
>>>>> If you really have $treeio in your script in this line and not $tree, then that's at least one problem.
But the stack suggests that the above isn't the exact line in your script - can you confirm that?
>>>>>
>>>>> 	-hilmar
>>>>
>>>> I replaced $treeio by $tree in the above line but still get an error.
>>>> Don't see what you mean by "the stack suggests that the above isn't the exact line in your script"
>>>>
>>>> The only think I changed is the length of the xml string I try to insert. But get the same error with an
empty xml string.
>>>>
>>>>
>>>>
>>>> my $treeio = new Bio::TreeIO(-file   => "$infile",
>>>>                              -format => 'phyloxml',
>>>>                             );
>>>> my $tree = $treeio->next_tree;
>>>>
>>>> # Add annotation
>>>> $tree->add_phyloXML_annotation(-obj => $tree,
>>>>                                -xml => '<name>SUMF family</name>',
>>>>                               );
>>>>
>>>> Can't locate object method "add_phyloXML_annotation" via package
>>>> 	"Bio::Tree::Tree" at ./add_annotation_to_phyloxml.pl line 40, <GEN0> line 1 (#1)
>>>>     (F) You called a method correctly, and it correctly indicated a package
>>>>     functioning as a class, but that package doesn't define that particular
>>>>     method, nor does any of its base classes.  See perlobj.
>>>>
>>>> Uncaught exception from user code:
>>>> 	
>>>> at ./add_annotation_to_phyloxml.pl line 40
>>>
>>> Will have to look into this.  One problem we have is that phyloXML support has dwindled, so if anyone wants
to take this on I would be more than happy to help them get started.
>>>
>>> chris
>>
>> You mean that BioPerl 1.6.901 has not a full support of PhyloXML ?
>> The problem I have is "expected" ?
>>
>> --
>> Sébastien Moretti
>
> I think it handles most of phyloXML fine, but the implementation of the parser is a little tricky.  I tried
cleaning this up a few years back but didn't make much progress.
>
> The function is in Bio::TreeIO::phyloxml, so the correct call should be (as you previously had it):
>
>      $treeio->add_phyloXML_annotation(-obj => $tree,
>                                -xml => '<name>SUMF family</name>',
>                               );
>
> My guess is that Bio::Tree::Tree was AnnotatableI at one point but that was removed, will have to trace
that back.  Can you file a bug on this?
>
> https://redmine.open-bio.org/
>
> chris

I will fill a bug on this.

I'd be happy to try to contribute to the phyloxml code.
But don't know how to proceed for BioPerl.

--

-- 
Sébastien Moretti

Gmane