import java.util.Map;
public class LoadedTreeSequenceAssociation
- implements ExternalLoadedTreeAssociationI
+ implements LoadedTreeAssociationI
{
SequenceI[] alignSequences;
- ExternalTreeI tree;
+ TreeI tree;
- Map<SequenceI, ExternalTreeNodeI> alignmentWithNodes;
+ Map<SequenceI, TreeNodeI> alignmentWithNodes;
- Map<ExternalTreeNodeI, SequenceI> nodesWithAlignment;
+ Map<TreeNodeI, SequenceI> nodesWithAlignment;
public LoadedTreeSequenceAssociation(SequenceI[] alignmentSequences,
- ExternalTreeI extTree)
+ TreeI extTree)
{
alignSequences = alignmentSequences;
tree = extTree;
if (!tree.isEmpty())
{
- for (final Iterator<ExternalTreeNodeI> iter = tree
+ for (final Iterator<TreeNodeI> iter = tree
.iterateInPreOrder(); iter
.hasNext();)
{
- ExternalTreeNodeI treeNode = iter.next();
+ TreeNodeI treeNode = iter.next();
nodeSequenceName = treeNode.getNodeName();
nodeSequence = algnIds.findIdMatch(nodeSequenceName);
if (nodeSequence != null)
{
-
+ // is there already a sequence present for the node?
+ // If so, does it actually match Jalview's sequence?
+ if (treeNode.getSequence() != null)
+ {
+ if (!(treeNode.getSequence().getSequenceAsString()
+ .equals(nodeSequence.getSequenceAsString())))
+ {
+ System.err.println(
+ "Sequence detected in tree node that does not match corresponding Jalview sequence:"
+ + nodeSequenceName);
+ // which sequence gets precedence?
+
+ }
+
+ }
+ else
+ {
treeNode.setSequence(nodeSequence);
-
+ }
MappingUtils.putWithDuplicationCheck(alignmentWithNodes,
nodeSequence, treeNode);
MappingUtils.putWithDuplicationCheck(nodesWithAlignment, treeNode,
@Override
- public Map<SequenceI, ExternalTreeNodeI> getAlignmentWithNodes()
+ public Map<SequenceI, TreeNodeI> getAlignmentWithNodes()
{
return alignmentWithNodes;
}
@Override
- public Map<ExternalTreeNodeI, SequenceI> getNodesWithAlignment()
+ public Map<TreeNodeI, SequenceI> getNodesWithAlignment()
{
return nodesWithAlignment;
}