X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FPCAPanel.java;h=9dc73b7702b7cfac5e23a319c67c74b86504c253;hb=9793a4e49836be392513c2a51e9fc71a0b0eb417;hp=4948c22e6d00aa71465664fc6a119aeb2a45d6f5;hpb=6dd0025ba30d818f7112e2edd4a6c0becdee4910;p=jalview.git diff --git a/src/jalview/gui/PCAPanel.java b/src/jalview/gui/PCAPanel.java index 4948c22..9dc73b7 100755 --- a/src/jalview/gui/PCAPanel.java +++ b/src/jalview/gui/PCAPanel.java @@ -1,6 +1,6 @@ /* * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7) - * Copyright (C) 2011 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle + * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle * * This file is part of Jalview. * @@ -54,7 +54,7 @@ public class PCAPanel extends GPCAPanel implements Runnable /** * use the identity matrix for calculating similarity between sequences. */ - private boolean useidentity=false; + private boolean nucleotide=false; /** * Creates a new PCAPanel object. @@ -72,14 +72,14 @@ public class PCAPanel extends GPCAPanel implements Runnable boolean sameLength = true; seqstrings = av.getAlignmentView(av.getSelectionGroup() != null); - useidentity=av.getAlignment().isNucleotide(); + nucleotide=av.getAlignment().isNucleotide(); if (av.getSelectionGroup() == null) { - seqs = av.alignment.getSequencesArray(); + seqs = av.getAlignment().getSequencesArray(); } else { - seqs = av.getSelectionGroup().getSequencesInOrder(av.alignment); + seqs = av.getSelectionGroup().getSequencesInOrder(av.getAlignment()); } SeqCigar sq[] = seqstrings.getSequences(); int length = sq[0].getWidth(); @@ -106,8 +106,6 @@ public class PCAPanel extends GPCAPanel implements Runnable return; } - Desktop.addInternalFrame(this, "Principal component analysis", 400, 400); - PaintRefresher.Register(this, av.getSequenceSetId()); rc = new RotatableCanvas(ap); @@ -135,7 +133,8 @@ public class PCAPanel extends GPCAPanel implements Runnable { try { - pca = new PCA(seqstrings.getSequenceStrings(' '), useidentity); + calcSettings.setEnabled(false); + pca = new PCA(seqstrings.getSequenceStrings(' '), nucleotide); pca.run(); // Now find the component coordinates @@ -173,18 +172,37 @@ public class PCAPanel extends GPCAPanel implements Runnable } rc.setPoints(points, pca.getM().rows); - rc.repaint(); - - addKeyListener(rc); + // rc.invalidate(); + nuclSetting.setSelected(nucleotide); + protSetting.setSelected(!nucleotide); } catch (OutOfMemoryError er) { new OOMWarning("calculating PCA", er); - + return; + } + calcSettings.setEnabled(true); + repaint(); + if (getParent()==null) + { + addKeyListener(rc); + Desktop.addInternalFrame(this, "Principal component analysis", 400, 400); } - } - + @Override + protected void nuclSetting_actionPerfomed(ActionEvent arg0) + { + nucleotide=true; + Thread worker = new Thread(this); + worker.start(); + } + @Override + protected void protSetting_actionPerfomed(ActionEvent arg0) + { + nucleotide=false; + Thread worker = new Thread(this); + worker.start(); + } /** * DOCUMENT ME! */