49c66bf14d70867ba5dc9e22fba3841d2062cc81
[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    * @param treeAlgo
42    * @param substitutionMatrix
43    * @param params
44    */
45   public TreeCalculator(String treeAlgo, String substitutionMatrix,
46           SimilarityParamsI calculateParams)
47   {
48     this.treeType = treeAlgo;
49     this.scoreModelName = substitutionMatrix;
50     this.similarityParams = calculateParams;
51   }
52
53   public TreeBuilder makeTree(AlignViewport alignViewport)
54   {
55     ScoreModelI sm = ScoreModels.getInstance().getScoreModel(scoreModelName,
56             alignViewport.getAlignPanel());
57
58     TreeBuilder builtTree = treeType.equals(TreeBuilder.NEIGHBOUR_JOINING)
59             ? new NJTree(alignViewport, sm, similarityParams)
60             : new AverageDistanceTree(alignViewport, sm, similarityParams);
61
62     return builtTree;
63
64   }
65
66   public SimilarityParamsI getSimilarityParams()
67   {
68     return similarityParams;
69   }
70
71   public void setSimilarityParams(SimilarityParamsI similarityParams)
72   {
73     this.similarityParams = similarityParams;
74   }
75
76   public String getTreeType()
77   {
78     return treeType;
79   }
80
81   public void setTreeType(String treeType)
82   {
83     this.treeType = treeType;
84   }
85
86   public String getScoreModelName()
87   {
88     return scoreModelName;
89   }
90
91   public void setScoreModelName(String scoreModelName)
92   {
93     this.scoreModelName = scoreModelName;
94   }
95
96
97
98
99 }