JAL-1757 match only first altloc CA in PDB structure for superposition
authorgmungoc <g.m.carstairs@dundee.ac.uk>
Thu, 4 Jun 2015 10:51:28 +0000 (11:51 +0100)
committergmungoc <g.m.carstairs@dundee.ac.uk>
Thu, 4 Jun 2015 10:51:28 +0000 (11:51 +0100)
src/jalview/ext/jmol/JalviewJmolBinding.java
src/jalview/ext/rbvi/chimera/JalviewChimeraBinding.java

index 45fc378..50e156f 100644 (file)
@@ -507,7 +507,8 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel
         command.append(1 + pdbfnum);
         command.append(".1} {");
         command.append(1 + refStructure);
-        command.append(".1} SUBSET {*.CA | *.P} ATOMS ");
+        // conformation=1 excludes alternate locations for CA (JAL-1757)
+        command.append(".1} SUBSET {(*.CA | *.P) and conformation=1} ATOMS ");
 
         // form the matched pair strings
         String sep = "";
index b649a64..98f2e1a 100644 (file)
@@ -53,6 +53,8 @@ import jalview.util.MessageManager;
 
 public abstract class JalviewChimeraBinding extends AAStructureBindingModel
 {
+  // Chimera clause to exclude alternate locations in atom selection
+  private static final String NO_ALTLOCS = "&~@.B-Z&~@.2-9";
 
   private static final boolean debug = false;
 
@@ -625,9 +627,12 @@ public abstract class JalviewChimeraBinding extends AAStructureBindingModel
         // TODO: handle sub-models
         command.append(selcom[pdbfnum]);
         command.append("@" + atomSpec[pdbfnum]);
+        // JAL-1757 exclude alternative CA locations
+        command.append(NO_ALTLOCS);
         command.append(" #" + refStructure /* +".1" */);
         command.append(selcom[refStructure]);
         command.append("@" + atomSpec[refStructure]);
+        command.append(NO_ALTLOCS);
       }
       if (selectioncom.length() > 0)
       {