JAL-4134 colour by annotation needs distinct annotation elements to hold colours
authorJames Procter <j.procter@dundee.ac.uk>
Thu, 18 May 2023 18:42:19 +0000 (19:42 +0100)
committerJames Procter <j.procter@dundee.ac.uk>
Thu, 18 May 2023 18:42:19 +0000 (19:42 +0100)
src/jalview/datamodel/Alignment.java
src/jalview/datamodel/Sequence.java
test/jalview/datamodel/PAEContactMatrixTest.java

index 1ec702c..89ec5ad 100755 (executable)
@@ -2101,8 +2101,7 @@ public class Alignment implements AlignmentI, AutoCloseable
     AlignmentAnnotation aa = cmholder.addContactList(cm);
 
     Annotation _aa[] = new Annotation[getWidth()];
-    Annotation dummy = new Annotation(0.0f);
-    for (int i = 0; i < _aa.length; _aa[i++] = dummy)
+    for (int i = 0; i < _aa.length; _aa[i++] = new Annotation(0.0f))
     {
       ;
     }
index 2b331d7..cbd17c8 100755 (executable)
@@ -2145,8 +2145,8 @@ public class Sequence extends ASequence implements SequenceI
     AlignmentAnnotation aa = cmholder.addContactList(cm);
 
     Annotation _aa[] = new Annotation[getLength()];
-    Annotation dummy = new Annotation(0.0f);
-    for (int i = 0; i < _aa.length; _aa[i++] = dummy)
+    
+    for (int i = 0; i < _aa.length; _aa[i++] = new Annotation(0.0f))
     {
       ;
     }
index 71e824e..9b95164 100644 (file)
@@ -55,13 +55,25 @@ public class PAEContactMatrixTest
     assertEquals(cm.getContactAt(seq.getStart()),1d);
     verifyPAEmatrix(seq, aa, 0,0,4);
     
+    
     // Now associated with sequence not starting at 1
     seq = new Sequence("Seq/5-9","ASDQE");
     ContactMatrixI paematrix = new PAEContactMatrix(seq, PAEdata);
     aa = seq.addContactList(paematrix);
+    assertNotNull(aa);
+    // individual annotation elements need to be distinct for Matrix associated rows
+    Annotation ae5=aa.getAnnotationForPosition(5);
+    Annotation ae6=aa.getAnnotationForPosition(6);
+    assertNotNull(ae5);
+    assertNotNull(ae6);
+    assertTrue(ae5!=ae6);
+    
     cm = seq.getContactListFor(aa, 0);
     assertEquals(cm.getContactAt(0),1d);
     verifyPAEmatrix(seq, aa, 0, 0, 4);
+
+    // test clustering
+    paematrix.setGroupSet(GroupSet.makeGroups(paematrix, 0.1f, false));
     
     // remap - test the MappableContactMatrix.liftOver method
     SequenceI newseq = new Sequence("Seq","ASDQEASDQEASDQE");