X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Farchaeopteryx%2FArchaeopteryxTreeConverter.java;h=21a4e30ba2225cdf763aea89a8a2c1f278163c45;hb=4b25259949fbc582a579aa91922cde6f838155ea;hp=58c57288cce6dac57d72c215905bd9c30b557cd0;hpb=6cf0755d3de2f853a2b697230302e3c785694ad3;p=jalview.git diff --git a/src/jalview/ext/archaeopteryx/ArchaeopteryxTreeConverter.java b/src/jalview/ext/archaeopteryx/ArchaeopteryxTreeConverter.java index 58c5728..21a4e30 100644 --- a/src/jalview/ext/archaeopteryx/ArchaeopteryxTreeConverter.java +++ b/src/jalview/ext/archaeopteryx/ArchaeopteryxTreeConverter.java @@ -15,7 +15,17 @@ import org.forester.phylogeny.PhylogenyNode; import org.forester.phylogeny.data.NodeData; import org.forester.phylogeny.data.Sequence; -public class ArchaeopteryxTreeConverter // implements PhylogenyFactory +/** + * 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 ArchaeopteryxTreeConverter { protected final SequenceI[] sequences; @@ -31,6 +41,8 @@ public class ArchaeopteryxTreeConverter // implements PhylogenyFactory private final Map alignmentBoundNodes; + private final Map nodesBoundAlignment; + public ArchaeopteryxTreeConverter(final TreeBuilder calculatedTree) { jalviewTree = calculatedTree; @@ -39,8 +51,8 @@ public class ArchaeopteryxTreeConverter // implements PhylogenyFactory jalviewTree.getDistances(), sequences); aptxTree = new Phylogeny(); rootNode = new PhylogenyNode(); - alignmentBoundNodes = new HashMap<>( - distances.getSize()); + alignmentBoundNodes = new HashMap<>(distances.getSize()); + nodesBoundAlignment = new HashMap<>(distances.getSize()); } @@ -66,11 +78,12 @@ public class ArchaeopteryxTreeConverter // implements PhylogenyFactory for (SequenceI sequence : sequences) { Sequence seq = ForesterConversions - .createForesterSequence(sequence); + .createForesterSequence(sequence, true); PhylogenyNode sequenceNode = new PhylogenyNode(sequence.getName()); NodeData nodeData = sequenceNode.getNodeData(); nodeData.setSequence(seq); + nodesBoundAlignment.put(sequenceNode, sequence); alignmentBoundNodes.put(sequence, sequenceNode); rootNode.addAsChild(sequenceNode); } @@ -90,6 +103,11 @@ public class ArchaeopteryxTreeConverter // implements PhylogenyFactory return alignmentBoundNodes; } + public Map getNodesBoundAlignment() + { + return nodesBoundAlignment; + } + private Phylogeny clusterNodes() { return aptxTree;