X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fanalysis%2FNJTree.java;h=98916e36a36b1c6996aadcdfc96b89c47e625415;hb=e33cdacd2ac2836504375c538574a0f1cafec7e3;hp=20d28f7e2fcbe49dd0deb690b65dc9d3de28260e;hpb=ddf4180014d2316824c4ecd4bcbbe20be4033d43;p=jalview.git diff --git a/src/jalview/analysis/NJTree.java b/src/jalview/analysis/NJTree.java index 20d28f7..98916e3 100755 --- a/src/jalview/analysis/NJTree.java +++ b/src/jalview/analysis/NJTree.java @@ -42,7 +42,7 @@ public class NJTree //SequenceData is a string representation of what the user //sees. The display may contain hidden columns. - String [] sequenceString; + CigarArray seqData=null; int[] done; int noseqs; @@ -69,26 +69,51 @@ public class NJTree private boolean hasRootDistance = true; + /** + * Create a new NJTree object with leaves associated with sequences in seqs, + * and original alignment data represented by Cigar strings. + * @param seqs SequenceI[] + * @param odata Cigar[] + * @param treefile NewickFile + */ + public NJTree(SequenceI[] seqs, CigarArray odata, NewickFile treefile) { + this(seqs, treefile); + if (odata!=null) + seqData = odata; + /* + sequenceString = new String[odata.length]; + char gapChar = jalview.util.Comparison.GapChars.charAt(0); + for (int i = 0; i < odata.length; i++) + { + SequenceI oseq_aligned = odata[i].getSeq(gapChar); + sequenceString[i] = oseq_aligned.getSequence(); + } */ + } /** - * Creates a new NJTree object. + * Creates a new NJTree object from a tree from an external source * - * @param seqs DOCUMENT ME! - * @param treefile DOCUMENT ME! + * @param seqs SequenceI which should be associated with leafs of treefile + * @param treefile A parsed tree */ public NJTree(SequenceI[] seqs, NewickFile treefile) { + this.sequence = seqs; top = treefile.getTree(); + /** + * There is no dependent alignment to be recovered from an + * imported tree. + * if (sequenceString == null) { - sequenceString = new String[sequence.length]; - for (int i = 0; i < sequence.length; i++) + sequenceString = new String[seqs.length]; + for (int i = 0; i < seqs.length; i++) { - sequenceString[i] = sequence[i].getSequence(); + sequenceString[i] = seqs[i].getSequence(); } } - + */ hasDistances = treefile.HasDistances(); hasBootstrap = treefile.HasBootstrap(); @@ -142,7 +167,7 @@ public class NJTree * @param end DOCUMENT ME! */ public NJTree(SequenceI[] sequence, - String [] sequenceString, + CigarArray seqData, String type, String pwtype, int start, int end) @@ -151,18 +176,17 @@ public class NJTree this.node = new Vector(); this.type = type; this.pwtype = pwtype; - - if (sequenceString == null) - { - this.sequenceString = new String[sequence.length]; + if (seqData!=null) { + this.seqData = seqData; + } else { + SeqCigar[] seqs = new SeqCigar[sequence.length]; for(int i=0; i