X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2Fvamsas%2FTree.java;h=a3781a7d09e8b2809ed8fdf7dd81fc40044a6ed8;hb=b5f2dfda36c463b93f34db95fe5bc5ff2a1516bf;hp=5caded1ec3053b177a61b686ef4c9d7edaad3812;hpb=f52f7b378972cc884b5d3e5cc250f89667f558f7;p=jalview.git diff --git a/src/jalview/io/vamsas/Tree.java b/src/jalview/io/vamsas/Tree.java index 5caded1..a3781a7 100644 --- a/src/jalview/io/vamsas/Tree.java +++ b/src/jalview/io/vamsas/Tree.java @@ -1,28 +1,25 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7) - * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle - * + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors + * * This file is part of Jalview. - * + * * Jalview is free software: you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - * - * Jalview is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty - * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along with Jalview. If not, see . + * + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. */ package jalview.io.vamsas; -import java.io.IOException; -import java.util.Enumeration; -import java.util.Hashtable; -import java.util.List; -import java.util.Vector; - import jalview.analysis.NJTree; import jalview.bin.Cache; import jalview.datamodel.AlignmentI; @@ -32,10 +29,17 @@ import jalview.datamodel.SeqCigar; import jalview.datamodel.Sequence; import jalview.datamodel.SequenceI; import jalview.datamodel.SequenceNode; -import jalview.gui.AlignViewport; import jalview.gui.TreePanel; import jalview.io.NewickFile; import jalview.io.VamsasAppDatastore; +import jalview.viewmodel.AlignmentViewport; + +import java.io.IOException; +import java.util.Enumeration; +import java.util.Hashtable; +import java.util.List; +import java.util.Vector; + import uk.ac.vamsas.client.Vobject; import uk.ac.vamsas.objects.core.AlignmentSequence; import uk.ac.vamsas.objects.core.Entry; @@ -99,7 +103,7 @@ public class Tree extends DatastoreItem /* * (non-Javadoc) - * + * * @see jalview.io.vamsas.DatastoreItem#addFromDocument() */ @Override @@ -130,7 +134,7 @@ public class Tree extends DatastoreItem /* * (non-Javadoc) - * + * * @see jalview.io.vamsas.DatastoreItem#conflict() */ @Override @@ -142,7 +146,7 @@ public class Tree extends DatastoreItem /* * (non-Javadoc) - * + * * @see jalview.io.vamsas.DatastoreItem#update() */ @Override @@ -163,7 +167,7 @@ public class Tree extends DatastoreItem /* * (non-Javadoc) - * + * * @see jalview.io.vamsas.DatastoreItem#updateFromDoc() */ @Override @@ -174,7 +178,7 @@ public class Tree extends DatastoreItem // TODO: Tree.updateFromDoc /* * TreePanel tp = (TreePanel) jvobj; // getvObj2jv(tree); - * + * * // make a new tree Object[] idata = * recoverInputData(tree.getProvenance()); try { if (idata != null && * idata[0] != null) { inputData = (AlignmentView) idata[0]; } ntree = @@ -201,7 +205,7 @@ public class Tree extends DatastoreItem /** * correctly creates provenance for trees calculated on an alignment by * jalview. - * + * * @param jal * @param tp * @return @@ -256,7 +260,7 @@ public class Tree extends DatastoreItem /** * look up SeqCigars in an existing alignment. - * + * * @param jal * @param sequences * @return vector of alignment sequences in order of SeqCigar array (but @@ -268,47 +272,54 @@ public class Tree extends DatastoreItem System.arraycopy(sequences, 0, tseqs, 0, sequences.length); Vector alsq = new Vector(); List jalsqs; - synchronized (jalsqs=jal.getSequences()) - {for (SequenceI asq:jalsqs) + synchronized (jalsqs = jal.getSequences()) { - for (int t = 0; t < sequences.length; t++) + for (SequenceI asq : jalsqs) { - if (tseqs[t] != null - && (tseqs[t].getRefSeq() == asq || tseqs[t].getRefSeq() == asq - .getDatasetSequence())) - // && tseqs[t].getStart()>=asq.getStart() && - // tseqs[t].getEnd()<=asq.getEnd()) + for (int t = 0; t < sequences.length; t++) { - tseqs[t] = null; - alsq.add(asq); + if (tseqs[t] != null + && (tseqs[t].getRefSeq() == asq || tseqs[t].getRefSeq() == asq + .getDatasetSequence())) + // && tseqs[t].getStart()>=asq.getStart() && + // tseqs[t].getEnd()<=asq.getEnd()) + { + tseqs[t] = null; + alsq.add(asq); + } } } - }} + } if (alsq.size() < sequences.length) + { Cache.log .warn("Not recovered all alignment sequences for given set of input sequence CIGARS"); + } return alsq; } /** - * + * * Update jalview newick representation with TreeNode map - * + * * @param tp * the treepanel that this tree is bound to. */ public void UpdateSequenceTreeMap(TreePanel tp) { if (tp == null || tree == null) + { return; - Vector leaves = new Vector(); + } + if (tp.getTree() == null) { Cache.log.warn("Not updating SequenceTreeMap for " + tree.getVorbaId()); return; } - tp.getTree().findLeaves(tp.getTree().getTopNode(), leaves); + Vector leaves = tp.getTree().findLeaves( + tp.getTree().getTopNode()); Treenode[] tn = tree.getTreenode(); // todo: select nodes for this // particular tree int sz = tn.length; @@ -358,15 +369,14 @@ public class Tree extends DatastoreItem // / TODO: refactor to vamsas :start /** * construct treenode mappings for mapped sequences - * + * * @param ntree * @param newick * @return */ public Treenode[] makeTreeNodes(NJTree ntree, Newick newick) { - Vector leaves = new Vector(); - ntree.findLeaves(ntree.getTopNode(), leaves); + Vector leaves = ntree.findLeaves(ntree.getTopNode()); Vector tnv = new Vector(); Enumeration l = leaves.elements(); Hashtable nodespecs = new Hashtable(); @@ -416,8 +426,7 @@ public class Tree extends DatastoreItem tnv.copyInto(tn); return tn; } - return new Treenode[] - {}; + return new Treenode[] {}; } private String makeNodeSpec(Hashtable nodespecs, @@ -435,7 +444,7 @@ public class Tree extends DatastoreItem /** * call to match up Treenode specs to NJTree parsed from document object. - * + * * @param nodespec * @param leaves * as returned from NJTree.findLeaves( .., ..) .. @@ -468,7 +477,9 @@ public class Tree extends DatastoreItem --occurence; } else + { bn = null; + } } return bn; } @@ -476,7 +487,7 @@ public class Tree extends DatastoreItem // todo: end refactor to vamsas library /** * add jalview object to vamsas document - * + * */ @Override public void addToDocument() @@ -497,7 +508,7 @@ public class Tree extends DatastoreItem /** * note: this function assumes that all sequence and alignment objects * referenced in input data has already been associated with jalview objects. - * + * * @param tp * @param alignFrame * @return Object[] { AlignmentView, AlignmentI - reference alignment for @@ -505,7 +516,7 @@ public class Tree extends DatastoreItem */ public Object[] recoverInputData(Provenance tp) { - AlignViewport javport = null; + AlignmentViewport javport = null; jalview.datamodel.AlignmentI jal = null; jalview.datamodel.CigarArray view = null; for (int pe = 0; pe < tp.getEntryCount(); pe++) @@ -590,8 +601,7 @@ public class Tree extends DatastoreItem // off by // one for to } - return new Object[] - { new AlignmentView(view), jal }; + return new Object[] { new AlignmentView(view), jal }; } } Cache.log @@ -599,7 +609,7 @@ public class Tree extends DatastoreItem return null; } - private AlignViewport getViewport(Vobject v_parent) + private AlignmentViewport getViewport(Vobject v_parent) { if (v_parent instanceof uk.ac.vamsas.objects.core.Alignment) {