TCL script for VMD to open the backbone of a protein
set molback [atomselect top "backbone"]
set backbone_idx [$molback get index ]
foreach backatom [split $backbone_idx ] {
set adj [atomselect top "not (same residue as index $backatom) and within 2 of (index $backatom)"]
if {[llength [split [$adj get index]]] == 1} {
puts -nonewline $backatom
puts -nonewline " -> "
if { [$adj get index] < $backatom } {
puts -nonewline [$adj get index]
puts " skipped. "
} else {
puts [$adj get index]
set rotatom [atomselect top "index $backatom"]
set rotres [$rotatom get residue]
set mobileres [ atomselect top "residue >= $rotres"] set adjinres [atomselect top "(same residue as index $backatom) and within 2 of (index $backatom)"]
set rotatom_coord [lindex [$rotatom get {x y z}] 0 ]
if { $rotres < [$adj get residue] } {
set adjinres_coord [lindex [$adjinres get {x y z}] 0 ]
set adj_coord [lindex [$adj get {x y z}] 0 ]
} else {
set adjinres_coord [lindex [$adj get {x y z}] 0 ]
set adj_coord [lindex [$adjinres get {x y z}] 0 ]
}
$mobileres move [trans angle $adjinres_coord $rotatom_coord $adj_coord -5 deg]
}
} else {
}
}