Opened 10 years ago

Closed 10 years ago

Last modified 3 years ago

#417 closed enhancement (implemented)

Allow to create multifurcated trees

Reported by: westram Owned by: westram
Priority: normal Milestone: arb6
Component: ARB_NTREE Version: SVN
Keywords: Cc:

Description

Shall allow to change branchlengths in a given tree according to existing bootstrap values.

Input

  • (current) tree
  • max. bootstrap value (MBS)
  • max. branchlength (MBL)

Modifies all branches with bootstrap⇐MBS and length⇐MBL, such that their length and bootstrap will be set to zero.

The removed branchlength shall be distributed to the child-branches of the removed branches. This is not correct, but practible.

A correct branchlength distribution for the removal of branch X in

A       C
 \_____/
 /  X  \
B       D

would need to keep all 6 distances between (A,B,C,D) somehow constant (at least relatively). This is quite difficult to obtain.

Discussion with WL revealed that such a distribution already was in ARB @ its beginnings (applied to manual branchlength modification via tree display) and has been removed, since it proved impractical, at least for manual branchlength modification. Looking at the above tree as dendrogram may e.g. look like:

+------A
|
|   +----B
+---+
    |   +---C
    +---+
      X +---D

Removing branch X with "correct distribution" will cause "parent" branches to change their length.

If @ all, implement "correct distribution" as option.

Change History (11)

comment:1 Changed 10 years ago by westram

  • Owner changed from devel to westram
  • Status changed from new to assigned

comment:2 Changed 10 years ago by westram

preparative work: log:branches/tree@11425:11449

comment:3 Changed 10 years ago by westram

implemented basic functionality with [11466]

comment:4 in reply to: ↑ description ; follow-up: Changed 10 years ago by westram

Replying to westram:

The removed branchlength shall be distributed to the child-branches of the removed branches. […] Removing branch X with "correct distribution" will cause "parent" branches to change their length.

Decided to implement a proportional length distribution. The length of each eliminated branch gets added to it's "adjacent branches", where longer branches receive more length than shorter branches and branches with length zero never receive additional length. They build a multifurcation and the branches beyond the zero-length-branches will receive part of the distributed length.

TODO: Length distribution has to take place after deciding how much length will be distributed to each branch.

comment:5 Changed 10 years ago by epruesse

We also need to have a proper documentation of the algorithm, both for the paper and in the help file.

comment:6 in reply to: ↑ 4 Changed 10 years ago by westram

Replying to westram:

TODO: Length distribution has to take place after deciding how much length will be distributed to each branch.

implemented by [11478]

comment:7 follow-ups: Changed 10 years ago by westram

[11483] adds a MULTIFURC mode to tree display.

new TODO

  • avoid that negative branchlengths are generated by 'multifurcate()'
  • check strange problems @ root node

comment:8 in reply to: ↑ 7 Changed 10 years ago by westram

Replying to westram:

  • check strange problems @ root node

fixed by [11484]

comment:9 in reply to: ↑ 7 Changed 10 years ago by westram

  • avoid that negative branchlengths are generated by 'multifurcate()'

fixed by [11485]

comment:10 Changed 10 years ago by westram

  • Resolution set to implemented
  • Status changed from assigned to closed

by [11488]

comment:11 Changed 3 years ago by westram

  • Milestone changed from work2013 to arb6
Note: See TracTickets for help on using tickets.