X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fviewmodel%2FPaSiMapModel.java;h=a0e5174748d46d8d8a97cb84619832271109f99b;hb=965c8af33ac58a3b5b940e52f04a7bfc16d83e98;hp=4bb6d8a50742c501e0f484b8c412324fbf44b9d5;hpb=2a862754ef7069c5e9a99dc127af9b0b93c37d35;p=jalview.git diff --git a/src/jalview/viewmodel/PaSiMapModel.java b/src/jalview/viewmodel/PaSiMapModel.java index 4bb6d8a..a0e5174 100644 --- a/src/jalview/viewmodel/PaSiMapModel.java +++ b/src/jalview/viewmodel/PaSiMapModel.java @@ -28,6 +28,7 @@ import jalview.datamodel.AlignmentView; import jalview.datamodel.Point; import jalview.datamodel.SequenceI; import jalview.datamodel.SequencePoint; +import jalview.gui.PairwiseAlignPanel; import jalview.viewmodel.AlignmentViewport; import java.util.List; @@ -42,8 +43,6 @@ public class PaSiMapModel private final SequenceI[] seqs; - private final SimilarityParamsI similarityParams; - /* * options - score model, nucleotide / protein */ @@ -71,22 +70,21 @@ public class PaSiMapModel * @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 @@ -99,12 +97,12 @@ public class PaSiMapModel 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); @@ -156,7 +154,7 @@ public class PaSiMapModel // 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]; } @@ -167,6 +165,11 @@ public class PaSiMapModel return pasimap.getDetails(); } + public String getAlignmentOutput() + { + return pasimap.getAlignmentOutput(); + } + public AlignmentViewport getInputData() { return inputData; @@ -193,7 +196,7 @@ public class PaSiMapModel } 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); } @@ -202,10 +205,20 @@ public class PaSiMapModel for (int s = 0; s < seqs.length; s++) { csv.append("\"" + seqs[s].getName() + "\""); - Point p = points.get(s).coord; - csv.append(",").append(p.x); - csv.append(",").append(p.y); - csv.append(",").append(p.z); + if (!transformed) + { + 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); + csv.append(",").append(p.z); + } csv.append("\n"); } return csv.toString(); @@ -221,16 +234,6 @@ public class PaSiMapModel this.scoreModel = sm; } - /** - * Answers the parameters configured for pairwise similarity calculations - * - * @return - */ - public SimilarityParamsI getSimilarityParameters() - { - return similarityParams; - } - public List getSequencePoints() { return points;