Merge branch 'develop' into spike/JAL-4047/JAL-4048_columns_in_sequenceID
[jalview.git] / src / jalview / datamodel / Alignment.java
index 517a6dd..514a326 100755 (executable)
@@ -2050,14 +2050,14 @@ public class Alignment implements AlignmentI, AutoCloseable
   public ContactMatrixI getContactMatrixFor(AlignmentAnnotation _aa)
   {
     ContactMatrixI cm = cmholder.getContactMatrixFor(_aa);
-    if (cm==null && _aa.groupRef!=null)
+    if (cm == null && _aa.groupRef != null)
     {
       cm = _aa.groupRef.getContactMatrixFor(_aa);
     }
-    if (cm==null && _aa.sequenceRef!=null)
+    if (cm == null && _aa.sequenceRef != null)
     {
       cm = _aa.sequenceRef.getContactMatrixFor(_aa);
-      if (cm==null)
+      if (cm == null)
       {
         // TODO fix up this logic and unify with getContactListFor
         cm = _aa.sequenceRef.getDatasetSequence().getContactMatrixFor(_aa);
@@ -2076,14 +2076,19 @@ public class Alignment implements AlignmentI, AutoCloseable
     }
     if (cl == null && _aa.sequenceRef != null)
     {
-      int spos = _aa.sequenceRef.findPosition(column);
-      if (spos >= _aa.sequenceRef.getStart()
-              && spos <= 1 + _aa.sequenceRef.getEnd())
+      if (_aa.annotations[column] != null)
       {
-        cl = _aa.sequenceRef.getContactListFor(_aa, spos-_aa.sequenceRef.getStart());
+        // sequence associated
+        cl = _aa.sequenceRef.getContactListFor(_aa, column);
         if (cl == null && _aa.sequenceRef.getDatasetSequence() != null)
         {
-          _aa.sequenceRef.getDatasetSequence().getContactListFor(_aa, spos-_aa.sequenceRef.getStart());
+          int spos = _aa.sequenceRef.findPosition(column);
+          if (spos >= _aa.sequenceRef.getStart()
+                  && spos <= 1 + _aa.sequenceRef.getEnd())
+          {
+            cl = _aa.sequenceRef.getDatasetSequence().getContactListFor(_aa,
+                    spos - _aa.sequenceRef.getStart());
+          }
         }
       }
     }
@@ -2096,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))
     {
       ;
     }