Difference between revisions of "User:Remig/plico/turn"
< User:Remig | plico
Jump to navigation
Jump to search
(lc all functions) |
m |
||
| Line 3: | Line 3: | ||
'''Turn''' is a member of the Plico suite of protein folding tools described [[User:Remig/plico|here]]. It may be installed and accessed as a macro with the file: | '''Turn''' is a member of the Plico suite of protein folding tools described [[User:Remig/plico|here]]. It may be installed and accessed as a macro with the file: | ||
<pre>Title=PLICO Turn | <pre>Title=PLICO Turn | ||
| − | Script=script <path to your scripts folder>/turn.spt; | + | Script=script <path to your scripts folder>/turn.spt;plico_turn |
</pre> | </pre> | ||
saved as plicoTurn.macro in your .jmol/macros folder as described in [[Macro]]. | saved as plicoTurn.macro in your .jmol/macros folder as described in [[Macro]]. | ||
Revision as of 16:33, 16 May 2014
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. Either on a proline N rotates the omega bond 180 for a cis/trans transition.
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;plico_turn
saved as plicoTurn.macro in your .jmol/macros folder as described in Macro.
A copy of the Plico script tug.spt must be in the same directory as this script.
Copy and paste the following to a text editor and save to your scripts directory as turn.spt:
# turn - Jmol script by Ron Mignery
#
# v1.2 beta 5/16/2014 -lc all functions
#
# Apply a type I or type II turn to a polypeptide
#
# Bound to ALT-LEFT-CLICK by plico_turn
function turn_cargo_1_mb() {
# If O atom picked
if ({atomIndex=_atomPicked}.atomName = "O") {
gChain = {atomIndex=_atomPicked}.chain
var cMidx = get_sc_bb_idx (_atomPicked, gChain)
var caMidx = get_nward_bb_idx (cMidx, gChain)
var nMidx = get_nward_bb_idx (caMidx, gChain)
var ncMidx = get_nward_bb_idx (nMidx, gChain)
var nPidx = get_cward_bb_idx (cMidx, gChain)
var caPidx = get_cward_bb_idx (nPidx, gChain)
var cPidx = get_cward_bb_idx (caPidx, gChain)
var cnPidx = get_cward_bb_idx (cPidx, gChain)
save state gState
select_nward_idx(caPidx, 0)
set_dihedral_idx(cnPidx, cPidx, caPidx, nPidx, 0) # cWard Psi
select_nward_idx(nPidx, 0)
set_dihedral_idx(cPidx, caPidx, nPidx, cMidx, -90) # cWard Phi
select_nward_idx(caMidx, 0)
set_dihedral_idx(nPidx, cMidx, caMidx, nMidx, -60) # nWard Psi
select_nward_idx(nMidx, 0)
set_dihedral_idx(cMidx, caMidx, nMidx, ncMidx, -40) # nWard Phi
handle_collisions( 0)
if (count_collisions(({})) > 0) {
var p = prompt("Unable to handle all collisions!")
restore state gState
connect
}
}
# Else if PRO N atom picked
if (({atomIndex=_atomPicked}.atomName = "N")
and ({atomIndex=_atomPicked}.group = "PRO")) {
gChain = {atomIndex=_atomPicked}.chain
save state gState
var cMidx = get_nward_bb_idx (_atomPicked, gChain)
# Rotate 180 on omega
select_nward_idx(cMidx, 0)
rotateSelected {atomIndex=_atomPicked} {atomIndex=cMidx} 180.0
handle_collisions( 0)
if (count_collisions(({})) > 0) {
var p = prompt("Unable to handle all collisions!")
restore state gState
connect
}
}
}
# Bound to SHIFT-LEFT-CLICK by plico_turn
function turn_cargo_2_mb() {
# If O atom picked
if ({atomIndex=_atomPicked}.atomName = "O") {
gChain = {atomIndex=_atomPicked}.chain
var caMidx = get_nward_bb_idx (_atomPicked, gChain)
var cMidx = get_cward_bb_idx (caMidx, gChain)
save state gState
var caMidx = get_nward_bb_idx (cMidx, gChain)
var nMidx = get_nward_bb_idx (caMidx, gChain)
var ncMidx = get_nward_bb_idx (nMidx, gChain)
var nPidx = get_cward_bb_idx (cMidx, gChain)
var caPidx = get_cward_bb_idx (nPidx, gChain)
var cPidx = get_cward_bb_idx (caPidx, gChain)
var cnPidx = get_cward_bb_idx (cPidx, gChain)
# Hi to lo since N-terminal is to move
select_nward_idx(caPidx, 0)
set_dihedral_idx(cnPidx, cPidx, caPidx, nPidx, 0) # cWard Psi
select_nward_idx(nPidx, 0)
set_dihedral_idx(cPidx, caPidx, nPidx, cMidx, 90) # cWard Phi
select_nward_idx(caMidx, 0)
set_dihedral_idx(nPidx, cMidx, caMidx, nMidx, 120) # nWard Psi
select_nward_idx(nMidx, 0)
set_dihedral_idx(cMidx, caMidx, nMidx, ncMidx, -70) # nWard Phi
handle_collisions( 0)
if (count_collisions(({})) > 0) {
var p = prompt("Unable to handle all collisions!")
restore state gState
connect
}
}
# Else if PRO N atom picked
if (({atomIndex=_atomPicked}.atomName = "N")
and ({atomIndex=_atomPicked}.group = "PRO")) {
gChain = {atomIndex=_atomPicked}.chain
save state gState
var cMidx = get_nward_bb_idx (_atomPicked, gChain)
# Rotate 180 on omega
select_nward_idx(cMidx, 0)
rotateSelected {atomIndex=_atomPicked} {atomIndex=cMidx} 180.0
handle_collisions( 0)
if (count_collisions(({})) > 0) {
var p = prompt("Unable to handle all collisions!")
restore state gState
connect
}
}
}
# Top level of Turn
function plico_turn() {
# Load common 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"
plico_prelim(TRUE)
select (GLY and Oxygen) or (PRO and Nitrogen)
halo on
select all
gEcho = ("_______TURN_______| *** Click on O ***| (or proline N)|ALT-CLICK=Type I" +
"|SHIFT-CLICK=Type II|DOUBLE-CLICK=exit")
echo @gEcho
gChain = ""
unbind
bind "ALT-LEFT-CLICK" "_pickAtom";
bind "ALT-LEFT-CLICK" "+:turn_cargo_1_mb";
bind "SHIFT-LEFT-CLICK" "_pickAtom";
bind "SHIFT-LEFT-CLICK" "+:turn_cargo_2_mb";
bind "DOUBLE" "plico_exit";
}
# End of TURN.SPT