X-Git-Url: http://source.jalview.org/gitweb/?p=jalview.git;a=blobdiff_plain;f=src%2Fjalview%2Fext%2Farchaeopteryx%2FAptxTreeBuilder.java;fp=src%2Fjalview%2Fext%2Farchaeopteryx%2FAptxTreeBuilder.java;h=1be7da33842b7aad4feda67b55450004ff366a03;hp=74d89d200f6f5ff9e094df7901e7f9fe0c41e397;hb=4a3def9f59cefe629c9a33d87483283aee085928;hpb=eca4795050a0f7eca3d5dece68eaa54987cebd15 diff --git a/src/jalview/ext/archaeopteryx/AptxTreeBuilder.java b/src/jalview/ext/archaeopteryx/AptxTreeBuilder.java index 74d89d2..1be7da3 100644 --- a/src/jalview/ext/archaeopteryx/AptxTreeBuilder.java +++ b/src/jalview/ext/archaeopteryx/AptxTreeBuilder.java @@ -1,170 +1,167 @@ -package jalview.ext.archaeopteryx; - -import jalview.analysis.TreeBuilder; -import jalview.datamodel.SequenceI; -import jalview.ext.forester.DataConversions; -import jalview.ext.forester.ForesterMatrix; -import jalview.ext.treeviewer.ExternalTreeBuilderI; -import jalview.util.MappingUtils; -import jalview.util.MessageManager; - -import java.util.HashMap; -import java.util.Map; - -import org.forester.evoinference.matrix.distance.DistanceMatrix; -import org.forester.phylogeny.Phylogeny; -import org.forester.phylogeny.PhylogenyNode; -import org.forester.phylogeny.data.NodeData; -import org.forester.phylogeny.data.Sequence; - -/** - * Class for converting trees made in Jalview (through TreeBuilder) to trees - * compatible with Forester (Phylogeny objects). - * - * Note that this currently demands a 1:1 relationship between tree nodes and - * the sequences used for generating them. - * - * @author kjvanderheide - * - */ -public class AptxTreeBuilder - implements ExternalTreeBuilderI -{ - protected final SequenceI[] sequences; - - protected final DistanceMatrix distances; - - protected final TreeBuilder jalviewTree; - - public String treeTitle; - - private final Phylogeny aptxTree; - - private PhylogenyNode rootNode; - - private final Map alignmentWithNodes; - - private final Map nodesWithAlignment; - - public AptxTreeBuilder(final TreeBuilder calculatedTree) - { - jalviewTree = calculatedTree; - sequences = jalviewTree.getSequences(); - distances = ForesterMatrix.convertJalviewToForester( - jalviewTree.getDistances(), sequences); - - aptxTree = new Phylogeny(); - rootNode = new PhylogenyNode(); - - int amountOfSequences = distances.getSize(); - alignmentWithNodes = new HashMap<>(amountOfSequences); - nodesWithAlignment = new HashMap<>(amountOfSequences); - - - } - - @Override - public Phylogeny buildTree(final PhylogenyNode treeRoot) - { - - if (treeRoot != null) - { - rootNode = treeRoot; - } - - buildTree(); - - return aptxTree; - - } - - - @Override - public Phylogeny buildTree() - { - - for (SequenceI sequence : sequences) - { - Sequence seq = DataConversions - .createForesterSequence(sequence, true); - PhylogenyNode sequenceNode = new PhylogenyNode(sequence.getName()); - - NodeData nodeData = sequenceNode.getNodeData(); - nodeData.setSequence(seq); - - MappingUtils.putWithDuplicationCheck(nodesWithAlignment, - sequenceNode, sequence); - MappingUtils.putWithDuplicationCheck(alignmentWithNodes, - sequence, sequenceNode); - rootNode.addAsChild(sequenceNode); - } - - - aptxTree.setRoot(rootNode); - - treeTitle = generateTreeName(); - aptxTree.setName(treeTitle); - - return aptxTree; - - } - - @Override - public Map getAlignmentBoundNodes() - { - return alignmentWithNodes; - } - - @Override - public Map getNodesBoundAlignment() - { - return nodesWithAlignment; - } - - private Phylogeny clusterNodes() - { - 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 - */ - @Override - public String generateTreeName() // Move this and add selection region to the - // title when applicable - { - if (treeTitle != null) // will currently never happen, loaded tree file will - // take a different path - { - return treeTitle; - } - else - { - /* - * i18n description of Neighbour Joining or Average Distance method - */ - String treecalcnm = MessageManager - .getString("label.tree_calc_" + jalviewTree.getClass() - .getSimpleName().substring(0, 2).toLowerCase()); - /* - * short score model name (long description can be too long) - */ - String smn = jalviewTree.getScoreModel().getName(); - - /* - * put them together as Using - */ - final String ttl = MessageManager - .formatMessage("label.treecalc_title", treecalcnm, smn); - return ttl; - } - } - - -} +// package jalview.ext.archaeopteryx; +// +// import jalview.analysis.TreeBuilder; +// import jalview.datamodel.SequenceI; +// import jalview.ext.forester.ForesterMatrix; +// import jalview.ext.treeviewer.TreeBuilderI; +// import jalview.ext.treeviewer.TreeI; +// import jalview.ext.treeviewer.TreeNodeI; +// import jalview.util.MappingUtils; +// import jalview.util.MessageManager; +// +// import java.util.HashMap; +// import java.util.Map; +// +// import org.forester.evoinference.matrix.distance.DistanceMatrix; +// import org.forester.phylogeny.Phylogeny; +// import org.forester.phylogeny.PhylogenyNode; +// +/// ** +// * Class for converting trees made in Jalview (through TreeBuilder) to trees +// * compatible with Forester (Phylogeny objects). +// * +// * Note that this currently demands a 1:1 relationship between tree nodes and +// * the sequences used for generating them. +// * +// * @author kjvanderheide +// * +// */ +// public class AptxTreeBuilder +// implements TreeBuilderI +// { +// protected final SequenceI[] sequences; +// +// protected final DistanceMatrix distances; +// +// protected final TreeBuilder jalviewTree; +// +// public String treeTitle; +// +// private final TreeI aptxTree; +// +// private TreeNodeI rootNode; +// +// private final Map alignmentWithNodes; +// +// private final Map nodesWithAlignment; +// +// public AptxTreeBuilder(final TreeBuilder calculatedTree) +// { +// jalviewTree = calculatedTree; +// sequences = jalviewTree.getSequences(); +// distances = ForesterMatrix.convertJalviewToForester( +// jalviewTree.getDistances(), sequences); +// +// aptxTree = new Tree(new Phylogeny()); +// rootNode = TreeNode.getUniqueWrapper(new PhylogenyNode()); +// +// int amountOfSequences = distances.getSize(); +// alignmentWithNodes = new HashMap<>(amountOfSequences); +// nodesWithAlignment = new HashMap<>(amountOfSequences); +// +// +// } +// +// @Override +// public TreeI buildTree(final TreeNodeI treeRoot) +// { +// +// if (treeRoot != null) +// { +// rootNode = treeRoot; +// } +// +// buildTree(); +// +// return aptxTree; +// +// } +// +// +// @Override +// public TreeI buildTree() +// { +// +// for (SequenceI sequence : sequences) +// { +// +// TreeNodeI sequenceNode = TreeNode +// .getUniqueWrapper( +// new PhylogenyNode(sequence.getName())); +// +// sequenceNode.setSequence(sequence); +// +// MappingUtils.putWithDuplicationCheck(nodesWithAlignment, +// sequenceNode, sequence); +// MappingUtils.putWithDuplicationCheck(alignmentWithNodes, +// sequence, sequenceNode); +// rootNode.addAsChild(sequenceNode); +// } +// +// +// aptxTree.setRoot(rootNode); +// +// treeTitle = generateTreeName(); +// aptxTree.setTreeName(treeTitle); +// +// return aptxTree; +// +// } +// +// @Override +// public Map getAlignmentBoundNodes() +// { +// return alignmentWithNodes; +// } +// +// @Override +// public Map getNodesBoundAlignment() +// { +// return nodesWithAlignment; +// } +// +// +// /** +// * 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 +// */ +// @Override +// public String generateTreeName() // Move this and add selection region to the +// // title when applicable +// { +// if (treeTitle != null) // will currently never happen, loaded tree file will +// // take a different path +// { +// return treeTitle; +// } +// else +// { +// /* +// * i18n description of Neighbour Joining or Average Distance method +// */ +// String treecalcnm = MessageManager +// .getString("label.tree_calc_" + jalviewTree.getClass() +// .getSimpleName().substring(0, 2).toLowerCase()); +// /* +// * short score model name (long description can be too long) +// */ +// String smn = jalviewTree.getScoreModel().getName(); +// +// /* +// * put them together as Using +// */ +// final String ttl = MessageManager +// .formatMessage("label.treecalc_title", treecalcnm, smn); +// return ttl; +// } +// } +// +// +// +// +// }