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

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


All this talk of nodes and edges makes me thing of
Cytoscape<http://www.cytoscape.org/features2.php>.
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
database<http://www.ebi.ac.uk/biomodels-main/>.
This could be very useful for systems biology.

Giles

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