X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fappletgui%2FRedundancyPanel.java;h=7608cb9bbdeac91a8c7c6f6027d1b0b6196aadad;hb=7bc213bae5828287329a3490faba291706599b03;hp=273261243a5caf061ee9bf527e6fb64859b1945c;hpb=7928c1a7fab123e9e8baa935f37ab08a965341e7;p=jalview.git diff --git a/src/jalview/appletgui/RedundancyPanel.java b/src/jalview/appletgui/RedundancyPanel.java index 2732612..7608cb9 100755 --- a/src/jalview/appletgui/RedundancyPanel.java +++ b/src/jalview/appletgui/RedundancyPanel.java @@ -33,10 +33,9 @@ public class RedundancyPanel extends SliderPanel implements Runnable, WindowList AlignmentPanel ap; Stack historyList = new Stack(); // simpler than synching with alignFrame. - Vector originalSequences; - Hashtable originalColours; - SequenceI[] oldAlignment; float [] redundancy; + SequenceI [] originalSequences; + Hashtable originalColours; Frame frame; public RedundancyPanel(AlignmentPanel ap) @@ -95,65 +94,69 @@ public class RedundancyPanel extends SliderPanel implements Runnable, WindowList validate(); - Vector sel = new Vector(); + String[] omitHidden = null; + SequenceGroup sg = ap.av.getSelectionGroup(); int height; - originalSequences = new Vector(); + originalColours = new Hashtable(); + int start, end; - if ( (sg != null) && (sg.getSize() >= 1)) + if ( (sg != null) && (sg.getSize(false) >= 1)) { - height = sg.getSize(); - for (int i = 0; i < sg.getSize(); i++) - { - sel.addElement(sg.getSequenceAt(i)); - } + originalSequences = sg.getSequencesInOrder(ap.av.alignment); + start = sg.getStartRes(); + end = sg.getEndRes(); } else { - height = ap.av.alignment.getHeight(); - for (int i = 0; i < ap.av.alignment.getHeight(); i++) - { - sel.addElement(ap.av.alignment.getSequenceAt(i)); - } + originalSequences = ap.av.alignment.getSequencesArray(); + start = 0; + end = ap.av.alignment.getWidth(); } + height = originalSequences.length; + redundancy = new float[height]; for (int i = 0; i < height; i++) { redundancy[i] = 0f; } + // if (ap.av.hasHiddenColumns) + { + // omitHidden = ap.av.getSelectionAsString(); + } + // long start = System.currentTimeMillis(); float pid; - SequenceI seqi, seqj; - for (int i = 0; i < sel.size(); i++) + String seqi, seqj; + for (int i = 0; i < height; i++) { - originalSequences.addElement(sel.elementAt(i)); - originalColours.put(sel.elementAt(i), - ((SequenceI) sel.elementAt(i)).getColor()); + originalColours.put(originalSequences[i], + originalSequences[i].getColor()); for (int j = 0; j < i; j++) { if(i==j) continue; - seqi = (SequenceI) sel.elementAt(i); - seqj = (SequenceI) sel.elementAt(j); - - if (sg != null) + if(omitHidden==null) { - pid = jalview.util.Comparison.PID(seqi, - seqj, - sg.getStartRes(), sg.getEndRes()); + seqi = originalSequences[i].getSequence(start, end); + seqj = originalSequences[j].getSequence(start, end); } else - pid = jalview.util.Comparison.PID( seqi, seqj ); + { + seqi = omitHidden[i]; + seqj = omitHidden[j]; + } + pid = jalview.util.Comparison.PID( seqi, seqj ); - if(seqj.getLength() < seqi.getLength()) + if(seqj.length() < seqi.length()) redundancy[j] = Math.max(pid, redundancy[j]); else redundancy[i] = Math.max(pid, redundancy[i]); @@ -181,9 +184,9 @@ public class RedundancyPanel extends SliderPanel implements Runnable, WindowList for(int i=0; i redundancy[i]) - ((SequenceI)originalSequences.elementAt(i)).setColor(java.awt.Color.white); + originalSequences[i].setColor(java.awt.Color.white); else - ((SequenceI)originalSequences.elementAt(i)).setColor(java.awt.Color.red); + originalSequences[i].setColor(java.awt.Color.red); } PaintRefresher.Refresh(null,ap.av.alignment); @@ -212,7 +215,7 @@ public class RedundancyPanel extends SliderPanel implements Runnable, WindowList { if (value <= redundancy[i]) { - SequenceI seq = (SequenceI) originalSequences.elementAt(i); + SequenceI seq = originalSequences[i]; ap.av.alignment.deleteSequence(seq); del.addElement(seq); if (sg != null) @@ -270,9 +273,9 @@ public class RedundancyPanel extends SliderPanel implements Runnable, WindowList public void windowClosing(WindowEvent evt) { - for(int i=0; i