Iterate State: Difference between revisions
Jump to navigation
Jump to search
(space argument) |
(ARGUMENTS) |
||
Line 2: | Line 2: | ||
===USAGE=== | ===USAGE=== | ||
iterate_state state,(selection),expression | iterate_state state, (selection), expression | ||
=== ARGUMENTS === | |||
* state = integer: state-index if positive number or any of these: | |||
** state = 0: all states | |||
** state = -1: current state | |||
* selection = string: atom selection | |||
* expression = string: expression in valid [http://en.wikipedia.org/wiki/Python_syntax_and_semantics python syntax] | |||
===EXAMPLES=== | ===EXAMPLES=== |
Revision as of 07:09, 5 July 2011
Iterate state can be used to extract position data from an object or selection. The expression can use the variables x, y, and z which are the position of the current atom. One common usage is to extract the positions as a python list to alter then write back to the molecule using alter_state.
USAGE
iterate_state state, (selection), expression
ARGUMENTS
- state = integer: state-index if positive number or any of these:
- state = 0: all states
- state = -1: current state
- selection = string: atom selection
- expression = string: expression in valid python syntax
EXAMPLES
From PyMOL command line
To get the sum of x coordinates:
stored.sum_x = 0.0
iterate_state 1,(all),stored.sum_x = stored.sum_x + x
To get a list of the positions in a selection
stored.pos = []
iterate_state 1, (all), stored.pos.append((x,y,z))
From Python
To get a list of positions
# either with global stored object
from pymol import stored
stored.pos = []
cmd.iterate_state(1, 'all', 'stored.pos.append((x,y,z))')
# or with local object, passed with space argument
pos = []
cmd.iterate_state(1, 'all', 'pos.append((x,y,z))', space={'pos': pos})