From 7570956d4b58f313d402cdd0507737c0628f1544 Mon Sep 17 00:00:00 2001 From: jprocter Date: Fri, 4 Aug 2006 14:28:05 +0000 Subject: [PATCH] recover original data for tree and pca as alignment view. --- src/jalview/analysis/NJTree.java | 12 +- src/jalview/datamodel/Alignment.java | 8 +- src/jalview/datamodel/AlignmentView.java | 68 ++++ src/jalview/datamodel/CigarArray.java | 61 +++- src/jalview/datamodel/CigarBase.java | 207 ++++++++++- src/jalview/datamodel/ColumnSelection.java | 6 +- src/jalview/datamodel/SeqCigar.java | 531 +++++++++++++++++++++------- src/jalview/gui/AlignFrame.java | 41 ++- src/jalview/gui/AlignViewport.java | 41 ++- src/jalview/gui/PCAPanel.java | 72 +++- src/jalview/gui/TreePanel.java | 52 ++- src/jalview/util/ShiftList.java | 74 ++++ src/jalview/ws/MsaWSClient.java | 29 +- 13 files changed, 995 insertions(+), 207 deletions(-) create mode 100644 src/jalview/datamodel/AlignmentView.java create mode 100644 src/jalview/util/ShiftList.java diff --git a/src/jalview/analysis/NJTree.java b/src/jalview/analysis/NJTree.java index 974175f..674af7f 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. - CigarArray seqData=null; + public AlignmentView seqData=null; int[] done; int noseqs; @@ -76,7 +76,7 @@ public class NJTree * @param odata Cigar[] * @param treefile NewickFile */ - public NJTree(SequenceI[] seqs, CigarArray odata, NewickFile treefile) { + public NJTree(SequenceI[] seqs, AlignmentView odata, NewickFile treefile) { this(seqs, treefile); if (odata!=null) seqData = odata; @@ -167,7 +167,7 @@ public class NJTree * @param end DOCUMENT ME! */ public NJTree(SequenceI[] sequence, - CigarArray seqData, + AlignmentView seqData, String type, String pwtype, int start, int end) @@ -184,8 +184,9 @@ public class NJTree { seqs[i] = new SeqCigar(sequence[i], start, end); } - this.seqData = new CigarArray(seqs); - this.seqData.addOperation(CigarArray.M, end-start+1); + CigarArray sdata = new CigarArray(seqs); + sdata.addOperation(CigarArray.M, end-start+1); + this.seqData = new AlignmentView(sdata); } if (!(type.equals("NJ"))) @@ -1033,7 +1034,6 @@ public class NJTree } return sb.toString(); } - /** * DOCUMENT ME! * diff --git a/src/jalview/datamodel/Alignment.java b/src/jalview/datamodel/Alignment.java index 588134a..d67592a 100755 --- a/src/jalview/datamodel/Alignment.java +++ b/src/jalview/datamodel/Alignment.java @@ -70,11 +70,7 @@ public class Alignment implements AlignmentI * @param seqs SeqCigar[] */ public Alignment(SeqCigar[] alseqs) { - - SequenceI[] seqs = new SequenceI[alseqs.length]; - for (int i=0; iTitle:

+ * + *

Description:

+ * + *

Copyright: Copyright (c) 2004

+ * + *

Company: Dundee University

+ * + * @author not attributable + * @version 1.0 + */ +public class AlignmentView +{ + /** + * Transient object compactly representing a 'view' of an alignment - with discontinuities marked. + */ + private SeqCigar[] sequences = null; + private int[] contigs = null; + public AlignmentView(CigarArray seqcigararray) + { + if (!seqcigararray.isSeqCigarArray()) + throw new Error("Implementation Error - can only make an alignment view from a CigarArray of sequences."); + contigs = seqcigararray.applyDeletions(); + sequences = seqcigararray.getSeqCigarArray(); + } + + public void setSequences(SeqCigar[] sequences) + { + this.sequences = sequences; + } + + public void setContigs(int[] contigs) + { + this.contigs = contigs; + } + + public SeqCigar[] getSequences() + { + return sequences; + } + + public int[] getContigs() + { + return contigs; + } + public Object[] getAlignmentAndColumnSelection(char gapCharacter) { + ColumnSelection colsel = new ColumnSelection(); + + return new Object[] { SeqCigar.createAlignmentSequences(sequences, gapCharacter, colsel), colsel}; + } + /** + * getSequenceStrings + * + * @param c char + * @return String[] + */ + public String[] getSequenceStrings(char c) + { + String[] seqs=new String[sequences.length]; + for (int n=0; n