I have just checked in the following modifications to Jmol that serve 
several purposes, among them this issue.
This functionality is proposed for Jmol 11.1.9.


To understand what is new, first understand what is OLD:

In Jmol 10 or 11, when you specify:

  select */2
or
  model 2

or in Jmol 11, when you use:

  display */2

You are specifying "model 2" in a multi-model file.  The first thing to 
realize, though, is that this is not necessarily the "second" model in 
the file. Specifically, PDB files allow the option to specify the model 
number using the MODEL keyword. But other
than that, "2" does refer to the "second" model, and I will refer to 
them that way in what follows.

When multiple files are loaded, as with:

load "files" "caffeine.xyz" "movie.xyz" "1crn.pdb"

you might have three files loaded, and some of those files have multiple 
models. How to refer to these?
The solution introduced in Jmol 10 is that in this case the model 
numbers are in the thousands:

1001   first model (caffeine.xyz)
2001   first frame of movie.xyz
2002   next frame of movie.xyz
...
3001   the model in 1crn.pdb

So you could say

model 2001

or

model all
display */1002,*/3001

However,

model 2

would just show all models, because there is no "model 2".

The change I just checked in allows for a simpler way to work with 
multimodel files and multifile loads. You can now specify a model using 
a decimal number composed of the file number and the model number:

 file.model

For example:

load "files" "caffeine.xyz" "movie.xyz" "1crn.pdb"

models all
display */1.1  #just caffeine.xyz
display */2.1,*/2.3,*/2.4  #just three of the frames in movie.xyz

What's nice about this is that decimal notation is unambiguous, so we 
can dispense with "*/":

models all
display 2.1,2.3,2.4

works just fine.

I've set it so that if you use "2.0" then you are referring to ALL 
models in file 2.

display 2.0

Note that you cannot just say

display 2

because that refers to RasMol notation for the 2nd residue. However, you can
do the following:

display */2

which means "the second model" if only one file is loaded (as usual) or 
"all models in the second file" if more than one file is loaded (new).

In general, if you want to play with this, I recommend always using the 
decimal notation, because it is totally unambiguous:

display 1.2

Display the second model in the first file

display 2.0

Display all models in the second file.

The notation carries over to the frame/animation command:

display *
frame range 1.3 1.5
animation play

plays the third through fifth frames of file 1.

The difference between that and

display *
frame range 3 5
animation play

is important. In the second case (a) we allow for the possibility that a 
PDB file has a MODEL keyword that has reassigned
numbers, and (b) in a multi-file environment it's not clear what would 
happen, so this is not allowed when more than one file is loaded. 
Basically, referring to models by their PDB keyword number and loading 
multiple files is not supported.

DISPLAY AND FRAME
---------------------------

The interaction between DISPLAY and FRAME may not be obvious. FRAME 
selects for display a particular model or all models. Independently of 
that, DISPLAY selects for what atoms are to be displayed OF those 
frames/models selected. Surprises may occur if you mix these commands 
without realizing this. So, for example:

model 1.3
display 1.4

displays nothing, because only model 1.3 is chosen, and only atoms from 
model 1.4 are displayed. Basically, if you are going to mix and match, do:

model all
display .....

or

display *
model ....

In certain cases it will be valuable to use both, as in:

display connected(hbond)
model next

Where now as we switch models, only the atoms connected by hydrogen 
bonds are shown.
The 1001,1002,... notation is still there; I would just consider it 
unnecessary now.

Bob









Angel Herraez wrote:

>Well, I was wrong and too fast in replying (late night hours); this 
>morning the idea came to me that DISPLAY could do the trick, as Dave 
>has already pointed out.
>
>I think yes, the implementation of  "frame {n1} {n2} {n3}" would be 
>nice, if feasible.
>(Bob, your post did came through jmol-users OK)
>
>El 7 Feb 2007 a las 4:42, Bob Hanson escribió:
>  
>
>>But of course. Great idea. Any objections?
>>    
>>
>
>
>
>-------------------------------------------------------------------------
>Using Tomcat but need to do more? Need to support web services, security?
>Get stuff done quickly with pre-integrated technology to make your job easier.
>Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
>http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>_______________________________________________
>Jmol-users mailing list
>[email protected]
>https://lists.sourceforge.net/lists/listinfo/jmol-users
>  
>


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Jmol-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jmol-users

Reply via email to