[Bioperl-l] Bootstrap, root, reroot...

Giles Weaver giles.weaver at googlemail.com
Thu Jul 16 13:13:51 UTC 2009

All this talk of nodes and edges makes me thing of
Cytoscape was developed to visualise molecular interaction networks, but can
be used to display all kinds of things, including trees.

Has anyone considered a generic Bio::Network to describe nodes and edges? A
Bio::Tree could be implemented as a (relatively) simple Bio::Network. A more
complicated Bio::Network might be something like a Bio::Model, containing a
mathematical model such as those found in the biomodels
This could be very useful for systems biology.


2009/7/16 Chris Fields <cjfields at illinois.edu>

> Well, what I was thinking that Nodes sharing an edge could share the same
> hash ref containing the edge information, with said hash ref magically
> becoming an object when absolutely needed (keys being named parameters,
> values being args for constructor).  Just a thought.
> chris
> On Jul 15, 2009, at 10:43 PM, Mark A. Jensen wrote:
>  To examine rvos' Bio::Phylo was my plan exactly-- Lazy edges can be done I
>> believe, although it seems
>> that one of the main reasons to have edges is to
>> attach lengths, bootstrap values, etc to them; so we may
>> ultimately avoid edge creation only when we construct tree
>> topology only--prob rare in practice?
>> ----- Original Message ----- From: "Chris Fields" <cjfields at illinois.edu>
>> To: "Mark A. Jensen" <maj at fortinbras.us>
>> Cc: "Aidan Budd" <budd at embl-heidelberg.de>; "BioPerl List" <
>> bioperl-l at lists.open-bio.org>; <tristan.lefebure at gmail.com>
>> Sent: Wednesday, July 15, 2009 11:29 PM
>> Subject: Re: [Bioperl-l] Bootstrap, root, reroot...
>>  I don't; code away.
>>> With the edge/branch objects, I'm wondering whether those can be  created
>>> lazily (only when needed); it might lighten up the tree a  bit.  Also, don't
>>> forget to look at Rutger's Bio::Phylo project,  though I think his modules
>>> use inside-out objects (might not be easy  to work into core unless they are
>>> wrapped).
>>> chris
>>> On Jul 15, 2009, at 4:54 PM, Mark A. Jensen wrote:
>>>  After fooling around with bug 2877, I'm thinking seriously about
>>>>  starting the edge-branch
>>>> project in bioperl-dev, building out an implementation off the
>>>>  interfaces B:T:TreeI and B:T:NodeI. It would
>>>> give the opp'y for some code rationalization too.
>>>> Anyone out there have a problem with that?
>>>> cheers MAJ
>>>> ----- Original Message ----- From: "Aidan Budd" <
>>>> budd at embl-heidelberg.de
>>>> >
>>>> To: "BioPerl List" <bioperl-l at lists.open-bio.org>
>>>> Sent: Saturday, July 11, 2009 3:52 AM
>>>> Subject: Re: [Bioperl-l] Bootstrap, root, reroot...
>>>>  On Thu, 9 Jul 2009, Tristan Lefebure wrote:
>>>>>> ...
>>>>>> My understanding here is that the problem is linked to the well- known
>>>>>> difficulty to differentiate node from branch labels in  newick trees.
>>>>>> Bootstrap scores are branch attributes not node  attributes, but since
>>>>>> Bio::TreeI has no branch/edge/bipartition  object they are attached to a
>>>>>> node, and in fact reflects the  bootstrap score of the ancestral branch
>>>>>> leading to that node.  Troubles naturally come when you are dealing with an
>>>>>> unrooted tree  or reroot a tree: a child can become an ancestor, and, if the
>>>>>>  bootstrap scores is not moved from the old child to the new child,  it will
>>>>>> end up attached at the wrong place (i.e. wrong node). I  see several fix to
>>>>>> that:
>>>>>> 1- incorporate Bank's fix into the root() method. I.e. if there is
>>>>>> bootstrap score, after re-rooting, the one on the old to new  ancestor path,
>>>>>> should be moved to the right node. 2- Modify the  way trees are stored in
>>>>>> bioperl to incorporate branch/edge/ bipartition object, and move the
>>>>>> bootstrap scores to them. That  won't be easy and will break many things...
>>>>> Just wanted to add that, from my point of view, it would be great  if
>>>>> it
>>>>> were possible to add edge/branch objects as part of the bioperl  trees.
>>>>> Perhaps so that the previous set of methods still behaved  as before, but
>>>>> with some new methods on the trees such as get_splits() or
>>>>>  get_branches() along with associated split/branch/etc. objects...?
>>>>> Being a bioperl user but keeping well away from coding objects in
>>>>>  perl,
>>>>> the lack of such methods/objects meant I chose, in the end, not to  use
>>>>> a
>>>>> bioperl solution to work with my trees (going instead for a homemade
>>>>> clunky python solution, where I'm happier with the OO stuff)
>>>>> No idea how difficult/problematic this would be to implement,  though -
>>>>> just my 2 cents worth...
>>>>>> What do you think?
>>>>>> --Tristan
>>>>>> _______________________________________________
>>>>>> Bioperl-l mailing list
>>>>>> Bioperl-l at lists.open-bio.org
>>>>>> http://lists.open-bio.org/mailman/listinfo/bioperl-l
>>>>> --
>>>>> ----------------------------------------------------------------------
>>>>> Aidan Budd                                    tel:+49 (0)6221 387  8530
>>>>> EMBL - European Molecular Biology Laboratory  fax:+49 (0)6221 387  8517
>>>>> Meyerhofstr. 1, 69117 Heidelberg, Germany
>>>>> http://www.embl-heidelberg.de/~budd/<http://www.embl-heidelberg.de/%7Ebudd/>
>>>>> http://www-db.embl.de/jss/EmblGroupsHD/per_1807.html
>>>>> _______________________________________________
>>>>> Bioperl-l mailing list
>>>>> Bioperl-l at lists.open-bio.org
>>>>> http://lists.open-bio.org/mailman/listinfo/bioperl-l
>>>>>  _______________________________________________
>>>> Bioperl-l mailing list
>>>> Bioperl-l at lists.open-bio.org
>>>> http://lists.open-bio.org/mailman/listinfo/bioperl-l
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/bioperl-l

More information about the Bioperl-l mailing list