X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Frbvi%2Fchimera%2FChimeraCommands.java;fp=src%2Fjalview%2Fext%2Frbvi%2Fchimera%2FChimeraCommands.java;h=6d4caa220bb32d991fc3b65da2a6a574dc046ce6;hb=3efc24bc7b7855ff135fa96e35ab1004eaeb4f5e;hp=ced22faa58f7b20b7822ef3725a726bba9605270;hpb=dae56c38c3f14e96308540c30f35ca8f1d917edf;p=jalview.git diff --git a/src/jalview/ext/rbvi/chimera/ChimeraCommands.java b/src/jalview/ext/rbvi/chimera/ChimeraCommands.java index ced22fa..6d4caa2 100644 --- a/src/jalview/ext/rbvi/chimera/ChimeraCommands.java +++ b/src/jalview/ext/rbvi/chimera/ChimeraCommands.java @@ -20,6 +20,8 @@ */ package jalview.ext.rbvi.chimera; +import java.util.Locale; + import java.awt.Color; import java.util.ArrayList; import java.util.Arrays; @@ -30,6 +32,7 @@ import jalview.structure.AtomSpecModel; import jalview.structure.StructureCommand; import jalview.structure.StructureCommandI; import jalview.structure.StructureCommandsBase; +import jalview.structure.StructureCommandsI.AtomSpecType; import jalview.util.ColorUtils; /** @@ -159,7 +162,7 @@ public class ChimeraCommands extends StructureCommandsBase StringBuilder sb = new StringBuilder(128); sb.append("setattr res ").append(attributeName).append(" '") .append(attributeValue).append("' "); - sb.append(getAtomSpec(atomSpecModel, false)); + sb.append(getAtomSpec(atomSpecModel, AtomSpecType.RESIDUE_ONLY)); return new StructureCommand(sb.toString()); } @@ -181,7 +184,7 @@ public class ChimeraCommands extends StructureCommandsBase * Chimera treats an attribute name ending in 'color' as colour-valued; * Jalview doesn't, so prevent this by appending an underscore */ - if (attName.toUpperCase().endsWith("COLOR")) + if (attName.toUpperCase(Locale.ROOT).endsWith("COLOR")) { attName += "_"; } @@ -257,7 +260,7 @@ public class ChimeraCommands extends StructureCommandsBase @Override public List superposeStructures(AtomSpecModel ref, - AtomSpecModel spec) + AtomSpecModel spec, AtomSpecType backbone) { /* * Form Chimera match command to match spec to ref @@ -268,15 +271,15 @@ public class ChimeraCommands extends StructureCommandsBase * @see https://www.cgl.ucsf.edu/chimera/docs/UsersGuide/midas/match.html */ StringBuilder cmd = new StringBuilder(); - String atomSpecAlphaOnly = getAtomSpec(spec, true); - String refSpecAlphaOnly = getAtomSpec(ref, true); + String atomSpecAlphaOnly = getAtomSpec(spec, backbone); + String refSpecAlphaOnly = getAtomSpec(ref, backbone); cmd.append("match ").append(atomSpecAlphaOnly).append(" ").append(refSpecAlphaOnly); /* * show superposed residues as ribbon */ - String atomSpec = getAtomSpec(spec, false); - String refSpec = getAtomSpec(ref, false); + String atomSpec = getAtomSpec(spec, AtomSpecType.RESIDUE_ONLY); + String refSpec = getAtomSpec(ref, AtomSpecType.RESIDUE_ONLY); cmd.append("; ribbon "); cmd.append(atomSpec).append("|").append(refSpec).append("; focus"); @@ -317,12 +320,12 @@ public class ChimeraCommands extends StructureCommandsBase *
    * 
    * @param model
-   * @param alphaOnly
+   * @param specType
    * @return
    * @see https://www.cgl.ucsf.edu/chimera/current/docs/UsersGuide/midas/frameatom_spec.html
    */
   @Override
-  public String getAtomSpec(AtomSpecModel atomSpec, boolean alphaOnly)
+  public String getAtomSpec(AtomSpecModel atomSpec, AtomSpecType specType)
   {
     StringBuilder sb = new StringBuilder(128);
     boolean firstModel = true;
@@ -333,7 +336,7 @@ public class ChimeraCommands extends StructureCommandsBase
         sb.append("|");
       }
       firstModel = false;
-      appendModel(sb, model, atomSpec, alphaOnly);
+      appendModel(sb, model, atomSpec, specType);
     }
     return sb.toString();
   }
@@ -347,7 +350,7 @@ public class ChimeraCommands extends StructureCommandsBase
    * @param alphaOnly
    */
   protected void appendModel(StringBuilder sb, String model,
-          AtomSpecModel atomSpec, boolean alphaOnly)
+          AtomSpecModel atomSpec, AtomSpecType specType)
   {
     sb.append("#").append(model).append(":");
 
@@ -365,15 +368,18 @@ public class ChimeraCommands extends StructureCommandsBase
         firstPositionForModel = false;
       }
     }
-    if (alphaOnly)
+    if (specType == AtomSpecType.ALPHA)
     {
       /*
        * restrict to alpha carbon, no alternative locations
        * (needed to ensuring matching atom counts for superposition)
        */
-      // TODO @P instead if RNA - add nucleotide flag to AtomSpecModel?
       sb.append("@CA").append(NO_ALTLOCS);
     }
+    if (specType == AtomSpecType.PHOSPHATE)
+    {
+      sb.append("@P").append(NO_ALTLOCS);
+    }
   }
 
   @Override