Zero residues: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
|||
Line 1: | Line 1: | ||
== OVERVIEW == | == OVERVIEW == | ||
This script will renumber all the residues such that the first one is numbered 0. This is often helpful when dealing with alignments. | This script will renumber all the residues such that the first one is numbered 0. This is often helpful when dealing with alignments. | ||
=== Ordering from Sequence End === | |||
If you want to change numbering based off the last residue's number in the sequence, just replace '''first''' in the code with '''last'''. | |||
== EXAMPLE == | == EXAMPLE == |
Revision as of 08:10, 14 May 2007
OVERVIEW
This script will renumber all the residues such that the first one is numbered 0. This is often helpful when dealing with alignments.
Ordering from Sequence End
If you want to change numbering based off the last residue's number in the sequence, just replace first in the code with last.
EXAMPLE
zero_residues 1AFK
zero_residues *
INSTALL
Copy the source code below, to "zero_residues.py" and then simply run the file. The command, "zero_residues" will now be defined and can be used as in the examples above.
CODE
import pymol
def zero_residues(sel1,offset=0):
"""
PURPOSE: renumbers the residues so that the first one is zero, or offset .
USAGE: zero_residues protName # first residue is 0
USAGE: zero_residues protName, 5 # first residue is 5
EXAMPLE: zero_residues *
"""
offset = int(offset)
# variable to store the offset
stored.first = None
# get the names of the proteins in the selection
names = cmd.get_names(sel1)
# for each name shown
for p in names:
# get this offset
cmd.iterate("first %s and polymer and n. CA" % p,"stored.first=resi")
# don't waste time if we don't have to
if ( stored.first == offset ):
continue;
# reassign the residue numbers
cmd.alter("%s" % p, "resi=str(int(resi)-%s)" % str(int(stored.first)-offset))
# update pymol
cmd.sort()
# let pymol know about the function
cmd.extend("zero_residues", zero_residues)