import jalview.analysis.scoremodels.ScoreModels;
import jalview.analysis.scoremodels.SimilarityParams;
import jalview.api.analysis.ScoreModelI;
+import jalview.api.analysis.SimilarityParamsI;
import jalview.api.analysis.ViewBasedAnalysisI;
import jalview.bin.Cache;
import jalview.datamodel.Alignment;
int top = 0;
/**
- * Creates a new PCAPanel object.
+ * Creates a new PCAPanel object using default score model and parameters
*
- * @param av
- * DOCUMENT ME!
- * @param s
- * DOCUMENT ME!
+ * @param alignPanel
*/
public PCAPanel(AlignmentPanel alignPanel)
{
+ this(alignPanel, ScoreModels.getInstance().getDefaultModel(
+ !alignPanel.av.getAlignment().isNucleotide()),
+ SimilarityParams.SeqSpace);
+ }
+
+ /**
+ * Constructor given sequence data, a similarity (or distance) score model,
+ * and score calculation parameters
+ *
+ * @param alignPanel
+ * @param scoreModel
+ * @param params
+ */
+ public PCAPanel(AlignmentPanel alignPanel, ScoreModelI scoreModel,
+ SimilarityParamsI params)
+ {
super();
this.av = alignPanel.av;
this.ap = alignPanel;
+ boolean nucleotide = av.getAlignment().isNucleotide();
progressBar = new ProgressBar(statusPanel, statusBar);
boolean selected = av.getSelectionGroup() != null
&& av.getSelectionGroup().getSize() > 0;
AlignmentView seqstrings = av.getAlignmentView(selected);
- boolean nucleotide = av.getAlignment().isNucleotide();
SequenceI[] seqs;
if (!selected)
{
return;
}
- pcaModel = new PCAModel(seqstrings, seqs, nucleotide,
- SimilarityParams.SeqSpace);
+ pcaModel = new PCAModel(seqstrings, seqs, nucleotide, scoreModel,
+ params);
PaintRefresher.Register(this, av.getSequenceSetId());
rc = new RotatableCanvas(alignPanel);
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()))