X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fext%2Farchaeopteryx%2FArchaeopteryxTreeBuilder.java;h=7096eff49fb97ee0e2488d33aaa873422b0952e1;hb=a94f60273c1c21fda47b1a599a17e4fc920fe4a3;hp=18ac083f7ae4ead1d36acc54049b4c64e45ed7b9;hpb=9fe1833d6a0e8275886edf3c7a43c73346dbab45;p=jalview.git diff --git a/src/jalview/ext/archaeopteryx/ArchaeopteryxTreeBuilder.java b/src/jalview/ext/archaeopteryx/ArchaeopteryxTreeBuilder.java index 18ac083..7096eff 100644 --- a/src/jalview/ext/archaeopteryx/ArchaeopteryxTreeBuilder.java +++ b/src/jalview/ext/archaeopteryx/ArchaeopteryxTreeBuilder.java @@ -1,8 +1,114 @@ package jalview.ext.archaeopteryx; +import jalview.analysis.TreeBuilder; +import jalview.datamodel.SequenceI; +import jalview.math.MatrixI; + import org.forester.phylogeny.Phylogeny; +import org.forester.phylogeny.PhylogenyNode; -public class ArchaeopteryxTreeBuilder extends Phylogeny +public class ArchaeopteryxTreeBuilder // cannot inherit + // TreeBuilder as that + // demands the use of + // SequenceNode (instead + // of PhylogenyNode) { - + protected SequenceI[] sequences; + + private Phylogeny aptxTree; + + private PhylogenyNode rootNode; + + protected MatrixI distances; + + { + this.aptxTree = new Phylogeny(); + } + + + public ArchaeopteryxTreeBuilder() + { + + this.rootNode = new PhylogenyNode(); + + } + + public ArchaeopteryxTreeBuilder(PhylogenyNode treeRoot) + { + + this.rootNode = treeRoot; + + } + + public Phylogeny buildAptxTree(TreeBuilder tree) + { + this.sequences = tree.getSequences(); + this.distances = tree.getDistances(); + + aptxTree.setName( + "PLEASE FIX ME reheaheth35yheqhb3q5hyq3bt3q5u4jwqjwuh6"); + + // final NeighborJoiningF nj = NeighborJoiningF.createInstance(false, 5); + + // + // final Phylogeny phy = nj.execute(JalviewMatrixToForesterMatrix + // .convertJalviewToForester(distances)); + + return buildAptxTree(sequences); + + } + + // testing method to be removed + public Phylogeny buildAptxTree(SequenceI[] sequences) + { + + for (SequenceI sequence : sequences) + { + PhylogenyNode treeNode = new PhylogenyNode(sequence.getName()); + rootNode.addAsChild(treeNode); + + } + + aptxTree.setRoot(rootNode); + return aptxTree; + + } + + + /** + * Formats a localised title for the tree panel, like + *

+ * Neighbour Joining Using BLOSUM62 + *

+ * For a tree loaded from file, just uses the file name + * + * @return + */ + // public String getPanelTitle() + // { + // if (treeTitle != null) + // { + // return treeTitle; + // } + // 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 = substitutionMatrix; + // + // /* + // * put them together as Using + // */ + // final String ttl = MessageManager + // .formatMessage("label.treecalc_title", treecalcnm, smn); + // return ttl; + // } + // } }