X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FPCAPanel.java;h=1abeb4f16a46d4ce4c45e5a46795e6615d7adf8b;hb=7cf75b5b379dd71b3480726419c7dc55d8e01f0e;hp=8c2ecc9f851bbbfde7462e87e131893b067ea6c6;hpb=7c05496d1da22f21ce5ae1a199afb9b16c8777ea;p=jalview.git diff --git a/src/jalview/gui/PCAPanel.java b/src/jalview/gui/PCAPanel.java index 8c2ecc9..1abeb4f 100755 --- a/src/jalview/gui/PCAPanel.java +++ b/src/jalview/gui/PCAPanel.java @@ -1,6 +1,6 @@ /* * Jalview - A Sequence Alignment Editor and Viewer - * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -44,7 +44,7 @@ public class PCAPanel extends GPCAPanel implements Runnable int top; RotatableCanvas rc; AlignViewport av; - String [] seqstrings; + AlignmentView seqstrings; SequenceI [] seqs; /** @@ -59,9 +59,8 @@ public class PCAPanel extends GPCAPanel implements Runnable boolean sameLength = true; - seqstrings = av.getSelectionAsString(); - - if (av.getSelectionGroup() == null) + seqstrings = av.getAlignmentView(av.getSelectionGroup()!=null); + if(av.getSelectionGroup()==null) { seqs = av.alignment.getSequencesArray(); } @@ -69,12 +68,12 @@ public class PCAPanel extends GPCAPanel implements Runnable { seqs = av.getSelectionGroup().getSequencesInOrder(av.alignment); } - - int length = seqs[0].getLength(); + SeqCigar sq[]=seqstrings.getSequences(); + int length = sq[0].getWidth(); for (int i = 0; i < seqs.length; i++) { - if (seqs[i].getLength() != length) + if (sq[i].getWidth() != length) { sameLength = false; break; @@ -123,7 +122,7 @@ public class PCAPanel extends GPCAPanel implements Runnable public void run() { try{ - pca = new PCA(seqstrings); + pca = new PCA(seqstrings.getSequenceStrings(' ')); pca.run(); // Now find the component coordinates @@ -162,6 +161,9 @@ public class PCAPanel extends GPCAPanel implements Runnable rc.setPoints(points, pca.getM().rows); rc.repaint(); + + addKeyListener(rc); + } catch(OutOfMemoryError er) { JOptionPane.showInternalMessageDialog(Desktop.desktop, @@ -257,14 +259,62 @@ public class PCAPanel extends GPCAPanel implements Runnable public void originalSeqData_actionPerformed(ActionEvent e) { - CutAndPasteTransfer cap = new CutAndPasteTransfer(); - for(int i=0; i