JAL-1761 need to pass molecule type when generating superposition commands
authorJim Procter <j.procter@dundee.ac.uk>
Tue, 15 Feb 2022 16:47:32 +0000 (16:47 +0000)
committerJim Procter <j.procter@dundee.ac.uk>
Tue, 15 Feb 2022 16:47:32 +0000 (16:47 +0000)
src/jalview/ext/jmol/JmolCommands.java
src/jalview/ext/pymol/PymolCommands.java
src/jalview/ext/rbvi/chimera/ChimeraCommands.java
src/jalview/ext/rbvi/chimera/ChimeraXCommands.java
src/jalview/structure/StructureCommandsI.java
src/jalview/structures/models/AAStructureBindingModel.java

index 25f6aec..3a66349 100644 (file)
@@ -178,7 +178,7 @@ public class JmolCommands extends StructureCommandsBase
    */
   @Override
   public List<StructureCommandI> superposeStructures(AtomSpecModel refAtoms,
-          AtomSpecModel atomSpec)
+          AtomSpecModel atomSpec, boolean isNucleotide)
   {
     StringBuilder sb = new StringBuilder(64);
     String refModel = refAtoms.getModels().iterator().next();
index 652682a..ae91aa5 100644 (file)
@@ -106,7 +106,7 @@ public class PymolCommands extends StructureCommandsBase
 
   @Override
   public List<StructureCommandI> superposeStructures(AtomSpecModel refAtoms,
-          AtomSpecModel atomSpec)
+          AtomSpecModel atomSpec, boolean isNucleotide)
   {
     // https://pymolwiki.org/index.php/Super
     List<StructureCommandI> commands = new ArrayList<>();
index 02b7136..bfad8fb 100644 (file)
@@ -259,7 +259,7 @@ public class ChimeraCommands extends StructureCommandsBase
 
   @Override
   public List<StructureCommandI> superposeStructures(AtomSpecModel ref,
-          AtomSpecModel spec)
+          AtomSpecModel spec, boolean isNucleotide)
   {
     /*
      * Form Chimera match command to match spec to ref
index 4e45ac8..74e7f08 100644 (file)
@@ -213,7 +213,7 @@ public class ChimeraXCommands extends ChimeraCommands
 
   @Override
   public List<StructureCommandI> superposeStructures(AtomSpecModel ref,
-          AtomSpecModel spec)
+          AtomSpecModel spec, boolean isNucleotide)
   {
     /*
      * Form ChimeraX match command to match spec to ref
index 91e0494..734f275 100644 (file)
@@ -86,10 +86,12 @@ public interface StructureCommandsI
    * 
    * @param refAtoms
    * @param atomSpec
+   * @param isNucleotide TODO
+   * @param nucleotide - when true, superposition is based on phoshpate backbone, not peptide
    * @return
    */
   List<StructureCommandI> superposeStructures(AtomSpecModel refAtoms,
-          AtomSpecModel atomSpec);
+          AtomSpecModel atomSpec, boolean isNucleotide);
 
   /**
    * Returns a command to open a file of commands at the given path
index 3414e95..336c6f8 100644 (file)
@@ -91,6 +91,9 @@ public abstract class AAStructureBindingModel
 
     public String chain = "";
 
+    /**
+     * is the mapped sequence not protein ?
+     */
     public boolean isRna;
 
     /*
@@ -167,6 +170,9 @@ public abstract class AAStructureBindingModel
 
   protected boolean colourBySequence = true;
 
+  /**
+   * true if all sequences appear to be nucleotide
+   */
   private boolean nucleotide;
 
   private boolean finishedInit = false;
@@ -716,7 +722,7 @@ public abstract class AAStructureBindingModel
               structures[pdbfnum].chain = chain;
             }
             structures[pdbfnum].pdbId = mapping.getPdbId();
-            structures[pdbfnum].isRna = theSequence.getRNA() != null;
+            structures[pdbfnum].isRna = !theSequence.isProtein();
 
             /*
              * move on to next pdb file (ignore sequences for other chains
@@ -918,7 +924,8 @@ public abstract class AAStructureBindingModel
        */
       // todo better way to ensure synchronous than setting getReply true!!
       executeCommands(commandGenerator.showBackbone(), true, null);
-
+      
+      boolean isNucleotide = structures[refStructure].isRna;
       /*
        * superpose each (other) structure to the reference in turn
        */
@@ -928,7 +935,7 @@ public abstract class AAStructureBindingModel
         {
           AtomSpecModel atomSpec = getAtomSpec(structures[i], matched);
           List<StructureCommandI> commands = commandGenerator
-                  .superposeStructures(refAtoms, atomSpec);
+                  .superposeStructures(refAtoms, atomSpec,isNucleotide);
           List<String> replies = executeCommands(commands, true, null);
           for (String reply : replies)
           {