1 package jalview.ext.archaeopteryx;
3 import jalview.analysis.TreeBuilder;
4 import jalview.datamodel.SequenceI;
5 import jalview.ext.forester.ForesterMatrix;
6 import jalview.util.MessageManager;
8 import org.forester.evoinference.distance.NeighborJoiningF;
9 import org.forester.evoinference.matrix.distance.DistanceMatrix;
10 import org.forester.phylogeny.Phylogeny;
11 import org.forester.phylogeny.PhylogenyNode;
13 public class ArchaeopteryxTreeConverter
15 protected final SequenceI[] sequences;
17 private Phylogeny aptxTree;
19 private PhylogenyNode rootNode;
21 protected final DistanceMatrix distances;
23 protected final TreeBuilder jalviewTree;
25 public String treeTitle;
29 public ArchaeopteryxTreeConverter(final TreeBuilder calculatedTree)
31 jalviewTree = calculatedTree;
32 sequences = jalviewTree.getSequences();
33 distances = ForesterMatrix.convertJalviewToForester(
34 jalviewTree.testDistances, sequences);
35 aptxTree = new Phylogeny();
36 rootNode = new PhylogenyNode();
40 public Phylogeny buildAptxTree(final PhylogenyNode treeRoot)
52 public Phylogeny buildAptxTree()
55 NeighborJoiningF foresterClustering = NeighborJoiningF
57 aptxTree = foresterClustering.execute(distances);
58 treeTitle = generateTreeName();
59 aptxTree.setName(treeTitle);
65 private Phylogeny clusterNodes()
73 * Formats a localised title for the tree panel, like
75 * Neighbour Joining Using BLOSUM62
77 * For a tree loaded from file, just uses the file name
81 public String generateTreeName()
83 if (treeTitle != null) // will currently never happen, loaded tree file will
84 // take a different path
91 * i18n description of Neighbour Joining or Average Distance method
93 String treecalcnm = MessageManager
94 .getString("label.tree_calc_" + jalviewTree.getClass()
95 .getSimpleName().substring(0, 2).toLowerCase());
97 * short score model name (long description can be too long)
99 String smn = jalviewTree.getScoreModel().getName();
102 * put them together as <method> Using <model>
104 final String ttl = MessageManager
105 .formatMessage("label.treecalc_title", treecalcnm, smn);