/*
* 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.
*
/**
* use the identity matrix for calculating similarity between sequences.
*/
- private boolean useidentity=false;
+ private boolean nucleotide=false;
/**
* Creates a new PCAPanel object.
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();
return;
}
- Desktop.addInternalFrame(this, "Principal component analysis", 400, 400);
-
PaintRefresher.Register(this, av.getSequenceSetId());
rc = new RotatableCanvas(ap);
{
try
{
- pca = new PCA(seqstrings.getSequenceStrings(' '), useidentity);
+ calcSettings.setEnabled(false);
+ pca = new PCA(seqstrings.getSequenceStrings(' '), nucleotide);
pca.run();
// Now find the component coordinates
}
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!
*/