This is a read-only mirror of pymolwiki.org
Difference between revisions of "Iterate State"
Jump to navigation
Jump to search
m |
(space argument) |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
− | |||
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. | 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. | ||
Line 18: | Line 17: | ||
</source> | </source> | ||
==From Python== | ==From Python== | ||
− | To get a list of positions | + | To get a list of positions |
<source lang="python"> | <source lang="python"> | ||
+ | # either with global stored object | ||
from pymol import stored | from pymol import stored | ||
− | |||
stored.pos = [] | stored.pos = [] | ||
cmd.iterate_state(1, 'all', 'stored.pos.append((x,y,z))') | 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}) | ||
</source> | </source> | ||
Revision as of 16:20, 31 March 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
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})