import jalview.datamodel.Point;
import jalview.datamodel.SequenceI;
import jalview.datamodel.SequencePoint;
+import jalview.gui.PairwiseAlignPanel;
import jalview.viewmodel.AlignmentViewport;
import java.util.List;
private final SequenceI[] seqs;
- private final SimilarityParamsI similarityParams;
-
/*
* options - score model, nucleotide / protein
*/
* @param params
*/
public PaSiMapModel(AlignmentViewport seqData, SequenceI[] sqs, boolean nuc,
- ScoreModelI modelName, SimilarityParamsI params)
+ ScoreModelI modelName)
{
inputData = seqData;
seqs = sqs;
nucleotide = nuc;
scoreModel = modelName;
- similarityParams = params;
}
/**
* Performs the PaSiMap calculation (in the same thread) and extracts result data
* needed for visualisation by PaSiMapPanel
*/
- public void calculate()
+ public void calculate(PairwiseAlignPanel pap)
{
- pasimap = new PaSiMap(inputData, scoreModel, similarityParams);
+ pasimap = new PaSiMap(inputData, scoreModel, pap);
pasimap.run(); // executes in same thread, wait for completion
// Now find the component coordinates
int width = pasimap.getWidth();
int height = pasimap.getHeight();
- top = height;
+ top = width;
points = new Vector<>();
Point[] scores = pasimap.getComponents(width - 1, width - 2, width - 3, 1);
- for (int i = 0; i < top; i++)
+ for (int i = 0; i < height; i++)
{
SequencePoint sp = new SequencePoint(seqs[i], scores[i]);
points.add(sp);
// note: actual indices for components are dim1-1, etc (patch for JAL-1123)
Point[] scores = pasimap.getComponents(dim1 - 1, dim2 - 1, dim3 - 1, 1);
- for (int i = 0; i < pasimap.getWidth(); i++)
+ for (int i = 0; i < pasimap.getHeight(); i++)
{
points.get(i).coord = scores[i];
}
return pasimap.getDetails();
}
+ public String getAlignmentOutput()
+ {
+ return pasimap.getAlignmentOutput();
+ }
+
public AlignmentViewport getInputData()
{
return inputData;
}
else
{
- for (int d = 1, dmax = pasimap.component(1).length; d <= dmax; d++)
+ for (int d = 1, dmax = (int) pasimap.getDim(); d <= dmax; d++)
{
csv.append("," + d);
}
for (int s = 0; s < seqs.length; s++)
{
csv.append("\"" + seqs[s].getName() + "\"");
- double fl[];
if (!transformed)
{
- // output pasimap in correct order
- fl = pasimap.component(s);
- for (int d = fl.length - 1; d >= 0; d--)
- {
- csv.append(",");
- csv.append(fl[d]);
- }
- }
- else
- {
+ double[] fl = pasimap.component(s);
+ for (int d = fl.length - 1; d >= 0; d--)
+ {
+ csv.append(",");
+ csv.append(fl[d]);
+ }
+ } else {
Point p = points.get(s).coord;
csv.append(",").append(p.x);
csv.append(",").append(p.y);
this.scoreModel = sm;
}
- /**
- * Answers the parameters configured for pairwise similarity calculations
- *
- * @return
- */
- public SimilarityParamsI getSimilarityParameters()
- {
- return similarityParams;
- }
-
public List<SequencePoint> getSequencePoints()
{
return points;