84deba281bb7a0b4bf70ef03dec4800a1d4dd505
[jalview.git] / src / jalview / analysis / TreeCalculator.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer ($Version-Rel$)
3  * Copyright (C) $Year-Rel$ The Jalview Authors
4  * 
5  * This file is part of Jalview.
6  * 
7  * Jalview is free software: you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License 
9  * as published by the Free Software Foundation, either version 3
10  * of the License, or (at your option) any later version.
11  *  
12  * Jalview is distributed in the hope that it will be useful, but 
13  * WITHOUT ANY WARRANTY; without even the implied warranty 
14  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
15  * PURPOSE.  See the GNU General Public License for more details.
16  * 
17  * You should have received a copy of the GNU General Public License
18  * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
19  * The Jalview Authors are detailed in the 'AUTHORS' file.
20  */
21 package jalview.analysis;
22
23 import jalview.analysis.scoremodels.ScoreModels;
24 import jalview.api.analysis.ScoreModelI;
25 import jalview.api.analysis.SimilarityParamsI;
26 import jalview.gui.AlignViewport;
27
28 /**
29  * @author kjvanderheide
30  *
31  */
32 public class TreeCalculator extends Thread// add threading
33 {
34   SimilarityParamsI similarityParams;
35
36   String treeType;
37
38   String scoreModelName; // if tree computed
39
40   /**
41    * 
42    * @param treeAlgo
43    * @param substitutionMatrix
44    * @param calculateParams
45    */
46   public TreeCalculator(String treeAlgo, String substitutionMatrix,
47           SimilarityParamsI calculateParams)
48   {
49     this.treeType = treeAlgo;
50     this.scoreModelName = substitutionMatrix;
51     this.similarityParams = calculateParams;
52   }
53
54   /**
55    * 
56    * @param alignViewport
57    * @return
58    */
59   public TreeBuilder makeTree(AlignViewport alignViewport)
60   {
61     ScoreModelI sm = ScoreModels.getInstance().getScoreModel(scoreModelName,
62             alignViewport.getAlignPanel());
63
64     TreeBuilder builtTree = treeType.equals(TreeBuilder.NEIGHBOUR_JOINING)
65             ? new NJTree(alignViewport, sm, similarityParams)
66             : new AverageDistanceTree(alignViewport, sm, similarityParams);
67
68     return builtTree;
69
70   }
71
72   public SimilarityParamsI getSimilarityParams()
73   {
74     return similarityParams;
75   }
76
77   public void setSimilarityParams(SimilarityParamsI similarityParams)
78   {
79     this.similarityParams = similarityParams;
80   }
81
82   public String getTreeType()
83   {
84     return treeType;
85   }
86
87   public void setTreeType(String treeType)
88   {
89     this.treeType = treeType;
90   }
91
92   public String getScoreModelName()
93   {
94     return scoreModelName;
95   }
96
97   public void setScoreModelName(String scoreModelName)
98   {
99     this.scoreModelName = scoreModelName;
100   }
101
102
103
104
105 }