Opened 6 years ago

Closed 6 years ago

Last modified 6 years ago

#2928 closed defect (fixed)

Pure translation morph not correct

Reported by: charles.sindelar@… Owned by: Tom Goddard
Priority: normal Milestone:
Component: Structure Comparison Version:
Keywords: Cc:
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        Darwin-17.7.0-x86_64-i386-64bit
ChimeraX Version: 0.92 (2020-03-06)
Description
Morph conformations between two identical, translated molecules gives the wrong trajectory: instead of moving back and forth there is a strange "square" trajectory

open 1mkj
open 1mkj
move x 10 1 model #2
morph #1,2 wrap t

Log:
Startup Messages  
---  
note | available bundle cache has not been initialized yet  
  
UCSF ChimeraX version: 0.92 (2020-03-06)  
© 2016-2020 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

Error opening /Users/charlessindelar/chimerax_start/chimerax_start.py:  
invalid syntax (chimerax_start.py, line 1)  

> open
> /Users/charlessindelar/Workworkwork/Talks/20_nih_job_talk/chimx_movies/chimx_kin_movie.cxs

opened ChimeraX session  

> select up

Nothing selected  

> select up

Nothing selected  

> select down

Nothing selected  

> select down

Nothing selected  

> select down

Nothing selected  

> select down

Nothing selected  

> movie record

> perframe dragadp frames 7

> coordset #21 21,1,-5

> wait 7

RMSD between 32 atom pairs is 0.247 angstroms  
RMSD between 32 atom pairs is 0.000 angstroms  
RMSD between 32 atom pairs is 0.063 angstroms  
RMSD between 32 atom pairs is 0.125 angstroms  
RMSD between 32 atom pairs is 0.186 angstroms  
RMSD between 32 atom pairs is 0.247 angstroms  
RMSD between 32 atom pairs is 0.247 angstroms  

> movie stop

> movie encode /Users/charlessindelar/Desktop/test.mov

Movie saved to /Users/charlessindelar/Desktop/test.mov  
  

> close session

> open 1mkj

1mkj title:  
Human Kinesin Motor Domain With Docked Neck Linker [more info...]  
  
Chain information for 1mkj #1  
---  
Chain | Description  
A | kinesin heavy chain  
  
Non-standard residues in 1mkj #1  
---  
ADP — adenosine-5'-diphosphate  
MG — magnesium ion  
SO4 — sulfate ion  
  
  

> open 1bg2

1bg2 title:  
Human ubiquitous kinesin motor domain [more info...]  
  
Chain information for 1bg2 #2  
---  
Chain | Description  
A | kinesin  
  
Non-standard residues in 1bg2 #2  
---  
ACT — acetate ion  
ADP — adenosine-5'-diphosphate  
MG — magnesium ion  
  
  

> alias dragadp align #1/A:85-92@ca,n,c,o toAtoms #0/A:85-92@ca,n,c,o

> view name begin

> move x 5 1

> view begin

> movie record

> perframe dragadp frames 7

> move x 1 5

> wait 7

Error executing per-frame command 'dragadp': Unequal number of atoms to pair,
32 and 0  

> movie stop

> movie encode /Users/charlessindelar/Desktop/test2.mov

Movie saved to /Users/charlessindelar/Desktop/test2.mov  
  

> view begin

> movie reset

No movie being recorded.  

> movie reset

No movie being recorded.  

> movie record

> perframe dragadp frames 7

> move x 1 5

> wait 7

Error executing per-frame command 'dragadp': Unequal number of atoms to pair,
32 and 0  

> movie stop

> movie encode /Users/charlessindelar/Desktop/test2.mov

Movie saved to /Users/charlessindelar/Desktop/test2.mov  
  

Unknown command: dragaddp  

> dragadp

Unequal number of atoms to pair, 32 and 0  

> select #1/A:85-92@ca,n,c,o

32 atoms, 31 bonds, 1 model selected  

> select #0/A:85-92@ca,n,c,o

Nothing selected  

> select #0:85-92@ca,n,c,o

Nothing selected  

> alias dragadp align #2/A:85-92@ca,n,c,o toAtoms #1/A:85-92@ca,n,c,o

> view begin

> view begin

> movie reset

No movie being recorded.  

> movie record

> perframe dragadp frames 7

> move x 1 5

> wait 7

RMSD between 32 atom pairs is 0.130 angstroms  
RMSD between 32 atom pairs is 0.130 angstroms  
RMSD between 32 atom pairs is 0.130 angstroms  
RMSD between 32 atom pairs is 0.130 angstroms  
RMSD between 32 atom pairs is 0.130 angstroms  
RMSD between 32 atom pairs is 0.130 angstroms  
RMSD between 32 atom pairs is 0.130 angstroms  

> movie stop

> movie encode /Users/charlessindelar/Desktop/test2.mov

Movie saved to /Users/charlessindelar/Desktop/test2.mov  
  

> align #2/A:260-290@CA,N,C,O toAtoms #1/A:260-290@CA,N,C,O

RMSD between 124 atom pairs is 0.709 angstroms  

> morph #1,2 wrap true

Computed 41 frame morph #3  

> coordset #3 1,41

> alias dragadp align #1/A:85-92@ca,n,c,o toAtoms #1/A:85-92@ca,n,c,o

> show #!1 models

> ~show #1 target r

> ~show #1 target a

> show #1:adp

> coordset #3 10

> dragadp

RMSD between 32 atom pairs is 0.000 angstroms  

> alias dragadp align #1/A:85-92@ca,n,c,o toAtoms #3/A:85-92@ca,n,c,o

> dragadp

RMSD between 32 atom pairs is 0.059 angstroms  

> view begin

> movie reset

No movie being recorded.  

> movie record

> perframe dragadp frames 7

> coordset #3 1,21,5

> wait 7

RMSD between 32 atom pairs is 0.059 angstroms  
RMSD between 32 atom pairs is 0.000 angstroms  
RMSD between 32 atom pairs is 0.033 angstroms  
RMSD between 32 atom pairs is 0.065 angstroms  
RMSD between 32 atom pairs is 0.098 angstroms  
RMSD between 32 atom pairs is 0.130 angstroms  
RMSD between 32 atom pairs is 0.130 angstroms  

> movie stop

> movie encode /Users/charlessindelar/Desktop/test3.mov

Movie saved to /Users/charlessindelar/Desktop/test3.mov  
  

Expected a keyword  

> help perframe

> perframe dragadp frames 10

RMSD between 32 atom pairs is 0.117 angstroms  
RMSD between 32 atom pairs is 0.124 angstroms  
RMSD between 32 atom pairs is 0.130 angstroms  
RMSD between 32 atom pairs is 0.124 angstroms  
RMSD between 32 atom pairs is 0.117 angstroms  
RMSD between 32 atom pairs is 0.111 angstroms  
RMSD between 32 atom pairs is 0.104 angstroms  
RMSD between 32 atom pairs is 0.098 angstroms  
RMSD between 32 atom pairs is 0.091 angstroms  
RMSD between 32 atom pairs is 0.085 angstroms  

> help molmap

> molmap #3 6 gridSpacing 1

> color #4 1,0,0,.5

> color #4 1,0,0,50

> color #4 1,0,0,10

> color #4 50,0,0,10

> lighting full

> material transparentCastShadows true

> material transparentCastShadows false

> lighting simple

> lighting soft

> lighting full

> lighting soft

> lighting full

> lighting soft

> lighting full

> molmap #3 12 gridSpacing 1

> color #4 50,0,0,10

> help molmap

> close #4

> close all

> open 1mkj

1mkj title:  
Human Kinesin Motor Domain With Docked Neck Linker [more info...]  
  
Chain information for 1mkj #1  
---  
Chain | Description  
A | kinesin heavy chain  
  
Non-standard residues in 1mkj #1  
---  
ADP — adenosine-5'-diphosphate  
MG — magnesium ion  
SO4 — sulfate ion  
  
  

> open 1mkj

1mkj title:  
Human Kinesin Motor Domain With Docked Neck Linker [more info...]  
  
Chain information for 1mkj #2  
---  
Chain | Description  
A | kinesin heavy chain  
  
Non-standard residues in 1mkj #2  
---  
ADP — adenosine-5'-diphosphate  
MG — magnesium ion  
SO4 — sulfate ion  
  
  

Missing or invalid "axis" argument: Axis argument requires 2 atoms, got 2707
atoms  

> move x 10 1 models #2

> morph #1,2 wrap true

Computed 41 frame morph #3  

> coordset #3 1,41

> movie record

> movie encode /Users/charlessindelar/Desktop/movie.mp4 framerate 25.0

Movie saved to /Users/charlessindelar/Desktop/movie.mp4  
  

> ~show #3

> show #1

> show #1 target m

> ~show #1 target r

> ~show #1 target a

> show #1:adp

> alias dragadp align #1/A:85-92@ca,n,c,o toAtoms #3/A:85-92@ca,n,c,o

> perframe dragadp frames 10

RMSD between 32 atom pairs is 0.000 angstroms  
RMSD between 32 atom pairs is 0.000 angstroms  
RMSD between 32 atom pairs is 0.000 angstroms  
RMSD between 32 atom pairs is 0.000 angstroms  
RMSD between 32 atom pairs is 0.000 angstroms  
RMSD between 32 atom pairs is 0.000 angstroms  
RMSD between 32 atom pairs is 0.000 angstroms  
RMSD between 32 atom pairs is 0.000 angstroms  
RMSD between 32 atom pairs is 0.000 angstroms  
RMSD between 32 atom pairs is 0.000 angstroms  

> movie reset

No movie being recorded.  

> movie record

> perframe dragadp frames 7

> move x 1 5

> wait 7

RMSD between 32 atom pairs is 0.000 angstroms  
RMSD between 32 atom pairs is 0.000 angstroms  
RMSD between 32 atom pairs is 0.000 angstroms  
RMSD between 32 atom pairs is 0.000 angstroms  
RMSD between 32 atom pairs is 0.000 angstroms  
RMSD between 32 atom pairs is 0.000 angstroms  
RMSD between 32 atom pairs is 0.000 angstroms  

> movie stop

> movie encode /Users/charlessindelar/Desktop/test3.mov

Movie saved to /Users/charlessindelar/Desktop/test3.mov  
  

> show #!2 models

> show #1 target r

> coordset #3 1

> coordset #3 21

> coordset #3 1

> coordset #3 21

> coordset #3 1

> coordset #3 2

> coordset #3 10

> coordset #3 8

> coordset #3 7

> coordset #3 7,21,1

> coordset #3 21,7,-1

> coordset #3 21,41,1




OpenGL version: 4.1 INTEL-10.36.19
OpenGL renderer: Intel(R) Iris(TM) Plus Graphics 655
OpenGL vendor: Intel Inc.

Change History (4)

comment:1 by Eric Pettersen, 6 years ago

Component: UnassignedStructure Comparison
Owner: set to Tom Goddard
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionPure translation morph not correct

comment:2 by Tom Goddard, 6 years ago

Resolution: fixed
Status: assignedclosed

Fixed.

The corkscrew motion done by morph to handle a model rotation and shift suffered from numerical precision errors when the rotation was near 0 degrees. I've fixed it so rotations under 0.1 degree use the linear interpolation method instead of corkscrew. Visual difference will be negligible.

in reply to:  3 ; comment:3 by charles.sindelar@…, 6 years ago

Thanks Tom!

...

Meanwhile I am soldiering on with the science... I started using Isolde over the weekend and it's been amazing! I think this plugin really demonstrates the power of ChimeraX - so cool that it enables such tools.

Doing this I learned a few more tricks for using ChimX, and thought further about the UI. Now I think that I could pretty much maximize my productivity/happiness with just several additional keyboard shortcuts.

Namely, did you guys ever discuss the possibility of doing something like this:

<hot key #1, for example shift escape> to move all the tool panels in back of the main window (or just disappearing them). Pressing again toggles to move them to the front again.
<hot key #2, for example command-tilda> to cycle through all the tool windows, in a consistent, pre-defined order.  <shift hot key #2> would reverse the cycle direction
<hot key #3, for example shift-return> toggles between full keyboard focus in the main graphics window (arrow keys affect selection), to full focus on the command line (arrow keys scroll through the command history). 

Mainly, my goal in suggesting this is to minimize (or eliminate) the time consuming and attention-distracting steps of moving the mouse to a click on very specific area (command line, tool window partially or wholly hidden, etc) in order to perform tasks that could be done by typing (like activating a particular mode, turning on H-bonds, etc). As it stands I spend a LOT of my time doing this, when I would rather be actually playing with my molecules   __

Cheers!

Chuck

On 3/9/20, 5:58 PM, "ChimeraX" <ChimeraX-bugs-admin@cgl.ucsf.edu> wrote:

    #2928: Pure translation morph not correct
    -------------------------------------------+-------------------------
              Reporter:  charles.sindelar@…    |      Owner:  Tom Goddard
                  Type:  defect                |     Status:  closed
              Priority:  normal                |  Milestone:
             Component:  Structure Comparison  |    Version:
            Resolution:  fixed                 |   Keywords:
            Blocked By:                        |   Blocking:
    Notify when closed:                        |   Platform:  all
               Project:  ChimeraX              |
    -------------------------------------------+-------------------------
    Changes (by Tom Goddard):
    
     * status:  assigned => closed
     * resolution:   => fixed
    
    
    Comment:
    
     Fixed.
    
     The corkscrew motion done by morph to handle a model rotation and shift
     suffered from numerical precision errors when the rotation was near 0
     degrees.  I've fixed it so rotations under 0.1 degree use the linear
     interpolation method instead of corkscrew.  Visual difference will be
     negligible.
    
    --
    Ticket URL: <https://nam05.safelinks.protection.outlook.com/?url=https%3A%2F%2Fplato.cgl.ucsf.edu%2Ftrac%2FChimeraX%2Fticket%2F2928%23comment%3A2&amp;data=02%7C01%7Ccharles.sindelar%40yale.edu%7Cb3dc742ced4d453a658c08d7c474f523%7Cdd8cbebb21394df8b4114e3e87abeb5c%7C0%7C0%7C637193878920170496&amp;sdata=tKpwe%2BKd40La9eaMoxYvLwAQKlwN6mBNdLaEF9X%2F5bY%3D&amp;reserved=0>
    ChimeraX <https://nam05.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.rbvi.ucsf.edu%2Fchimerax%2F&amp;data=02%7C01%7Ccharles.sindelar%40yale.edu%7Cb3dc742ced4d453a658c08d7c474f523%7Cdd8cbebb21394df8b4114e3e87abeb5c%7C0%7C0%7C637193878920170496&amp;sdata=qLjwQBfFM15omD%2BO9yEnIIM3WbA1qtnpXKU0XU0A0%2Bg%3D&amp;reserved=0>
    ChimeraX Issue Tracker
    

Last edited 6 years ago by Tom Goddard (previous) (diff)

comment:4 by Tom Goddard, 6 years ago

Transferred these UI suggestions to ticket #2933.

Note: See TracTickets for help on using tickets.