JAL-2795 Reverted code changes needed to cluster from Forester
[jalview.git] / src / jalview / ext / archaeopteryx / ArchaeopteryxTreeConverter.java
1 package jalview.ext.archaeopteryx;
2
3 import jalview.analysis.TreeBuilder;
4 import jalview.datamodel.SequenceI;
5 import jalview.ext.forester.ForesterMatrix;
6 import jalview.util.MessageManager;
7
8 import org.forester.evoinference.matrix.distance.DistanceMatrix;
9 import org.forester.phylogeny.Phylogeny;
10 import org.forester.phylogeny.PhylogenyNode;
11
12 public class ArchaeopteryxTreeConverter
13 {
14   protected final SequenceI[] sequences;
15
16   private Phylogeny aptxTree;
17
18   private PhylogenyNode rootNode;
19
20   protected final DistanceMatrix distances;
21   
22   protected final TreeBuilder jalviewTree;
23   
24   public String treeTitle;
25
26
27
28   public ArchaeopteryxTreeConverter(final TreeBuilder calculatedTree)
29   {
30     jalviewTree = calculatedTree;
31     sequences = jalviewTree.getSequences();
32     distances = ForesterMatrix.convertJalviewToForester(
33             jalviewTree.getDistances(), sequences);
34     aptxTree = new Phylogeny();
35     rootNode = new PhylogenyNode();
36
37   }
38
39   public Phylogeny buildAptxTree(final PhylogenyNode treeRoot)
40   {
41
42     rootNode = treeRoot;
43
44     buildAptxTree();
45
46     return aptxTree;
47
48   }
49
50   public Phylogeny buildAptxTree()
51   {
52     // NeighborJoiningF foresterClustering = NeighborJoiningF
53     // .createInstance();
54     // aptxTree = foresterClustering.execute(distances);
55
56
57     treeTitle = generateTreeName();
58     aptxTree.setName(treeTitle);
59
60     return aptxTree;
61
62   }
63
64   private Phylogeny clusterNodes()
65   {
66     return aptxTree;
67
68   }
69
70
71   /**
72    * Formats a localised title for the tree panel, like
73    * <p>
74    * Neighbour Joining Using BLOSUM62
75    * <p>
76    * For a tree loaded from file, just uses the file name
77    * 
78    * @return
79    */
80   public String generateTreeName()
81   {
82     if (treeTitle != null) // will currently never happen, loaded tree file will
83                            // take a different path
84     {
85       return treeTitle;
86     }
87     else
88     {
89       /*
90       * i18n description of Neighbour Joining or Average Distance method
91       */
92       String treecalcnm = MessageManager
93               .getString("label.tree_calc_" + jalviewTree.getClass()
94                       .getSimpleName().substring(0, 2).toLowerCase());
95       /*
96       * short score model name (long description can be too long)
97       */
98       String smn = jalviewTree.getScoreModel().getName();
99
100       /*
101       * put them together as <method> Using <model>
102       */
103       final String ttl = MessageManager
104               .formatMessage("label.treecalc_title", treecalcnm, smn);
105       return ttl;
106     }
107   }
108 }