User:Remig/plico/turn
< User:Remig | plico
Jump to navigation
Jump to search
Turn allows the user to make type I and II reverse turns and beta-hairpins in polypeptides with a single mouse click on the corner oxygen where you want the turn. ALT-CLICK creates a type I turn and SHIFT-CLICK makes a type II.
Turn is a member of the Plico suite of protein folding tools described here. It may be installed and accessed as a macro with the file:
Title=PLICO Turn Script=script <path to your scripts folder>/turn.spt;plicoTurn
saved as plicoTurn.macro in your .jmol/macros folder as described in Macro.
Copy and paste the following to a text editor and save to your scripts folder as turn.spt, replacing the text "<SCRIPT_PATH>" with the path to your scripts:
# turn - Jmol script by Ron Mignery #*****Replace <SCRIPT_PATH> with path to your scripts folder before use*** # v1.0 beta 2/14/2014 for Jmol 14 # # Apply a type I or type II turn to a polypeptide # # Bound to ALT-LEFT-CLICK by plicoTurn function turnCargo1MB() { print "turnCargo1MB()"#TBD # If O atom picked if ({atomIndex=_atomPicked}.atomName = "O") { gChain = {atomIndex=_atomPicked}.chain var cMidx = getScBBidx (_atomPicked, gChain) var caMidx = getNwardBBidx (cMidx, gChain) var nMidx = getNwardBBidx (caMidx, gChain) var ncMidx = getNwardBBidx (nMidx, gChain) var nPidx = getCwardBBidx (cMidx, gChain) var caPidx = getCwardBBidx (nPidx, gChain) var cPidx = getCwardBBidx (caPidx, gChain) var cnPidx = getCwardBBidx (cPidx, gChain) save state gState selectNwardIdx(caPidx, 0) setDihedralIdx(cnPidx, cPidx, caPidx, nPidx, 0) # cWard Psi selectNwardIdx(nPidx, 0) setDihedralIdx(cPidx, caPidx, nPidx, cMidx, -90) # cWard Phi selectNwardIdx(caMidx, 0) setDihedralIdx(nPidx, cMidx, caMidx, nMidx, -60) # nWard Psi selectNwardIdx(nMidx, 0) setDihedralIdx(cMidx, caMidx, nMidx, ncMidx, -40) # nWard Phi handleCollisions2( 0) if (countcollisions(({})) > 0) { var p = prompt("Unable to handle all collisions!") restore state gState } } } # Bound to SHIFT-LEFT-CLICK by plicoTurn function turnCargo2MB() { print "turnCargo2MB()"#TBD # If O atom picked if ({atomIndex=_atomPicked}.atomName = "O") { gChain = {atomIndex=_atomPicked}.chain var cMidx = getScBBidx (_atomPicked, gChain) save state gState var caMidx = getNwardBBidx (cMidx, gChain) var nMidx = getNwardBBidx (caMidx, gChain) var ncMidx = getNwardBBidx (nMidx, gChain) var nPidx = getCwardBBidx (cMidx, gChain) var caPidx = getCwardBBidx (nPidx, gChain) var cPidx = getCwardBBidx (caPidx, gChain) var cnPidx = getCwardBBidx (cPidx, gChain) # Hi to lo since N-terminal is to move selectNwardIdx(caPidx, 0) setDihedralIdx(cnPidx, cPidx, caPidx, nPidx, 0) # cWard Psi selectNwardIdx(nPidx, 0) setDihedralIdx(cPidx, caPidx, nPidx, cMidx, 90) # cWard Phi selectNwardIdx(caMidx, 0) setDihedralIdx(nPidx, cMidx, caMidx, nMidx, 120) # nWard Psi selectNwardIdx(nMidx, 0) setDihedralIdx(cMidx, caMidx, nMidx, ncMidx, -70) # nWard Phi handleCollisions2( 0) if (countcollisions(({})) > 0) { var p = prompt("Unable to handle all collisions!") restore state gState } } } # Top level of Turn function plicoTurn() { # Load tug functions if not already if (kTug < 3) { script "<SCRIPT_PATH>tug.spt" if (kTug < 3) { prompt ("A newer version of TUG.SPT is required") quit } } gPlico = "TURN" plicoPrelim() select GLY and Oxygen halo on select all gEcho = ("_______TURN_______| *** Click on O ***|ALT-CLICK=Type I" + "|SHIFT-CLICK=Type II|DOUBLE-CLICK=exit") echo @gEcho gChain = "" unbind bind "ALT-LEFT-CLICK" "_pickAtom"; bind "ALT-LEFT-CLICK" "+:turnCargo1MB"; bind "SHIFT-LEFT-CLICK" "_pickAtom"; bind "SHIFT-LEFT-CLICK" "+:turnCargo2MB"; bind "DOUBLE" "plicoExit"; } # End of TURN.SPT