Alter
Redirect page
Redirect to:
alter changes one or more atomic properties over a selection using the python evaluator with a separate name space for each atom. The symbols defined in the name space, which are are explained in Iterate are:
name, resn, resi, chain, alt, elem, q, b, segi, type (ATOM,HETATM), partial_charge, formal_charge, text_type, numeric_type, ID, vdw
All strings must be explicitly quoted. This operation typically takes several seconds per thousand atoms altered.
WARNING: You should always issue a sort command on an object after modifying any property which might affect canonical atom ordering (names, chains, etc.). Failure to do so will confound subsequent "create" and "byres" operations.
Contents
- 1 USAGE
- 2 EXAMPLES
- 2.1 Change chain label and residue index
- 2.2 Change van der Waals radius of a given atom
- 2.3 Renumber the amino acids in a protein, so that it starts from 0 instead of its offset as defined in the structure file
- 2.4 Change the b values of all atoms to the distance of the atoms to a reference point
- 2.5 Copy (transfer) the color from one object to another
- 3 PYMOL API
- 4 SEE ALSO
USAGE
alter (selection),expression
EXAMPLES
Change chain label and residue index
alter (chain A),chain='B'
alter (all),resi=str(int(resi)+100)
sort
Change van der Waals radius of a given atom
alter (name P), vdw=1.90
Note that is if dots, spheres, mesh or surface representation is used. You have to refresh the view with
rebuild
Renumber the amino acids in a protein, so that it starts from 0 instead of its offset as defined in the structure file
# The first residue in the structure file for 1cll is 4. To change this to 0, maybe to match scripts
# outputted from other programs, just remove the offset of 4 from each atom
alter 1cll, resi=str(int(resi)-4)
# refresh (turn on seq_view to see what this command does).
sort
Change the b values of all atoms to the distance of the atoms to a reference point
# reference point
x0,y0,z0=[1,2,3]
# calculate distance values between the reference point and all the atoms
alldist = []
iterate_state 1, yourstruc, alldist.append(((x-x0)**2.0+(y-y0)**2.0+(z-z0)**2.0)**0.5)
# assign distance values to b-factors
di = iter(alldist)
alter yourstruc, b=di.next()
# visualize the distances
spectrum b, rainbow, yourstruc
Copy (transfer) the color from one object to another
stored.colors = {}
iterate obj1, stored.colors[chain,resi,name] = color
alter obj2, color = stored.colors.get((chain,resi,name), color)
recolor
PYMOL API
cmd.alter(string selection, string expression, int quiet=1, dict space=None)
As explained before, all strings must be explicitly quoted. For example to change all HETATM records to ATOM you should do:
cmd.alter('all', 'type="ATOM"')