Zero residues

From PyMOLWiki
Revision as of 12:44, 2 April 2007 by Inchoate (talk | contribs) (New page: == OVERVIEW == This script will renumber all the residues such that the first one is numbered 0. This is often helpful when dealing with alignments. == EXAMPLE == <source lang="python"> zero_residues ...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

OVERVIEW

This script will renumber all the residues such that the first one is numbered 0. This is often helpful when dealing with alignments.

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):
	"""
	PURPOSE: renumbers the residues so that the first one is zero.
	USAGE: zero_residues protName
	EXAMPLE: zero_residues *
	EXAMPLE: zero_residues 1ESR
	"""
	
	# 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 == 0 ):
			continue;
		# reassign the residue numbers
		cmd.alter("%s" % p, "resi=str(int(resi)-%s)" % stored.first)
		# update pymol
		cmd.sort()

# let pymol know about the function
cmd.extend("zero_residues", zero_residues)