RE: [PyMOL] multiple MODEL files

2002-03-25 Thread DeLano, Warren
 From: Eckhart Guthöhrlein 

 I'm trying to use pymol for the display of pdb files 
 containing multiple 
 models using the MODEL card. Indeed, pymol reads in all 
 models in the file.
 Currently, I'm able to switch between them using the frame 
 command. Is 
 there a different way to do this? Something like next_model or 
 prev_model or show_model ...?
 Furthermore, I tried to use the selection command to access models.
 
The model operation in the selection command allows you to select objects by 
number -- not models in the sense of multi-model PDB files.  The first PDB file 
you load is model 1, the second is model 2, etc.  Sorry for the confusion.  
Model was a bad choice in terminology and should be replaced with an object 
operator instead.  However, the chemical python package uses model instead of 
object, so it's probably a hopeless case.

PyMOL treats multi-model PDB files like trajectories, in that each model is one 
state of the trajectory.  You can display them as a series of frames as you 
were doing.  You can use the left and right arrow keys to iterate through, or 
the forward and back commands, or press the play button.  You can use mset to 
display states in a different order, etc. 

 color red,(model 10)
 
 leads to
 
 SelectorSelect1-Error: Invalid Model
   PyMOL: abrupt program termination

That's a flat-out bug.  Thanks for finding it.  

 although model 10 exists and has been read in, as shown before by the 
 message

As I indicated above, model/object 10 doesn't actually exist, but PyMOL 
certainly shouldn't crash...I'll fix that.

 How to access models in an atom selection?

You can't address atoms individually in one model or another without breaking 
them into separate objects.  You can do this using a Python loop and use the 
create command after loading the model file.

When you create an atom selection, you are essentially selecting all states of 
those atoms.  However, many commands take a state argument, which is the 
1-based index for which state you wish to operate on for the atom selection.  
This is what allows you to change the conformations of atoms in a particular 
state, for instance.  NOTE the PyMOL's atom selections can span any number of 
objects...

 Another question: Is there a way to list details about the currently 
 available objects? Like sequence, secondary structure, how many 
 models/chains/ etc.? And the current properties like colour, 
 charge etc. 
 of an atom selection? I just browsed the manual very quickly, 
 so sorry 
 if I overlooked the information.

The manual stinks.  Some volunteer with more time than myself needs to team up 
with me to create a decent manual -- but one can't complain too much about free 
software.  I can think of more than one company that will sell you an expensive 
closed-source license similar packages, and still not provide you with a decent 
manual.  If you prefer DeLano Scientific's open-source approach, then be sure 
to support it with effort or funding.

The key commands are alter, alter_state, iterate, and label -- and they 
represent the heart of PyMOL's built-in atom property manipulation capability.  
However, there are a bunch of other commands for manipulating coordinates and 
geometries.

iterate (all),print name
iterate (all),print color
iterate (all),print partial_charge
iterate (name ca),print resn,resi,s

alter (all),vdw=vdw*0.5
alter (all),resi=int(resi)+10
alter (chain E),chain='C'

alter_state 1,(all),x=x+2.0

label (name ca),resi

label (all),name
label (all),%1.2f%vdw

In all cases, a Python expression is evaluated for each atom in the selection.

See help iterate, etc., but note that the docs are incomplete.  To see all 
the properties which can be printed or altered, load a model and then try:

iterate (index 1),print locals().keys()

Note that you can also obtain and manipulate a complete copy of any model (erg, 
object) at the Python level, using Python code like:

from pymol import cmd

m = cmd.get_model('old')
m.atom[0].name='C1'
cmd.load_model(m,'new')

Cheers,
Warren










[PyMOL] ss coloring

2002-03-25 Thread Nat Echols
Is there any way to color by secondary structure?  I know of other
programs that do this (Molmol, for example- though its colors are
hideous); I'd be happy using a scripted solution if that's easiest.  I'm
guessing there's some easy way to loop through residues or atoms and
determine what their structure assignment is, but I never figured out how
to access this info.

If there isn't anything that'll do this, perhaps I'll just write it.

-Nat




Re: [PyMOL] ss coloring

2002-03-25 Thread Warren L. DeLano
On Tue, 26 Mar 2002, Nat Echols wrote:

 Is there any way to color by secondary structure?  I know of other

It's a snap:

# first, load a structure with defined SS

load $PYMOL_PATH/test/dat/1tii.pdb
hide
show cartoon

# now color

color green
color red,ss h
color yellow,ss l
set cartoon_discrete_colors=1

NOTE: the last command turns off color annoying color blending between
secondary structure elements.

Cheers,
Warren