Uploaded image for project: 'Jalview'
  1. Jalview
  2. JAL-4083

Exceptions for multiple residue highlights in Jmol

    XMLWordPrintable

    Details

      Description

      Encountered when working on JAL-4033 to implement JAL-4084: adding support for many-position mouse over highlighting (see https://builds.jalview.org/browse/JB-GPC352) - commit:e70614203293e8f04d7640729851725a763ae130

      Use the AlphaFold database source to retrieve an alphafold model for the Example ID. It should come complete with a 'Contact Matrix' annotation row (actually the pAE matrix).

      view the alphafold model structure in Jmol.

      Move the mouse over the contact matrix - you should see one residue highlighted for the column, and several residues highlighted corresponding to the row under the mouse as you move the mouse.

      At some point the highlighting stops - with an exception on stderr like:
      java.lang.NullPointerException
      at org.jmol.script.ScriptManager.getScriptItem(ScriptManager.java:213)
      at org.jmol.script.ScriptQueueThread.runNextScript(ScriptQueueThread.java:90)
      at org.jmol.script.ScriptQueueThread.run1(ScriptQueueThread.java:76)
      at org.jmol.thread.JmolThread.run(JmolThread.java:105)


      The execution path for group highlighting is as follows:
      jalview.gui.AnnotationPanel.buildToolTip(AlignmentAnnotation, int, AlignmentAnnotation[], int, AlignViewportI, AlignmentPanel)
      -> jalview.structure.StructureSelectionManager.highlightPositionsOn(SequenceI, int[][], Object)
      -> jalview.structure.StructureSelectionManager.highlightStructure(SequenceI, int[][], Object)
      -> jalvew.structure.StructureListener.highlightAtoms(List<AtomSpec> atoms)

      The Jmol implementation is:
      jalview.ext.JalviewJmolBinding.highlightAtoms(List<AtomSpec> atoms)
      which for each AtomSpec, calls:
      jalview.ext.jmol.JalviewJmolBinding.highlightAtom(int, int, String, String)

      My guess is that calling the Jmol specific highlight atom method isn't sufficiently robust to be called repeatedly - one option is to implement a highlight mechanism that operates on the whole set of AtomSpec at once, rather than generating (and Jmol evaluating) a set of commands for each one in turn.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              soares Ben Soares
              Reporter:
              jprocter James Procter
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: