JAL-4134 store/restore Newick tree for PAE annotation row
[jalview.git] / src / jalview / ws / datamodel / alphafold / PAEContactMatrix.java
index db3addc..a5ce9a0 100644 (file)
@@ -222,15 +222,17 @@ public class PAEContactMatrix implements ContactMatrixI
   @Override
   public String getAnnotDescr()
   {
-    return "Predicted Alignment Error for " + refSeq.getName();
+    return "Predicted Alignment Error"+((refSeq==null) ? "" : (" for " + refSeq.getName()));
   }
 
   @Override
   public String getAnnotLabel()
   {
-    StringBuilder label = new StringBuilder("pAE Matrix");
-    if (this.getReferenceSeq() != null)
-      label.append(":").append(this.getReferenceSeq().getDisplayId(false));
+    StringBuilder label = new StringBuilder("PAE Matrix");
+    //if (this.getReferenceSeq() != null)
+    //{
+    //  label.append(":").append(this.getReferenceSeq().getDisplayId(false));
+    //}
     return label.toString();
   }
 
@@ -260,16 +262,20 @@ public class PAEContactMatrix implements ContactMatrixI
     return groups!=null;
   }
   String newick=null;
-  public String getNewickString()
+  @Override
+  public String getNewick()
   {
     return newick;
   }
+  boolean abs;
+  double thresh;
+  String treeType=null;
   public void makeGroups(float thresh,boolean abs)
   {
     AverageDistanceEngine clusterer = new AverageDistanceEngine(null, null, this);
     double height = clusterer.findHeight(clusterer.getTopNode());
     newick = new jalview.io.NewickFile(clusterer.getTopNode(),false,true).print();
-
+    treeType = "UPGMA";
     Console.trace("Newick string\n"+newick);
 
     List<BinaryNode> nodegroups;
@@ -285,7 +291,8 @@ public class PAEContactMatrix implements ContactMatrixI
       nodegroups = new ArrayList<BinaryNode>();
       nodegroups.add(clusterer.getTopNode());
     }
-
+    this.abs=abs;
+    this.thresh=thresh;
     groups = new ArrayList<>();
     for (BinaryNode root:nodegroups)
     {
@@ -309,4 +316,28 @@ public class PAEContactMatrix implements ContactMatrixI
     }
     return ContactMatrixI.super.getGroupsFor(column);
   }
+
+  public void restoreGroups(List<BitSet> newgroups, String treeMethod,
+          String tree, double thresh2)
+  {
+    treeType=treeMethod;
+    groups = newgroups;
+    thresh=thresh2;
+    newick =tree;
+    
+  }
+  @Override
+  public boolean hasCutHeight() {
+    return groups!=null && thresh!=0;
+  }
+  @Override
+  public double getCutHeight()
+  {
+    return thresh;
+  }
+  @Override
+  public String getTreeMethod()
+  {
+    return treeType;
+  }
 }