X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fdatamodel%2Falphafold%2FPAEContactMatrix.java;h=1ec856b67ac49045550cd5f0279008e17b19d4c1;hb=e134764b7eec841cb56a417250f2dd898680f985;hp=3ce1c83598e93da18dc5292b6d02e555b5f22c96;hpb=f83b6877ab7ff3fc5db5c946e16c74e016437311;p=jalview.git diff --git a/src/jalview/ws/datamodel/alphafold/PAEContactMatrix.java b/src/jalview/ws/datamodel/alphafold/PAEContactMatrix.java index 3ce1c83..1ec856b 100644 --- a/src/jalview/ws/datamodel/alphafold/PAEContactMatrix.java +++ b/src/jalview/ws/datamodel/alphafold/PAEContactMatrix.java @@ -1,7 +1,9 @@ package jalview.ws.datamodel.alphafold; +import java.awt.Color; import java.util.ArrayList; import java.util.BitSet; +import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -222,17 +224,18 @@ public class PAEContactMatrix implements ContactMatrixI @Override public String getAnnotDescr() { - return "Predicted Alignment Error"+((refSeq==null) ? "" : (" 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)); - //} + // if (this.getReferenceSeq() != null) + // { + // label.append(":").append(this.getReferenceSeq().getDisplayId(false)); + // } return label.toString(); } @@ -255,33 +258,50 @@ public class PAEContactMatrix implements ContactMatrixI { return length; } - List groups=null; + + List groups = null; + @Override public boolean hasGroups() { - return groups!=null; + return groups != null; } - String newick=null; - public String getNewickString() + + String newick = null; + + @Override + public String getNewick() { return newick; } + + @Override + public boolean hasTree() + { + return newick != null && newick.length() > 0; + } + boolean abs; + double thresh; - String treeType=null; - public void makeGroups(float thresh,boolean abs) + + String treeType = null; + + public void makeGroups(float thresh, boolean abs) { - AverageDistanceEngine clusterer = new AverageDistanceEngine(null, null, this); + AverageDistanceEngine clusterer = new AverageDistanceEngine(null, null, + this); double height = clusterer.findHeight(clusterer.getTopNode()); - newick = new jalview.io.NewickFile(clusterer.getTopNode(),false,true).print(); + newick = new jalview.io.NewickFile(clusterer.getTopNode(), false, true) + .print(); treeType = "UPGMA"; - Console.trace("Newick string\n"+newick); + Console.trace("Newick string\n" + newick); List nodegroups; if (abs ? height > thresh : 0 < thresh && thresh < 1) { float cut = abs ? (float) (thresh / height) : thresh; - Console.debug("Threshold "+cut+" for height="+height); + Console.debug("Threshold " + cut + " for height=" + height); nodegroups = clusterer.groupNodes(cut); } @@ -290,24 +310,34 @@ public class PAEContactMatrix implements ContactMatrixI nodegroups = new ArrayList(); nodegroups.add(clusterer.getTopNode()); } - this.abs=abs; - this.thresh=thresh; + this.abs = abs; + this.thresh = thresh; groups = new ArrayList<>(); - for (BinaryNode root:nodegroups) + for (BinaryNode root : nodegroups) { - BitSet gpset=new BitSet(); - for (BinaryNode leaf:clusterer.findLeaves(root)) + BitSet gpset = new BitSet(); + for (BinaryNode leaf : clusterer.findLeaves(root)) { - gpset.set((Integer)leaf.element()); + gpset.set((Integer) leaf.element()); } groups.add(gpset); } } - + + @Override + public void updateGroups(List colGroups) + { + if (colGroups != null) + { + groups = colGroups; + } + } + @Override public BitSet getGroupsFor(int column) { - for (BitSet gp:groups) { + for (BitSet gp : groups) + { if (gp.get(column)) { return gp; @@ -316,24 +346,51 @@ public class PAEContactMatrix implements ContactMatrixI return ContactMatrixI.super.getGroupsFor(column); } + HashMap colorMap = new HashMap<>(); + + @Override + public Color getColourForGroup(BitSet bs) + { + if (bs == null) + { + return Color.white; + } + Color groupCol = colorMap.get(bs); + if (groupCol == null) + { + return Color.white; + } + return groupCol; + } + + @Override + public void setColorForGroup(BitSet bs, Color color) + { + colorMap.put(bs, color); + } + public void restoreGroups(List newgroups, String treeMethod, String tree, double thresh2) { - treeType=treeMethod; + treeType = treeMethod; groups = newgroups; - thresh=thresh2; - newick =tree; - + thresh = thresh2; + newick = tree; + } + @Override - public boolean hasCutHeight() { - return groups!=null && thresh!=0; + public boolean hasCutHeight() + { + return groups != null && thresh != 0; } + @Override public double getCutHeight() { return thresh; } + @Override public String getTreeMethod() {