> 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