001 package calhoun.analysis.crf.test;
002
003 import org.apache.commons.logging.Log;
004 import org.apache.commons.logging.LogFactory;
005
006 import calhoun.analysis.crf.features.supporting.phylogenetic.PhylogeneticTreeFelsensteinOrder;
007 import calhoun.analysis.crf.features.supporting.phylogenetic.RootedBinaryPhylogeneticTree;
008 import calhoun.util.AbstractTestCase;
009
010 public class NewickTreeManipulationTest extends AbstractTestCase {
011 private static final Log log = LogFactory.getLog(CRFIOTest.class);
012 boolean debug = log.isDebugEnabled();
013
014 public void testAspTree() throws Exception {
015 String treeStr = "(((AC2:1.0,(NF2:1.0,AF2:1.0):1.0):1.0,((AFL2:1.0,A_oryzae_RIB40:1.0):1.0,AT1:1.0):1.0):1.0,AN1:1.0):0.0;";
016 RootedBinaryPhylogeneticTree tree = new RootedBinaryPhylogeneticTree(treeStr);
017 assertEquals(7, tree.getNumSpecies());
018 }
019
020 public void testBigTree() throws Exception {
021 RootedBinaryPhylogeneticTree RBPT = ExampleTrees.bigTree();
022 RBPT.summarize_tree();
023
024 String[] selected = new String[]{"elephant","human","mouse","dog","snufalupagus"};
025
026 RootedBinaryPhylogeneticTree subtree = RBPT.subtree(selected);
027 subtree.summarize_tree();
028 }
029
030 public void testCryptoTree() throws Exception {
031 RootedBinaryPhylogeneticTree RBPT = ExampleTrees.crypto5();
032 RBPT.summarize_tree();
033
034 String[] msaOrder = new String[]{"cnDT","cnDS","cnAB","cnBB","cnBV"};
035 PhylogeneticTreeFelsensteinOrder fo = RBPT.getFelsensteinOrder(msaOrder);
036
037 fo.summarize();
038
039 }
040
041 public void testEncodeSpeciesFromBigTree() throws Exception {
042 RootedBinaryPhylogeneticTree RBPT = ExampleTrees.bigTreeForEncode();
043 RBPT.summarize_tree();
044
045 String[] speciesList = new String[]{"hg17","hedgehog","shrew","baboon","tenrec",
046 "owl_monkey","rfbat","dusky_titi","chimp","zebrafish","platypus","cow",
047 "mouse","macaque","chicken","elephant","colobus_monkey","marmoset",
048 "mouse_lemur","armadillo","rat","tetraodon","rabbit","monodelphis",
049 "galago","xenopus","dog","fugu"};
050
051 RootedBinaryPhylogeneticTree subtree = RBPT.subtree(speciesList);
052 subtree.summarize_tree();
053
054 System.out.println("Now computing a Felsenstein ordering for the subtree:");
055 subtree.getFelsensteinOrder(speciesList).summarize();
056
057 }
058
059 }