# INITIALIZE # for Proteopedia (applet) if (_applet) { script "/wiki/images/d/de/MPSupportVersion01.spt" } # for Projection (application) else { script MPSupportVersion01.spt } initializeBeforeEachCycle # DEFINE VARIABLES & VALUES spinDefault = true; delayFive = 5.0 # 1.5 for testing -- 5.0 for production delayTwo = 2.0 # 0.75 for testing -- 2.0 for production initialProteinZoom = 100 if (jmolSmall) { initialProteinZoom = 90 set antialiasdisplay true } # LOAD MOLECULE (restores windowcentered) if (_applet) { load "/wiki/images/c/c1/Hivpi_binding_simulation.pdb.gz" } else { load hivdrug.pdb #aka hivpi_binding_simulation.pdb.gz } # INITIALIZE MOLECULE (LIGHT CPK COLORS ETC.) initializeMolecule # BACKGROUND #background black # black is the default # BANNER AT TOP (bannerMessage2 is defined in MPSupportVersion01.spt) showBannerAcrossTop("HIV protease inhibitors keep people with HIV alive " + \ "every day!", bannerMessage2) # RITONAVIR STICKS center 1.1 and rit restrict 1.1 and rit color cpk wireframe 0.25 spacefill off # LABEL RITONAVIR # was rit.c75 labelAtomWithPointer("rit.c44","Ritonavir Drug","white") # ELEMENT COLOR KEY var elist = array("C", "O", "N", "S") elementColorKey(elist) # ORIENT reset # restores windowcentered center {-5.79988 30.690685 -8.028942} rotate z -70.61 rotate y 119.17 rotate z -52.83 spinOn # reset, rotate turns spin off set rotationRadius 47.14 # RESTORE FALSE WINDOWCENTERED AFTER RESET set windowcentered false # ZOOM UP (Use zoom loop instead of Jmol's zoomto # because zoomto "fights" with user rotation) zoomRotatableTo(380) delay @delayFive # spinning continues during a delay # GROW DRUG SPACEFILL select 1.1 and rit growSpacefill() delay @delayFive # MOVETO POSITION TO SHOW PROTEIN moveto /* time, axisAngle */ 2.5 { 658 375 -654 149.03} \ /* zoom, translation */ @initialProteinZoom 0.05 5.07 \ /* center, rotationRadius */ {15.360737 26.123432 3.1130157} 34.657227 \ /* navigation center, translation, depth */ \ {0.0 0.0 0.0} -20.670067 -20.21491 0.0; # bug? this is required despite "show windowcentered" reporting false. set windowCentered false delay @delayTwo # SPACEFILL ALL MODELS select rit spacefill wireframe off # SHOW PROTEIN # -- BLACK BACKBONE select protein backbone 0.4 color backbone black # LABEL HIV PROTEASE labelAtomWithPointer("atomno=1085","HIV Protease","[1,1,1]") labelAtomWithPointer("1.21 and atomno=1085","HIV Protease Inhibited!","[1,1,1]") # -- FADE IN FROM BLACK TO WHITE select protein for (zstep = 1; zstep < 255; zstep = zstep + 5) { color backbone [@zstep,@zstep,@zstep] color label [@zstep,@zstep,@zstep] delay 0.07 } # ANIMATION AND SPINNING ARE BEST NOT ON CONCURRENTLY. spin off # ANIMATE BINDING animation mode once # forward only, not palindrome for (var acount = 1; acount <= 3; acount += 1) { # ONE CYCLE OF ANIMATION animation on # WAIT TILL ANIMATION IS COMPLETED while (_animating) { delay 0.1 } delay 1 # HIDE LIGAND AND LABEL select rit spacefill off label off # PROTEIN BACK TO FRAME 1 frame 1 delay @delayTwo # ROTATE PROTEIN var xstep = 1; for (xstep = 1; xstep < 65; xstep = xstep + 1) { rotate Y 1; delay 0.04 } delay 1.0 # SHOW LIGAND AND LABEL spacefill on labelAtomWithPointer("rit.c44","Ritonavir Drug","white") delay 1 #message @{"Animation cycle " + acount} } zoomRotatableTo(180) # LABEL HIV PROTEASE LOWER DOWN FOR HIGHER ZOOM labelAtomWithPointer("atomno=1205","HIV Protease","white") labelAtomWithPointer("1.21 and atomno=1205","HIV Protease Inhibited!","white") # MOVE RITONAVIR LABEL TO FRONT select all set labelFront # CURRENT BACKBONE IS 0.4 -- SMOOTHLY REDUCE TO 0.15 select protein for (var wstep = 0.4; wstep > 0.15; wstep = wstep - 0.01) { backbone @wstep delay 0.1 } # SELECT RITONAVIR-CONTACTING AMINO ACIDS IN MODEL 21 #select within (4.0, (rit and 1.21)) and 1.21 #select within (group, selected) # ABOVE THEN show selected WAS USED TO OBTAIN THESE LISTS: select (84,82,81,50,49,48,30,29,28,27,25) and :a select selected or ((82,81,50,49,48,32,30,29,28,27,25,23,8) and :b) select selected or (water and (1,5,14,36,50,51,10)) # ~ritcon: ritonavir contacts define ~ritcon selected # GROW WIREFRAME CONTACTING AMINO ACIDS TO 0.4 color cpk growWireframe(0.4) # ANIMATE BINDING WITH CONTACTING STICKS var lastACount = 3 for (var acount = 1; acount <= @lastACount; acount += 1) { # ONE CYCLE OF ANIMATION animation on # WAIT TILL ANIMATION IS COMPLETED while (_animating) { delay 0.1 } # ROTATE PROTEIN for (var xstep = 0; xstep < 65; xstep += 1) { rotate Y 1; delay 0.04 } delay 1.0 if (acount < @lastACount) { frame 1 } delay 1.0 } spinOn delay @delayFive #==================================== message "Jmol Script Execution Completed" #====================================