JAL-2226 transfer chain annotation when calcId, label and description are distinct...
authorJim Procter <j.procter@dundee.ac.uk>
Fri, 17 Sep 2021 12:13:35 +0000 (13:13 +0100)
committerJim Procter <j.procter@dundee.ac.uk>
Fri, 17 Sep 2021 12:13:35 +0000 (13:13 +0100)
src/mc_view/PDBChain.java

index 60c289e..2a813d0 100755 (executable)
@@ -501,6 +501,9 @@ public class PDBChain
       AlignmentAnnotation tfactorann = new AlignmentAnnotation(
               tfacName, tfacName + " for " + pdbid + id,
               annots, min, max, AlignmentAnnotation.LINE_GRAPH);
+      
+      tfactorann.setCalcId(getClass().getName());
+
       tfactorann.setSequenceRef(sequence);
       sequence.addAlignmentAnnotation(tfactorann);
     }
@@ -627,8 +630,10 @@ public class PDBChain
 
         for (AlignmentAnnotation ana : shadow.getAnnotation())
         {
-          List<AlignmentAnnotation> transfer = sq
-                  .getAlignmentAnnotations(ana.getCalcId(), ana.label);
+          // match on calcId, label and description so annotations from
+          // different structures are preserved
+          List<AlignmentAnnotation> transfer = sq.getAlignmentAnnotations(
+                  ana.getCalcId(), ana.label, ana.description);
           if (transfer == null || transfer.size() == 0)
           {
             ana = new AlignmentAnnotation(ana);
@@ -648,8 +653,11 @@ public class PDBChain
         {
           for (AlignmentAnnotation ana : sequence.getAnnotation())
           {
+            // match on calcId, label and description so annotations from
+            // different structures are preserved
             List<AlignmentAnnotation> transfer = dsq
-                    .getAlignmentAnnotations(ana.getCalcId(), ana.label);
+                    .getAlignmentAnnotations(ana.getCalcId(), ana.label,
+                            ana.description);
             if (transfer == null || transfer.size() == 0)
             {
               ana = new AlignmentAnnotation(ana);