#2930 closed defect (not a bug)
"preframe" off by 1 during recorded morph
Reported by: | 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 During movie recording of morphed protein conformations, the "perframe" command lags behind by one frame. The following sequence can produce the bug; you can see how the ADP is following the opening and closing of kinesin's nucleotide pocket, but it starts moving one frame after the morphed ribbon starts moving, and it stops moving one frame after the morphed ribbon stops moving: open 1mkj open 1bg2 align #2/A:260-290@CA,N,C,O to #1/A:260-290@CA,N,C,O morph #1,2 wrap t alias dragadp align #1/A:85-92@ca,n,c,o toAtoms #3/A:85-92@ca,n,c,o show #1 target m ~show #1 target r ~show #1 target a show #1:adp movie reset; movie record; perframe "dragadp" frames 7; coordset #3 1,21,5; wait 7; movie stop; movie encode "~/Desktop/test3.mov" 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 > 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 #3/A:85-92@ca,n,c,o > dragadp Unequal number of atoms to pair, 32 and 0 > 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 #3/A:85-92@ca,n,c,o > show #1 target m > ~show #1 target r > ~show #1 target a > show #1:adp > 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.000 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 OpenGL version: 4.1 INTEL-10.36.19 OpenGL renderer: Intel(R) Iris(TM) Plus Graphics 655 OpenGL vendor: Intel Inc. File attachment: test3.mov
Attachments (1)
Change History (4)
by , 6 years ago
comment:1 by , 6 years ago
Component: | Unassigned → Structure Comparison |
---|---|
Owner: | set to |
Platform: | → all |
Project: | → ChimeraX |
Status: | new → assigned |
Summary: | ChimeraX bug report submission → "preframe" off by 1 during recorded morph |
comment:2 by , 6 years ago
Resolution: | → not a bug |
---|---|
Status: | assigned → closed |
The problem is that you are doing two things at each frame, you running your dragadp alias using perframe, and you are going to the next morph time step using the coordset command. Your dragadp alias aligns the ADP to the morph.
movie reset; movie record; perframe "dragadp" frames 7; coordset #3 1,21,5; wait 7; movie stop; movie encode "~/Desktop/test3.mov"
The trouble is first you align ADP to #3 and then you change the #3 coordinates, so the ADP is not matched to the coordinates, the coordinates are advanced by one frame. You need to first advance the coordinates, and then align. So reverse the order of your perframe and coordset commands:
movie reset; movie record; coordset #3 1,21,5; perframe "dragadp" frames 7; wait 7; movie stop; movie encode "~/Desktop/test3.mov"
Commands that act over many frames in general do their action each frame in the order the original commands were run. So if the order matters as it does in this case then the commands need to be in the right order in the command script.
I'd also suggest you save the movie as test3.mp4 which uses the most widely used H.264 encoding which will give better quality for file size and better supported by movie players. than test3.mov.
comment:3 by , 6 years ago
Thanks Tom- now I think I understand. So both "coordset" and "perframe" are basically using the same event handler. That makes sense. I was wondering whether it might be something like that, but I never quite put it together... I somehow thought that "perframe" was a subsidiary of "coordset", like it is in Chimera.. On 3/9/20, 6:58 PM, "ChimeraX" <ChimeraX-bugs-admin@cgl.ucsf.edu> wrote: #2930: "preframe" off by 1 during recorded morph -------------------------------------------+------------------------- Reporter: charles.sindelar@… | Owner: Tom Goddard Type: defect | Status: closed Priority: normal | Milestone: Component: Structure Comparison | Version: Resolution: not a bug | Keywords: Blocked By: | Blocking: Notify when closed: | Platform: all Project: ChimeraX | -------------------------------------------+------------------------- Changes (by Tom Goddard): * status: assigned => closed * resolution: => not a bug Comment: The problem is that you are doing two things at each frame, you running your dragadp alias using perframe, and you are going to the next morph time step using the coordset command. Your dragadp alias aligns the ADP to the morph. movie reset; movie record; perframe "dragadp" frames 7; coordset #3 1,21,5; wait 7; movie stop; movie encode "~/Desktop/test3.mov" The trouble is first you align ADP to #3 and then you change the #3 coordinates, so the ADP is not matched to the coordinates, the coordinates are advanced by one frame. You need to first advance the coordinates, and then align. So reverse the order of your perframe and coordset commands: movie reset; movie record; coordset #3 1,21,5; perframe "dragadp" frames 7; wait 7; movie stop; movie encode "~/Desktop/test3.mov" Commands that act over many frames in general do their action each frame in the order the original commands were run. So if the order matters as it does in this case then the commands need to be in the right order in the command script. I'd also suggest you save the movie as test3.mp4 which uses the most widely used H.264 encoding which will give better quality for file size and better supported by movie players. than test3.mov. -- Ticket URL: <https://nam05.safelinks.protection.outlook.com/?url=https%3A%2F%2Fplato.cgl.ucsf.edu%2Ftrac%2FChimeraX%2Fticket%2F2930%23comment%3A2&data=02%7C01%7Ccharles.sindelar%40yale.edu%7Ca05ef197c4d5438fcff908d7c47d5a3d%7Cdd8cbebb21394df8b4114e3e87abeb5c%7C0%7C0%7C637193914887283186&sdata=bG9QovyflOgNgE%2B1e6FntLztubZPBxN%2FX%2FLI7WIWh28%3D&reserved=0> ChimeraX <https://nam05.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.rbvi.ucsf.edu%2Fchimerax%2F&data=02%7C01%7Ccharles.sindelar%40yale.edu%7Ca05ef197c4d5438fcff908d7c47d5a3d%7Cdd8cbebb21394df8b4114e3e87abeb5c%7C0%7C0%7C637193914887283186&sdata=9cP3Qust0l88hM0dm9iiVFsmbx4bcdD8z7%2FzpKkkcII%3D&reserved=0> ChimeraX Issue Tracker
Added by email2trac