Fast and furious! 11.1.14 is ready. Forget 11.1.13 -- this is better. :)

The two things I've been working on are (a) a new way to get detailed 
information out of Jmol and (b) rotating/translation/inversion of 
selected atoms.

(a) The idea here is that we might want to ask questions like:

"Did the user select a tetrahedral carbon?"
"How many bonds are there to C5?"
"what is the average distance from this set of atoms to that set of atoms?"
"As I move this model relative to this other model, how do the distances 
change?"

These sorts of questions can now be addressed very easily. The notation 
is {atom expression}.atomProperty.

So we have: "Did the user select a tetrahedral carbon?"

  if {selected and carbon and connected(4)};echo Yes;else;echo No;endif

and "How many bonds are there to C5?"

  x = {c5}.bondcount
  message The number of bonds to C5 is %{x}.

or, even easier:

  message The number of bonds to C5 is %{{c5}.bondcount}

and "what is the average distance from this set of atoms to that set of 
atoms?"

 define chainA *:A
 define chainB *:B

 message The average distance from chain A to chain B is 
%{{chainA}.distance{chainB}}.


and "As I move this model relative to this other model, how do the 
distances change?"

set echo top left
echo The O5-C12 distance is %{{O5}.distance{C12}}

Now, if you move atom O5 relative to C12 (maybe they are in different 
molecules), then the echo text will change automatically.

The same goes for measurements. Just

  set dynamicMeasurements

to indicate that they should be recalculated when the screen is repainted.


I have the feeling that this now allows for quite an interesting set of 
possibilities for using Jmol in new ways.

A demo of these features is now at 
http://www.stolaf.edu/academics/chemapps/jmol/docs/examples-11/new.htm



Bob





   11.1.14:
  
   BRACES NOT PARENTHESES
  
   BIG change is that now we use {} in SET and %{} for designating atom 
expressions.
   This was necessary in order to align SET and %{} with IF, where () 
are also allowed.
  
   set a {oxygen}.temperature
   message %{{carbon}.x}
   if {O22}.bondCount > 2;goto ...
  
  
   .DISTANCE ATOM PROPERTY FOR SET, IF, and %{}
  
   d = {oxygen and * /1}.distance{oxygen and * /2}
   set echo top left
   echo the O-O distance is %{{oxygen and * /1}.distance{oxygen and * /2}}
  
   message %{{atomno=3}.distance{atomno=4}}
  
   DYNAMIC MEASUREMENTS
  
   Now that we can move atoms so easily, we don't want those 
measurements getting stale.
  
   set dynamicMeasurements
  
   allows measurements to be recalculated on the fly.
  
  
  
   11.1.13:
  
   DATA "coord set"
   invertSelected POINT ....
   invertSelected PLANE ....
   invertSelected HKL ......
   rotateSelected ....
   rotateSelected spin ....
   full state support for "tainting" atom positions using 
translateSelected or invertSelected
 
   set allowRotateSelected # then use ALT-LEFT for rotating just the 
selected molecule
 
   this all definitely needs some work and discussion in terms of user 
interface via mouse
 




-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Jmol-users mailing list
Jmol-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jmol-users

Reply via email to