protected void init(AlignmentView seqView, int start, int end)
{
- this.node = new Vector<SequenceNode>();
+ this.node = new Vector<>();
if (seqView != null)
{
this.seqData = seqView;
*/
void makeLeaves()
{
- clusters = new Vector<BitSet>();
+ clusters = new Vector<>();
for (int i = 0; i < noseqs; i++)
{
*/
package jalview.analysis;
+import jalview.analysis.scoremodels.ScoreModels;
+import jalview.api.analysis.ScoreModelI;
import jalview.api.analysis.SimilarityParamsI;
+import jalview.gui.AlignViewport;
/**
* @author kjvanderheide
*
*/
-public class TreeCalculator
+public class TreeCalculator extends Thread// add threading
{
+ SimilarityParamsI similarityParams;
+ String treeType;
+
+ String scoreModelName; // if tree computed
/**
*
* @param treeAlgo
public TreeCalculator(String treeAlgo, String substitutionMatrix,
SimilarityParamsI calculateParams)
{
- // TODO Auto-generated constructor stub
+ this.treeType = treeAlgo;
+ this.scoreModelName = substitutionMatrix;
+ this.similarityParams = calculateParams;
+ }
+
+ public TreeBuilder makeTree(AlignViewport alignViewport)
+ {
+ ScoreModelI sm = ScoreModels.getInstance().getScoreModel(scoreModelName,
+ alignViewport.getAlignPanel());
+
+ TreeBuilder builtTree = treeType.equals(TreeBuilder.NEIGHBOUR_JOINING)
+ ? new NJTree(alignViewport, sm, similarityParams)
+ : new AverageDistanceTree(alignViewport, sm, similarityParams);
+
+ return builtTree;
+
+ }
+
+ public SimilarityParamsI getSimilarityParams()
+ {
+ return similarityParams;
+ }
+
+ public void setSimilarityParams(SimilarityParamsI similarityParams)
+ {
+ this.similarityParams = similarityParams;
}
+ public String getTreeType()
+ {
+ return treeType;
+ }
+
+ public void setTreeType(String treeType)
+ {
+ this.treeType = treeType;
+ }
+
+ public String getScoreModelName()
+ {
+ return scoreModelName;
+ }
+
+ public void setScoreModelName(String scoreModelName)
+ {
+ this.scoreModelName = scoreModelName;
+ }
+
+
}
this(tree.getSequences(), tree.getTopNode(), tree.hasDistances(),
tree.hasBootstrap(), tree.hasRootDistance());
seqData = tree.getOriginalData();
+
}
/**
SequenceNode j;
SequenceI nam;
String realnam;
- Vector<SequenceI> one2many = new Vector<SequenceI>();
+ Vector<SequenceI> one2many = new Vector<>();
// int countOne2Many = 0;
while (i < leaves.size())
{
*/
public Vector<SequenceNode> findLeaves(SequenceNode nd)
{
- Vector<SequenceNode> leaves = new Vector<SequenceNode>();
+ Vector<SequenceNode> leaves = new Vector<>();
findLeaves(nd, leaves);
return leaves;
}
*/
public List<SequenceNode> groupNodes(float threshold)
{
- List<SequenceNode> groups = new ArrayList<SequenceNode>();
+ List<SequenceNode> groups = new ArrayList<>();
_groupNodes(groups, getTopNode(), threshold);
return groups;
}
+++ /dev/null
-package jalview.ext.archaeopteryx;
-
-public class AlignConvertForArchaeopteryx
-{
-
-}
--- /dev/null
+package jalview.ext.archaeopteryx;
+
+public class AlignToArchaeopteryxConverter
+{
+
+}
import java.util.Collection;
-interface AlignmentToTreeViewerI
+interface AlignToTreeViewerConverterI
{
public void rootNode(Object node);
package jalview.ext.archaeopteryx;
-public class ArchaeopteryxTreeBuilder
+import org.forester.phylogeny.Phylogeny;
+
+public class ArchaeopteryxTreeBuilder extends Phylogeny
{
}
import jalview.analysis.Dna;
import jalview.analysis.ParseProperties;
import jalview.analysis.SequenceIdMatcher;
+import jalview.analysis.TreeModel;
import jalview.api.AlignExportSettingI;
import jalview.api.AlignViewControllerGuiI;
import jalview.api.AlignViewControllerI;
/**
* Constructs a tree panel and adds it to the desktop
*
- * @param type
- * tree type (NJ or AV)
- * @param modelName
- * name of score model used to compute the tree
- * @param options
- * parameters for the distance or similarity calculation
+ * @param params
+ * @param treeAlgo
+ *
+ * @param tree
+ *
+ *
*/
- void newTreePanel(String type, String modelName,
- SimilarityParamsI options)
+ void newTreePanel(TreeModel tree, String treeAlgo,
+ SimilarityParamsI params)
{
String frameTitle = "";
TreePanel tp;
}
}
- tp = new TreePanel(alignPanel, type, modelName, options);
+ tp = new TreePanel(alignPanel, tree, treeAlgo, params);
frameTitle = tp.getPanelTitle() + (onSelection ? " on region" : "");
frameTitle += " from ";
final JMenu seqsrchmenu = new JMenu("Sequence Database Search");
final JMenu analymenu = new JMenu("Analysis");
final JMenu dismenu = new JMenu("Protein Disorder");
+ final JMenu phylogenmenu = new JMenu("Phylogenetic inference");
+
// JAL-940 - only show secondary structure prediction services from
// the legacy server
if (// Cache.getDefault("SHOW_JWS1_SERVICES", true)
wsmenu.add(secstrmenu);
wsmenu.add(dismenu);
wsmenu.add(analymenu);
+ wsmenu.add(phylogenmenu);
// No search services yet
// wsmenu.add(seqsrchmenu);
package jalview.gui;
import jalview.analysis.TreeBuilder;
+import jalview.analysis.TreeCalculator;
+import jalview.analysis.TreeModel;
import jalview.analysis.scoremodels.ScoreModels;
import jalview.analysis.scoremodels.SimilarityParams;
import jalview.api.analysis.ScoreModelI;
{
String treeAlgo = determineTreeAlgo();
- // TreeCalculator calculateTree = new TreeCalculator(treeAlgo,
- // substitutionMatrix, params);
+ TreeCalculator treeCalculator = new TreeCalculator(treeAlgo,
+ substitutionMatrix, params);
+ TreeBuilder calculatedTree = treeCalculator
+ .makeTree(af.getViewport());
+ TreeModel tree = new TreeModel(calculatedTree);
+ openTreePanel(tree, treeAlgo, params);
+
- openTreePanel(treeAlgo, substitutionMatrix, params);
}
// closeFrame();
/**
* Open a new Tree panel on the desktop
*
+ * @param tree
+ * @param params
+ * @param treeAlgo
*/
- protected void openTreePanel(String treeType, String substitutionMatrix,
+ protected void openTreePanel(TreeModel tree, String treeAlgo,
SimilarityParamsI params)
{
/*
*/
checkEnoughSequences(af.getViewport());
-
-
- af.newTreePanel(treeType, substitutionMatrix, params);
+ af.newTreePanel(tree, treeAlgo, params);
}
/**
package jalview.gui;
import jalview.analysis.AlignmentSorter;
-import jalview.analysis.AverageDistanceTree;
-import jalview.analysis.NJTree;
-import jalview.analysis.TreeBuilder;
import jalview.analysis.TreeModel;
-import jalview.analysis.scoremodels.ScoreModels;
-import jalview.api.analysis.ScoreModelI;
import jalview.api.analysis.SimilarityParamsI;
import jalview.bin.Cache;
import jalview.commands.CommandI;
*/
public class TreePanel extends GTreePanel
{
+
+ SimilarityParamsI similarityParams;
+
String treeType;
String scoreModelName; // if tree computed
String treeTitle; // if tree loaded
- SimilarityParamsI similarityParams;
-
TreeCanvas treeCanvas;
TreeModel tree;
* Creates a new TreePanel object.
*
* @param ap
- * @param type
- * @param modelName
- * @param options
+ * @param tree
*/
- public TreePanel(AlignmentPanel ap, String type, String modelName,
- SimilarityParamsI options)
+ public TreePanel(AlignmentPanel ap, TreeModel tree, String treeType,
+ SimilarityParamsI params)
{
super();
- this.similarityParams = options;
- initTreePanel(ap, type, modelName, null, null);
+ this.treeType = treeType;
+ this.similarityParams = params;
+ this.tree = tree;
+ initNewTreePanel(ap, tree);
// We know this tree has distances. JBPNote TODO: prolly should add this as
// a userdefined default
// showDistances(true);
}
+ /**
+ * Creates a new TreePanel object.
+ *
+ * @param alignPanel
+ * @param newtree
+ * @param theTitle
+ * @param inputData
+ * @param viewport
+ */
public TreePanel(AlignmentPanel alignPanel, NewickFile newtree,
String theTitle, AlignmentView inputData)
{
super();
this.treeTitle = theTitle;
- initTreePanel(alignPanel, null, null, newtree, inputData);
+ initLoadedTreePanel(alignPanel, newtree, inputData);
}
public AlignmentI getAlignment()
return treeCanvas.av;
}
- void initTreePanel(AlignmentPanel ap, String type, String modelName,
+ void initNewTreePanel(AlignmentPanel ap, TreeModel tree)
+ {
+ buildTreeCanvas(ap);
+
+ TreeLoader tl = new TreeLoader(null, null);
+ tl.start();
+
+ }
+ void initLoadedTreePanel(AlignmentPanel ap,
NewickFile newTree, AlignmentView inputData)
{
+ buildTreeCanvas(ap);
- av = ap.av;
- this.treeType = type;
- this.scoreModelName = modelName;
+ TreeLoader tl = new TreeLoader(newTree, inputData);
+ tl.start();
+ }
+
+public void buildTreeCanvas(AlignmentPanel ap) {
+ av = ap.av;
treeCanvas = new TreeCanvas(this, ap, scrollPane);
scrollPane.setViewportView(treeCanvas);
+
PaintRefresher.Register(this, ap.av.getSequenceSetId());
buildAssociatedViewMenu();
});
- TreeLoader tl = new TreeLoader(newTree, inputData);
- tl.start();
+
}
}
- else
- {
- ScoreModelI sm = ScoreModels.getInstance()
- .getScoreModel(scoreModelName, treeCanvas.ap);
- TreeBuilder njtree = treeType.equals(TreeBuilder.NEIGHBOUR_JOINING)
- ? new NJTree(av, sm, similarityParams)
- : new AverageDistanceTree(av, sm, similarityParams);
- tree = new TreeModel(njtree);
- showDistances(true);
-
-
-
- }
- ArchaeopteryxNewickInit archae = new ArchaeopteryxNewickInit(tree);
- archae.startArchaeopteryx();
+ showTree(tree);
+ }
+
+ public void showTree(TreeModel tree)
+ {
tree.reCount(tree.getTopNode());
tree.findHeight(tree.getTopNode());
treeCanvas.setTree(tree);
{
sortByTree_actionPerformed();
}
+
+ ArchaeopteryxNewickInit archae = new ArchaeopteryxNewickInit(tree);
+ archae.startArchaeopteryx();
}
}
*
* @return
*/
- public String getPanelTitle()
+ public String getPanelTitle() // to be moved/fixed
{
if (treeTitle != null)
{
return treeTitle;
}
-
- /*
- * i18n description of Neighbour Joining or Average Distance method
- */
- String treecalcnm = MessageManager
- .getString("label.tree_calc_" + treeType.toLowerCase());
-
- /*
- * short score model name (long description can be too long)
- */
- String smn = scoreModelName;
-
- /*
- * put them together as <method> Using <model>
- */
- final String ttl = MessageManager.formatMessage("label.treecalc_title",
- treecalcnm, smn);
- return ttl;
+ else
+ {
+ /*
+ * i18n description of Neighbour Joining or Average Distance method
+ */
+ String treecalcnm = MessageManager
+ .getString("label.tree_calc_" + treeType.toLowerCase());
+
+ /*
+ * short score model name (long description can be too long)
+ */
+ String smn = scoreModelName;
+
+ /*
+ * put them together as <method> Using <model>
+ */
+ final String ttl = MessageManager
+ .formatMessage("label.treecalc_title", treecalcnm, smn);
+ return ttl;
+ }
}
}