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 Jump to 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)