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.matrix.distance.DistanceMatrix;
9 import org.forester.phylogeny.Phylogeny;
10 import org.forester.phylogeny.PhylogenyNode;
12 public class ArchaeopteryxTreeConverter
14 protected final SequenceI[] sequences;
16 private Phylogeny aptxTree;
18 private PhylogenyNode rootNode;
20 protected final DistanceMatrix distances;
22 protected final TreeBuilder jalviewTree;
24 public String treeTitle;
28 public ArchaeopteryxTreeConverter(final TreeBuilder calculatedTree)
30 jalviewTree = calculatedTree;
31 sequences = jalviewTree.getSequences();
32 distances = ForesterMatrix.convertJalviewToForester(
33 jalviewTree.getDistances(), sequences);
34 aptxTree = new Phylogeny();
35 rootNode = new PhylogenyNode();
39 public Phylogeny buildAptxTree(final PhylogenyNode treeRoot)
50 public Phylogeny buildAptxTree()
52 // NeighborJoiningF foresterClustering = NeighborJoiningF
54 // aptxTree = foresterClustering.execute(distances);
57 treeTitle = generateTreeName();
58 aptxTree.setName(treeTitle);
64 private Phylogeny clusterNodes()
72 * Formats a localised title for the tree panel, like
74 * Neighbour Joining Using BLOSUM62
76 * For a tree loaded from file, just uses the file name
80 public String generateTreeName()
82 if (treeTitle != null) // will currently never happen, loaded tree file will
83 // take a different path
90 * i18n description of Neighbour Joining or Average Distance method
92 String treecalcnm = MessageManager
93 .getString("label.tree_calc_" + jalviewTree.getClass()
94 .getSimpleName().substring(0, 2).toLowerCase());
96 * short score model name (long description can be too long)
98 String smn = jalviewTree.getScoreModel().getName();
101 * put them together as <method> Using <model>
103 final String ttl = MessageManager
104 .formatMessage("label.treecalc_title", treecalcnm, smn);