import jalview.datamodel.AlignmentI;
import jalview.datamodel.AlignmentView;
import jalview.datamodel.ColumnSelection;
-import jalview.datamodel.SeqCigar;
import jalview.datamodel.SequenceI;
import jalview.jbgui.GPCAPanel;
import jalview.util.MessageManager;
seqs = av.getSelectionGroup().getSequencesInOrder(av.getAlignment());
}
- // TODO can we allow PCA on unaligned data given choice of
- // similarity measure parameters?
- if (!checkAligned(seqstrings))
- {
- JvOptionPane.showMessageDialog(Desktop.desktop,
- MessageManager.getString("label.pca_sequences_not_aligned"),
- MessageManager.getString("label.sequences_not_aligned"),
- JvOptionPane.WARNING_MESSAGE);
-
- return;
- }
-
pcaModel = new PCAModel(seqstrings, seqs, nucleotide, scoreModel,
params);
PaintRefresher.Register(this, av.getSequenceSetId());
}
/**
- * Answers true if all sequences have the same aligned length, else false
- *
- * @param seqstrings
- * @return
- */
- protected boolean checkAligned(AlignmentView seqstrings)
- {
- SeqCigar sq[] = seqstrings.getSequences();
- int length = sq[0].getWidth();
- boolean sameLength = true;
- for (int i = 0; i < sq.length; i++)
- {
- if (sq[i].getWidth() != length)
- {
- sameLength = false;
- break;
- }
- }
- return sameLength;
- }
-
- /**
* Ensure references to potentially very large objects (the PCA matrices) are
* nulled when the frame is closed
*/
for (final ScoreModelI sm : ScoreModels.getInstance().getModels())
{
final String name = sm.getName();
- // create an entry for this score matrix for use in PCA
- JCheckBoxMenuItem jm = new JCheckBoxMenuItem();
- jm.setText(MessageManager.getStringOrReturn("label.score_model_",
- name));
+ JCheckBoxMenuItem jm = new JCheckBoxMenuItem(name);
+
+ /*
+ * if the score model doesn't provide a description, try to look one
+ * up in the text bundle, falling back on its name
+ */
+ String tooltip = sm.getDescription();
+ if (tooltip == null)
+ {
+ tooltip = MessageManager.getStringOrReturn("label.score_model_",
+ name);
+ }
+ jm.setToolTipText(tooltip);
jm.setSelected(pcaModel.getScoreModelName().equals(name));
if ((pcaModel.isNucleotide() && sm.isDNA())
|| (!pcaModel.isNucleotide() && sm.isProtein()))
// rc.invalidate();
nuclSetting.setSelected(pcaModel.isNucleotide());
protSetting.setSelected(!pcaModel.isNucleotide());
- jvVersionSetting.setSelected(pcaModel.isJvCalcMode());
top = pcaModel.getTop();
} catch (OutOfMemoryError er)
}
}
- @Override
- protected void jvVersionSetting_actionPerfomed(ActionEvent arg0)
- {
- pcaModel.setJvCalcMode(jvVersionSetting.isSelected());
- Thread worker = new Thread(this);
- worker.start();
- }
-
/**
* DOCUMENT ME!
*/