Computational Evolutionary Biology Assignment 4: Heuristic Tree Search, Study notes of Biology

Assignment 4 for the bsc5936-fall 2005 computational evolutionary biology course. Students are required to write a program that uses stepwise addition to find the best tree for a 12-taxon dataset. The algorithm involves generating all possible trees with one extra tip from the starting tree, calculating their scores using fitch parsimony, and selecting the best one for the next step. The assignment also includes modifying the program to hold a user-specified number of trees at each step and implementing a branch swapping algorithm for tree improvement.

Typology: Study notes

Pre 2010

Uploaded on 08/31/2009

koofers-user-ufg
koofers-user-ufg 🇺🇸

10 documents

1 / 1

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
BSC5936-Fall 2005-PB,FR Computational Evolutionary Biology
Assignment 4
1. Write a program that uses stepwise addition to heuristically find the best tree for the full
12-taxon data set that we have been working with since Assignment 2. You can use an
arbitrary ordering of tips and then use your exhaustive enumeration algorithm with a few
modifications to generate all the trees with n+ 1 tips from a tree with ntips. At each step
of the algorithm, calculate the length of all trees with one extra tip that are possible to build
from your starting tree. Then choose the best one and use that one for the next step in the
algorithm. Use Fitch parsimony when you calculate tree scores.
2. Modify your program so that it can hold a user-specified number of trees at each step in the
addition process. For instance, if the user wants to save three trees, then you first construct
all the possible four-tip trees (three). Now you take the first tree and add the next tip to all
possible positions, calculating the score for each tree. Then you save the three best trees and
continue with the next starting tree. Again you add the next tip in all possible positions and
replace the worst of the three trees in memory every time you find a tree with a better score.
At the end of the search, go through all trees in memory and delete the ones that are longer
than the best tree(s).
3. (Optional) Program a branch swapping algorithm of your choice to improve the best tree
resulting from your stepwise addition algorithm. We recommend that you program either
NNI or the TBR algorithm with a neighborhood variable that determines how far away from
the original position (in number of nodes) that you will move the attachment point of either
subtree on the other subtree.
1

Partial preview of the text

Download Computational Evolutionary Biology Assignment 4: Heuristic Tree Search and more Study notes Biology in PDF only on Docsity!

BSC5936-Fall 2005-PB,FR Computational Evolutionary Biology

Assignment 4

  1. Write a program that uses stepwise addition to heuristically find the best tree for the full 12-taxon data set that we have been working with since Assignment 2. You can use an arbitrary ordering of tips and then use your exhaustive enumeration algorithm with a few modifications to generate all the trees with n + 1 tips from a tree with n tips. At each step of the algorithm, calculate the length of all trees with one extra tip that are possible to build from your starting tree. Then choose the best one and use that one for the next step in the algorithm. Use Fitch parsimony when you calculate tree scores.
  2. Modify your program so that it can hold a user-specified number of trees at each step in the addition process. For instance, if the user wants to save three trees, then you first construct all the possible four-tip trees (three). Now you take the first tree and add the next tip to all possible positions, calculating the score for each tree. Then you save the three best trees and continue with the next starting tree. Again you add the next tip in all possible positions and replace the worst of the three trees in memory every time you find a tree with a better score. At the end of the search, go through all trees in memory and delete the ones that are longer than the best tree(s).
  3. (Optional) Program a branch swapping algorithm of your choice to improve the best tree resulting from your stepwise addition algorithm. We recommend that you program either NNI or the TBR algorithm with a neighborhood variable that determines how far away from the original position (in number of nodes) that you will move the attachment point of either subtree on the other subtree.