1# NOTE: This is not the development trunk. It is the release branch. 2# NOTE: Generally only bug fixes should be entered here. 3# NOTE: New features should be introduced in the trunk version 11.9.x 4 5version=11.8.18 6 7# bug fix: (not really) -- " " character in VRML export added to accomodate AutoDesk 3D MAX import read bug 8# bug fix: drawHover status not reported properly after zap/new model loaded 9# code: model properties atomCount, bondCount should be private 10# bug fix: bitsets not properly handled in model deletion 11# bug fix: bfactor min/max was ignoring first atom 12# bug fix: within molecule was using undocumented "visible" 13# bug fix: frame *;draw {atomno=1} {atomno=5} not working properly 14# bug fix: pdb reader as trajectory error 15# bug fix: MO export to cartesian exporters (VRML/X3D/Maya) should not do front-only 16# bug fix: APBS reader could hang on empty line 17# bug fix: message this is a @{test} fails 18# bug fix: CCP4/MRC and XPLOR map file reader fix/upgrade 19 20# ----------------------------------------------------------------------------- 21 22#version=11.8.17 23 24# bug fix: revertings changes to cancelRendering 25# bug fix: applet cannot load inline 26 27# ----------------------------------------------------------------------------- 28 29#version=11.8.16 30 31# bug fix: connected(0, {carbon}) not working 32# bug fix: obscure compiler PDB bug for polyhedra, structure, frame commmands 33# utilizing user-defined functions of the form @{xxx({n})} 34# bug fix: polyhedra colors not deleted when polyhedra deleted 35# bug fix: polyhedra can be lost if only a subset are colored 36# bug fix: write to clipboard not working 37# bug fix: label %i not working 38# bug fix: select within(0.3, hkl, {1 2 3}) requires quotes: "hkl" 39 40# ----------------------------------------------------------------------------- 41 42#version=11.8.15 43 44# bug fix: PDB cryst1 record for NMR files not ignored 45# bug fix: symop in biomolecule context not recsognized by label "%[symmetry]" 46# bug fix: "label %" can cause Java exception 47# bug fix: older format %{...} not recognized by script compiler 48# bug fix: long scripts in setEcho being chopped when saved in state 49# bug fix: "color background xxxx" clears background image as well 50# bug fix: labels given text after containing an image have incorrect y-displacement 51# bug fix: transparent pixels in images not respected 52 53# ----------------------------------------------------------------------------- 54 55#version=11.8.14 56 57# bug fix: _width and _height lost after initialize 58# bug fix: Jmol 11.8.10-11.8.13 will not read state orientation correctly 59 60# ----------------------------------------------------------------------------- 61 62#version=11.8.13 63 64# bug fix: font axes not functional 65# bug fix: FILTER "biomolecule ..." option broken in LOAD command. 66# bug fix: {xxx}.xxx = syntax immediately following "for ( ) {...}" causes compilation error 67# bug fix: draw: when only some models are visible, does not properly assign models to drawn object 68# code: draw: dmesh.modelFlags not properly implemented (reset in setModelVisibility) 69# bug fix: zoomTo out not functioning 70 71# ----------------------------------------------------------------------------- 72 73#version=11.8.12 74 75# bug fix: zoom/zoomTo does not refresh transform parameters 76# bug fix: dot product miscalculation 77# bug fix: NWChem reader not reading files with lower-case-only atom names 78# bug fix: code - viewer.getDisplayModelIndex() not used properly when background model is present 79# bug fix: rear mesh lines not visible on isosurface when surface also drawn 80# bug fix: Export uses incorrect width/height parameters when size is not window size 81 82# ----------------------------------------------------------------------------- 83 84#version=11.8.11 85 86# bug fix: select *.CD not accepted. 87# bug fix: navigation key release causing unnecessary refresh 88# bug fix: console command recall (up arrow) does not always return full command line 89# bug fix: zShade/navigation mode incompatibility 90# bug fix: navigate TRACE broken in 11.7.47 91# bug fix: zshade not resetting properly; now reset off with reset() or load of model 92# bug fix: occasional null pointer error during ZAP due to continued rendering by 93# previous graphic painting thread 94# code: JmolFrameExportJmolAdapter abandoned -- hasn't been implemented since 11.0 95 96# ----------------------------------------------------------------------------- 97 98#version=11.8.10 99 100# bug fix: MSIE mouse-wheel malfunction due to Jmol not consuming the wheel motion 101# bug fix: isosurface xxx lcaocartoon ... does not always honor xxx as isosurface name 102# bug fix: Hall name translator can incorrectly assign matrix for F m -3 m group 103# bug fix: Gaussian '09 reader not reading " Atom AN" properly in frequency lists 104# bug fix: zoom/rotateXY modes not properly isolated 105# bug fix: moveto with {0 0 0 0} uses instead {0 0 1 0} 106# bug fix: zoomto fights with user over orientation 107# bug fix: AIMS files with empty lines preceding keyword lines are now recognized 108# bug fix: AIMS reader not reading multipole lines describing monopoles 109# bug fix: CASTEP and AIMS readers now properly load unit cells using cell vectors 110# which are not suitably aligned with the coordinate axes of the reference coordinate system 111# bug fix: CASTEP reader not understanding unit specifier in .cell files 112 113# ----------------------------------------------------------------------------- 114 115#version=11.8.9 116 117# bug fix: strand count assignment error in cif/pdb readers causes failure to load 3ovo.cif 118# bug fix: labels offset using set picking select label not saved in state properly; 119# added "set labelOffsetExact" 120# bug fix: set picking select label shifting label causes jump and not saved in state reproducibly 121# bug fix: set toggleLabel inappropriately resets label to default setting 122# bug fix: moveto QUATERNION (undocumented for 11.8) not distinguishing between 123# orientation quaternions and molecular quaternions 124# -- MOLECULAR keyword added 125# bug fix: setting perspective model stops animation in state script 126# bug fix: GAMESS reader not reading all vibrational frequencies 127 128# ----------------------------------------------------------------------------- 129 130#version=11.8.8 131 132# bug fix: GAMESS reader not reading BETA MOs. 133# bug fix: A function starting with "_" originally was considered 134# local to the applet, with all other functions being static. 135# Then, in 11.7.45, this was switched. Unfortunately, 136# that meant state functions _set... were static 137# causing applet-applet interference. 138# So for this fix I've changed that to be "static_..." for 139# expressly static functions, and then also designated 140# "_...." functions as not generally declared when writing 141# a state or in "show functions" so that a state does not 142# duplicate itself, and "show functions" works as before. 143# bug fix: jmol -ionxs with a script that includes measurement tries to update a nonexistant measurementTable 144# bug fix: select xxx when xxx is an array fails to do lookup of defined values 145# bug fix: legacy code: Bond.getBondModelIndex returning atomIndex instead 146# bug fix: water: +", (oxygen & connected(2) & connected(2, hydrogen or deuterium or tritium), (hydrogen or deuterium or tritium) & connected(oxygen & connected(2) & connected(2, hydrogen or deuterium or tritium)))", 147# bug fix: data3d_ not working for saving state after functionXYZ 148# bug fix: isosurface does not clear data after functionXY or functionXYZ 149# bug fix: label %vx giving x coord, not vibration x component 150# bug fix: write VAR for string array does not work. 151# bug fix: GAMESS reader vibrations use wrong atom coordinates 152# bug fix: PQR reader not adaptive 153# bug fix: zshade now working correctly (almost -- see 11.8.11) 154# bug fix: setting spacefill to a large user-defined VDW radius incorrect 155# bug fix: Gaussian 09 LOG file reader upgrade for MOs 156# bug fix: unitcell offset {1 1 1}; select UNITCELL 157 158# ----------------------------------------------------------------------------- 159 160#version=11.8.7 161 162# bug fix: incorrect reference to jmolStatusListener for sync callback in StateManager 163# bug fix: file drop needs zap prior to load for cleaner operation 164# bug fix: Hall symbol translation generates incorrect Jones-Faithful operation (missing translation) 165# (broken by 11.8.4 9/5/2009) -- Thank you, Sarah Mattler, WUSTL! 166 167# ----------------------------------------------------------------------------- 168 169#version=11.8.6 170 171# bug fix: context menu View... broken when boundbox or unitcell are on 172# bug fix: syncScript broken 173# bug fix: load trajectory not working properly 174# bug fix: animation/spin incompatibility problem 175# bug fix: initialize does not reset antialiasDisplay or set animation off 176# bug fix: getProperty("menu") does not work until a menu has been called up by user 177# bug fix: menu item for style does not respect bondMode 178# bug fix: lcaocartoon not working 179 180# ----------------------------------------------------------------------------- 181 182#version=11.8.5 183 184# bug fix: select *.? not working properly 185# bug fix: isosurface not retrieving exact reference for jvxl files in state 186# bug fix: (potential) draw symop could have incorrect glide 187 188# ----------------------------------------------------------------------------- 189 190#version=11.8.4 191 192# bug fix: "zapped" file does not clear menu 193# bug fix: x = {255,0,0}; select color=x; #did not work 194# bug fix: symop() -- can now be used without "all." 195# bug fix: isosurface reading of contoured JVXL files defaults to "nomesh nofill" 196 197# ----------------------------------------------------------------------------- 198 199#version=11.8.3 200 201# bug fix: file save from menu does not pull up dialog 202# bug fix: aims/castep readers 203# bug fix: "initialize" should not reset defaultDiretory 204# bug fix: compiler error for {xxx}.yy = n \n {xxx}.yy = n 205# bug fix: compiler error for literal -0 or -0.0 206# bug fix: show pointgroup can give wrong format after getproperty PointGroupInfo 207# bug fix: mmCIF misreads bfactor data 208# bug fix: load append of file with ellipsoids causes array out of bounds exception 209# bug fix: show spacegroup can cause null exception 210# bug fix: animation direction -1 not functional 211# bug fix: script lines 1-3 not functional 212 213# ----------------------------------------------------------------------------- 214 215#version=11.8.2 216 217# bug fix: 2D mesh property not cleared 218# bug fix: popupMenu disabling nonfunctional 219# bug fix: acos, to be consistent, needs to deliver degrees, not radians 220# bug fix for MOReaders * NBO: --- note, "-" can be in column with " " causing tokenization failure 221 222# ----------------------------------------------------------------------------- 223 224#version=11.8.1 225 226# bug fix: grp.property_x = n can change definition of grp 227# code: refactoring of Measure/Graphics3D 228# bug fix: q1.dot(q2) 229# new feature: CASTEP (http://www.castep.org/) and AIMS readers 230# new feature: popup menu gives Symmetry operation display option 231# new features for the 238th American Chemical Society National Meeting, Washington, D.C., Aug. 19, 2009 232# new feature: draw ID xxx SYMOP [n or "-x,y,z"] [optional {atom or position}] 233# draws symmetry operation for spacegroup 234# see http://chemapps.stolaf.edu/jmol/docs/examples-11/showsym.htm 235# new feature: pt = all.symop(3, {atomno=3}) 236# new feature: sdrawCommands = all.symop(3, {atomno=3},"draw_id") 237# 238# new feature: ho, ho, this is fun. Wouldn't it be nice to just drag a JPG into 239# Jmol and have it come alive? 240# write IMAGE t.jpg 241# load t.jpg (Or just drag it into the Jmol window from a file directory. 242# The IMAGE option instructs Jmol to add its state to the JPG image, so when it is 243# dragged in, Jmol recognizes that and loads the state. Very cool. 244# 245# also with PNG images; to not do this, use 246# 247# set imagestate false 248# 249 250# bug fix: polyhedra saving in state 251# bug fix: function call as statement with expression argument fails: 252# 253# testing({atomno=3}) 254# 255# bug fix: isosurface map property can create holes in isosurface 256# code: dissociation of applet console from jvm12 257 258# bug fix: Various Examples fixes 259# bug fix: defaultDirectory should not be part of the state 260# new feature: select structureID="xxx" selects structures by alphanumeric id such as "S1" or "H3" 261# bug fix: show structure not properly showing structure indices, IDs, or strand counts for PDB or CIF files 262# code: Jmol embedded in applications can use Jmol menu and Jmol console directly (needs testing) 263# code: PdfCreator incorporated into ImageCreator and outputs antialiased image 264 265# ----------------------------------------------------------------------------- 266 267#version=11.8.RC5 268 269# new feature: Jmol embedded in applications can use WRITE command to create all types of images and exports 270# new feature: VERY COMPACT IDTF export (for U3D conversion; all except background color) 271# * after 272# * 273# * write t.idtf 274# * 275# * using IDTFConverter.exe, on Windows one can turn these files into VERY COMPACT U3D files. 276# * 277# * IDTFConverter.exe -input t.idtf -output t.u3d 278# * 279# * see http://sourceforge.net/projects/u3d/ 280# * see http://en.wikipedia.org/wiki/Universal_3D 281# * see http://www.ecma-international.org/publications/standards/Ecma-363.htm 282# * in the downloadable zip file, see docs/IntermediateFormat/IDTF Format Description.pdf 283# 284# bug fix: (application) delaying saveChooser load makes startup MUCH faster when loading a file 285# bug fix: gaussian reader may fail to read MOs from Gaussian 03: AM64L-G03RevC.01 3-Apr-2004 286 287# ----------------------------------------------------------------------------- 288 289#version=11.8.RC4 290 291# from the 2009 GORDON RESEARCH CONFERENCE ON EDUCATION: 292# bug fix: DRAW point size 6 pixels (an even number) sets it just one pixel off center -- 7 is better. 293# new feature (TODO): 4D extension (that's right -- FOUR dimensions) 294# new feature: set picking Label now allows label offset by holding SHIFT down while dragging atom 295# new feature: lone pairs and radicals -- extension of lcaoCartoon: 296# 297# select oxygen; lcaocartoon lonePair "sp2a" 298# select oxygen; lcaocartoon radical "sp3" 299# 300# new feature: print getProperty("FileInfo","REMARK300") //was PdbInfo 301# new feature: print getProperty("FileInfo","models",1,"_citation_year"); 302 303# TODO: load 1crn.pdb;quaternion;quaternion diff;zap 2.1 -- leaves blank model 2.1 and destroys state 304# TODO: what to do about deleting models prior to current -- why statescript removed? 305# bug fix: zap x.y when have measures to draw objects causes exception 306# bug fix: isosurface mapping with property where property can be NaN does not render some regions 307# bug fix: lcaoCartoon wildcard problems 308# bug fix: undocumented rotate[selected] {pt1} {pt2} ... has pt1/pt2 backward. Should be such that: 309# 310# rotate x 10 311# 312# is the same as 313# 314# rotate {0 0 0} {1 0 0} 10 315# 316# new feature: set quaternionFrame "a" -- alpha-carbon-ONLY straightness. see 1JGQ 317# bug fix: compiler error when integer typed instead of command 318# bug fix: state for lcaocartoon broken 319# bug fix: set picking spin for draw objects broken in 11.8.RC1 320# new feature: set helixStep 0 -- relates a quaternion to the standard reference frame 321# bug fix: DRAW CIRCLE size may not be correct when restored from state 322# new feature: write "xxx.X3D" 323# new feature: [x,y,z].sum2 or {xx}.someProperty.sum2 -- sum of squares 324# new feature: VRML export nearly full support 325# -- includes draw, ellipsoids, dots, isosurface, cartoons, stars, halos, 326# polyhedra, vectors, dipoles, etc. 327# -- no background labels 328# -- labels are not exactly the right size 329# -- no background image 330# -- no ellipsoid quadrant cutouts 331# -- slightly irregular trace when very small diameter 332 333# code: simplified export interfaces 334 335# ----------------------------------------------------------------------------- 336 337# version=11.8.RC3 338 339# code: more efficient VRML export 340# new feature: set helixStep 1,2,3,... sets step for quaternion-based analysis of structure -- see 1C4D 341# bug fix: 1C4D has [FOR] -- not accepted 342# bug fix: color isosurface red translucent prior to isosurface command causes null pointer exception 343# new feature: isosurface select(....) SET n 344# where n is an integer 1,2,3... that selects which set is to be displayed and 345# counted for area or volume 346# bug fix: spacegroup reading when center of molecule is not in unit cell can cause bonding errors 347# new feature: isosurface area for subsets -- use 348# isosurface area select(oxygen) sasurface colorscheme sets 349# bug fix: draw OFF in state script is not selective 350 351# ----------------------------------------------------------------------------- 352 353# version=11.8.RC2 354 355# bug fix: mouse-picked measurements broken in 11.8.RC1 356 357# ----------------------------------------------------------------------------- 358 359# version=11.8.RC1 360 361# bug fix: measurements defined using points not restricting to models 362# -- note, bug fixes in .RCx versions will not be fixed in 11.6 363 364# ----------------------------------------------------------------------------- 365 366# version=11.7.47 367 368# new feature: set quaternionFrame "RC" or "RP" -- ramachandran-derived straightness 369# new feature: array1.add("sep", array2) adds a new column of values separated by sep, for example: 370# set quaternionFrame "P";ap = {*.ca}.straightness; 371# set quaternionFrame "C";ac = {*.ca}.straightness; 372# print {*.ca}.label("%n\t%R").add("\t",ap).add("\t",ac); 373# 374# bug fix: VRML balls missing; VRML/POVRAY error on partial surfaces 375# new feature: NAVIGATION STOP -- sets navX, navY, navZ to 0 376# new feature: navX, navY, navZ, navFPS all settable 377# new feature: NAVIGATION ON/OFF now does continuous motion with arrow keys 378# SPACE to stop 379# LEFT/RIGHT to pan left or right 380# UP/DN to move forward/back 381# ALT UP/DN to pitch up/down 382# CNTL UP/DN to increase/decrease speed in larger amounts 383 384# code: more efficient labelGroup calculatiion 385# bug fix: navigationmode not properly adapting with window resize or antialiasdisplay 386# new feature: draw HELIX AXIS or quaternion HELIX AXIS, also for DNA/RNA 387# code: cleaned up navigation business; an attempt at navigating a surface...Maybe not... 388# new feature: GROMACS reader 389# bug fix: arrays passed to functions by reference do not update if size is increased 390# new feature: by passing an array to a function, you can make that variable 391# return a value -- any value, not just an array: 392# function test(a) { 393# a = "new value" 394# } 395# b = [] 396# test(b) 397# print b ==> "new value" 398# 399# bug fix: spacegroup "-- [--]" displayed when load command option SPACEGROUP is used 400# bug fix: mol2 reader not properly allowing override of CRYSIN unit cell record 401# bug fix: %r not correct label 402# bug fix: quaternionFrame default now "p" 403# bug fix: quaternion difference off by one group 404# bug fix: show FUNCTIONS not working 405# bug fix: draw picking in multimodel context causes null pointer exception 406# new feature: within("HELIX"), within("SHEET") -- helix and sheet, but not ends 407# new feature: all.bin(f0, f1, df) -- binning of data to give an integer array of counts 408# for example: print {*}.straightness.all.bin(0, 1, 0.05) 409# bug fix: WRITE MO does not work when no current MO is present 410# new feature: draw ARC {center} {plane} 411# new feature: draw ARC {center} {axisPoint} 412# new feature: draw CIRCLE {center} {plane} 413# new feature: draw CIRCLE {center} {axisPoint} 414# new feature: draw SCALE works with CIRCLE 415# bug fix: draw ARC was using radius, not diameter, for scale 416# bug fix: draw RAMACHANDRAN angle arrow radii too small 417 418# bug fix: quaternion difference draw not quite correct on axis position 419# bug fix: 11.7.43 broke restoration of state having multimodel draw 420 421# ----------------------------------------------------------------------------- 422 423#version=11.7.46 424 425# bug fix: select model=1 does not work (since 11.6.RC17!) 426# new application: JmolData.jar 427# This application completely disallows any display -- it is totally formless 428# There are no Java Swing JFrames involved, no dialogs, no popup menus, 429# no display, no shapes, no labels, no echos -- just the model data. 430# 431# bug fix: command-line jmol scripts not exiting jmol upon an error condition 432# argh. FOR broken in 11.7.45 433# new feature: helix(resno or {atomExpression},type) 434# given x = C-alpha, C-carbonyl, or N (depending upon set quaternionFrame) 435# where type = 436# "point" -- nearest point to x on local helix axis 437# "axis" -- quaternion derivative vector normal indicating local helix axis 438# "angle" -- rotation around local heix axis for resno i --> i+1 439# "radius" -- vector normal from local helix point to x 440# "draw" -- draw command for the local helix vector 441# note that the axis length is the rise, radius length is the radius, 442# and 360 / angle is the pitch of the helix 443# 444# bugfix: gamess readers crashing if keywords missing from basis options or control options 445# code: findNearestAtomPicked added to JmolViewer 446# new feature: VRML exporter displays ribbons and cartoons by automatically setting 447# hermiteLevel 1 if necessary. 448# new feature: VRML exporter recognizes color and normals for isosurface 449 450# ----------------------------------------------------------------------------- 451 452#version=11.7.45 453 454# bug fix: load trajectory XXX.cif not applying fractional coordinates. 455# bug fix: load trajectory {0 -1 1} not loading any models if first model has 0 atoms 456# (as in certain cif files) 457# bug fix: dipole offsetside not working for molecular dipole (EVER!) 458# 459# code: refactored scriptEvaluator and Jmol.java. Now it is much simpler 460# to create a truly "headless" Jmol application, where Jmol is being 461# used for the investigation of the structure instead of visualization. 462# 463# script editor behaving properly except for a nasty SWING bug that will 464# require recasting this in AWT instead of SWING. 465# See http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4353673 466# 467# new feature: gamessUS reader now reads dipoles and partial charges. 468# 469# TODO script editor -- search? argh... I knew this would be a can of worms... 470# script editor -- undo/redo works (CTRL-Z, then SHIFT-CTRL-Z or CTRL-Y) 471# 472# new feature: drag/drop and file menu-open scripts directly into editor, from where they can be checked or tested. 473# code: refactored readers, allowing for more obvious initialization/finalization methods 474# new feature: App and applet consoles now have "editor" buttons 475# that load scripts into a "script editor" and allow stepping through 476# scripts (and changing values during the pauses) - preliminary only 477# 478# opens a rough draft ScriptEditor 479# new feature: Gamess file reader now translates internal basis set and calculation 480# methods representations into roughly literature standard for Pople & Dunning basis 481# sets as well as perturbation, CI and CC calculation methods. This is dumped to 482# calculationType. 483# new feature: application console buttons: PAUSE, ?, STEP 484# new feature: SHOW TRACE -- reports stack trace 485# bug fix: functions with names starting with _ were local instead of global 486# bug fix: 2 pixels off in y for labels. Don't know why I thought that was necessary in Text.java::setBoxXY. 487# new feature: SHOW VARIABLES now gives variable trace through function stack 488# new feature: [Oh, VERY COOL!] You can now pause the app anywhere in a 489# script, do anything you want -- even within functions -- change variables, 490# set parameters, anything -- and then resume with RESUME. Some of us 491# have dreamt of having this with JavaScript. Very very useful! 492# so, for example: 493# 494# function testing(i,j) { 495# n = 3 496# show variables 497# pause change any variable and then enter RESUME 498# show variables 499# } 500# testing(3,5) 501# 502# bug fix: problems with PAUSE/RESUME within App 503# bug fix: "set ?" nonfunctional 504# bug fix: unmatched { in quotes in @{ } not properly treated: echo @{" testing}"} 505# new feature: strings may start with ' or ", like JavaScript: 506# x = 'testing' 507# print 'there are ' + all.length + ' atoms' 508# cd, echo, gotocmd, help, hover, javascript, label, message, and pause 509# all are implicitly strings. You CAN use "..." but you don't have to, 510# and you cannot use '...'. This way the introduction of single quotes 511# as an equivalent of double quotes cannot break existing scripts. -- BH 06/2009 512# new feature: print getProperty("PDBInfo","REMARK300") 513 514 515# ----------------------------------------------------------------------------- 516 517#version=11.7.44 518 519# bug fix: write FRAMES also for trajectories 520# new feature: MO LIST or SHOW MO LIST display listing of orbitals for all files 521# new feature: GAMESS reader now sets calculationType, orbital type, and auxiliaryInfo.calculationOptions 522# bug fix: select(x;{xxx};...) or for(x;{xxx};...) when {xxx} is empty returns incorrect result 523# bug fix: dipoles cannot be colored by name 524# bug fix: dipole settings not accessible via wildcards 525# new feature: merging of label() and format() functions -- same in all respects. 526# bug fix: spartan'08 reader not reading vibrations 527 528# ----------------------------------------------------------------------------- 529 530#version=11.7.43 531 532# bug fix: /** comment ending line can cause odd error 533 534# bug fix: set xxxx n where n is an integer fails. 535# bug fix: GAMESS reader not properly assigning MOs 536# code: better .stddev calculation 537# new feature: a = [] note that a+=2 then produces [2] -- "a+=" similar to JavaScript a.push(2) 538# bug fix: a="test";a[1] = "b" not working 539# bug fix: {atomExpression}.min, .max 540 541# ----------------------------------------------------------------------------- 542 543#version=11.7.42 544 545# new feature: function parameter arrays passed by reference, so, for example: 546# 547# var a = [1,2,3,4] 548# function incrementA(a, i) { a[i]++ } 549# incrementA(a, 3) 550# show a 551# 552# gives a = [1,2,4,4] 553# 554# new feature: general commands no longer restricted to single lines. 555# any unpaired ( or [ or { triggers continuation 556# 557# new feature: set or x = command no longer restricted to single lines. 558# any binary math operator at end of line or beginning of next line 559# marks continuation, also any unpaired ( or [ or { triggers continuation 560# (same as JavaScript) 561# 562# new feature: -p Jmol application command line option --printOnly silent operation with only print command output or warnings going to the console 563# for example: 564# java -Xmx512m -jar "Jmol.jar" -pions "myscript.spt" 565# just outputs messages from the print commands in that script 566# 567# bug fix: pickMeasureScriptTip not found 568# 569# new feature: support for extended inline if: x = (a ? this : b ? that : theother) 570# default change: load trajectory "myfile.top" COORD {first,last,stride} "mdcrd::myfile.trj" defaults to last = -1 ("load all trajectories") not "load one trajectory" 571# bug fix: gzipped gzip file not read properly. (Jmol-FAH files) 572# new feature: {*}.modelindex 573# 574# bug fix: y = q improperly defining q if q does not exist. 575# "all" equivalent to {*} 576# new feature: load ("filename", nBytesMax) --- and returns "java.io.FileNotFoundException" if file 577# does not exist when nBytesMax == 0, so is a simple test for "Local File Exists" 578# would be if (load("filename",0).length == 0)... 579# 580# new feature: print {xxx}.label.all("xxxx") -- forces array even if only one atom (like "{xxx}.label.all") 581# bug fix: color.all not working properly 582# bug fix: xxx.all was not forcing array when only one value 583# 584# code: refactored classes -- next best thing to a separate package (they aren't really public) 585# 586# CompilationTokenParser --> ScriptCompilationTokenParser 587# Compiler --> ScriptCompiler 588# Eval -> ScriptEvaluator 589# FlowContext --> ScriptFlowContext 590# Function -> ScriptFunction 591# Variable -> ScriptVariable 592# 593# bug fix: load @filename 594# new feature: format("sprintf format", a, b, c, ...) 595# new feature: {xxxx}.label("") shows current label 596# new feature: [array].sort 597# new feature: [array].reverse 598# new feature: [array].min 599# new feature: [array].max 600# new feature: [array].average 601# new feature: [array].stddev 602# new feature: (value).label("C++ printf format") 603 604# bug fix: quarternion().q not working 605# bug fix: Crystallographic Information File not recognized. 606 607# ----------------------------------------------------------------------------- 608 609#version=11.7.41 610 611# bug fix -- bitsets not copied: m1 = {m and selected} changes m to "m and selected" 612# 613# OK, this version basically turns Jmol scripting language into a subset of JavaScript. 614# Or, maybe a superset of the basic JavaScript constructs. Anyway, they are related. 615# 616# Similarities to JavaScript: 617# 618# --Jmol scripting now supports ++, --, +=, -=, *=, /=, \=, |=, &= 619# --The if, for, while, and function constructs are all about the same, using braces. 620# for example: 621# 622# for (i = 1; i <= 10; i++) {print {*}[i].radius} 623# for (i = 0; ++i <= 10;) {print {*}[i].temperature} 624# if (var i < 10) {{*}[i].radius *= 2} else {spacefill off;wireframe} 625# i = 0; while (++i < 10) {select {*}[i * 2]; color red } 626# 627# --A relatively free typing of variables. Jmol is going to save variables as strings 628# in terms of the Jmol "state" but in this version I introduce the Variable class that 629# subclasses Token and allows for a more organized approach to variables and sets the 630# stage for future improvements. 631# --Commands separated by semicolons or line breaks 632# --Object-like methods and fields such as {*}.xyz.all.join(" ") and {atomno=3}.radius 633# --On-the-fly compilation. 634# 635# Differences include: 636# 637# --A broarder range of variable types, including boolean, integer, decimal, 638# string, point, axis-angle/plane/quaternion, atom bitset, bond bitset, 639# and one-dimensional array. 640# --No case-sensitivity for variable names. 641# --1-based rather than 0-based arrays. (ONLY because that's the way models are numbered.) 642# --Array indexing from the back to the front using n <= 0: A[0] A[-1] A[-2]. 643# --Array ranges [n][m], for example A[-3][0] 644# --Core commands do not use commas or parentheses. 645# --Visual-Basic-like IF / ELSEIF /END IF, FOR/END FOR, WHILE /END WHILE, and GOTO options. 646# --A broad range of mathematical operations 647# --Of course, a whole suite of methods that relate to molecular structure. 648# 649# 650# nested ( ... ? ... : ... ) phrases ready for testing. 651# 652# print (1 < 30 ? 1 : 2) 653# print (1 < 30 ? (5 < 1 ? "yes" : "no") : 0) 654# print (1 < 30 ? (5 < 1 ? "yes" : (6 > 20 ? "yes2" : "hmm")) : (33)) 655# print (100 < 30 ? (5 < 10 ? "yes" : (6 > 20 ? "yes2" : "hmm")) : (33)) 656# print (1 < 30 ? (5 < 10 ? "yes" : (6 > 2 ? "yes2" : "hmm")) : (33)) 657# print (100 < 30 ? 33 : (5 < 1 ? "yes" : (6 > 2 ? "yes2" : "hmm"))) 658# 659# bug fix: echo @{.... .... .... } not counting braces 660 661# ----------------------------------------------------------------------------- 662 663#version=11.7.40 664 665# bug fix: setting commandOptions "" in Viewer.setAppletContext() 666 667# {atomno=3}.radius += 0.1 668# 669# bug fix: in certain APPEND cases, binary space partitioning forest initialization is not complete 670# bug fix: minimization not trapping error on viewer going null 671# new feature: set useMinimizationThread T/F nec. to be FALSE when running minimizations in scripts that require values 672# 673# 674# code: compiler refactoring and efficiencies; 675# code: compiler continued development of advanced scripting syntax. 676# 677# new feature: 678# 679# Jmol scripting now supports ++, --, +=, -=, *=, /=, \=, |=, &= 680# 681# i++ 682# ++i 683# i += 3 684# 685# and basically all the standard flow syntax of Java and JavaScript: 686# 687# 688# for (i = 1; i <= 10; i++) {print {*}[i].radius} 689# for (i = 0; ++i <= 10;) {print {*}[i].temperature} 690# if (i < 10) { {*}[i].radius *= 2} 691# i = 0; while (++i < 10) {select {*}[i]; color red } 692# 693# 694# 695# plus some more -- no line breaks necessary for for/if/while: 696# the braces really aren't necessary; there is no ambiguity here: 697# 698# for (i = 1; i <= 10; i++) print {*}[i].radius 699# 700# if (i < 10) { {*}[i].radius *= 2} 701# 702# for (i = 1; i < 10; i++) print i 703# if (i < 10) print i 704# 705# bug fix: isosurface efvet reader not displaying data properties as colors 706# bug fix: select {*.ca} (_x.atomno < 100) not working 707# 708# code: major refactoring of variables. 709# 710# new feature: complete freedom from lines and "end if, end for, end while" -- 711# just use standard { } notation. If no braces are used, then END must be used: 712# 713# for (var x = 1; x < {*}; x = x + 1) 714# if ({*}[x].temperature < 10) 715# ({*}[x]).radius = 1 716# else 717# ({*}[x]).radius = 0 718# end if 719# end for 720# 721# same as: 722# 723# for (var x = 1; x < {*}; x = x + 1){ 724# if ({*}[x].temperature < 10) { 725# ({*}[x]).radius = 1 726# } else { 727# ({*}[x]).radius = 0 728# } 729# } 730# 731# same as: 732# 733# for (var x = 1; x < {*}; x = x + 1){ 734# {{*}[x]}.radius = ({*}[x].temperature < 10 ? 1 : 0) 735# } 736# 737# same as: 738# 739# for (var x = 1; x < {*}; x = x + 1){{{*}[x]}.radius = ({*}[x].temperature < 10 ? 1 : 0)} 740# 741# new feature: standard { ... ? ... : ... ) notation in Jmol math: 742# 743# print ({*} < 100 ? "a small molecule" : "at least 100 atoms") 744# 745# new feature: load "@x" -- inline load of data contained in variable x. 746# 747# new feature: {*}.label = xxx and {*}.label("%[label]") and select label="xxx" 748# 749# new feature: An XML reader for Materials Studio .xsd files http://accelrys.com/products/materials-studio/ 750# 751# new feature: greatly expanded item selecting: 752# 753# n = 2 754# {{atomno > 10}[n+2][n+5]}.radius = 0.3 755# 756# note that an outer set of {} is required when setting a property 757# You cannot just do {atomno>10}[5][6].radius 758# 759# new feature: .length alias for .size except for x.bonds - so it can be 760# used where you would use that in Java, for instance: 761# 762# natoms = {*}.length 763# for (i = 1; i <= natoms; i = i + 1) 764# ... 765# end for 766# 767# new feature: inline FOR(varName;{atom expression};math expression) 768# 769# ans = for(x;{*.ca};x.resno) 770# 771# produces a list of values 772# 773# new feature: .add() sums up values 774# 775# ans = for(x;{*.ca};x.bonds.length).all.add() 776# 777# new feature: inline IF(math expression;math if true; math if false) 778# 779# ans = if (x.resno < 5 ; "low resno"; "high resno") 780# 781# and combined: 782# 783# var ave = {*.ca}.boundcount.all.add() 784# print for(x;{*.ca};if (x.bonds.length < ) 785# 786# bug fix: MO reader can fail setting min/max bounds 787# bug fix: various tweaks of atom properties business. 788# bug fix: x = array();x[1] = "testing" not working 789# ----------------------------------------------------------------------------- 790 791#version=11.7.39 792 793# bug fix: biomolecules for new PDB format 794 795# new feature: consistent set of atom properties now accessible via: 796# 797# select {xxxx = whatever} 798# 799# rather than the more cumbersome: 800# 801# select {*} (_x.xxxx = "whatever") 802# 803# for example: 804# 805# select insertion = "A" // see 1jgq.pdb 806# display insertion = "?" // single-character wildcard here 807# select altloc != "" // see 1vwh.cif 808# select atomName = "O11" and cell = 555 809# select atomType = "OXT" 810# select atomName = "O*" // wildcards accepted 811# 812# This largely duplicates the current Rasmol notation but adds more of a 813# natural language search language. 814# 815# The full set of atom properties can be checked this way: 816# 817# adpmax adpmin altloc atomID atomIndex atomName 818# atomno atomType atomX atomY atomZ bondcount 819# cell color covalent element elemno file 820# formalCharge fracX fracY fracZ group group1 821# groupID groupindex identify insertion ionic model 822# molecule occupancy partialCharge phi polymerLength property_xx 823# psi radius resno sequence site spacefill 824# straightness strucno structure surfacedistance symop temperature 825# unitX unitY unitZ valence vanderwaals vibX 826# vibY vibZ 827# 828# full parameter list: 829# 830#{*}.xxx = y 831# "select xxxx=yyyy" 832# "label %x" 833# "label %[xxxx]" 834# property 835# description 836# yes yes adpmax the maximum anisotropic displacement parameter for the selected atom 837# yes yes adpmin the minimum anisotropic displacement parameter for the selected atom 838# yes A yes altloc PDB alternate location identifier 839# yes yes yes atomID special atom IDs for PDB atoms assigned by Jmol 840# yes D yes atomIndex atom 0-based index; a unique number for each atom regardless of the number of models loaded 841# yes yes a yes atomName atom name 842# yes i yes atomno sequential number 843# yes yes B yes atomType atom type (mol2, AMBER files) or atom name (other file types) -- Jmol 11.7.1 844# yes yes x yes atomX Cartesian X coordinate 845# yes yes y yes atomY Cartesian Y coordinate 846# yes yes z yes atomZ Cartesian Z coordinate 847# yes yes bondcount covalent bond count 848# yes cell crystallographic unit cell 849# c/s yes chain protein chain 850# yes yes color the atom color 851# yes yes covalent covalent bonding radius 852# yes yes e yes element element symbol 853# yes yes l yes elemno atomic e<b>l</b>ement number 854# yes yes file file number containing this atom 855# yes yes C yes formalCharge formal charge 856# yes yes fracXyz fractional XYZ coordinates 857# yes yes X yes fX fractional X coordinate 858# yes yes Y yes fY fractional Y coordinate 859# yes yes Z yes fZ fractional Z coordinate 860# yes n yes group 3-letter residue code 861# yes m yes group1 single-letter residue code (amino acids only) 862# yes yes groupID group ID number: A unique ID for each amino acid or nucleic acid residue in a PDB file. <br /> <br /> [|| 0 | noGroup|| 1-5 |ALA, ARG, ASN, ASP, CYS|| 6-10| GLN, GLU, GLY, HIS, ILE|| 11-15| LEU, LYS, MET, PHE, PRO|| 16-20 | SER, THR, TRP, TYR, VAL || 21-23 | ASX, GLX, UNK|| 24-29| A, +A, G, +G, I, +I || 30-35| C, +C, T, +T, U, +U||] <br /><br />Additional unique numbers are assigned arbitrarily by Jmol and cannot be used reproducibly. 863# yes G yes groupindex overall group index (Jmol 11.5.35) 864# yes U yes identify for a PDB/mmCIF file, same as [%[group]]%[sequence]:%[chain] %%%[altloc]/%[model] #%[atomno]. For non-PDB data, same as %[atomname]/%[model] #%[atomno] 865# yes E yes insertion protein residue insertion code 866# yes I yes ionic radius used for bonding (<b>i</b>onic radius when a formal charge is defined) 867# yes M yes model model number 868# yes N yes molecule molecule number 869# yes yes Q yes occupancy occupancy 0.00 - 1.00 870# yes yes P yes partialCharge partial charge 871# yes f yes phi protein group PHI angle for atom\'s residue (Jmol 11.3.41) 872# yes L yes polymerLength polymer length 873# yes yes property_xx a property created using the DATA command 874# yes p yes psi protein group PSI angle for the atom\'s residue (Jmol 11.3.41) 875# yes yes I yes radius currently displayed radius -- in SELECT command comparisons ("select radius=n"), integer n implies Rasmol units 1/250 Angstroms 876# yes R yes resno PDB residue number, not including insertion code 877# yes r yes sequence PDB residue number, including insertion code 878# yes S yes site crystallographic site number 879# yes yes yes spacefill currently displayed radius 880# yes T yes straightness quaternion-derived straightness (second derivative of the quaternion describing the orientation of the residue. This quantity will have different values depending upon the setting of <b>quaternionFrame</b> as "C" (alpha-carbon based), "P" (carbonyl-carbon based), or "N" (amide-nitrogen based). The default is alpha-carbon based, which corresponds closely to the following combination of Ramachandran angles involving three consecutive residues i-1, i, and i+1: -psi<sub>i-1</sub> - phi<sub>i</sub> + psi<sub>i</sub> + phi<sub>i+1</sub>. 881# yes yes strucno a unique number for each helix, sheet, or turn in a model, starting with 1. 882# yes yes structure "helix", "sheet", "turn", or "none" 883# yes u yes surfacedistance shortest distance to a surface atom 884# yes symop symmetry operation code 885# o yes symmetry list of crystallographic symmetry operators generating this atom 886# yes yes t yes temperature temperature factor (B-factor) 887# yes unitXyz unit cell XYZ coordinates 888# yes yes uX unit cell X coordinate normalized to [0,1) 889# yes yes uY unit cell Y coordinate normalized to [0,1) 890# yes yes uZ unit cell Z coordinate normalized to [0,1) 891# yes yes yes valence the valence of an atom (sum of bonds, where double bond counts as 2 and triple bond counts as 3 892# yes yes V yes vanderwaals van der Waal radius 893# yes v yes vibXyz vibration vector, or individual components as %vx %vy %vz 894# yes yes yes vibX vibration vector X coordinate 895# yes yes yes vibY vibration vector Y coordinate 896# yes yes yes vibZ vibration vector Z coordinate 897# yes yes xyz Cartesian XYZ coordinates 898# g yes group index in chain 899# q yes occupancy (0-100%) 900# W yes PDB residue designator with x, y, z included: [%n]%r %x %y %z (Jmol 11.3.41) 901 902 903# bug fix: isosurface cavity colorscheme not applied 904# bug fix: isosurface cavity colorscheme "sets" error 905# code: extensive rewrite of Eval in terms of getting and setting atom properties 906# code: Token.atomproperty broken down into intproperty, floatproperty, and stringproperty 907# new feature: consistent set of atom properties now accessible via: 908# select {xxxx = whatever} 909# select {*} (_x.xxxx = "whatever") 910# 911# code: removed duplication in Eval for getBitSetProperty() and atomProperty() 912# code: artificial size limitations in spacefill, halo, star, dots was not 913# consistent with setting those values using {xx}.radius (for example) 914# new feature: relaxed limitation on spacefill, halo, star, dots size to 16A. 915# new feature: {xxx}.spacefill = n 916# new feature: {xxx}.radius = n (same) 917# new feature: print {xxx}.ionic ionic radius 918# new feature: print {xxx}.covalent covalent radius 919# 920# 921# code: ver efficient and flexible atom label compiler class modelset.LabelToken 922# see Eval, Atom, Bond, and Measurement for implementation. 923# 924# new feature: label %[....] where .... is one of: 925# %[altloc] %A 926# %[atomIndex] %D 927# %[atomName] %a 928# %[atomno] %i 929# %[atomType] %B 930# %[atomX] %x 931# %[atomY] %y 932# %[atomZ] %z 933# %[bondcount] 934# %[chain] %c 935# %[chain] %s 936# %[element] %e 937# %[elemno] %l 938# %[formalCharge] %C 939# %[fxyz] 940# %[fx] %X 941# %[fy] %Y 942# %[fz] %Z 943# %[group] %n 944# %[group1] %m 945# %[groupID] 946# %[groupIndex] %G 947# %[identify] %U 948# %[insertion] %E 949# %[ionic] %I 950# %[model] %M 951# %[molecule] %N 952# %[occupancy] % 953# %[partialCharge] %P 954# %[phi] %f 955# %[polymerlength] %L 956# %[psi] %p 957# %[radius] 958# %[resno] %R 959# %[sequence] %r 960# %[site] %S 961# %[spacefill] 962# %[straightness] %T 963# %[strucno] (1,2,3,...) 964# %[structure] (helix,sheet,turn,none) 965# %[surfaceDistance] %u 966# %[symmetry] %o 967# %[temperature] %b, %t 968# %[uxyz] 969# %[ux] %ux 970# %[uy] %uy 971# %[uz] %uz 972# %[valence] 973# %[vanderwaals] %V 974# %[vxyz] %v 975# %[vx] %vx 976# %[vy] %vy 977# %[vz] %vz 978# %[xyz] 979# 980# this leaves only three label abbreviations without equivalents: 981# 982# %g // getSelectedGroupIndexWithinChain() 983# %q // occupancy * 100 984# %W // identifier and XYZ coord 985 986# bug fix: selected connected(hbond) not working. 987# bug fix: quaternion straightness not following quaternionFrame type (was using testflag3) 988# bug fix: quaternion straightness not setting end points to Float.NaN 989# new feature: color hbonds energy 990# new feature: application flag -L --nosplash no splash screen (For Jmol in Sun Wonderland dev. 5) 991# new feature: load XYZ ... loads just the XYZ coordinates, in sequence, based on selected atoms. 992# lots of potential uses for this: 993# --NMR files where you want just one model at a time and, once loaded, want to save the positions 994# --basically anywhere you want a "trajectory" but don't want to save all that data 995# bug fix: QchemReader reading second set of MOs with spherical basis problem (at end of optimization) 996 997# ----------------------------------------------------------------------------- 998 999#version=11.7.38 1000 1001# new feature: load OCCUPANCY ... int [0 to 255] 1002# new feature: load PARTIALCHARGE ... float ~[-3.4 x 10^38 to 3.4 x 10^38] 1003# new feature: load TEMPERATURE ... float [-327.68 to 327.67], with 0.01 precision (stored as short) 1004# new feature: loadAtomDataTolerance, with default 0.01 Angstroms 1005 1006# spartan smol reader broken in 11.7.37 1007 1008# ----------------------------------------------------------------------------- 1009 1010#version=11.7.37 1011 1012# new feature: load VIBRATION "filename" n ....... 1013# --all features of the load command, but only loads the vibrational information 1014# --applies {within(loadAtomDataTolerance,xyzcoord)}.vxyz = vibcoord, so to all unit cells 1015# --optional n is just as for any load -- optional nth model 1016# --operates on previously selected atoms only 1017# --allows embedded jmolscript, just as for any load 1018# --sets _vibrationName from file's atom set collection name 1019# new feature: loadAtomDataTolerance (see above) 1020# bug fix: load {n n n} not saved in state 1021# new feature: load {a b -c} packs a x b x c cells 1022# new feature: select within(-0.1, {1/2 1/2 1/2}) -- negative distance within selects atoms based on unitcell coordinates 1023# new feature: select within(-0.1, atomno=3) -- negative distance within selects atoms based on unitcell coordinates of all atoms involved 1024# new feature: select within(-0.1, true, atomno=3) -- negative distance within model selects atoms based on unitcell coordinates 1025# new feature: select ux|uy|uz < x.x -- selection based on unit coordinates 1026# new feature: {x y z}.fxyz -- returns fractional from cartesian 1027# new feature: {x y z}.uxyz -- returns unitcell from cartesian 1028# new feature: {x y z}.ux, .uy, .uz similar to .fx, .fy, .fz 1029# new feature: {x y z}.xyz -- returns cartesian from fractional 1030# note that .x .y .z does NOT do this conversion. If that is 1031# intended, you need to use {x y z}.xyz.x 1032# if multiple models are visible, then all these just return as through there were no unit cell. 1033# 1034# new feature: {atomExpression}.uxyz, .ux, .uy, .uz -- unit cell coordinate 1035# The value depends upon the setting of unitcell offset. For example, if we have 1036# 1037# unitcell 444 1038# 1039# then {x}.uxyz will be in the range {-1,-1,-1/1} (inclusive) to {0,0,0/1} (exclusive) 1040# Note that uxyz is not settable, but fxyz is, so one could, for example, 1041# pack a unit cell using: 1042# 1043# unitcell 555 1044# n = {*}.size 1045# for (var a = 1; a < n; a = a + 1) 1046# {atomno=a}.fxyz = {atomno=a}.uxyz 1047# end for 1048 1049# bug fix: {atomExpression}.fxyz does not return factional value, just 0.0 1050 1051# ----------------------------------------------------------------------------- 1052 1053#version=11.7.36 1054 1055# code: better treatment of user-defined space group 1056# new feature: "xxxxx".find("pattern","flags") allows regular expression matching; 1057# flags include: 1058# "i" (case insensitive) 1059# "v" (reverse -- "true" if a string does NOT match; nonmatching elements for list) 1060# "m" (without "v", returns matching phrase in string or each list element or 1061# with "v", returns all but the matching phrase in string or on any matching list element) 1062# for example: 1063# 1064# print script("show spacegroup all").split().find("Hall symbol:").find("primitive","v") 1065# 1066# Hall symbol: P 1 1067# Hall symbol: -P 1 1068# Hall symbol: P 2y 1069# Hall symbol: P 2y 1070# Hall symbol: P 2 1071# ... 1072# 1073# print script("show spacegroup all").split().find("Hall symbol:") 1074# .find("primitive","v").find("Hall symbol: ","vm") 1075# 1076# P 1 1077# -P 1 1078# P 2y 1079# P 2y 1080# P 2 1081# ... 1082# 1083# bug fix: Hall lattice operation (SHELX only) could place atoms in unexpected unit cell 1084# bug fix: unitCell normalization error could miss some atoms in multi-unit cell visualizations 1085# new feature: Wien2k reader 1086# bug fix: possible exception when writing large image with translucency due to caught memory overflow leaving plotting buffer null 1087 1088# ----------------------------------------------------------------------------- 1089 1090#version=11.7.35 1091 1092# bug fix: calculate hbonds can fail when group does not have O or OXT atoms 1093# bug fix: (applet) jmolGetPropertyAsString("image") not functional 1094# new feature: label %G -- group index, like atom index, 0-based for entire collection 1095# new feature: ramachandran DRAW -- draws dihedral planes and angles 1096# bug fix: draw/isosurface *name* 1097# bug fix: data "append" does not set model the way load "append" does 1098# bug fix: application frame arrows do not work after loading multiple models 1099 1100# ----------------------------------------------------------------------------- 1101 1102#version=11.7.34 1103 1104# bug fix: isosurface incorrectly setting number of grid points for MEP surface map 1105# new feature: application -s - reads input from System.in (untested) 1106# new feature: \? in atom name escapes ? wildcard. Still no * in names, 1107# but you can use multiple ?s: select ?\? or ??\? or ???\? or ????\? 1108 1109# new feature: isosurface FunctionXYZ -- same as FunctionXY, but must return float[][][] 1110# -- note, this involves an additional required function in interface JmolStatusListener 1111# public float[][][] functionXYZ(String functionName, int nx, int ny, int nz); 1112 1113# ----------------------------------------------------------------------------- 1114 1115#version=11.7.33 1116 1117# bug fix: minimization callback does not report dE 1118# bug fix: minimization does not interrupt or stop in applet 1119# bug fix: rotate quaternion with NaN values not ignored 1120# bug fix: applet console not closed when web page destroyed 1121# bug fix: load file:///xxx.xxx (file:/// with file in root path) causes unrecoverable exception 1122# bug fix: signed applet JmolAppletSigned0.jar does not include minimizer in internal jar index 1123# bug fix: rotate -x n rotates wrong direction 1124# new feature: load xxxx FILTER "NBOcharges" loads NBO charges instead of Mulliken 1125# note: for NBOs you still need FILTER "NBO" so with charges that would be FILTER "NBO;NBOcharges" 1126# bug fix: Jaguar reader vibrations not correct 1127# bug fix: autoBond option in Preference menu was not writing to properties file in $HOME/.jmol 1128# new feature: preliminary NBO support for Gaussian and QChem needs checking 1129# code: subclassing Gaussian, QChem, NWChem, Gamess, Jaguar, Psi readers all into MOReader class 1130 1131# ----------------------------------------------------------------------------- 1132 1133#version=11.7.32 1134 1135# bug fix: reading multiple files from a ZIP file collection, Jmol was forcing autobond 1136# even when bonds were defined 1137# bug fix: load MANIFEST not working properly 1138# bug fix: V3000 reader chokes on CHG=n and does not recognize MASS=n 1139# bug fix: Spartan SMOL file reader failure (coded & instead of && in if statement!) 1140# new feature: CML "isotope" and CML "partial12" bond order. 1141# new feature: GAMESS reader reads NBOs using 1142# load "xxx.gamess" filter "!EIGEN" # to only load NBOs; by default ALL MOs are loaded. 1143# new feature: QChem reader reads occupancy, frequencies and MOs 1144 1145# ----------------------------------------------------------------------------- 1146 1147#version=11.7.31 1148 1149# bug fix: automatic adjustment for 5D (spherical) orbitals, especially for Spartan Smol reader 1150# bug fix -- Spartan reader adding " in front of atom label 1151# new feature: frame ALIGN {atoms} -- aligns frames around designated atoms in each frame 1152# for example: frame ALIGN {C2} -- align each frame on C2/n where n is a frame number 1153# for example: frame ALIGN {*} -- align all frames on center for that frame 1154# new feature: Spartan MO-Animation files can be read 1155# bug fix -- animation/spin while script is rendering can cause Exception 1156# in general, one needs to use 1157# set refreshing FALSE 1158# ... 1159# set refreshing TRUE 1160# around code that might be running and deleting atoms or bonds while some other 1161# process is rendering 1162 1163# bug fix -- trajectories with files having bonds can be a problem 1164# bug fix -- animation/spinning while connections are being made can cause exception 1165# code -- more documentation and somewhat reorganized adapter section. 1166# bug fix: antialiasdisplay with MO does not show correct font size. 1167# new feature: Spartan zip directories xxx.spardir.zip containing directory xxx.spardir can be read 1168# new feature: Spartan reader now reads all models in an energy profile 1169# new feature: MO no longer restricted to one per model set; rather, one per MODEL 1170# new feature: MO command operates on all models in current frame set: 1171# for instance: 1172# load t.spardir 1173# frame *; MO HOMO 1174# animation on 1175# will generate highest-occupied MO for all models and run through them quickly 1176# This allows for animation of molecular orbitals along a reaction pathway 1177# code: first attempt at Gaussian WFN file reading was unsuccessful. 1178 1179# ----------------------------------------------------------------------------- 1180 1181#version=11.7.30 1182 1183# bug fix: signed applet does not use CD to set dialog default directory 1184# bug fix: errorCallback not functional 1185# new feature: set autoLoadOrientation (default: FALSE) automatically sets "reset" orientation to that in file, if present 1186# new feature: restore orientation DEFAULT -- resets orientation to file's default orientation or stanadard "reset" if not present 1187# code: generalized setTransform() in JmolAdapter readers CSF and SpartanSmol (.spardir) 1188# bug fix: Spartan .spardir /input files not being read 1189# bug fix: draw arrow/vector slightly overshoots end point 1190 1191# ----------------------------------------------------------------------------- 1192 1193#version=11.7.29 1194 1195# bug fix: isosurface/mo FRONTONLY not operative 1196# new feature: draw ID xxx FRAME {center} {quaternion} 1197# draws x,y,z coordinates for the frame defined by the specified quaternion at the specified center. 1198 1199# bug fix: MO calculations skips d2+ orbital due to integer division. 1200 1201# ----------------------------------------------------------------------------- 1202 1203#version=11.7.28 1204 1205# bug fix: 11.7.27 does not display color for MOs; "color MO" can crash Jmol 1206 1207# ----------------------------------------------------------------------------- 1208 1209#version=11.7.27 1210 1211# bug fix: line raster not completing lines 1212# code: JmolCallbackListener implemented, extended by JmolStatusListener 1213# code: JmolViewer now includes setJmolCallbackListener 1214# bug fix: measure n1 n2 n3 n4 with just numbers selecting atoms in frame 1 rather than current frame. 1215# bug fix: toolbar icon for pickMeasure tied to tools "measurements..." item 1216# bug fix: (Application) meaurement table not updating properly 1217# bug fix: (Application) measurements toolbar icon does not stay shaded 1218# bug fix: very subtle code error on lines and cylinders rasterization not completing line end pixel in most cases 1219# bug fix: (Application) measurement icon measures angles, not distances. 1220# new feature: JVXL format supports polygonColixes[] 1221# code: polygonColixes[] to define polygon colors rather than vertex-based colors (as in OBJ file) 1222# new feature: isosurface points can be retrieved using $id[n] where n=0,1,2,3... similar to $draw[n] 1223# debugging: setTestflag2() turns on vertex labeling in isosurfaces 1224# new feature: isosurface OBJ file reader using 1225# isosurface OBJ "myfilename" n 1226# where n is an optional pointer to a specific group (starting with 1) 1227# 1228# bug fix: subtle MarchingSquares calculation error produces incorrect contours for mapped plane 1229# new feature: hover displays isosurface values for contour plots and planar plots 1230# new feature: isosurface .... map contour [n] [mep|MO homo|etc] 1231# for example: isosurface molecular map contour 10 mep 1232# [n] is optional; defaults to 9 1233# new feature: isosurface CONTOURLINES|NOCONTOURLINES 1234# displays contour lines; for planes, same as MESH|NOMESH 1235# new feature: default rendering for isosurfaces involving the 1236# CONTOUR keyword is CONTOURLINES NOFILL 1237# new feature: hovering over isosurface contourlines displays value 1238# bug fix: isosurface TRIANGLES not turning off when isosurface cleared 1239# bug fix: remapping colors of translucent isosurface can have incorrect colors 1240# bug fix: isosurface sphere 1.0 map molecular not working 1241# bug fix: MO calculation with selected atoms can fail 1242# bug fix: picked atoms automatically selected -- bug in 11.7.24 1243# new feature: very preliminary isosurface ED (RHF only) //and isosurface ESD 1244# bug fix: JVXL writing after reading JVXL file may not write properly 1245# bug fix: Jmol in other applications not initialized the same way can cause null pointer exception loading file with symmetry 1246 1247# ----------------------------------------------------------------------------- 1248 1249#version=11.7.26 1250 1251# new feature: isosurface VOLUME reports the volume of an isosurface and stores the number in variable isosurfaceVolume 1252# new feature: ASimpleJvxlWriter can calculate the volume of the surface 1253# new feature: isosurface AREA reports the area of an isosurface and stores the number in variable isosurfaceArea 1254# new feature: ASimpleJvxlWriter can calculate the area of the surface 1255# bug fix: Spartan reader reads MOs improperly when only a partials set of MOs is included in the file 1256# bug fix: Some Spartan files not reading: Compound Document not properly finding root directory block 1257# code: rewritten code for Marching Cubes no longer requires 2D array of cube data 1258 1259# ----------------------------------------------------------------------------- 1260 1261#version=11.7.25 1262 1263# code: rewritten code for ASimpleJvxlWriter allows streaming data 1264# code: rewritten code for Marching Cubes no longer requires 3D array of data 1265# new feature: CTRL-K toggles keystrokes with display; ALT-K or CTRL_ALT_K same without display 1266# color of frank displays condition -- blue (unsigned) or orange (signed) indicates keystrokes enabled 1267# bug fix: PDB load filter broken for ANISOU 1268# bug fix: isosurface plane improperly coloring nonmapped planes 1269# code: rewritten code for JvxlReader saves nx*ny*nz*8 bytes of memory on loading JVXL files 1270# because there is no need for voxelData = float[nx][ny][nz]. 1271# new application: org.openscience.app.jvxl.simplewriter.ASimpleJvxlWriter.java 1272# -- streamlined methods for converting CUBE data to JVXL files 1273 1274# ----------------------------------------------------------------------------- 1275 1276#version=11.7.24 1277 1278# bug fix: Mopac graphf UHF files not read properly for beta orbitals, or can't read file 1279 1280# new feature: character \0 at the start of an echo does screen echo only, not to callback or console 1281# new feature: typing into applet executed as script commands 1282# new feature: set showKeyStrokes 1283# sets the echo to bottom left and shows the key strokes as they appear 1284 1285# new feature: set dragSelected (was "set picking dragSelected") 1286# 1287# ALT_LEFT or CTRL_ALT_RIGHT highlights atoms and rotates them 1288# ALT_SHIFT_LEFT highlights atoms and translates them 1289 1290# bug fix: set picking draw can lose focus during drag operation 1291 1292# ----------------------------------------------------------------------------- 1293 1294#version=11.7.23 1295 1296# new feature: load "myfile.cif" {ijk i'j'k' -1} 1297# loads crystal structure and packs unit cell 1298# new feature: load "myfile.cif" PACKED 1299# same as {555 555 -1} 1300# 1301# bug fix: {*}.formalCharge = 1 after {*}.formalCharge = -1 sets formal charge to -7 and exception 1302# bug fix: Menu File|Open does not honor "start in" directory 1303 1304# ----------------------------------------------------------------------------- 1305 1306#version=11.7.22 1307 1308# new feature: translate x|y|z x.x nm|angstroms|% 1309 1310# bug fix: structure helix ({xx:yy}) compiler bug 1311# new feature: additional VRML support (Angel Herraez) 1312# new feature: u3d exporter template only -- no actual output 1313 1314# ----------------------------------------------------------------------------- 1315 1316#version=11.7.21 1317 1318# bug fix: user menu ...Text menus not translated 1319# bug fix: minimization broken 1320# bug fix: menu save ?.spt 1321# bug fix: write PovRay "?.pov" 1322 1323# ----------------------------------------------------------------------------- 1324 1325#version=11.7.20 1326 1327# bug fix: protein-protein hydrogen bonds not calculated across biopolymer boundaries 1328 1329# ----------------------------------------------------------------------------- 1330 1331#version=11.7.19 1332 1333# bug fix: vibrationperiod set to 0 if vibration off when state saved 1334# bug fix: Compilation problem with "new IOException(e)" 1335# bug fix: application -i option still gives message from "set xxxx" 1336# bug fix: recent application changes do not work with -w option 1337 1338# ----------------------------------------------------------------------------- 1339 1340#version=11.7.18 1341 1342# bug fix: 11.7.15 does not run script after loadInline applet parameter 1343# new feature: Alchemy/3DNA reader 1344# 1345# new feature: new command "exitJmol" does just that -- application only; 1346# can be overridden in a script by user defining the function "exitJmol" 1347# 1348# new feature: application -d --debug sets loglevel to 5 1349# new feature: application -J --jmolscript1 Jmol script BEFORE -s 1350# new feature: application -j --jmolscript2 Jmol script AFTER -s not accepting values 1351# 1352# new feature: (embedded application method of JmolViewer): 1353# 1354# public Object viewer.getImageAs(String type, 1355# int quality, 1356# int width, 1357# int height, 1358# String filename, 1359# OutputStream outputStream); 1360# 1361# allows creation of an image of a given type ("JPG", "JPEG", "JPG64", "PNG", "GIF", "PPM") 1362# of a specific quality (-1 indicates default) 1363# 0 to 100 for JPG (-1 = default of 75) 1364# 0-9 for PNG (-1 = default of 2) 1365# and specific width and height 1366# and returned as byte[] (when fileName = null, os = null) 1367# or sent to an output stream (os != null) 1368# or set to a file (os == null, fileName != null) 1369# 1370# return can be String if there is an error. 1371# 1372# command sequence, for example: 1373# 1374# jmol.viewer.scriptWait("load =1crn;cartoons on;set antialiasdisplay"); 1375# Object nullOrErrorMsg = jmol.viewer.getImageAs("JPG", 75, 300, 300, "t75.jpg", null); 1376# Object nullOrErrorMsg = jmol.viewer.getImageAs("JPG", 75, 300, 300, null, os); 1377# Object bytesOrError = jmol.viewer.getImageAs("JPG", 75, 300, 300, null, null); 1378# Object stringOrError = jmol.viewer.getImageAs("JPG64", 75, 300, 300, null, null); 1379# 1380# this method, like WRITE IMAGE uses the antialiasImage settings 1381# 1382# primarily, this is for writing to an OutputStream directly, but 1383# the rest seemed simple to implement along with that. 1384# 1385# new feature: (embedded application method of JmolViewer): 1386# 1387# public String clipImage(String text); 1388# 1389# sends image (null parameter) or text to clipboard 1390 1391# ----------------------------------------------------------------------------- 1392 1393#version=11.7.17 1394 1395# new feature: q = quaternion(matrixColumn1, matrixColumn2) 1396# quaternion from first two columns of a 3x3 rotation matrix 1397# bug fix: some quaternions cannot be created from a 3x3, namely: 1398# q = quaternion({1 2 -2}, {2 1 2}) = {0.57735026 0.57735026 0.0 0.57735026} (xyzw format) 1399 1400# bug fix: ignoreError -- need not get error string 1401# bug fix: write image does not set mustRender 1402# bug fix: set debugscript and set loglevel do not act in script immediately 1403# 1404# new feature: Jmol.js jmolScriptWaitOutput(script) returns all messages that would 1405# have been sent to the console. 1406# new feature: applet.getJmolStatus("AS_VECTOR") and applet.getJmolStatus("AS_HASHTABLE") 1407# allows slightly different format for JSON return 1408# new feature: measureCallback reports pending measurements as well as completed ones 1409# 1410# code: documentation for callbacks in Viewer; refactoring of StatusManager 1411# 1412# function myAnimFrameCallback(frameNo, fileNo, modelNo, firstNo, lastNo) {} 1413# function myEchoCallback(app, message, queueState) {} 1414# function myErrorCallback(app, errType, errMsg, objectInfo, errMsgUntranslated) {} 1415# function myHoverCallback(strInfo, iAtom) {} 1416# function myLoadStructCallback(fullPathName, fileName, modelName, errorMsg, ptLoad) {} 1417# function myMeasureCallback(strMeasure, intInfo, status) {} 1418# function myMinimizationCallback(app, minStatus, minSteps, minEnergy, minEnergyDiff) {} 1419# function myPickCallback(strInfo, iAtom) {} 1420# function myResizeCallback(width, height) {} 1421# function myScriptCallback(app, status, message, intStatus, errorMessageUntranslated) {} 1422# function mySyncCallback(app, script, appletName) { 1423# ...[modify script here]... 1424# return newScript 1425# } 1426# 1427# new feature: errorCallback and scriptCallback report untranslated errors 1428# new feature: when errorCallback or scriptCallback is enabled, messages are translated 1429# note: To get translation in message callbacks, use jmolSetTranslation(true) 1430# bug fix: translations of Console not implemented correctly 1431# bug fix: translation not disabled when messageCallback is present 1432 1433# ----------------------------------------------------------------------------- 1434 1435#version=11.7.16 1436 1437# new feature: set errorCallback -- cannot be a Jmol script! 1438# new feature: load xxx.gamess FILTER "natural,optimized" 1439# new feature: load xxx.gamess FILTER "!natural,!initial" 1440 1441# bug fix: script error messages not updating when language changed (coding) 1442# bug fix: app -j "xxx" option not properly implemented 1443# bug fix: MO scale 1444 1445# readers: MOLDEN reader update contributed by Albert DeFusco - adefusco 1446# readers: GAMESS reader update contributed by Albert DeFusco - adefusco 1447 1448# ----------------------------------------------------------------------------- 1449 1450#version=11.7.15 1451 1452# bug fix: measure allConnected broken 1453# bug fix: 11.7.14 has broken define ({...}) statement 1454# code: better handling of OutOfMemoryError conditions (2) 1455# code: refactoring of method names in FileManager and Viewer 1456# code: refactoring of method names to remove ambiguities between "openFile" and "createModelSet" 1457# code: fixing inappropriate calls to getOpenFileError(), which actually creates the model set. 1458# new feature: applet methods jmolLoadInline, jmolLoadInlineScript, jmolLoadInlineArray, 1459# jmolAppendInlineArray, jmolAppendInlineScript all return load error message 1460 1461# ----------------------------------------------------------------------------- 1462 1463#version=11.7.14 1464 1465# code: efficiencies 1466 1467# new feature: jmolGetPropertyAsString("errorMessage") 1468# new feature: out-of-memory "Java heap error" trapping in scripts and image creation 1469# new feature: save [bonds|coordinates|orientation|selected|state|structure] DELETE 1470 1471# bug fix: write .... @{...} can fail 1472# bug fix: write coords CLIPBOARD broken 1473# bug fix: select {*.ca} (phi < select(y; {*.ca}; y.resno = _x.resno + 1).phi) fails when atomExpression is ({}) 1474# bug fix: applet compilation error not sent in termination message 1475# bug fix: build javax package does not include AxisAngle4d.class, Matrix4d.class 1476# bug fix: compilation of myfunc({1 2 3}) fails 1477# bug fix: hover watcher occasional uncaught exception 1478 1479# ----------------------------------------------------------------------------- 1480 1481#version=11.7.13 1482 1483# new feature: sync * stereo 1484# bug fix: applet improperly reporting status of "quiet" commands 1485# bug fix: stereo not in state 1486# bug fix: stereoDegrees parameter not reported correctly 1487# bug fix: quaternion straightness update 1488# bug fix: translucency of mapped isosurfaces not saved in state 1489# bug fix: Dialog look and feel for Mac 1490# bug fix: negative number in range involving ^ fails: select 10^P -17^P 1491# code: better allocateViewer method 1492 1493# ----------------------------------------------------------------------------- 1494 1495#version=11.7.12 1496 1497# new feature: isosurface PMESH; pmesh command deprecated 1498# code: pmesh now a subclass of isosurface, with org.jmol.jvxl.PmeshReader doing the work. 1499# new feature: all options of isosurface now option for pmesh. 1500# all pmesh command does is guarantee that if the pmesh data is standard pmesh ASCII data, 1501# then it will be read correctly. Binary pmesh files may be read with isosurface command. 1502# new feature: pmesh files and inline scripts now can be colored and saved as JVXL files 1503# new feature: isosurface INLINE "--pmesh data--" 1504# 1505# bug fix: .xxx broken for Jmol 11.7.11 1506# JVXL 2.0 format enhancements 1507# new feature: #xxx comments act as targets for goto as well as MESSAGE commands 1508# bug fix: goto xxx with trailing white space fails to find xxx 1509# bug fix: goto with a # comment in the script prior to the target line fails 1510# bug fix: two //xxx comments in a row breaks script 1511# new feature: fully remappable JVXL files 1512# new feature: JVXL file format version 2.0 writing and reading for general vertex/triangle file source. 1513# code: superfast JVXL compression/decompression 1514# bug fix: straightness absolute value -- values 0 (not straight) to 1 (straight) 1515# load =1crn;calculate straightness;color "bwr" range 0 1;color straightness 1516# new feature: efvet file reader (http://ef-site.hgc.jp/eF-site) 1517# isosurface color "rwb" "myfile.efvet" 1518# bug fix: isosurface APBS dx file reader broken (since 4/2007) 1519# menu: "Minimize" GT 1520 1521# ----------------------------------------------------------------------------- 1522 1523#version=11.7.11 1524 1525# bug fix: UFF.txt not included in build 1526# new feature: user-definable atom selector for extended select: 1527# 1528# select {*.ca} (myfunc < 3.0) 1529# 1530# new feature: user-definable atom selector functions. 1531# _x is used for the selected atom (not _atom) as for 1532# select {atomExpression} (property expression) 1533# 1534# function myFunc() 1535# return _x.x + _x.y + _x.z 1536# end function 1537# 1538# print {*}.myFunc 1539# print {*}.myFunc.min 1540# print {*}.myFunc.max 1541# print {*}.myFunc.all 1542# 1543# parenthetical parameters are allowed provided .min, .max, .all are not used 1544# 1545 1546# ----------------------------------------------------------------------------- 1547 1548#version=11.7.10 1549 1550# bug fix: function definitions occurring before prior script commands are executed. 1551# bug fix: message @{xxxx} in function not picking up function context variables 1552# new feature: set fontCaching false -- for testing of font caching issues 1553# bug fix: CD command not working for writing 1554# bug fix: Some browsers do NOT strip \n from <param> tags, necessitating changes in loadInLine() 1555 1556# ----------------------------------------------------------------------------- 1557 1558#version=11.7.9 1559 1560# bug fix: initializeBspf(); missing in setTrajectory() 1561# new feature: hbonds delete 1562# new feature: calculate hbonds {*} {*} 1563# between {O or N} and {O or N} only 1564# new feature: set hbondsAngleMinimum 1565# if hbondsAngleMinimum is set > 0 (default 90 ?), then that angle is checked 1566# for any atoms A--X- - -Y where A is attached to X, 1567# and X and Y are the two heteroatoms involved. 1568# new feature: set hbondsDistanceMaximum 1569# maximum distance for X---Y. (default 3.25 ?) 1570# 1571# bug fix: AMBER atom type IM and IP not recognized 1572# bug fix: AMBER topology file reading of IFBOX=2 files 1573# bug fix: antialiased fontscaling labels can appear incorrectly 1574# bug fix: font maximum reduced 1575# code: major scaled memory font savings 1576# bug fix: more lenient MopacGraphF format resolving 1577# bug fix: "valence" not "valency" in data property_valence 1578 1579# ----------------------------------------------------------------------------- 1580 1581#version=11.7.8 1582 1583# bug fix: set antialiastranslucent false not functional 1584# bug fix: text color near black with antialiasdisplay becomes white 1585# bug fix: text antialiasing of near-black text looks very bad when antialiased 1586 1587# new feature: settable atom elements, atomType, and atomName 1588# {atomno=3}.element = 6 # set atom 3 to carbon 1589# {atomno=3}.element = "C" 1590# note -- this will reset the atom color to its standard CPK value. 1591# {atomno=3}.atomType = "xxx" 1592# {atomno=3}.atomName = "xxx" 1593# new feature: select within("atomName", "xxx,yyy") 1594# new feature: select within("atomType", "xxx,yyy") 1595 1596# ----------------------------------------------------------------------------- 1597 1598#version=11.7.7 1599 1600# bug fix: forcefield file UFF.prm --> UFF.txt 1601# bug fix: better Escape method for strings 1602# bug fix: connect auto not registered in state 1603# 1604# new feature: Jmol math simple array definitions using brackets: x = [3,4,5,6] 1605# new feature: set atomTypes "abcd=>C;efgh=>H" for reading mol2 and mdTop files 1606# 1607# code: better algorithm for atom types in Mol2Reader 1608# code: faster loading -- no "pre" definition of atom sets 1609# code: Eval load conversion of param[] values to htParams entries 1610 1611# ----------------------------------------------------------------------------- 1612 1613#version=11.7.6 1614 1615# bug fix: draw point translucent only draws ring 1616# new feature: mol2 format reads force field atom types for AMBER, CFF91, GAFF, ESFF, CHARMM, COMPASS, CVFF, CVFF_aug, PCFF force fields (rev2) 1617# bug fix: load string inline with multiple models fails 1618# code: FindBugs fixes for Eval, DrawRenderer, Isosurface, ForceFieldUFF,PdbReader 1619# code: ScriptWindow public: sendConsoleEcho,sendConsoleMessage,notifyScriptStart,notifyScriptTermination 1620 1621# ----------------------------------------------------------------------------- 1622 1623#version=11.7.5 1624 1625# code: ScriptWindow public: sendConsoleEcho,sendConsoleMessage,notifyScriptStart,notifyScriptTermination 1626# bug fix: set labelToggle malfunctioning 1627# bug fix: missing default background for toggled labels 1628# bug fix: color {oxygen} translucent blue 1629# bug fix: color translucent 1 blue 1-8 integer settings off by one 1630# bug fix: background color +/-1 adjustment removed 1631 1632# ----------------------------------------------------------------------------- 1633 1634#version=11.7.4 1635 1636# bug fix: spardir within /M... directory 1637# new feature: write MENU "filename.mnu" 1638# new feature: (Application) -c option checks without loading files; -C option checks with loading files 1639# code: LOAD command ignores all nonrecognized pre-filename keywords 1640 1641# ----------------------------------------------------------------------------- 1642 1643#version=11.7.3 1644 1645# new feature: x = file("some file name") or x = file("?") -- returns full path to file 1646# new feature: (Application) Files...Export...Gaussian... Build Gaussian Input File Dialog 1647# new feature: (Application) command line option -j --jmolscript "script commands" 1648# new feature: load MODELS ({bitset})|{first,last,stride} 1649# new feature: load TRAJECTORY ({bitset})|{first,last,stride} 1650# new feature: load APPEND MODELS ({bitset})|{first,last,stride} 1651# new feature: load APPEND TRAJECTORY ({bitset})|{first,last,stride} 1652# new feature: load APPEND "[topolopy file]" COORD ({bitset})|{first,last,stride} "mdcrd::md1.crd COORD ..." 1653# new feature: load FILES "[topology file]" COORD ({bitset})|{first,last,stride} "mdcrd::md1.crd COORD ..." 1654 1655# ----------------------------------------------------------------------------- 1656 1657#version=11.7.2 1658 1659# new feature: independent JAR files for language localizations 1660# bug fix: XML readers broken in 11.7.1 1661# bug fix: AMBER molecular dynamics topology file misreads P atoms 1662# 1663# new feature: select within(atomName,"ATOMNAME1,ATOMNAME2,...") 1664# new feature: select within(atomType,"ATOMTYPE1,ATOMTYPE2,...") 1665# NOTE: 11.7.8 changes just "type" to "atomType" 1666# selects within a set of atom types (defined currently only for mol2 and AMBER topology file types) 1667# matching is case-sensitive. 1668# defaults to atom name if no types are indicated 1669# for example: select not within(atomType,"HW,OW") 1670# 1671# new feature: cd command sets defaultDirectory 1672# cd # reports current directory and sets default directory to that 1673# cd ? # (signed applet and app only) opens a directory 1674# cd .. # moves up one directory 1675# cd temp # moves to subdirectory temp 1676# cd "" # resets the default directory 1677 1678# ----------------------------------------------------------------------------- 1679 1680#version=11.7.1 1681 1682# new feature: draw LINE {...} {...} {...} {...} draws line segments 1683# new feature: making Jmol movies using write frames {atomExpression} [width] [height] "movie.jpg" 1684# creates a set of files movie0001.jpg, movie0002.jpg, etc. for frames in atomExpression 1685# these fils can then be combined using an external program of user's choice to create 1686# a movie from a sequence of JPEG images 1687# 1688# write frames {*} "all.jpg" 1689# write frames {1.0} "firstFile.jpg" 1690# write frames {1.0} 200 200 "smallFile.jpg" 1691# 1692# new feature: load of molecular dynamics topology file and coordinates 1693# 1694# load files "u.mdtop" FILTER "![WAT],![URE]" COORD {0 -1 1} "mdcrd::u.mdcrd" ; 1695# 1696# -- mdtop file must have %FLAG and %FORMAT comments 1697# -- FILTER is optional 1698# -- COORD {first,last,step} is optional for each coordinate file loaded 1699# first,last,step same as in VMD -- 0 for very first trajectory, last -1 meaning "all" 1700# default {0 0 1} so that just one trajectory is loaded from each file 1701# -- explicit format "mdcrd::" is required, because these files have no identifying characteristics 1702# -- as many COORD keywords/coordinate files as desired can be included: 1703# 1704# load files "u.mdtop" FILTER "![WAT],![URE]" COORD {0 -1 1} "mdcrd::u1.mdcrd" "mdcrd::u2.mdcrd" COORD {0 300 10} "mdcrd::u3.mdcrd" ; 1705# 1706# new feature: x = quaternion({center_or_point}, {atomX_or_point}, {atomXY_or_point}) 1707# 1708# -- quaternion is created based on three atoms or coordinates 1709# -- such that X = atomX - center, Z = cross(atomXY - center, atomX), Y = cross(Z, X) 1710# 1711# new feature: x = quaternion(q, "id", {center}) 1712# 1713# -- creates DRAW sequence to draw quaternion q as three arrows red(x), green(y), blue(z) 1714 1715# ----------------------------------------------------------------------------- 1716 1717#version=11.6.RC19_dev 1718 1719# bug fix: GIF encoder color / class not found issues 1720# bug fix: very thin cylinder does not appear at all viewing angles 1721# bug fix: load "/xxx" with unsigned remote applet loads local file instead of remote root directory 1722# -- this change represents a difference in behavior between the unsigned applet and other code (signed applet or application) 1723# bug fix: sulfur/sulphur always spelt as in IUPAC Red Book 1724# bug fix: display of aromaticSingle bond for NEW bond results in dotted bond. 1725# translation: English language variants no longer ignored 1726 1727# ----------------------------------------------------------------------------- 1728 1729#version=11.6.RC18 1730 1731# bug fix: fileName not reset after ZAP 1732# bug fix: set echo none; color echo green null pointer exception 1733# bug fix: .x not recognized 1734# bug fix: set xxxCallback "" does not clear callback ("none" was required unnecessarily) 1735# bug fix: cartoons ending in helix or strand draw single dot for final amino acid 1736# ----------------------------------------------------------------------------- 1737 1738# version=11.6.RC17 1739 1740# bug fix: draw scale not saved in state for arc or xy arrow 1741# bug fix: drag/drop not enabled on consoles 1742# bug fix: Jmol state command "calculate surfaceDistance WITHIN ({...})" not passing compiler 1743# bug fix: Swing antialiasDisplay broken due to setTransparentBackground debugging 1744# bug fix: trajectories not enabled 1745# code: if (true...)/ if (false...) code cleanup 1746# bug fix: select model=_modelNumber didn't differentiate between 2.10 and 2.1 1747# bug fix: select model=0.0 caused infinite loop 1748 1749# ----------------------------------------------------------------------------- 1750 1751#version=11.6.RC16 1752 1753# bug fix: mol2 PDB format better handling of chains and derived element types 1754# bug fix: save image button/menu interface broken in 11.6.RC15 1755 1756# ----------------------------------------------------------------------------- 1757 1758#version=11.6.RC15 1759 1760# new feature: MOL2 reader is PDB-enabled. 1761# new feature: data() and DATA expanded to allow fixed-column entry 1762# bug fix: data property_partialcharge does not update atomic partialCharge data itself for MEP 1763# but instead just creates a data type "property_partialcharge" 1764# bug fix: CML reader failst to load primitive lattice parameters when no symmetry 1765# note: CML reader only reads the first structure of a file 1766# bug fix: CML reader not assigning atom labels 1767# bug fix: CML files not properly loading symmetry 1768# bug fix: O- formal charge radius MUCH too large; N+ MUCH too small. -- REMOVED 1769# code: thread control for Java Swing in applet context 1770# thread creating Swing objects MUST be event thread 1771# -- using SwingUtilities.invokeAndWait() from the commandWatcher thread 1772# new feature: load menu items for signed applet 1773# new feature: save menu items for signed applet 1774# bug fix: applet -- setting a jmolScript callback prevents menu updates 1775# new feature: minimize menu item 1776# new feature: signed applet allows "load ?" and includes previewer 1777# bug fix: H-M spacegroup designations specifying nonstandard Hall symbols by default 1778 1779# new feature: signed applet/application load ?xxx uses load dialog 1780# webexport help updated to reflect ability to handle files opened with "load append" 1781 1782# ----------------------------------------------------------------------------- 1783 1784#version=11.6.RC14 1785 1786# new feature: signed applet may write file, images, scripts, variables to disk. User dialog is required. 1787 1788# new feature: write GIF 1789# code: allows for getJpeg(quality,asString) option to return byte array instead of base64. 1790# bug fix: xxx.split()[3].replace does not do selection first 1791# bug fix: ramachandran and quaternion derivative not indicating structure due to dropping last atom 1792 1793# ----------------------------------------------------------------------------- 1794 1795#version=11.6.RC13 1796 1797# bug fix: set historyLevel recording full scripts, not individual commands 1798# bug fix: y-offset for echo text and images 1799# bug fix/new feature: HIDE/DiSPLAY/DELETE/COLOR $*xxx* extended to ECHO 1800# bug fix: findbugs input stream closure 1801# translation: add GT.escapeHTML and stricter checking for special characters in file names 1802# used by web export. 1803 1804# ----------------------------------------------------------------------------- 1805 1806#version=11.6.RC12 1807 1808# bug fix: getProperty("atominfo",{atom expression}) not working for "atominfo[0].xxx 1809# bug fix: getProperty("modelinfo",{atom expression}) not working 1810# new feature: set atomPicking TRUE/FALSE 1811# new feature: set bondPicking TRUE/FALSE 1812# bug fix: draw pointgroup when principalPlane == null 1813# bug fix: findbugs corrections in minimize.forcefield, modelset.AtomCollection, shapespecial.DrawRenderer 1814# new feature: applet parameter jmolSetCallback("maximumSize", nnn) -- sets maximum size of applet when resizing to this value 1815# cml reader fix for not applying symmetry to first model 1816# translation: added GT._ calls for HTML templates and JS in WebExport 1817 1818# ----------------------------------------------------------------------------- 1819 1820#version=11.6.RC11 1821 1822# bug fix: echo IMAGE and antialiasdisplay 1823# bug fix: super/subscripts with antialiasdisplay 1824# translation: menu items in console 1825# bug fix: web export / language 1826# bug fix: draw pointgroup C2 2 not distinguished from draw pointgroup C2 1 1827# bug fix: d2 point groups cause null pointer exception due to missing principal axis 1828# bug fix: {*}.x = .... broken 1829 1830# ----------------------------------------------------------------------------- 1831 1832#version=11.6.RC10 1833 1834# new feature: (just not documented) rotate {atom1} {atom2} 10 1835# new feature: moveto quaternion {resno=3} {3.ca} 1836 1837# bug fix -- set picking spin, also compatibility of set picking spin and doing measurements 1838# bug fix -- draw pointgroup, write pointgroup draw 1839 1840# ----------------------------------------------------------------------------- 1841 1842#version=11.6.RC9 1843 1844# code: more efficient return of point group information and calculation 1845# new feature: getProperty PointGroupInfo 1846# bug fix: show pointgroup draw null pointer exception 1847# bug fix: print $planeA - capital letters in a draw name disallow finding it. 1848 1849# ----------------------------------------------------------------------------- 1850 1851#version=11.6.RC8 1852 1853# bug fix: ramachandran / ramachandran r navigation problem 1854# code: Minor refactoring and pruning. 1855# --- Core applet now 715K (JmolApplet0.jar + _Core, _Jars, _Main, _Popup, and _Viewer) 1856# code: Pre-Jmol.js button controls removed, saving about 10K 1857# new feature: script APPLET appletName "some script" 1858# --allows direct inter-applet communication independent of set SYNC 1859# --appletName can be * (all applets), > (other applets), . (this applet), 1860# or an applet name such as "jmolApplet0" or just the extension "0" 1861# or a quoted set of applet names separated by commas. 1862# --for *, the current applet always reports LAST 1863# new feature: x = script("some script", "appletName") 1864# --same as above 1865# --in addition, allows retrieval of information from another applet 1866# for example: 1867# 1868# x = script("print getProperty(\"modelInfo.modelCount\")","B") 1869# 1870# gets the number of models loaded in applet jmolAppletB. 1871# 1872# x = script("show orientation moveto","jmolApplet2") 1873# 1874# gets the current orientation of applet jmolApplet2. 1875# 1876# xList = script("print getProperty(\"appletInfo.fullName\").split(\"__\")[1] + \":\" + script(\"show rotation\").trim()","*") 1877# 1878# gets a new-line-separated list of rotational quaternions for all applets with applet names. 1879# 1880# 1881# new feature: print getProperty("modelInfo.models[3].file") syntax 1882 1883# ----------------------------------------------------------------------------- 1884 1885#version=11.6.RC7 1886 1887# new feature: draw ramachandran includes planes connecting atoms. 1888# bug fix: refresh for hover 1889# bug fix: state definition for lcaoCartoons, isosurface with IDs containing spaces 1890# new feature: $*xx* double wild cards 1891# new feature: generally for objects (draw,pmesh,isosurface,etc.) use DISPLAY/HIDE rather than ON/OFF 1892# so as to be consistent with other objects. (OFF was not deleting these) 1893# new feature: support for application transparent background -- "-b" command switch (testing only) 1894# and setAppletContext "-b" switch as well. 1895# bug fix: structure helix|sheet|turn|none {atomExpression} was undocumented and had state issues 1896# new feature: HIDE $xxx 1897# new feature: DISPLAY $xxx 1898# new feature: DELETE $xxx 1899# bug fix: adaptation for malformed PDB files (HEADER with nothing following it) 1900# bug fix: more language localization in webexport 1901# new feature: applet message regarding help and command entry 1902 1903# ----------------------------------------------------------------------------- 1904 1905#version=11.6.RC6 1906 1907# code: better navigation refreshing 1908# bug fix: oops, 11.6.RC5 is totally broken due to missing refreshes 1909# bug fix: language localization in webexport 1910 1911# ----------------------------------------------------------------------------- 1912 1913#version=11.6.RC5 1914 1915# bug fix: set fontscaling with multiple echo texts/images at the same xyz location only scaling the first item 1916# bug fix: set echo xxxx 30 40 1917# bug fix: WAY more streamlined refreshing 1918# bug fix: createImage(), not getImage() in order to allow dynamic file change 1919# bug fix: halo size for antialiased display 1920# Addition of translation tags to webexport 1921# bug fix: write IMAGE broken for 11.6.RC2+ 1922# bug fix: unnecessary refreshes removed from moveto/zoom with time 0 1923# new feature: background IMAGE "filename" 1924# code: viewer refactoring to simplify/remove private methods and synchronization 1925 1926# ----------------------------------------------------------------------------- 1927 1928#version=11.6.RC4 1929 1930# bug fix: select @m throws an error 1931# code: refactoring shapespecial into shapespecial and shapesurface 1932# code: refactoring modelset.CellInfo into symmetry.SymmetryInfo 1933# code: realignment of applet JAR files 1934# -- new _ShapeSurface.jar, which now includes org.jmol.jvxl/** 1935# -- removal of _Jvxl.jar 1936# -- refactoring reduces preliminary applet Jar file loading to 720K (if English) 1937# -- should provide faster loading of simple models and more efficient loading of more complex ones 1938# -- basic minimum load involves just JmolApplet0.jar + _Core, _Jars, _Main, _Popup, and _Viewer 1939 1940# ----------------------------------------------------------------------------- 1941 1942#version=11.6.RC3 1943 1944# bug fix: minor error in pointgroup; dimension tied to radius 1945# new feature: set dotDensity [-3 to 3] 1946# new feature: draw pointGroup [type] [index] SCALE [x] 1947# where [type] is one of Cs, Ci, Cn, or Sn, where n is an integer or the character "n" 1948 1949# ----------------------------------------------------------------------------- 1950 1951#version=11.6.RC2 1952 1953# bug fix: image background transparency 1954 1955# new feature: set pointGroupDistanceTolerance (default 0.2 angstroms) 1956# new feature: set pointGroupLinearTolerance (default 8 degrees) 1957 1958# bug fix: Cs pointgroup not found 1959# bug fix: set echo DEPTH/IMAGE 1960# bug fix: workaround for Java 1.6.0_10 diallowing popup menu 1961# new feature: in Java 1.6.0_10, right-click activates the console, and the 1962# console has a menubar menu item "Jmol" that is the pop-up menu. 1963# new feature: applet console has "help" menu item, which includes several hundred items. 1964 1965# ----------------------------------------------------------------------------- 1966 1967#version=11.6.RC1 1968 1969# bug fix: D3h point group 1970# bug fix: LOAD "..." nn loading of model numbers for PDB files should read real model number, not sequentially. 1971 1972# new feature: write/show pointgroup gives counts and tab-separated listing; 1973# new feature: write pointgroup draw delivers draw commands 1974# new feature: better draw pointgroup 1975# new feature: no saving of point group -- just recalculated each time 1976# bug fix: measures were messed up 1977# new feature: echo myecho IMAGE "filename" 1978# -- reads a JPG, GIF, or PNG image and displays it the 1979# same as text is displayed. 1980# new feature: echo myecho DEPTH xx 1981# -- sets the depth in percent (0% far back, 100% front) for the placement of the image 1982# -- note that images can be placed in 3D, just as for text. 1983# -- setting "background echo xxx" then specifies the color 1984# that is to be designated as the background color (the color that should be omitted). 1985# -- using "background echo none" specifies that the first pixel 1986# of the image specifies the color that should be omitted. 1987 1988# bug fix: 11.5.52 may have lost "true" as a keyword 1989# new feature: pointgroups with vibration vectors 1990# bug fix: more testing with pointgroups 1991# new feature: spacefill/dots/geosurface/cartoon/trace/etc. ONLY 1992# -- show only this rendering type 1993# -- same as restrict not selected; spacefill ON 1994# bug fix: application rubberband selecting inappropriately selects atoms not visible 1995# new feature: wildcard at beginning for draw/pmesh/isosurface/etc. *xxx on/off/delete allowed 1996# bug fix: in draw pointGroup -- height of cylinder was too small 1997# bug fix: longstanding exception: isosurface fullylit --> isosurface backlit --> isosurface frontlit 1998 1999# ----------------------------------------------------------------------------- 2000 2001#version=11.5.52 2002 2003# new feature: calculate pointGroup 2004# new feature: draw pointGroup 2005# new feature: write pointGroup 2006# including x = script("write pointGroup") 2007# new feature: webexport now compresses data files over 512 MB 2008# new feature: calculate pointGroup -- preliminary only -- untested 2009 2010# ----------------------------------------------------------------------------- 2011 2012#version=11.5.51 2013 2014# bug fix: 11.5.49 and 11.5.50 broken for ".max" 2015 2016# new feature: PRELIMINARY aniso_beta for cif files -- has not been checked for correct Ortep type -- set to 0 for now 2017# new feature: application select button reinstated 2018# new feature: application pick button reinstated 2019# new feature: application measure button tied to picking style 2020# new feature: application [>|] button 2021# bug fix: ramachandran/quaternion "reset" not decoupled from model decouple 2022# code: model orientation saved with model. 2023# bug fix: set axesOrientationRasmol finally correctly implemented 2024# new feature: axes labels change subtly for set axesMolecular and setAxesOrientationRasmol 2025# bug fix: JmolViewer interface deprecated "rotateTo..." methods changed to "rotate..." 2026# because that's what they really do. 2027# bug fix: set defaults jmol/rasmol must do reset(). 2028 2029# new feature: webexport now cleans up scratch files on deletion of instances and program exit. 2030 2031# ----------------------------------------------------------------------------- 2032 2033#version=11.5.50 2034 2035# bug fix: vibration thread not closing down for applet destroy when applet is off-screen 2036# bug fix: was reading server path for local path from history in Webexport 2037# bug fix: $ptx[2] notation broken in 11.5.49 2038# code: various cleaning/simplifying 2039# code: way cleaner quaternion derivative calculation code 2040 2041# ----------------------------------------------------------------------------- 2042 2043#version=11.5.49 2044 2045# bug fix: strange "scripted: ?" message with measurements removed 2046# bug fix: extra values in measure reporting, and wrong format 2047# bug fix: 11.5.48 is broken for scripts with array definitions such as 2048# p = array(); p[pt] = .... 2049# code: simplification/unification of statement length checking AFTER allowing for variable substitution 2050# code: removal of unnecessary/inflexible compilation step involving color parameters 2051# code: major refactoring/simplification of Token 2052# code: refactoring/simplification of Compiler 2053# code: compiler flags for allowed number of parameters removed (not consistent with Jmol math) 2054# (defaultON and noArgs remain) 2055# new feature: dipole/draw/ellipsoid/isosurface/pmesh/mo/lcaocartoon ID keyword optional 2056# but without ID, one is restricted to words that are simple text and not Jmol entities. 2057# with ID, the next quantity can be anything. 2058# new feature: $"xxx" quotations or $@{...} allows variable definition of object id reference 2059# new feature: draw {point} PLANE [plane def, including xy, yz, x, etc.] 2060 2061# ----------------------------------------------------------------------------- 2062 2063#version=11.5.48 2064 2065# new feature: mol file bond type 8 as partial 2066# code: compiler error reporting improved 2067# bug fix: PDB site definition does not ignore empty site definitions 2068# bug fix: DEFINE can cause compiling error, e.g. "[2MO]" in 1tmo 2069# bug fix: quaternion derivative DRAW arrows placed on residue i+1 instead of residue i 2070# bug fix: connect aromatic auto; select connected([bond type],...) 2071# bug fix: queue thread termination when applets are off screen 2072# bug fix : sheetsmoothing not consistent among structures in multi-chain systems 2073# bug fix: messages not sent to messageCallback 2074# code: simpler matrix-->quaternion code 2075# bug fix: 11.5.47 shows oddly sized arrow for very first rendering 2076# bug fix: quaternion frame "n" after rotationSelected does not reset NH hydrogen positions 2077# new feature: // at beginning of a line marks comments 2078 2079# ----------------------------------------------------------------------------- 2080 2081#version=11.5.47 2082 2083# bug fix: Removed stray semicolons from header script comments in webexport templates. They 2084# were causing WYSIWG web editors to corrupt the code scripts. 2085# bug fix: 11.5.46 broke standard "spin x 30" (b) 2086# new feature: draw ARC {pt1} {pt2} {ptref} {theta0, nDegrees, fractionalOffset} 2087# new feature: draw ARROW ARC {pt1} {pt2} {ptref} {theta0, nDegrees, fractionalOffset} 2088# 2089# draws a circular arc or arrow around an axis defined by {pt1} and {pt2} 2090# using {ptref} as a starting point (looking down the axis, angles 2091# are measured in a clockwise manner, starting with the projected position 2092# of {ptref} in a plane perpendicular to the axis. This is similar (but opposite) 2093# to the way dihedral angles are indicated. 2094# theta0 is the the offset angle from 0 2095# nDegrees is the number of degrees of arc to draw 2096# fractionalOffset is the fraction of the distance from {pt1} to {pt2} for the 2097# plane containing the arc. 2098# 2099# new feature: draw RAMACHANDRAN 2100# draws phi and psi angles in the form of draw ARROW ARC 2101# new feature: write RAMACHANDRAN draw 2102 2103# ----------------------------------------------------------------------------- 2104 2105#version=11.5.46 2106 2107# bug fix: remove the skipping of semicolons if parentheses or braces have been closed. (11.5.43 bug) 2108# bug fix: set picking on broken in 11.5.39 2109# 2110# new feature: measure {atomExpression or point} {atomExpression or point} ... 2111# measurements to POINTS, including using the mouse (set drawPicking on) 2112# will persist and can be saved in the state (11.5.38 did not allow this) 2113# for example: 2114# measure {0 0 0} {atomno=3} {atomno=5} 2115# measure $point2 {atomno=3} $line[1] 2116# 2117# new feature: rotate branch {atom1} {atom2} ... 2118# new feature: select within(branch, {atom1}, {atom2}) 2119# new feature: Jmol math within("branch", {atom1}, {atom2}) 2120# code: refactoring of getAtomsWithin() and getAtomBits() 2121# 2122# bug fix: array size limited 2123# new feature: quaternion({atom expression}) -- returns calculated 2124# frame based on quaternionFrame setting. 2125# bug fix: drawhover not in state 2126# bug fix: ramachandran for systems including nucleic acids when quaternionFrame = 'n' 2127# new feature: isosurface functionXY can be used for mapping. 2128# new feature: spacegroup/symmetry for CML files with <module> tags 2129# 2130# bug fix: 11.5.39 could break isosurface/pmesh save/write state in certain cases. 2131# bug fix: Popin.png in WebExport replaced, was too large, causing dialog box to default to too big on small screens. 2132# bug fix: zap 2.1 for quaternion frame causes exception 2133# bug fix: quaternion r derivative2 nonfunctional in 11.5.45 2134# bug fix: isosurface functionXY not working 2135# bug fix for 11.5.45: application not returning echos and status messages to console 2136 2137# ----------------------------------------------------------------------------- 2138 2139#version=11.5.45 2140 2141# new feature: show rotation aka show orientation rotation 2142# new feature: show translation aka show orientation translation 2143 2144# code: mouse manager refactoring 2145 2146# bug fix: picking off structure did not clear picking for set picking spin 2147# bug fix: jmolScriptWait() improperly reporting to applet console 2148# bug fix: too many messages to applet console 2149# 2150# Note: planes, axisAngles, and quaternions are all saved as Token.point4f 2151# axisAngle() and quaternion() are both processed to quaternion format 2152# {x y z w} where w = cos(theta/2) and {x y z} = sin(theta/2)*unitNormal 2153# quaternions are always fixed so that cos(theta/2) > 0 -- that is, so that 2154# the reported theta (q %-2) is in the range [0, 180] 2155# This is important. One can also get a directed theta based on a 2156# specified axis using q % {x y z w}. w is ignored; x y z is the 2157# axis to dot with the quaternion normal in order to switch the 2158# sign of theta if that value is negative. 2159# 2160# new feature: show atom(s) 2161# new feature: show group(s) 2162# new feature: show selected 2163# new feature: draw {point} {plane} 2164# new feature: draw vector {point} {plane} 2165# new feature: draw arrow {point} {plane} 2166# new feature: q = axisAngle({x y z}, theta) 2167# new feature: q = axisAngle(x, y, z, theta) 2168# new feature: q = axisAngle("{x y x theta}") 2169# new feature: q = quaternion("{x y z w}") 2170# new feature: rotate @{quaternion(....)} 2171# new feature: rotate @{axisAngle(....)} 2172# new feature: rotate quaternion {x y z w} 2173# new feature: rotate axisAngle {x y z theta} 2174 2175# new feature: {point1} == {point2} if distance < 0.000001 2176# new feature: {quaternion} == {quaternion2} if distance < 0.000001 2177# new feature: float1 == float2 if |float1 - float2| < 0.000001 2178 2179# code: refactoring and simplification of rotate/spin 2180# code: threads named 2181 2182# bug fix: hover will find atom in hidden frame. 2183# bug fix: ellipsoid translucency not saved in state. 2184# bug fix: local assignment var x = array() followed by x[n] = ... does not work 2185# bug fix: f(x[i],x[j]) selects only x[j], not both x[i] and x[j] 2186# bug fix: quaternion frame "n" recognizes file-based H atoms on N for frame definition 2187 2188# ----------------------------------------------------------------------------- 2189 2190#version=11.5.44 2191 2192# bug fix: Java exception with write(quaternion) instead of write("quaternion") 2193# bug fix: set picking spin did not enable draw spin/picking 2194# bug fix: _applet variable not initializing properly 2195# bug fix: math calculation .xyz, .color averages broken in 11.5.42 2196# bug fix: select @x broken in 11.5.43 2197# bug fix: integer addition not remaining integer 2198 2199# ----------------------------------------------------------------------------- 2200 2201#version=11.5.43 2202 2203# bug fix -- if last helix is last atom, SHOW STRUCTURE fails to identify it. 2204# 2205# new feature/feature change: 2206# 2207# selectX is no longer necessary. Simply use 2208# 2209# select {atomExpression} (property expression) 2210# 2211# with no "x." An implied variable "_x" can be used explicitly: 2212# 2213# select {*} (straightness < 0.995) # does not round 2214# select {*.ca} (atomY < atomX) 2215# select {*.ca} (phi < select(y; {*.ca}; y.resno = _x.resno + 1).phi)) 2216# 2217# new feature: quaterion % point4f --- "thetaDirected" -- 2218# point4f is {x, y, z, w} (w ignored), where {x y z} is a 2219# preferred direction. 2220# Returns a point4f angle-Axis equivalent with x, y, z the normal for the quaternion 2221# rotation and w = theta for the rotation, where the normal and theta are chosen 2222# to be directed with a positive dot product between the input {x y z} 2223# vector and the output {x y z}. 2224# 2225# thus, because the negative angle switches the normal: 2226# 2227# print quaternion({1 0 0}, -20) % 1 ==> {-1 0 0}; %1 ==> 20 2228# 2229# but % {1 0 0 0} forces the angle associated with {1 0 0} to be reported 2230# 2231# print quaternion({1 0 0}, -20) % {1 0 0 0} ==> {1 0 0 20} 2232# 2233# bug fix: POV-RAY output of quadrilaterals. 2234 2235# new feature: Ramachandran "r" --- includes third (Z) axis quaternion r difference2 X component equivalent 2236 2237# bug fix: quaternion definition with dot-product check not effective -- removed 2238# bug fix: quaternion construction from matrix error 2239# 2240# new feature: _applet boolean 2241# 2242# new feature: extended quaternion math 2243# 2244# q = quaternion({x y z}, angleDegrees) 2245# q = quaternion(q0, q1, q2,q3) 2246# q = {qx, qy, qz, qw} 2247# 2248# returning component values: 2249# 2250# q.x, q.y, q.z, q.w 2251# 2252# note that the Point4f equivalent stores w LAST, even though it is "q0" 2253# because the Java Quat4f() and Point4f() both do that as well. We're just 2254# being consistent with other Java use. 2255# 2256# Modulus operator for extended information retrieval: 2257# 2258# (q%0) -- q0 (w) 2259# (q%1) -- q1 (x) 2260# (q%2) -- q2 (y) 2261# (q%3) -- q3 (z) 2262# (q%-1) -- the vector {q1, q2, q3} 2263# (q%-2) -- theta 2264# (q%-3) -- equivalent rotational frame X-axis 2265# (q%-4) -- equivalent rotational frame Y-axis 2266# (q%-5) -- equivalent rotational frame Z-axis 2267# (q%{x y z}) -- rotational transform of a point or vector based on a quaternion 2268# 2269# thus, for example, (q%{1 0 0}) is the same as (q%-3) 2270# 2271# (!q) -- quaternion inverse 2272# 2273# 2274# Quaternion right division (difference "dq"): 2275# 2276# q2 / q1 = q2 * (!q1) 2277# 2278# Quaternion left division (relative difference n): 2279# 2280# q2 \ q1 = (!q1) * q2 2281# 2282# Examples: 2283# 2284# q = quaternion({1 1 1},120) 2285# print "" + (q%{1 0 0}) + " " + (q%{0 1 0}) + " " + (q%{0 0 1}) 2286# 2287# {0 1.0 0} {0 0 1.0} {1.0 0 0} 2288# 2289# new feature: Numerical left division (integer divide) 2290# 2291# 3.6 \ 2 = 1 2292# 3.6 \ 1.3 = 2 2293# 2294# new feature: sqrt(x) 2295# 2296# bug fix: load trajectory for cases with different atom counts. 2297# 2298# experimental: "straightness" defined as 1 - 2 * acos(normal(dq[i]%-1) dot normal(dq[i+1])) / PI 2299# giving a measure proportional to the difference in local helical axis angle 2300# and ranging from -1 (opposite direction) to 1 (same direction) for proteins 2301# -- a work in progress. See 2302# 2303# load =1d66 2304# calculate straightness;color straightness 2305 2306# ----------------------------------------------------------------------------- 2307 2308#version=11.5.42 2309 2310# code: modified Jmol encoded PDB data output 2311 2312# bug fix: color of NaN float values changed from "center of color scheme" to GRAY 2313# bug fix: connect "_1" was inadvertently dropped in 11.5.26. 2314# bug fix: state script fails to save data for atoms created using the quaternion command 2315# bug fix: axes/boundbox/unitcell dotted not working since 11.5.6 2316# bug fix: spin thread not stopped for applet destroy() 2317# bug fix: quaternion derivative for i/i+1 assigned to i+1 instead of i; now assigned to i 2318# bug fix: quaternion calculation using published algorithms was giving inverted quaternions 2319# 2320# new feature: set PICKLABEL "xxx" -- allows customized pick reports 2321# 2322# for example: set pickLabel "%n x = %x, y = %y, z = %z" 2323# 2324# new feature: "quaternion derivative" --> "quaternion difference", which is more 2325# appropriate, we think, with "absolute" and "relative" qualifiers: 2326# 2327# quaternion absolute difference # in the molecular frame 2328# quaternion relative difference # in the (local) frame of first quaternion: 2329# 2330# dq_absolute = q2 * q1_inverse 2331# dq_relative = q1_inverse * q2 2332# 2333# absolute involves un-doing q1's rotation (making it the reference frame), then applying q2. 2334# relative involves applying q2 (maintaining the original reference frame), then undoing q1. 2335# 2336# new feature: quaternion [w|x|y|z|a|r] [difference][2] [draw] 2337# new feature: draw quaternion [w|x|y|z|a|r] [difference][2] 2338# new feature: write quaternion [w|x|y|z|a|r] [difference][2] [draw] 2339# and with that: write("quaternion" [,"w"|"x"|"y"|"z"|"a"|"r"][,"difference"|"difference2"][,"draw"]) 2340# 2341# new feature: set quaternionFrame "N" -- for solid state NMR PISEMA 15N chemical shift frame 2342# using alpha = 0 and beta = 17 degrees. 2343# 2344# new feature: select whatever; quaternion draw 2345# draws x,y,z and n vectors for a quaternion center 2346# 2347# new feature: straightness, defined as: 2348# 2349# straightness = 2*|n(dq1).dot(n(dq2))| - 1 2350# 2351# where q1 and q2 are quaternions defined generally as: 2352# 2353# q = frame{ vA, (vC x vA), vC } 2354# 2355# using quaternionFrame "p", which I define as 2356# 2357# protein: 2358# 2359# vA = C--CA 2360# vB = C--N[i+1] 2361# 2362# purine: 2363# 2364# vA = N9--C4 2365# vB = N9--C8 2366# 2367# pyrimidine: 2368# 2369# vA = N1--C2 2370# vB = N1--C6 2371# 2372# Differences dq1 and dq2 are absolute quaternion differences 2373# on the two sides of a residue: 2374# 2375# dq1 === q[i] * q[i-1]_inverse 2376# dq2 === q[i+1] * q[i]_inverse 2377# 2378# and n(dq) = the normal vector associated with this quaternion. 2379# Range is from -1 to 1 2380# 2381# applications (note that CALCULATE must be invoked first): 2382# 2383# calculate straightness # must be invoked first; 2384# color straightness; 2385# select straightness < 0.70; # rounds to nearest hundredth 2386# selectX {*} x.straightness < 0.995 # does not round 2387# 2388# new feature: "%T" label format for straightness 2389 2390# ----------------------------------------------------------------------------- 2391 2392#version=11.5.41 2393 2394# new feature: xyz reader reads partial charge in 5th field 2395# bug fix: carbohydrate popup menu script incorrect 2396# new feature: "load" of Jmol state scripts works same as "script" command 2397# (file recognized as SPT type and read as a script instead) 2398# bug fix: Jmol Embedded scripts containing script comments /* */ 2399# new feature: getproperty menu current 2400# bug fix: 11.5.40 cannot read most state scripts. 2401 2402# ----------------------------------------------------------------------------- 2403 2404#version=11.5.40 2405 2406# (with corrected 40_dev draw scale) 2407# new feature: new command: 2408# 2409# selectX {atomExpression} booleanEvaluation 2410# 2411# same as select() function, but simpler to implement 2412# 2413# new feature: full math on individual atom properties using 2414# a new function: 2415# 2416# select(x;{atomexpression};booleanEvaluation) 2417# 2418# for example: 2419# 2420# x = select(x;{*};x.distance({atomno=3}) / 3 > x.distance({atomno=2})) 2421# x = select(x;{*.ca};x.phi < select(y; {*.ca}; y.resno = x.resno + 1).phi) 2422# 2423# bug fix: H1 and H3 in DNA are NOT backbone 2424# new feature: quaternion derivative2 (2nd derivative) and quaternion e derivative [experimental] 2425# new feature: draw Vector [x y] or [x y %] {x' y' z'} 2426# new feature: draw [x y] or [x y %] can be incorporated into lines, curves, arrows 2427# bug fix: set picking center should not zoom -- just too annoying 2428# new feature: set echo myecho [x y] and set echo myecho [x y %] 2429# new feature: axes position [x y] and axes position [x y %] 2430# sets the axes to the x y screen position or percent indicated. 2431# bug fix: echos with active script and a model designation 2432# and multiple models select even if not displayed because it is not their model 2433# that is displayed. 2434# bug fix: missing echocallback, scriptcallback, measurecallback "set"able variables 2435# bug fix: "set picking identify" should be equivalent to "set picking ident" 2436# bug fix: popup menu had stereo reversed 2437# 2438# new feature: signed applet shows frank "Jmol-S" which is NOT removable. 2439# possibly to come: signed applet will send confirmation first time it reads a local file? 2440# bug fix: reading .mmol (biological unit) files such as 2441# http://pqs.ebi.ac.uk/pqs-doc/macmol/1j7n_1.mmol 2442# new feature: frank appears RED in signed applet, and popup about menu identifies the applet as signed. 2443# code: better handling of twin script manager threads 2444# new feature: /*SPLIT*/ in a command string allows it to be processed by 2445# the two independent processors. (just to isolate javascript from load commands 2446# for the signed applet 2447 2448# ----------------------------------------------------------------------------- 2449 2450#version=11.5.39 2451 2452# new feature: --threaded option for command processor uses 2453# a watcher thread to monitor a Vector, allowing the signed applet to open any file 2454# the signed applet uses this automatically unless there is a 2455# jmolSetCallback("useCommandThread", "false") 2456# which overrides the default behavior and disallows reading of files from 2457# JavaScript. 2458# 2459# NOTE a limitation: scripts intended for the signed applet that 2460# contain both load/script commands or the load() function 2461# CANNOT be combined with the JAVASCRIPT command. This is because 2462# in that environment, the JAVASCRIPT command must run on the browser's 2463# JavaScript thread, and the load command -- if crossing server boundaries -- 2464# must NOT run on that thread. I have configured the ScriptManager to 2465# detect the presence of the word "javascript" followed by a space (exactly that case) 2466# and if found, use the JavaScript thread instead of the applet thread. 2467# 2468# Because it might be useful to combine LOAD and JAVASCRIPT (for the equivalent of a 2469# "file loaded" callback (but see set LoadStructCallback), if a script contains 2470# the phrase /*SPLIT*/ in upper case, exactly like that, it will be split and then run 2471# correctly as two independent scripts. 2472# 2473# new feature: _signedApplet boolean is available: 2474# 2475# print _signedApplet 2476# if(_signedApplet); 2477# javascript alert("you are using the signed applet"); 2478# end if; 2479# 2480# bug fix: JmolSimpleViewer caused null pointer exception -- needed setAppletContext() 2481# bug fix: model-based drawing in multiple-model mode using an 2482# array of points to load causes null pointer exception: 2483# load cyclohexane_movie.xyz;pts = {C5}.split();print pts;draw @{pts.xyz.sub({1 0 0})} "X" 2484# bug fix: quaternion derivative multiplication order 2485# bug fix: 3D echo text not centering properly with set ECHO myEcho CENTER 2486# bug fix: select _Xx; select unknown 2487# bug fix: better reporting of script commands and comments 2488# new feature: reading COMPND and HEADER records of PDB file 2489# new features for Protein Explorer: 2490# new feature: set messageStyleChime 2491# -- No atoms selected! 2492# -- <n> atoms selected! 2493# -- atom picking: 2494# Atom: xxx Group: xxx Chain: xxx Model: xxx Coordinates: x y z 2495# -- script <exiting> 2496# -- Chime script completed. 2497# new features: 2498# show info 2499# show residue(s) 2500# show chain(s) 2501# show sequence 2502# show orientation moveto # just the moveTo; no comments 2503# set pdbGetHeader TRUE # to get the header when loading (for Protein Explorer) 2504# new feature: jmolSetCallback("evalCallback", "someFunction") 2505# -- overrides _jmol.noEval 2506# -- canNOT be set using "set evalCallback" 2507# -- was necessary for Protein Explorer javascript callbacks 2508 2509# ----------------------------------------------------------------------------- 2510 2511#version=11.5.38 2512 2513# bug fix: lcaoCartoon naming for multiple centers 2514# bug fix: pm rounding to integer value 2515# bug fix: scaling of draw object for multimodel environment can cause null pointer exception 2516# bug fix: scaling of VECTOR was from center, not origin 2517# bug fix: select n-m:c chain selection inappropriately case sensitive 2518# bug fix: draw ARROW {atom center} {xyz} draws arrow the wrong way 2519# bug fix: draw CIRCLE for multiple models 2520# bug fix: application -- "make crystal..." menu item does nothing -- removed 2521# bug fix: zap of quaternion also zaps model inappropriately 2522# bug fix: zap to one model assigns -1 to currentModelIndex instead of 0 2523# new feature: draw CIRCLE [FILL | MESH NOFILL] more intuitive open/filling syntax 2524# new feature: draw VECTOR {atom center} {dx dy dz} 2525# new feature: draw with mixed types processes them in order 2526# (11.4 does {x,y,z}, then $xxx, then {atomExpression}, then @{{atoms}.split()}) 2527# new feature: draw .... ">xxx" first character of title ">" forces title to 2528# last point, not first 2529# new feature: set quaternionFrame "c" "p" "q" 2530# - "c" -- CA-C and CA-N, as per Andy Hanson 2531# - "q" -- peptide plane CA-C and N'-CA' as per J.R.Quine 2532# - "p" -- peptide plane CA-C and C-N' 2533# new feature: random(a), random(a,b) where a is lower bound and b is upper bound 2534# new feature: cross(a,b) 2535# new feature: sin(x), cos(x) 2536# new feature: set pdbSequential (default FALSE) for custom PDB files 2537# -- bypasses inter-group bonding check when creating polymers 2538# new feature: set drawPicking now enables measuring among atoms and DRAW points 2539# -- not saved -- just transient measurements (see 11.5.46) 2540# new feature: CIF reading of B factors for thermal ellipsoids 2541# new feature: [draw|pmesh|isosurface] xxx* [on|off|delete] 2542# -- turns on, turns off, or deletes all objects of the type starting with "xxx" 2543 2544 2545# code: refactoring of biopolyer resolver 2546 2547# ----------------------------------------------------------------------------- 2548 2549#version=11.5.37 2550 2551# code: faster ellipsoid rendering with precalc radius factors 2552# bug fix: spacefill ADPMIN/ADPMAX using probability ellipsoids 2553# and ellipsoid size setting (Note -- ellipsoid command 2554# must be run once prior to setting spacefill 2555# bug fix: reading output from "set showscript 1" 2556# bug fix: ellipsoids for Uiso atoms uses simple r = sqrt(value) 2557# bug fix: ellipsoids for applied symmetry causes odd shapes (s8.cif) 2558# bug fix: security for no mayscript may cause problem with measure callback 2559# bug fix: rocket positions after translateselected 2560 2561# ----------------------------------------------------------------------------- 2562 2563#version=11.5.36 2564 2565# bug fix: frame titles not positioning correctly for antialiased display 2566# bug fix: quaternions created with extraneous atom lines 2567# bug fix: select symop not behaving intuitively 2568# code: meshrenderer debug line not removed 2569 2570# new feature: (popup menu) Biomolecules submenu added within title menu 2571 2572# ----------------------------------------------------------------------------- 2573 2574#version=11.5.35 2575 2576# bug fix: proper thermal ellipsoid probability measures 2577# code: better garbage collection in relation to JmolAdapter class 2578# bug fix: load FILTER not saved in state 2579# bug fix: application -- undo/redo buttons not disabling 2580# new feature: ZAP clears undo stack 2581 2582# ----------------------------------------------------------------------------- 2583 2584#version=11.5.34 2585 2586# bug fix: biomolecule really works this time! 2587 2588# ----------------------------------------------------------------------------- 2589 2590#version=11.5.33 2591 2592# bug fix: modelLoader was assigning too much array space for chains 2593 2594# new feature: more load FILTER options: 2595# 2596# #i a specific BIOMT transformation 2597# !#i not a specific BIOMT transformation 2598# [XXX] a specific group ID 2599# ![XXX] not a specific group ID (e.g. ![HOH]) 2600# *.XX an atom name, such as .CA 2601# !.XX not a specific atom name 2602# *:X a chain ID 2603# !:X not a specific chain ID 2604# 2605# Between types, or involving NOT, options are AND'd together 2606# Within a type not involving NOT, options are OR'd together 2607# Within a type, a single ! implies all are NOT 2608# Within a type, a single * implies all are ANY 2609 2610# new feature: load [file info] FILTER "BIOMOLECULE n;NOSYMMETRY" 2611# FILTER "BIOMOLECULE 1" by default now reads the symmetry; 2612# use load FILTER "BIOMOLECULE 1;NOSYMMETRY" to not read symmetry 2613# 2614# bug fix: ellipsoids for navigation mode and perspective depth 2615# bug fix: PDB biomolecule for many-BIOMT system 2616 2617# ----------------------------------------------------------------------------- 2618 2619#version=11.5.32 2620 2621# bug fix: load FILTER "BIOMOLECULE 1;APPLY SYMMETRY" does not read second line of chain list 2622# bug fix: added connections do not save properly in state 2623# 2624# application only: command undo disabled automatically if saving takes more than one second 2625# flag is "set undo TRUE/FALSE" 2626# 2627# new feature: load [file info] FILTER "[filter string]" 2628# new feature: load [file info] FILTER "BIOMOLECULE n" 2629# new feature: load [file info] FILTER "[filter string];BIOMOLECULE n" 2630# 2631# The first format loads only those atoms matching a specific filter or set of 2632# filter terms -- only a crude filter here, only for PDB and mmCIF files: 2633# 2634# *.XX an atom name, such as .CA 2635# *:X a chain ID 2636# 2637# multiple matches are allowed -- implied AND: 2638# 2639# load "1sva.pdb" FILTER "*.CA" 2640# 2641# the match IS CASE SENSITIVE; * IS required 2642# 2643# also, "BIOMOLECULE 1" automatically selects for the chains listed for biomolecule 1 2644# in REMARK 350, and APPLY SYMMETRY applies the symmetry as described in those REMARKS 2645# 2646# new feature: isosurface ELLIPSOID id 2647# AXES {ix iy iz} {jx jy jz} {kx ky kz} 2648# CENTER {x y z} 2649# SCALE n.m 2650# COLOR [translucent [x.y] |opaque] [color] 2651# ON|OFF 2652# 2653# id is a REQUIRED field. AXES is required if a new ellipsoid is being defined 2654# these axes must be perpendicular 2655# all other parameters are optional 2656# 2657# bug fix: isosurface ELLIPSOID was disabled 2658# bug fix: Vector4f in Sphere3D causes applet failure, as it includes 2659# an implicit Vector4d call 2660# bug fix: stronger wireframe for antialiased display and generator (POV-ray) 2661# default change: ellipsoids ball only, no axes 2662# code: better ellipsoid fill method 2663# default change: ellipsoids ball only, no axes 2664 2665# Hungarian translation 2666 2667# ----------------------------------------------------------------------------- 2668 2669#version=11.5.31 2670 2671# bug fix: set picking measure distance not doing callback (from 11.5.23) 2672# bug fix: picking echos not working with set antialiasdisplay 2673# default change: ellipsoids are so fast now, can use default "set ellipsoidBall true" 2674# bug fix: set ellipsoidAxisDiameter [int] sets the diameter in milliAngstroms 2675# bug fix: sequence range for missing sequence numbers returns 0 2676# 2677# code: fast ellipsoid ball+fill - axis idea; no luck with POV-ray fill 2678# code: ellipsoid equation/axes conversion in Sphere3D; 2679# code: POV-Ray ellipsoid generation 2680# code: better ellipsoid ball rendering using Shade3D.calcIntensity() 2681# code: 2-fold improvement in rendering ellipsoids by not using getNormix() 2682# code: 4-fold improvement in rendering ellipsoids by using Miguel's no-mesh idea 2683# code: 2-fold improvement in rendering ellipsoids by using 40x40x40 shade cache 2684# code: overall 20-fold improvement in rendering over mesh/normix; 2685# code: full POV-ray support for ellipsoids 2686# code: proper partial derivative normalization of ellipsoid shading 2687# code: refactoring of static quadric surface methods into their own class 2688 2689# ----------------------------------------------------------------------------- 2690 2691#version=11.5.30 2692 2693# bug fix: measurement labels for angles do not appear in slab mode (goes WAY back before 10.0) 2694# bug fix: U_iso_or_equiv fields not read in CIF 2695# bug fix: (application) writeTip GT string not defined. 2696# bug fix: (forwared compatibility) invalid state setting (due to later version) now ignored. 2697# bug fix: state for draw arrow in multimodel context delivers wrong coordinates 2698# 2699# new feature: ellipsoid ball rendering tied to "set wireframerotation" option 2700# new feature: set ellipsoidAxisDiameter x.y 2701# 2702# code: better ellipsoid arc rendering using Hermite fill 2703# code: CifReader cleanup 2704 2705# ----------------------------------------------------------------------------- 2706 2707#version=11.5.29 2708 2709# new features for ellipsoid rendering: 2710# 2711# set ellipsoidAxes [true] 2712# set ellipsoidArcs [true] 2713# set ellipsoidFill [false] 2714# set ellipsoidDots [false] 2715# set ellipsoidBall [false] 2716# set ellipsoidDotCount [200] 2717# 2718# [dots|stars|spacefill] ADPMIN [percent] 2719# [dots|stars|spacefill] ADPMAX [percent] 2720# 2721# /* general logic: 2722# * 2723# * 2724# * 1) octant and DOTS are incompatible; octant preferred over dots 2725# * 2) If not BALL, ARCS, or DOTS, the rendering defaults to AXES 2726# * 3) If DOTS, then turn off ARCS and FILL 2727# * 2728# * note that FILL serves to provide a cut-out for BALL and a 2729# * filling for ARCS 2730# */ 2731 2732# ----------------------------------------------------------------------------- 2733 2734#version=11.5.28 2735 2736# bug fix: state "set measures angstroms" does not include "select *" 2737# bug fix: labels can change size in returning from antialiasdisplay=true to antialiasdisplay=false 2738# ELLIPSOID command -- with symmetry and crude footballs, including PDB files 2739# note that for now PDB file reading of ANISOU requires using {x y z} in load 2740# command, but you can use {1 1 0} to load ANISOU without applying symmetry 2741# 2742# Italian translation 2743 2744# ----------------------------------------------------------------------------- 2745 2746#version=11.5.27 2747 2748# bug fix: data CLEAR command nonfunctional 2749# bug fix: "....".trim("xyz") function not properly trimming ANY x,y,z 2750# bug fix: draw OFFSET not working properly 2751# bug fix: PovRAY output of draw objects -- cylinder end caps not considered 2752# bug fix: draw width 0.05 {...} {...} -- line does not properly render 2753# bug fix: data "model"...end "model" saves state without first line if first line is empty 2754# bug fix: "show data types" putting comma in wrong location 2755# new feature: DATA "data2d_xxxxx"..... end "data2d_xxxxx" 2756# new feature: isosurface FunctionXY "data2d_xxxxx" {origin} {ni x 0 0} {nj 0 y 0} {nk 0 0 z} 2757# allows setting isosurface Z values using a block of data (ni rows by nj columns) 2758# new feature: isosurface FunctionXY "data2d_xyz_xxxx" {origin} {ni x 0 0} {nj 0 y 0} {nk 0 0 z} 2759# allows setting isosurface values using a block of x y z data, all points for which should be 2760# on the surface. 2761# new feature: GamessUK reader 2762# new feature: reset VARIABLES (replaces "reset ALL") 2763 2764# ----------------------------------------------------------------------------- 2765 2766#version=11.5.26 2767 2768# bug fix: draw adds extra circle in 11.5.25 2769# bug fix: minimization out-of-plane energy calculation error 2770# bug fix: better initial minimization parameters 2771# bug fix: (applet) script termination callback should not be sent to message queue 2772# bug fix: hover appears when a load script leaves an atom very close to (0,0) in the window 2773# bug fix: draw width -1 or draw mesh nofill with very short cylinders creates odd jumpy effect 2774# bug fix: draw CIRCLE for multiple model sets 2775# 2776# 2777# new feature: draw CYLINDER 2778# 2779# Korean translation 2780 2781# ----------------------------------------------------------------------------- 2782 2783#version=11.5.25 2784 2785# new feature: draw CIRCLE 2786# 2787# A circle is a 2D object that behaves like a halo, always appearing circular 2788# 2789# draw circle {molecule=1} mesh nofill # around specified atoms 2790# draw diameter 2.0 circle {atomno=3} mesh nofill # 2.0 angstroms; scales 2791# draw diameter 100 circle {_O}[1] mesh nofill # 100 pixels (doesn't scale) 2792# draw circle {*} fill # a solid plane in the shape of a circle 2793 2794# ----------------------------------------------------------------------------- 2795 2796#version=11.5.24 2797 2798# new feature: minimization CONSTRAINTS {xx} {xx} [{xx} [{xx}]] x.y 2799# new feature: minimization FIX {atom expression} 2800# 2801# multiple constraints can be present; one per line input 2802# minimization CLEAR releases constraints and fixed atoms 2803# also, minimize ENERGY saves a detailed listing, which can be 2804# displayed using one of the two following commands: 2805# 2806# new feature: show minimization 2807# new feature: x = getProperty("minimizationInfo") 2808# 2809# to dump the info to a file: 2810# minimize 2811# var x = getProperty("minimizationInfo") 2812# write VAR x "myfile.out" 2813# 2814# new feature: isosurface MAXSET n # removes larger fragment sets 2815# new feature: isosurface DOWNSAMPLE n # down-factors the number of points in a CUBE file by a factor of n 2816 2817# ----------------------------------------------------------------------------- 2818 2819#version=11.5.23 2820 2821# new feature: minimize ENERGY # no stepping 2822# new feature: minimize STEPS n 2823# new feature: minimize CRITERION x.y 2824# new feature: minimize CLEAR # flushes logged info and saved atom info 2825# 2826# new feature: echoCallback 2827# new feature: measureCallback 2828# new feature: minimizationCallback 2829# new feature: scriptCallback 2830# new feature: save/restore coordinates 2831# new feature: getProperty minimizationInfo 2832# 2833# code: more efficient minimize calculation setup; better logging 2834# code: "notify" methods in JmolStatusListener consolidated 2835# code: Tokens organized 2836# 2837 2838# ----------------------------------------------------------------------------- 2839 2840#version=11.5.22 2841 2842# bug fix: UFF torsion calculation incorrect 2843# bug fix: UFF.prm not properly recognizing sp2 N in N-oxides 2844# bug fix: minimizer for compounds containing isotopes D and T 2845# 2846# code: eval/compiler error processing update 2847 2848# ----------------------------------------------------------------------------- 2849 2850#version=11.5.21 2851 2852# new feature: minimize command -- mostly untested 2853# 2854# set minimizationSteps 100 2855# set minimizationRefresh true 2856# set minimizationCriterion 0.001 2857# set loglevel 4 # for a very minimal report 2858# set loglevel 5 # for a summary report 2859# set loglevel 6 # for a detailed report 2860# minimize 2861# minimize stop 2862# minimize cancel 2863# 2864# 2865# for example: 2866# 2867# load caffeine.xyz 2868# minimizationSteps = 80 2869# minimizationRefresh = true 2870# set loglevel 4 2871# select connected(2) or connected(3) or oxygen and connected(1) 2872# connect aromatic modify 2873# calculate aromatic 2874# set measurementunits pm 2875# measure {_O}[1] {_O}[2] 2876# color measure red 2877# minimize 2878# 2879# new feature: set loglevel 6 allows a "debugHigh" setting 2880# 2881# bug fix: load unitcell {a b c alpha beta gamma} not working (since 11.5.8) 2882 2883# ----------------------------------------------------------------------------- 2884 2885#version=11.5.20 2886 2887# bug fix: zap file > 2 multiple models do not properly delete 2888 2889# ----------------------------------------------------------------------------- 2890 2891#version=11.5.19 2892 2893# bug fix: null surfaceGenerator causes MO exception 2894# bug fix: isosurface reading/writing JVXL files having insideout keyword 2895 2896# ----------------------------------------------------------------------------- 2897 2898#version=11.5.18 2899 2900# bug fix: zap x.y additional work -- connections, isosurfaces 2901# bug fix: zap x.y not correcting Eval variables 2902# bug fix: isosurface user VolumeData not properly loading 2903 2904# ----------------------------------------------------------------------------- 2905 2906#version=11.5.17 2907 2908# new feature: delete {atom expression} NEEDS TESTING 2909 2910# bug fix: zap x.y for dots 2911# bug fix: zap {atom expression} for not including all atoms in a model in the selection 2912 2913# ----------------------------------------------------------------------------- 2914 2915#version=11.5.16 2916 2917# new feature: zap {atom expression} # zaps models associated with given atoms. 2918# use "show models" to see what models are present, then zap them with their 2919# file.model number: 2920# 2921# zap 1.1,2.1 # these two models deleted 2922# zap atomIndex=0 # ALL ATOMS IN FIRST MODEL deleted 2923# 2924# Note that file.model numbers do not change after this. 2925# So if initially there were two files loaded 2926# 2927# zap 1.1 2928# 2929# removes the first model and leaves the second as "2.1" 2930# 2931# NEEDS THOROUGH TESTING, particularly in regard to saving/restoring the state 2932 2933# bug fix: atomChooser not updated for zap 2934# bug fix: isosurface model keyword does not carry on to saved state 2935# bug fix: lcaocartoons do not color properly or get restored from state properly 2936# bug fix: popup menu selection of groups and symmetry operations does not work 2937 2938# menu: internationalization of "Monomer" and "Shapely" 2939# bug fix: mol2 reader cannot read files with single-line comments 2940 2941# ----------------------------------------------------------------------------- 2942 2943#version=11.5.15 2944 2945# bug fix: CAChe CSF reader not reading partial charges 2946# bug fix: WebExport with http:// files fails to save file 2947# bug fix: WebExport with local . directory fails to save JmolApplet.jar and Jmol.js 2948# code: refactoring of jmol.app.webexport: adding html subdirectory 2949 2950# bug fix: state saving with rotateSelected spinning spins entire model 2951# bug fix: getproperty("chaininfo") for non-biological model causes null pointer exception 2952 2953# ----------------------------------------------------------------------------- 2954 2955#version=11.5.14 2956 2957# bug fix: rotateSelected INTERNAL not adjusting for internal rotation center 2958# bug fix: .max/.min not allowed in context: "select resno=@{{visible}.resno.max}" 2959# bug fix: Parser: "3xxx" read as 3 instead of 0; "3.5xxx" read as 3.5 instead of NaN 2960# application menu: Write state moved to main export menu; Export PDF to image writing 2961# new feature: MODEL/ENDMDL records in write PDB (still no TER records) 2962# bug fix: write PDB format incorrectly writes atoms with 4-length names 2963# bug fix: Spartan SMOL directory reader doesn't assign bonds 2964# new feature: Spartan archive reader now reads aromatic bonding 2965 2966# ----------------------------------------------------------------------------- 2967 2968#version=11.5.13 BROKEN FOR XYZ READER 2969 2970# bug fix: Parser: "3xxx" read as 3 instead of 0; "3.5xxx" read as 3.5 instead of NaN 2971# application menu: Write state moved to main export menu; Export PDF to image writing 2972# new feature: MODEL/ENDMDL records in write PDB (still no TER records) 2973# bug fix: write PDB format incorrectly writes atoms with 4-length names 2974# bug fix: Spartan SMOL directory reader doesn't assign bonds 2975# new feature: Spartan archive reader now reads aromatic bonding 2976 2977# ----------------------------------------------------------------------------- 2978 2979#version=11.5.12 2980 2981# new feature: four optional defaults for Van der Waals radii: 2982# 2983# set defaultVDW jmol 2984# set defaultVDW rasmol 2985# set defaultVDW babel 2986# set defaultVDW user 2987# 2988# To set the user variety, first set one of the other sets as a basis 2989# Then add a DATA statement to include the specific elements you want to give 2990# new radii to: 2991# 2992# set defaultVDW babel; 2993# DATA "element_vdw" 6 1.7 END "element_vdw"; 2994# DATA "element_vdw" 6 1.7; 7 1.8 END "element_vdw"; # separate using semicolons or new lines 2995# 2996# For full state compatibility, these commands should be given prior to 2997# model loading, as they affect all calculations involving Van der Waals 2998# radii -- except default zoom. 2999# 3000# Now select the user set: 3001# 3002# set defaultVDW user 3003# spacefill on 3004# 3005# To delete all user entries: 3006# 3007# reset VDW 3008# 3009# If user vdw radii are currently set, then this resets the defaults to Jmol. 3010# 3011# new feature: show vdw shows a listing of the currently set VDW radii 3012# 3013# new feature: integration of star, halo, and spacefill code so all behave the same. 3014# 3015# stars 1.0 # set to a specific angstrom radius 3016# spacefill 100% # percent of CURRENT vdw set 3017# stars 100%Jmol # percent of Jmol standard 3018# stars 50%Babel # percent of Babel standard 3019# spacefill 5%Rasmol # percent of Rasmol standard 3020# spacefill 30%User # percent of User-defined values (or CURRENT if not defined) 3021# spacefill +1.2 # angstroms added to current vdw scheme 3022# halos 50%Jmol # -- halos also have an added bit to make sure they are visible 3023# spacefill 250 # RasMol 250 units/Angstrom units still 3024# spacefill -20 # neg numbers same as percentages: 20% here, using current vdw set 3025# stars @{x+0.1} # math OK 3026# spacefill @x% # make sure x comes out integer, otherwise % is ignored 3027# 3028# note that dots do not have a %Jmol option: 3029# 3030# dots 30 # syntax already assumes percent for dots using an integer 3031# 3032# 3033# 3034# see src/org/jmol/_documents/vdw_comparison.xls 3035 3036# ----------------------------------------------------------------------------- 3037 3038#version=11.5.11 3039 3040# bug fix: save/restore of atom data incorrect when user has set propertyAtomNumberField or propertyDataField 3041# bug fix: functions, save/restore state were disabled by bug in 1.5.8 3042# bug fix: command "test()" where test() is a user-defined function causes array-out-of-bounds error 3043# bug fix: undocumented .vdw atom property was equivalent to .valence 3044# bug fix: GAMESS reading of F orbital order incorrect 3045 3046# new feature: settable Van der Waals radius using {carbon}.vanderwaals = 1.7 3047# or using DATA "property_vanderwaals" 3048# new feature: DATA "property_x i j" .... END "property_x i j" 3049# overrides default propertyAtomNumberField (i) and propertyDataField (j) 3050# new feature: State save of property_xxx now in easily readable Jmol Data Format 3051 3052# ----------------------------------------------------------------------------- 3053 3054#version=11.5.10 3055 3056# NOTE: REMOVED FROM SERVICE -- see 11.5.11 3057# bug fix: ISOSURFACE LIST command requires current isosurface 3058# bug fix: JVXL writing does not properly save pocket cavities or minsets 3059# bug fix: DATA command assigning property to last atom in structure fails 3060 3061# ----------------------------------------------------------------------------- 3062 3063#version=11.5.9 3064 3065# NOTE: REMOVED FROM SERVICE -- see 11.5.11 3066# bug fix: Gaussian reader not considering possibility of cartesian D and spherical F 3067# bug fix: ADF reader not reading coordinates for newer ADF output 3068 3069# ----------------------------------------------------------------------------- 3070 3071#version=11.5.8 3072 3073# NOTE: REMOVED FROM SERVICE -- see 11.5.11 3074# bug fix: lines starting with @{ redefine "{" 3075# bug fix: echo offsets do not correct for window position 3076# bug fix: menu reports too many chains 3077# new feature: menu includes all standard color scheme options 3078# new feature: inline math @{x+3} extended to all commands 3079# new feature: .sub(), .add(), .mul(), .div() extended to all operand types 3080 3081# ----------------------------------------------------------------------------- 3082 3083#version=11.5.7 3084 3085# bug fix: explicit "SELECT NONE" must be given for label defaults to be set 3086 3087# bug fix: menu select element missing SELECT command 3088# bug fix: for delayed font scaling animation using the font command and antialias display 3089 3090# ----------------------------------------------------------------------------- 3091 3092#version=11.5.6 3093 3094# bug fix: HETATM atoms not automatically bonded to nearby ATOM atoms 3095# bug fix: setParameterValue("perspectiveDepth",perspectiveDepth); 3096 3097# bug fix: sets offset based on imageFontScaling, not overall font scaling 3098# bug fix: multiline labels not positioned properly with offset 0 0 3099# bug fix: labels not scaling properly 3100# new feature: label "scaleReference" if > 5.0 is taken to be a reference zoom setting 3101# saying "make the font size X at a zoom of Y" 3102# bug fix: labels not scaling properly when in script with file load 3103# bug fix: labels not appearing in contrast when given same color as background 3104# bug fix: fixes applet memory leak in relation to consoles 3105 3106# ----------------------------------------------------------------------------- 3107 3108#version=11.5.5 3109 3110# bug fix: fixes applet memory leak due to 3111# platform objects/delay threads not being destroyed 3112 3113# new feature -- syncCallback -- intercepts messages that would otherwise go to applets for syncing 3114# when syncCallback is set to a JavaScript function name, that function 3115# intercepts the sync message and can pass it on (by returning it), 3116# consume it (by returning an empty string ""), or modify it as desired. 3117# this allows, for example, monitoring of orientation information so that 3118# zoom sliders and such can accurately portray their values 3119 3120# ----------------------------------------------------------------------------- 3121 3122#version=11.5.4 3123 3124# bug fixes -- font scaling 3125 3126# new feature: Spartan input files read as Odyssey format 3127# 3128# new feature: set delayMaximumMs sets the maximum delay that scripts will use, primarily for testing scripts 3129# new feature: set fontScaling TRUE/FALSE 3130# new feature: font [type] [size] [face] [weight] [scaleReference (Angstroms per pixel)] 3131# atom labels and 3D echos then scale properly. 3132# note that the current zoom affects the label size. 3133# bug fix: image writing does not scale fonts properly. 3134# bug fix: antialias of images not functionally independent of antialias for display 3135# bug fix: label offset doubled for multiline labels with left/right/center alignment not specified 3136# bug fix: default label offsets mangled by default Front/Group 3137 3138# new feature: getProperty("appletInfo") includes a key "registry" for which 3139# the value is the static Hashtable htRegistry 3140# //note that the following JavaScript retrieves the registry: 3141# var registry = jmolGetPropertyAsJavaObject("appletInfo").get("registry") 3142# // and the following code then retrieves an array of applets: 3143# var AppletNames = registry.keySet().toArray() 3144# // and the following sends commands to an applet in the registry: 3145# registry.get(AppletNames[0]).script("background white") 3146 3147# new feature: reading of Spartan spinput files (uses Odyssey reader) 3148 3149# bug fix: PDB files with missing amino acid carbonyl O cause exception 3150 3151# ----------------------------------------------------------------------------- 3152 3153#version=11.5.3 3154 3155# bug fix: check if the file is CIF before PDB 3156# bug fix: color hbonds translucent 3157# bug fix: state: calculate hbonds not saved 3158# bug fix: state: calculate surfaceDistance WITHIN (({....})) 3159# missing outermost parentheses 3160# bug fix: state: selection state "end function" missing semicolon 3161# bug fix: isosurface lcaoCartoon "pz" translucent not setting both lobes translucent 3162# bug fix: color isosurface when isosurface is an lcaoCartoon only colors one lobe 3163# bug fix: save state for "color SelectionHalos" 3164 3165# ----------------------------------------------------------------------------- 3166 3167#version=11.5.2 3168 3169# Translation update: Estonian 3170 3171# new feature: "getProperty FILECONTENTS ." in the context of 3172# a zip directory defaultDirectory 3173# new feature: zip file reading extended to write FILE 3174# 3175# bug fix: unclosed InputStream readers in zip file accessing 3176# 3177# new feature: allows zip files to be designated as default directoriesusing 3178# set defaultDirectory "myfile.zip" 3179# and then using a filename 3180# bug fix: unclosed readers in Pmesh, FileManager, Jvxl 3181# new feature: pmesh BINARY "filename" 3182# BINARY keyword is optional, but recommended for efficiency 3183# 3184# * 4 bytes: P M \1 \0 3185# * 1 byte: \0 for bigEndian 3186# * 3 bytes: reserved 3187# * 4 bytes: (int) vertexCount 3188# * 4 bytes: (int) polygonCount 3189# * 64 bytes: reserved 3190# * ------------------------------ 3191# * float[vertexCount*3]vertices {x,y,z} 3192# * [polygonCount] polygons 3193# * --each polygon-- 3194# * 4 bytes: (int)nVertices (1,2,3, or 4) 3195# * [4 bytes * nVertices] int[nVertices] 3196# * 3197# * note that there is NO redundant extra vertex in this format 3198# 3199# see little-endian example at http://chemapps.stolaf.edu/jmol/docs/misc/pmesh.bin 3200# and http://chemapps.stolaf.edu/jmol/docs/misc/pmesh.bin.txt 3201 3202# ----------------------------------------------------------------------------- 3203 3204#version=11.5.1 3205 3206# bug fix: quaternion for nucleic acids 3207# code: inefficiencies in Quaternion code 3208# new feature: within(structure,atom_expression) 3209# for proteins, just the helix or turn or sheet containing those atoms; 3210# for nucleic acids, just the chain 3211 3212# bug fix: wing vectors for biopolymers 3213# not containing O improperly drawn for sheets 3214# and, in the case of set traceAlpha TRUE (the default), helixes 3215# bug fix: translateSelected/rotateSelected does not move cartoons 3216# bug fix: tainted occupancy not saved in state 3217# bug fix: biopolymers have wrong wing vectors (from 11.3.62) 3218# bug fix: restore of state does not reset user-defined atom properties 3219# code: refactoring Atom and AtomCollection 3220 3221# ----------------------------------------------------------------------------- 3222 3223#version=11.3.66 3224 3225# bug fix: CIF reader not skipping loops with load of a specific model of a model set 3226# bug fix: explicit format LOAD "XXX::whatever" extended to XML variants 3227# code: adapter/readers/more/JmolDataReader.java removed. 3228# code: adapter/smarter/Resolver.java cleaned up in relation to XML and DOM options 3229 3230# ----------------------------------------------------------------------------- 3231 3232#version=11.3.65 3233 3234# full run of monster_script.spt 3235 3236# bug fix: pmesh test1 "inline" "1 {2. 0. 0.} 0" disallowed, but that should be OK 3237# bug fix: isosurface gridpoints "ch3cl_map.jvxl" -- gridpoints for jvxl files that are already mapped 3238# bug fix: isosurface lcaoCartoon "type" {atomExpression} 3239 3240# files: JUnitTest for scripts -- 3241# monster script in run directory tests scripts now uses 3242# files at http://chemapps.stolaf.edu 3243# all monster scripts made the same 3244# tests/scripts/check_performance removed. 3245# 3246# bug fix: better checking of scripts involving full run of all scripts 3247# bug fix: defaultDirectory for Jmol application not usable for http:// protocols 3248# bug fix: load "files" not properly loading zip files or files involving default directory 3249 3250# ----------------------------------------------------------------------------- 3251 3252#version=11.3.64 3253 3254# bug fix: version integer missing sometimes 3255# bug fix: isosurface with trajectories 3256# interesting that if 1.1 and 1.2 are trajectories you can do 3257# frame 1.2; isosurface select(*/1.1) sasurface 3258# this creates an isosurface for model 1.2 that uses the atomic coordinates of model 1.1! 3259# 3260# bug fix: isosurface MEP mapped to plane not exactly reproduced in JVXL 3261# bug fix: isosurface COLOR RANGE by itself does nothing -- changed to use full range 3262# new feature: isosurface COLOR RANGE ALL added as an equivalent to COLOR RANGE with no numbers 3263 3264# ----------------------------------------------------------------------------- 3265 3266#version=11.3.63 3267 3268# -- all functionality in new.htm, new2.htm, and new0.htm tested -- 3269 3270# bug fix: draw/isosurface/etc. on/off/delete should operate on all objects 3271# bug fix: display within(plane...) 3272# bug fix: select site=n broken 3273# bug fix: quaternion/ramachandran/model can show up together if user issues FRAME ALL 3274# bug fix: frame 1.2 when file 1 only has one model displaying all files 3275# bug fix: quaternion x reports wrong frame number 3276# bug fix: selectionHalo status and color not in state 3277# bug fix: color selectionHalos none 3278# bug fix: polyhedra .... translucent 0.3 green 3279# bug fix: moveto alternative format missing necessary 0 rotationRadius requirement 3280# moveTo ...... {atomExpression} 0 [zoomOrZoomFactor] 3281# where [zoomOrZoomFactor] is n, +n, -n, *n, /n, or 0 (to indicate fill screen) 3282# bug fix: subsets not properly handling restrict 3283# bug fix: models with turns crash jmol if not first model loaded 3284# bug fix: quaternion command by itself not switching to most recent quaternion 3285# bug fix: background color off when not white and ends in "FF" 3286# bug fix: print {atomSet}.color -- .color returning bounding box! 3287# bug fix: multiframe draw with labels different for each frame not properly saved in state 3288# bug fix: within upgrade for boundbox: within(boundbox), within(boundbox,atomExpression) 3289 3290# ----------------------------------------------------------------------------- 3291 3292#version=11.3.62 3293 3294# bug fix: calculate hbonds for trajectories 3295# code: distinction between file-derived or connected hbonds and calculated hydrogen bonds 3296# bug fix: calculate hbonds broken in 11.3.58 (missing model field in BioPolymer) 3297# bug fix: Jmol not putting structures in for all models in a PDB file 3298# bug fix: calculate polymers (never documented) not necessary -- calculate structure suffices 3299# bug fix: calculate structure updated for ignoring jmolDataFrames and using currently selected atoms 3300# webexport help instructions fix to be consistent for local testing. 3301 3302# ----------------------------------------------------------------------------- 3303 3304#version=11.3.61 3305 3306# bug fix: multifile cartoons improperly rendering in all frames 3307# bug fix: dipoleScale not saved in state 3308# bug fix: quaternions broken in 11.3.58 3309# code: Closest class deleted 3310# code: Quaternion class moved to modelsetbio 3311# code: dipoles moved to shapespecial 3312# bug fix: select 1.5 in trajectory context should switch to that set of coordinates 3313# bug fix: draw not colored 3314# bug fix: mousewheel too low power 3315# bug fix: select */4 when "4" is inappropriate returns all instead of none 3316# bug fix: memory leak in applet due to mouse/hoverwatcher listeners 3317# bug fix: applets not self-destroying when window containing them close 3318# bug fix: rotate commands not sent to other applets when set syncScript if OFF 3319 3320# ----------------------------------------------------------------------------- 3321 3322#version=11.3.60 3323 3324# bug fix: more work on trajectories in a multimodel context 3325 3326# bug fix: quick fix for disabling popup menu under Java 7 where permissions are not granted 3327 3328# bug fix: load trajectory extended to multifile context 3329# in which case "select 1.3", if file 1 is a trajectory, not only 3330# selects that file, but also sets the trajectory to 1.3. 3331# So a "select" of a trajectory also affects the display. 3332# This makes "select" in a trajectory context similar to "display" 3333# but doesn't require listing of all the models. 3334 3335# ----------------------------------------------------------------------------- 3336 3337#version=11.3.59 3338 3339# bug fix: load append not saved in state properly 3340# code: trajectory command (never documented) removed 3341# bug fix: draw ... nofill mesh properties not processed 3342# bug fix: draw DIAMETER N not properly functioning for curves or arrows 3343# new feature: draw DIAMETER X.Y allows setting diameter of points, lines, curves, and arrows to Angstroms 3344 3345# bug fix: 11.3.58 can't set bond diameters 3346# bug fix: with set syncMouse, target applet sets syncMouse off inappropriately 3347 3348# ----------------------------------------------------------------------------- 3349 3350#version=11.3.58 3351 3352# bug fix: set mouseSync with sync * ON disabling sync but not reenabling it 3353# bug fix: spin on missing in final state function. 3354# bug fix: select within (3.3, {-1 1 1}) does not work with negative integer coordinate 3355# bug fix: trajectories were not fully implemented 3356# code: refactoring of ModelSet and related classes for trajectories 3357# code: trajectories implemented as independent models 3358# code: debug comments in AppletRegistry 3359 3360# new feature: trajectory command no longer necessary -- deprecated (was in 11.2) 3361 3362# ----------------------------------------------------------------------------- 3363 3364#version=11.3.57 3365 3366# bug fix: revised sync commands 3367# new feature: set syncScript; set syncMouse 3368# sync ON; set syncMouse false; set syncScript false Tracks orientation only 3369# sync ON; set syncMouse true; set syncScript false Sends mouse events only 3370# sync ON; set syncMouse false; set syncScript true Sends script commands only 3371# sync ON; set syncMouse true; set syncScript true Sends both mouse events and script commands 3372# 3373# bug fix: "load trajectory" broken 3374 3375# ----------------------------------------------------------------------------- 3376 3377#version=11.3.56 3378 3379# bug fix: isosurface map of properties lost in 11.3.54 3380# new feature: set c? -- displays all Jmol parameters starting with "c" or "_c" 3381# set _? -- displays all read-only variables (starting with "_") 3382# new feature: formatted gOpenMol formatted plt volume data reader. 3383# new Jmol.js for 11.4 3384 3385# ----------------------------------------------------------------------------- 3386 3387#version=11.3.55 3388 3389# bug fix: axes/unitcell improperly slabbing on internal slab 3390# bug fix: XOR returning OR when not a bitset 3391# bug fix: unary minus for planes and points 3392# FEATURE CHANGE: slab REFERENCE removed -- no longer necessary 3393# new feature: set wireframeRotation 3394# code: simplified Logger.debugging flag 3395# bug fix: slab/depth planes not properly constructed 3396# new feature: _slabPlane, _depthPlane variables 3397# code: MUCH simpler slab plane code 3398 3399# bug fix: applet.loadInline(String[] models) messes up 3400# this involves the fact that Safari will deliver null pointer when it 3401# mistakenly matches a String[] signature to a String, or vice-versa. 3402# The solution is to use 3403# 3404# applet.loadInlineString(String model, String script, boolean isAppend) 3405# 3406# and 3407# 3408# applet.loadInlineArray(String[] model_or_models, String script, boolean isAppend) 3409# 3410# explicitly 3411# code: refactoring loadInline and interfaces WrappedApplet and JmolAppletInterface 3412# bug fix: scroll wheel with synchronization does not track properly 3413 3414# ----------------------------------------------------------------------------- 3415 3416#version=11.3.54 3417 3418# bug fix: JVXL writing/reading of simple plane writes precision color flag 3419 3420# new feature: (isosurface) reading of XPLOR ascii electron density map data 3421 3422# bug fix: reinstating "insideout" isosurface option 3423# bug fix: JVXL writing of lobe, sphere, ellipsoid, hydrogenOrbital 3424# bug fix: loadInline not properly autobonding -- causes null pointer error 3425# bug fix: data ... end model instead of end "model" causes null pointer exception 3426 3427# ----------------------------------------------------------------------------- 3428 3429#version=11.3.53 3430 3431# bug fix: symop=0NNN not returning all atoms with translation NNN 3432# code: optimization of algorithm used for load RANGE 3433# modification for load RANGE -x.x (within x.x Angstroms of symop=1555) to be within x.x of the 3434# box containing symop=1555, not the atoms themselves. 3435# code: cleanup of readers. 3436 3437# bug fix: no special atom checks for PDB symmetry files 3438 3439# bug fix: HallInfo --- Hall term miscalculation OUCH! -- mistken commenting out of code in 11.1.28 March, 29, 2007. revision 7243 3440# bug fix: set measures 0.1 --- solid line does not move. 3441 3442# bug fix: completion of set parameter clean up 3443 3444# ----------------------------------------------------------------------------- 3445 3446#version=11.3.52 3447 3448# bug fix: set of many more (but not all) parameters can accept mathematical expressions 3449# bug fix; set strandCount not properly handled 3450# new feature: set strandCountForStrands 3451# new feature: set strandCountForMeshRibbon 3452# note --- set strandCount sets BOTH, but now each is independent 3453 3454# bug fix: quaternion not including chain designation 3455# bug fix: default connections include proper PDB CONECT records 3456 3457# new feature: connect PDB # just does PDB CONECT connections 3458# new feature: connect PDB AUTO # PDB CONECT and autobonding 3459 3460# ----------------------------------------------------------------------------- 3461 3462#version=11.3.51 3463 3464# bug fix: write FILE not handling binary file formats properly 3465 3466# bug fix: PDB CONECT records not creating bonds for ALL models 3467# bug fix: load =xxxx broken in 11.3.50 3468# bug fix: amino not a subset of protein 3469# bug fix: proteins with just C CA N not recognized as such 3470 3471# code: minor refactoring in org/jmol/util 3472# code: minor refactoring in org/jmol/jvxl 3473# code: minor refactoring in org/jmol/adapter 3474 3475# ----------------------------------------------------------------------------- 3476 3477#version=11.3.50 3478 3479# new feature: MOL isotope column read; interpreted for D, T, 11C, 13C, 15N (for now) 3480# bug fix: WebExport not properly accessing files in more complicated situations (pmesh, isosurface, multiple files, etc.) 3481# bug fix: WebExport not allowing variety of local location options 3482 3483# bug fix: return command not allowed in simple context 3484# bug fix: setting perspective model resets unit cell on 3485# bug fix: debug comment in TransformManager 3486# bug fix: hideNotSelected not in state. 3487 3488# ----------------------------------------------------------------------------- 3489 3490#version=11.3.49 3491 3492# bug fix: set perspectiveDepth off broken in 11.3.48 3493# bug fix: set scaleAngstromsPerInch not turning off perspectiveDepth 3494# bug fix: scaleAngstromsPerInch not in state 3495# bug fix: _firstFrame/_lastFrame variables mess up state 3496# bug fix: calculate surfaceDistance broken for 11.3.48 3497 3498# new feature: direct reading of MAC Spartan06 directories. 3499 3500# ----------------------------------------------------------------------------- 3501 3502#version=11.3.48 3503 3504# 3505# new feature: script "myfile.zip|xxx.spt" 3506# 3507# bug fix: scale3D not working 3508# 3509# new feature: load "myfile.zip|CH3CL.MOL" 3510# loads a given named model from within a zip file. 3511# 3512# new feature: load "myfile.zip|myfile2.zip|CH3CL.MOL" 3513# loads a given named model from within a zip file within a zip file. 3514# 3515# these selections override any manifest that might be in a ZIP file. 3516 3517# new feature: print getProperty("fileContents","zipFileName", "subfile", "subFile",...) 3518# getProperty now allows drilling down through a ZIP file. If no subfile is shown, 3519# then the directory listing is given: 3520# 3521# print getProperty("fileContents", "data/test.zip") 3522# 3523# CH3CL.MOL 3524# CH3CL~1.MOL 3525# CH3F~1.MOL 3526# CH3OH~1.MOL 3527# CH4~1.MOL 3528# BENZEN~1.ZIP 3529# ENALSP~1.ZIP 3530# WATERV~1.ZIP 3531# JmolManifest 3532# 3533# print getProperty("fileContents", "data/test.zip", "BENZEN~1.ZIP") 3534# 3535# benzenevib.spardir/ 3536# benzenevib.spardir/_locked 3537# benzenevib.spardir/_spartandir 3538# benzenevib.spardir/Document 3539# benzenevib.spardir/M0001/ 3540# benzenevib.spardir/M0001/_spartan 3541# benzenevib.spardir/M0001/archive 3542# ... 3543# benzenevib.spardir/SpreadSheet/ 3544# benzenevib.spardir/SpreadSheet/SheetData 3545 3546# print getProperty("fileContents", "data/test.zip", "BENZEN~1.ZIP","benzenevib.spardir/M0001/") 3547# 3548# benzenevib.spardir/M0001/ 3549# benzenevib.spardir/M0001/_spartan 3550# benzenevib.spardir/M0001/archive 3551# benzenevib.spardir/M0001/Calculations 3552# benzenevib.spardir/M0001/Commands 3553# benzenevib.spardir/M0001/Geometry 3554# benzenevib.spardir/M0001/input 3555# benzenevib.spardir/M0001/log 3556# benzenevib.spardir/M0001/Molecule 3557# benzenevib.spardir/M0001/output 3558# benzenevib.spardir/M0001/parchive 3559# benzenevib.spardir/M0001/proparc 3560# benzenevib.spardir/M0001/ret_code 3561# benzenevib.spardir/M0001/voutput 3562# 3563# print getProperty("fileContents", "data/test.zip", "BENZEN~1.ZIP","benzenevib.spardir/M0001/Commands") 3564# 3565# # Verbose Mode: 1 3566# # version: MacSPARTAN '06 129 129 x86/Darwin 3567# # rootKeys: 'OPT' 'HF' '3-21G(*)' '' '' 3568# # new Keys: 'OPT HF 3-21G(*) FREQ ' 3569# # ...etc.... 3570 3571# 3572# new feature: load "myfile.zip" MANIFEST "...." 3573# new feature: JmolManifest in a zip file directs which files to load and in what order 3574# JmolManifest is simply a list of files, one per line. 3575# 3576# Rules include: 3577# 3578# 1) blank lines and lines beginning with # are ignored. 3579# 2) file names are case-sensitive and must be complete, with full path within the ZIP file 3580# 3) files must be on separate lines or separated by vertical bar | marks; no whitespace around names 3581# 4) files may be ZIP files themselves. 3582# 5) some comments are special: 3583# IGNORE_ERRORS --- process the file and do not stop if some files are not valid model files 3584# IGNORE_MANIFEST --- (on the load command line) indicates that the internal ZIP file manifest should be ignored 3585# EXCEPT_FILES --- process all files EXCEPT those given 3586# 3587 3588# new feature: show spacegroup "X,Y,Z;-X,Y,Z;..." finds space group associated with specific operations 3589 3590# bug fix: multimodel files could have connected atoms between different models. 3591 3592# bug fix: application animation frame button reset always goes to frame 1 3593 3594# new feature: load xxx.zip n # where n is the desired file, starting with 1 3595# new feature: Spartan06 file format reader 3596# new feature: ZIP file reading for multiple models 3597 3598# bug fix: antialiasDisplay changes during spinning (or any rendering) causes null pointer error 3599 3600# ----------------------------------------------------------------------------- 3601 3602#version=11.3.47 3603 3604# coding efficiencies in atom iterators 3605 3606# vast speed up of smoothed isosurface map properties 3607 3608# deprecated: calculate surface (equates to surfaceDistance WITHIN) 3609# deprecated: calculate surface {...} (equates to surfaceDistance FROM) 3610 3611# new feature: calculate surfaceDistance FROM {atomExpression} 3612# new feature: calculate surfaceDistance WITHIN {atomExpression} 3613 3614# ----------------------------------------------------------------------------- 3615 3616#version=11.3.46 3617 3618# new feature: calculate surface {atomExpression} 3619 3620# new feature: set isosurfacePropertySmoothing # default TRUE 3621# smooths the coloring for isosurface ... map property ... 3622 3623# bug fix: "isosurface select() map property xxxx" array out of bounds error 3624# bug fix: color bonds CPK not working 3625# new feature: calculate polymers 3626# allows recalculation of polymers after connections are made/broken 3627 3628# bug fix: tRNA, rRNA with abnormal distances do not connect biopolymers 3629# bug fix: Jmol math getProperty() doesn't pass parameter in some cases 3630# code: refactoring,optimizing Escape.toJSON() and Escape.toReadable() 3631# bug fix: isosurface CAP not turned off prior to map sasurface 3632# bug fix: adjustable boundbox in multimodel context not specific to model of selected atoms 3633# bug fix: Jmol math (x[2])[3] indistinguishable from x[2][3] 3634 3635# ----------------------------------------------------------------------------- 3636 3637#version=11.3.45 3638 3639# bug fix: new boundbox command with small numbers of atoms 3640# bug fix: state not saved for coloring elements 3641# bug fix: state not properly representing deleted bonds 3642# bug fix: setColix not clearing shading in certain cases 3643 3644# new feature: Jmol math {atomset}.boundbox returns list of center, vector, corner0, corner1 for this set of atoms 3645# code: ModelSet.BoxInfo abstraction/refactoring 3646 3647# ----------------------------------------------------------------------------- 3648 3649#version=11.3.44 3650 3651# new feature: Jmol math getProperty() function 3652# allows FULL math access to ALL getProperty types 3653# 3654# syntax: getProperty(propertyType, qualifier, item, item, item,...) 3655# 3656# examples: 3657# 3658# print getProperty("modelInfo") 3659# print getProperty("boundboxInfo") 3660# print getProperty("boundboxInfo", "center") 3661# print getProperty("boundboxInfo", "vector") 3662# print getProperty("atomInfo",{atomno=3}) 3663# print getproperty("bondInfo",{*},2,"atom1") 3664# print getProperty() # displays list of possibilities 3665# print getproperty("polymerinfo",{*},"models",2,"polymers",1,"monomers",39,"atomIndex2") 3666# 3667# For many property types, the qualifier is an atom set 3668# If the atom set is not given, those properties default to {visible} 3669# For "stateInfo", the qualifier is string: "fileState", "modelState", etc. 3670# Items may be integers or string-based keys 3671# Integer items follow the rules of Jmol math selectors: 3672# 1 first item, 0 last item, -1 next to last item, etc. 3673 3674# code: set instead of = in measures and labels state 3675 3676# bug fix: POVRAY and other buttons aren't enabled when there are no atoms but instead draw objects and isosurfaces 3677# bug fix: new label fonts not loaded when labels resized 3678 3679# bug fix: nuisance "render mesh error" console report 3680 3681# new feature: boundbox {atomExpression} [on|off] 3682# sets the bound box around the specified atom expression 3683# default ON/OFF is to NOT change current setting 3684 3685# new feature: boundbox {point or expression} {vector to corner} [on|off] 3686# sets the bound box to be centered with a given size based on a vector to a corner 3687 3688# new feature: boundbox corners {point or expression} {point or expression} [on|off] 3689# sets the bound box to encompass the two corner points 3690 3691# strangely enough this allows setting the boundbox to a 2D or 1D box 3692 3693# new feature: show boundbox gives valid boundbox commands and volume 3694 3695# bug fix for bioshapes visible outside of current visible frame set 3696 3697# bug fix for selecting atoms of atomsets using [-n] or [0] 3698 3699# isosurface POINTSPERANGSTROM synonym for RESOLUTION 3700# also reported in show isosurface 3701 3702# bug fix: more natural mouse SHIFT-RIGHT behavior. 3703 3704# new feature: isosurface CAP [plane definition] 3705 3706# caps the isosurface at the designated plane. 3707# Specifically for molecular/solvent-type isosurface. 3708# [plane definition] can be {x y z w} or any combination of 3709# three {x y z} points, draw point references, or atom expressions 3710 3711# ----------------------------------------------------------------------------- 3712 3713#version=11.3.43 3714 3715# bug fix: select statement comparisons of negative decimal properties to "-1" (not "-1.0") causes none found 3716 3717 3718# new feature: Back to "SET" for state definitions of Jmol parameters. 3719 3720# bug fix: Strings too long in state can cause Eclipse "infinite loop" bug 3721# 3722# solution is a new feature: 3723 3724# new feature: "\" at the end of a line marks a continuation of that line 3725 3726# bug fix: assigning a negative value to a dataAtomNumberField value caused BitSet.set() exception 3727 3728# bug fix: Jmol parameter setting syntax too loose 3729 3730# The following statement was allowed: 3731 3732# pickCallback = myfunction 3733 3734# OK, so that might look good, but it evaluates to 3735# 3736# pickCallback = "" 3737# 3738# since the VARIABLE myfunction has not been defined. 3739# 3740# Solution: Don't allow the syntax 3741# 3742# [jmolParameter] = [Token.identifier] 3743# 3744# the following is OK: 3745# 3746# [jmolParameter] = "some string" 3747# 3748# the following is preferred: 3749# 3750# SET [jmolParameter] [value] 3751# 3752 3753# bug fix: antialias with translucent but antialiasTranslucent = false; labels, text, echos, hover, picking, out of alignment 3754# bug fix: negative formal charges 3755 3756# new feature: set drawPicking TRUE 3757# then reports picking of draw objects as a JavaScript array: 3758# [ "draw","[drawID]",[modelIndex],[vertexIndex],[x],[y],[z] ] 3759# this goes to the pickCallback function as the second parameter, 3760# with the first parameter (normally the atomIndex) being -2. 3761 3762# bug fix: write coord mol not working 3763 3764# new feature: connect (...) (...) aromatic auto 3765# similar to calculate aromatic, except it's isolated to this set of connections; implicit modifyOnly 3766# can be used in place of 3767# select *; calculate aromatic 3768# 3769# code: refactoring of BondCollection.makeConnections 3770# 3771# bug fix: connect (..) (..) # with implicit "single" causes state to use "partial 0" 3772 3773# new feature: shadows can be activated again via noShadows parameter in .pov file 3774 3775# ----------------------------------------------------------------------------- 3776 3777#version=11.3.42 3778 3779# bug fix: new frame title and state 3780 3781# new feature: set echo [echoID] MODEL [model number] 3782 3783# bug fix: select by itself not working; oy. Since at least 11.0 3784 3785# bug fix: ramachandran/quaternion fix for assignment of structure 3786# bug fix: isosurfaces not taking their default name properly 3787 3788# new feature: frame title "this a title for THIS frame only" 3789 3790# bug fix: small fix for povray cap at back side 3791# bug fix: overly long titles now again substringed in the popup menu. 3792 3793# bug fix: memory leak in merge -- models[i].modelSet causes modelSet to not finalize. 3794# bug fix: quaternion 3795 3796 3797# bug fix: set xxxCallback not allowed 3798 3799# new feature: **** Jmol Embedded Script **** recognized in /* ... */ comments and /** ... **/ super-comment blocks 3800# if found, ONLY this text is processed and all other text in the file is ignored. 3801 3802# ----------------------------------------------------------------------------- 3803 3804#version=11.3.41 3805 3806# bug fix: math operations with bond bitsets; % and + operating on arrays 3807# bug fix: _set variable definition removed 3808 3809# new feature: .type math function 3810 3811# new feature: Jmol math allows direct string replacement in select atom expressions: 3812# x = "atomno=3" 3813# select @x # or select @{x} 3814# select @{x + 3} # selects atomno=33 3815# x = array("atomno<10","atomno>20") 3816# select @x # OR of the list elements 3817# select @{x[2]} # just element 2 of x (atomno>20) 3818# select @x[2] # same as {@x}[2] 3819 3820 3821# new feature: set atom properties using an array instead of a DATA statement: 3822# (was introduced in 11.3.29, but not fully articulated) 3823# {*}.x = array(2,3,4,5,6); 3824# {atomno<=3}.color = array("red","green","blue") 3825# {*}.property_mydata = array(1.0,5.5,4.4,3.3); 3826# {atomno < 4}.xyz = array({3 4 5},{4 5 6},{5 6 7}) 3827# if the array is shorter than the number of atoms selected, then 3828# only that number of atoms are affected 3829 3830# new feature: set atom properties from space-separated string: 3831 3832# {atomno < 5}.property_mydata = "1.0 5.5 4.4 3.3"; 3833 3834# ----------------------------------------------------------------------------- 3835 3836#version=11.3.40 3837 3838# new feature: Ramachandran/Model commands switch between plot and model 3839# -- one Ramachandran plot per model 3840# -- axes labels and special hover label for Ramachandran plots 3841# -- Ramachandran saved in state 3842 3843# bug fix: Overlapping CPK at a slab now correct for up to 10.000 clipped atoms. 3844 3845# bug fix: @{} for within(1.0,point,@{....}) 3846 3847# new feature: set xxxx where xxxx is not a Jmol variable causes ERROR 3848 3849# code: privatized Token to avoid null value problem in Eval.statementAsString() 3850 3851# POV-Ray clipping coding minor tweak 3852# POV-Ray fix for number formatting width > 999 3853 3854# new feature: model-based parallel array calculations: 3855# x = {atomno=3}.split() # a list, one element for each model 3856# draw @{x.xyz.sub({1 0 0})} # a set of points, one per model 3857 3858# new feature: point3f in array(): 3859# xlist = array({1,2,3}, {1,1,0});print xlist[1]+{1 0 0}; 3860# bug fix: draw @{x - {1 0 0}} 3861# bug fix: antialias with set picking draw 3862# bug fix: draw object text not selective for frame 3863# new feature: draw object title line number corresponds to model number for multi-model draw objects 3864 3865# new feature: matte finish for isosurfaces 3866# remark: matte finish replaced by adaptable translucent finish (see below) 3867 3868# bug fix: noninteger MO occupancies 3869# bug fix: antialias labels not fully bitmapped 3870# bug fix: RPN processor too limited in nesting level 3871# bug fix: MO processing for Gaussian and PSI3 errors 3872 3873# new feature: MoldenReader (Matthew Zwier <mczwier@gmail.com>) 3874# new feature: MO calculations for spherical orbital basis (Matthew Zwier <mczwier@gmail.com>) 3875 3876# bug fix: slabbed atoms are now capped in povray output. 3877# Note: In CPK mode atoms overlap, but are capped at the same height. 3878# there is a priority in Jmol, but not yet clear to me which. The current priority 3879# in povray is based on the signed distance from the slab to the atom center. 3880# bug fix: povray output of translucent objects now have reduced glare, for 3881# clarity of the representation and better compatibility with the Jmol viewer. 3882 3883# ----------------------------------------------------------------------------- 3884 3885#version=11.3.39 3886 3887# bug fix: antialias causing image to be partial size. 3888# bug fix: hover state not properly showing specific-atom hover labels. 3889 3890# new feature: write FILE (text-files only) 3891 3892#new feature webexport: automatic usage of a different path to the applet for local files to allow testing 3893# only works for Pop-In template at present. Required updates to JmolPopin.js and templates. 3894#webexport instruction updated to reflect new feature. 3895 3896 3897# bug fix: antialias adjustments for hover text and background box 3898# bug fix: antialias fix for text color same as background and in front of translucent surface appearing transparent 3899# bug fix: antialias fix for applet 3900 3901# webexport instruction updates. 3902# bug fix: webexport scriptbutton template had erroneous script names. 3903 3904# ----------------------------------------------------------------------------- 3905 3906#version=11.3.38 3907 3908# bug fix: antialiasing with translucent/POV-ray 3909# new feature: set antialiasTranslucent TRUE/FALSE 3910# along with antialiasDisplay and antialiasImages 3911# determines the extent of antialiasing. Requires 3912# antialiasDisplay or antialiasimages TRUE. 3913 3914# ----------------------------------------------------------------------------- 3915 3916#version=11.3.37 3917 3918# new feature: @{mathExpression} for echos, select, etc. where @x can be used. 3919# select atomno=@{x*2}; 3920# xlist = array("red", "green", "blue"); 3921# n = 2; 3922# color atoms @{xlist[n]}; 3923 3924# new feature: {atomExpression}.color = "red" (or "[xff0000]" or {255,0,0} 3925 3926# new feature: helixes as barrels in cartoons or rockets using 3927# rocketBarrels = true 3928 3929 3930# bug fix: -- adds antialiasing for translucent objects 3931# bug fix: error in state for connect DELETE 3932# bug fix: 0-diameter atoms displayed as single pixels when perspectiveDepth = false 3933 3934# ----------------------------------------------------------------------------- 3935 3936#version=11.3.36 3937 3938# antialias better dots 3939 3940# bug fix: inline loading not working 3941 3942# POV-Ray dialog update 3943 3944# set antialiasDisplay T/F (false by default) 3945# set antialiasImages T/F (true by default) 3946 3947# ----------------------------------------------------------------------------- 3948 3949#version=11.3.35 3950 3951# POV-Ray slab/depth 3952# POV-Ray text -- ALL text (echos, labels, axes, etc.) 3953 3954# POV-Ray cleaner for Molecular Orbitals 3955# bug fix: getproperty atominfo returning string to Integer() 3956# PDB remediated atom name upgrade -- NEEDS CAREFUL CHECKING 3957 3958# ----------------------------------------------------------------------------- 3959 3960#version=11.3.34 3961 3962# write povray [width] [height] filename 3963 3964# POV-Ray for mapped isosurfaces 3965# POV-Ray embeds Jmol script 3966# POV-Ray .pov files created by Jmol can be loaded as scripts 3967 3968 3969# code: cleaning of JmolConstants specialAtomNames 3970# code: cleaning of TextFormat.simpleReplace 3971# bug fix: select [SET] or [2MO] or [DB'] 3972# bug fix: app -c flag errors not going to Logger.Error 3973# bug fix: no partial charges! 3974# bug fix: 11.3.14+ does not write colormapped JVXL files 3975# bug fix: Using isosurface within 1.0 @pt1 where pt1 is a draw point save state cannot be restored 3976 3977# ----------------------------------------------------------------------------- 3978 3979#version=11.3.33 3980 3981# code: PovRay tweaks -- multiple bonds 3982# code: PovRay output uses BufferedWriter 3983 3984# adds support for "xx'" atom designations in PDB and variable names 3985 3986# bug fix: insertion codes stored incorrectly in 11.3.32 3987 3988# new feature: inline scripting allows math 3989# 3990# script INLINE "select " + site_list[2] 3991 3992 3993# new feature: site_ support for PDB and CIF 3994# 3995# loading of PDB and CIF files containing site information 3996# automatically defines variables site_xxx and defines selections site_xxx and site_n 3997# where xxx is the site identifier and n is the site number. 3998# These settings are reset each time a file is loaded. 3999# They do not carry over from one file to the next. 4000 4001# adds "OP1" and "OP2" as backbone designators (new PDB designation) 4002 4003 4004# _PovrayExporter adds draw, halos, stars, dipoles, vectors, polyhedra, 4005# backbone, cartoons, meshRibbon, ribbon, rockets, strands, trace, 4006# dots, geosurface, molecular orbitals, LCAO cartoons, pmesh, 4007# single-color isosurfaces 4008 4009# Web Export Dialog changes: new intro tab, new minilog at bottom, instructions converted to 4010# buttons which open the info in the standard Jmol Help Dialog. 4011 4012 4013# bug fix: rockets color incorrect for head groups 4014 4015# ----------------------------------------------------------------------------- 4016 4017#version=11.3.32 4018 4019# bug fix: vibration disabled in 11.3.31 4020# bug fix: zoomto cancels slabbing 4021# bug fix: zoomto (atomExpression) 0 # zooms to 2x 4022 4023# new feature: getproperty stateinfo TYPE 4024# where TYPE is one of: 4025# 4026# colorState 4027# dataState 4028# fileState 4029# frameState 4030# modelState 4031# perspectiveState 4032# selectionState 4033# variableState 4034# windowState 4035# 4036# bug fix: backbone not in state 4037 4038# code(I): Mmset merged into ModelSet; 4039# Viewer accesses ModelSet methods directly 4040# ModelManager streamlined substantially 4041# 4042# This basically removes two full layers of abstraction. 4043# All the atoms, bonds, and models are now in ModelSet. 4044# 4045# code(II): ModelSet extends ModelCollection extends BondCollection extends AtomCollection 4046# 4047# bug fix: dipoles moved back into shape from shapespecial 4048# bug fix: semi missing in show orientation message, second part (zyz text) 4049# bug fix: select 0 selects all instead of PDB group 0 4050# bug fix: write t.xxx 4051 4052# ----------------------------------------------------------------------------- 4053 4054#version=11.3.31 4055 4056# bug fix: calculate aromatic for N and O refined 4057 4058# new feature: valence -- sum of bond orders 4059# print {atomno=3}.valence 4060# {atomno=1}.valence = 3 4061# select (carbon and valence != 4) 4062 4063# new feature: settable atom properties (preliminary): 4064# .x, .y. .z, .xyz, 4065# .fx, .fy, .fz, .fxyz, 4066# .vx, .vy, .vz, .vxyz, 4067# .formalcharge, .occupancy, .partialcharge 4068# .temperature, .valence 4069# for example: 4070# a = {atomno=30} 4071# a.xyz = {1.0, 2.0, 2.3} 4072# a.temperature = 3.0 4073# a.formalcharge = 2 4074 4075# new feature: set atom properties using {xxxx}.x = 4076# 4077# {atomno=3}.x = 3 4078# {(*)[2]}.xyz = {1 2 3} 4079# for(var i = 1; i < 3; i = i + 1); {(*)[i]}.x = 5;end for; 4080# {atomno=3}.property_whatever = 2.0 4081 4082# new feature: set atom properties using an array instead of a DATA statement: 4083 4084# {*}.property_mydata = array(1.0,5.5,4.4,3.3); 4085# {*}.property_mydata = "3 4 5 6 7 8"; 4086# {atomno < 4}.xyz = array({3 4 5},{4 5 6},{5 6 7}) 4087 4088# code optimization for within() and setAtomBits() 4089 4090# more export generator classes 4091 4092# bug fix: unitcell missing some lines when axes turned off 4093 4094# ----------------------------------------------------------------------------- 4095 4096#version=11.3.30 4097 4098# new feature: adds H/Br/Cl/I/C logic to aromatic bond assignments 4099# new feature: adds Oxygen/Sulfur logic to aromatic bond assignments 4100# new feature: adds Nitrogen logic to aromatic bond assignments 4101# bug fix: menu for UNITCELL 4102 4103# new feature: PovrayExporter (pim schravendijk <pimlists@googlemail.com>) 4104 4105# ----------------------------------------------------------------------------- 4106 4107#version=11.3.29 4108 4109# new feature: aromaticSingle and aromaticDouble bond order options 4110# new feature: "smartaromatic" bonds # turned off with "smartAromatic = false" 4111# new feature: calculate aromatic # calculates reasonable aromatic double/single alternation. 4112# new feature: reset aromatic # sets all aromaticDouble and aromaticSingle back to aromatic 4113# new feature: select ISAROMATIC # selects aromatic atoms 4114# new feature: MOL reader recognizes bond types 4,5,6,7 4115 4116# new feature: isosurface/mo "squared" 4117 4118# new feature: fully generalized bond order "partial n.m" 4119# n = number of lines, up to 5 4120# m = binary mask for dottedness, up to 31 (0x1F) 4121# 00001 first line of bond dotted 4122# 00010 second line of bond dotted 4123# 00011 first and second line of bond dotted, etc. 4124 4125# new feature: connect may use numeric bond orders, including "partial n.m" 4126 4127# new feature: preliminary work on functionalized state 4128# new feature: global/local functions (to applet, for instance 4129# in general, functions are global -- common to all applets. 4130# first-character "_" indicates this function is a LOCAL function, private to this applet. 4131 4132# ----------------------------------------------------------------------------- 4133 4134#version=11.3.28 4135 4136# critical bug fix for color command not coloring objects properly 4137# new feature: bondOrders 2.5 and -2.5 PartialTriple and partialTriple2 4138 4139# ----------------------------------------------------------------------------- 4140 4141#version=11.3.27 4142 4143# critical bug fix for functions not returning values 4144# bug fix for atomarray[i] not selecting properly 4145# bug fix for write not working with VAR 4146# bug fix for application not accepting pastes into the 4147# console consisting of multiple lines 4148# bug fix for bondOrder command not properly treating 4.0 or 0.5 4149# bug fix for decimals not represented properly in error messages 4150 4151# ----------------------------------------------------------------------------- 4152 4153#version=11.3.26 4154 4155# new feature: _1 parameter for "first atom" in second expression of connect: 4156# connect 3.0 (_H and connected(_N) (_O and not within(chain,_1)) hbond 4157# new feature: better reporting of PMESH file format errors 4158 4159# code cleanup: pmesh moved to shapespecial; privatized 4160 4161# bug fix within(chain,xxx) not working 4162# bug fix for() as first command in script or line 4163# bug fix we were not exporting error free xhtml 1.1. 4164# bug fix for WebPageMaker not writing files 4165# bug fix for PAUSE causes app to hang -- this is a reversion of use of SwingUtilities.invokeLater(), 4166# which actually will not work in ScriptWindow. We need the direct execution in 4167# order to avoid the event queue from stopping itself. 4168 4169# ----------------------------------------------------------------------------- 4170 4171#version=11.3.25 4172 4173# bug fix compiler not recognizing "axes =" or "measures = " 4174# bug fix for WebPageMaker creating uncompressed PNG 4175# bug fix for WebPageMaker not stripping \ in load file names 4176 4177# ----------------------------------------------------------------------------- 4178 4179#version=11.3.24 4180 4181# critical bug fix for 11.3.23 compiler not recognizing line endings 4182# bug fix for show state for draw in multi-model environment 4183# bug fix? for background model not available for multiple frame range (e.g. frame 2.0) or after invalid frame number 4184# 4185# new feature: within(distance,isWithinAllModels,atomExpression) 4186# 4187# allows finding atoms within a specified distance of other atoms in OTHER models: 4188# 4189# select within(5.0,true,model=2.1) # TRUE indicates we should check all models 4190# select within(5.0,false,model=2.1) # FALSE -- only model 2.1 4191# select within(5.0,model=2.1) # default is FALSE 4192 4193# ----------------------------------------------------------------------------- 4194 4195#version=11.3.23 4196 4197# VERSION full script flow control support: 4198 4199# if / else if / else / end if 4200# for / end for 4201# while / end while 4202# 4203# var i = 4 4204# if (i = 3) 4205# print "i=3" 4206# else if (i = 4) 4207# print "i=4" 4208# else if (i = 5) 4209# print "i=5" 4210# end if 4211# 4212# var i = 5 4213# while ( i > 0) 4214# print "atom " + i + " " + {atomno=i}.ident + " is at " + {atomno=i}.xyz 4215# i = i - 1 4216# end while 4217# 4218# n = {*}.size 4219# for (i = 1; i <= n; i = i + 1) 4220# for (j = i + 1;j <= n; j = j + 1) 4221# 4222# var dist = {atomno=i}.distance({atomno=j}) 4223# 4224# if (dist < 1.77) 4225# print "i-j: " + i + "," + j + " " + dist%2 4226# measure {atomno=i} {atomno=j} 4227# endif 4228# 4229# end for 4230# end for 4231# 4232# var i = 4 4233# while ( i > 0) 4234# print "in while: i="+i 4235# if (i = 2);print "i is 2";endif 4236# i = i - 1 4237# end while 4238# 4239# 4240 4241# ----------------------------------------------------------------------------- 4242 4243#version=11.3.22 4244 4245# Changes to webexport package only 4246# New Features: textboxes for entry of author name and title for browser window 4247# persistence across launches of authorname and applet size 4248# automatic gzip of large structure/quantum files. 4249# Bug? fix: update the page templates to XHTML 1.1 4250# Minor fixes to instruction .html files. 4251 4252# tweak: using "var" keyword prevents display of global variable value 4253 4254# ----------------------------------------------------------------------------- 4255 4256#version=11.3.21 4257 4258# 4259# bug fix: isosurface of MOs not properly displaying color in saved state 4260# bug fix: state saving of @ definitions has extra = sign. 4261# 4262# new feature: fully functional user-defined functions: 4263# 4264# MACROS (no parameters) 4265# 4266# function mymacro 4267# background red 4268# color atoms blue 4269# end function 4270# 4271# function mymacro2 4272# background black 4273# color atoms cpk 4274# end function 4275# 4276# background white 4277# delay 2 4278# 4279# mymacro 4280# 4281# delay 2 4282# 4283# mymacro2 4284# 4285# 4286# SUBROUTINES (parameters, but no return) 4287# 4288# function drawline(id,a,b) 4289# var x = script("draw line"+ id + " {atomno=" + a + "} {atomno=" + b + "}") 4290# end function 4291# 4292# drawline(1,3,5) 4293# drawline(2,10,12) 4294# 4295# 4296# FUNCTIONS (parameters and returns) 4297# 4298# function d(a,b) 4299# return a.distance(b) 4300# end function 4301# 4302# x = d({atomno=3},{atomno=4}) 4303# print x 4304# 4305# SHOW AND WRITE: 4306# 4307# show functions 4308# 4309# write functions macros.spt 4310# 4311 4312# ----------------------------------------------------------------------------- 4313 4314#version=11.3.20 4315 4316# bug fix for arrows way too fat (introduced in 11.3.19) :( 4317 4318# ----------------------------------------------------------------------------- 4319 4320#version=11.3.19 4321 4322# bug fix: critical arrow fix of 11.3.17 for 2-point arrows 4323# bug fix: write PNG default was 0 compression. -q flag was OK for setting 0-9 4324# bug fix: ragged arrow tip 4325 4326# ----------------------------------------------------------------------------- 4327 4328#version=11.3.18 4329 4330# critical bug fix for 11.3.17 in regard to serialization of arrays 4331# also introduces 4332# 4333# reset ALL # resets all user-created variables 4334# 4335# also "exitJmol" typed into the script window for the application does that. 4336# 4337 4338# ----------------------------------------------------------------------------- 4339 4340#version=11.3.17 4341 4342# bug fix: problem with unescaping comma-separated point strings "{1,2,3}" as a point. 4343# bug fix: drawn arrows scale improperly when zooming; arrow heads off-kilter 4344 4345# new feature: set defaultDrawArrowScale # 0.5 initially 4346# Drawn arrows now have a head size that can be set and a dimension that 4347# scales with the model, so arrow head:atom size ratio remains constant 4348 4349# 4350# new feature: setting Jmol,Rasmol,Shapely,Amino,Roygb,Rwb 4351# color schemes makes those colors the default colors for these schemes. 4352 4353# rename byResidue_jmol --> byResidue_shapely 4354# rename byResidue_rasmol --> byResidue_amino 4355 4356# new feature: array variables saved as arrays 4357# prior to 11.3.17, you could not do: 4358# 4359# x = "this is a test".split(" ") 4360# y = x[3] 4361# 4362# because x was only saved as a string, not an array 4363# now x is saved as an array, so this is no problem. 4364# 4365# new feature Jmol math point(x,y,z) function 4366# 4367# point(a,b,c) or point("{x,y,z}") 4368# 4369# x = point(y[3], y[6], y[2]) 4370# x = point("{2,3,5}") 4371# 4372# needed because, with simple numbers, just 4373# 4374# x = {3.0,4.0,5.0} 4375# 4376# works, but 4377# 4378# x = {r,g,b} 4379# 4380# does(did) not. 4381# 4382# new feature: Jmol math array element assignment: 4383# 4384# a = "2,3,4,5".split(",") 4385# 4386# a[3] = "now the 4 becomes this phrase" 4387# a[a[2]] = "not any more; now it's this" 4388# a[0] = "setting the final element" 4389# a[6] = "expanding the array" 4390# print a 4391# 4392# 2 4393# 3 4394# not any more; now it's this 4395# setting the final element 4396# 4397# expanding the array 4398# 4399# works with strings as well: 4400# 4401# a = "this is a test" 4402# a[8] = " not" 4403# print a 4404# >> a = "this is not a test" 4405# 4406# new feature: Jmol math x = array(a,b,,,,) 4407# 4408# x = array(3,4,5,6) 4409# print x[3] 4410# >> 5 4411# 4412 4413# new feature: Jmol math plane(x,y,z,w) function 4414# 4415# plane(a,b,c,d) or plane("{x,y,z,w}") 4416# or through three points: 4417# plane({atomExprOrPoint},{atomExprOrPoint},{atomExprOrPoint}) 4418# or through three points with a reference point 4419# plane({atomExprOrPoint},{atomExprOrPoint},{atomExprOrPoint},{atomExprOrPoint}) 4420# 4421# x = plane(y[3], y[6], y[2], 3.0) 4422# x = plane("{2,3,5,4}") 4423# x = plane({_H}[1],{_H}[2],{_H}[3],{_C}[1]) 4424# new feature: print command prints a variable expression 4425# 4426# print x 4427# print x * 3 4428# print x[4] + x[3] 4429# print x.split(" ")[2][0] 4430 4431# new feature: aPlane.distance({some atoms}) 4432 4433# new feature: someArray.add("string") adds string to right of each item 4434# new feature: someArray.sub("string") adds string to left of each item 4435 4436# colorManager clean-up 4437 4438# ----------------------------------------------------------------------------- 4439 4440#version=11.3.16 4441 4442# bug fix: Eval RPN processor for list[n] addition operator not doing selection 4443 4444# new feature: MOPAC mgf file UHF orbital reading -- preliminary only 4445 4446# new feature: byElement and byResidue color schemes allow 4447# customized element and residue coloring schemes. 4448# built-in include: byElement_Jmol, byElement_Rasmol, 4449# byResidue_Jmol (shapely) and byResidue_Rasmol (amino) 4450# with abbreviations byElement == byElementJmol; byResidue == byResidue_Jmol 4451# color atoms "byresidue_Jmol" 4452# 4453# Users can set up their own byElement and byResidue color schemes 4454# simply by preficing a name with "byElement" or "byResidue": 4455# 4456# color "byElement_Mine=[x......] [x......] [x......] ..." 4457# 0(unknown) 1(H) 2(He) ... 4458# 4459# then: 4460# 4461# color atoms "byElement_Mine" 4462# 4463# RANGE min and max are ignored for byElement and byResidue schemes, 4464# and there is no scaling done ever, so effectively these prefixes 4465# make the correlated value a simple index into the array. 4466# This is what one would want for something that should be a given 4467# for a specific element or residue 4468# 4469# Residue indexes in order correspond to the groupID of an atom: 4470# 4471# 0 noGroup, 4472# 1 ALA, ARG, ASN, ASP, CYS, 4473# 6 GLN, GLU, GLY, HIS, ILE, 4474# 11 LEU, LYS, MET, PHE, PRO, 4475# 16 SER, THR, TRP, TYR, VAL, 4476# 21 ASX, GLX, UNK, 4477# 24 A, +A, G, +G, I, +I, 4478# 30 C, +C, T, +T, U, +U 4479# 4480# so this opens the door to user-created residue coloring schemes. 4481# 4482# color "byResidue_Mine=[x......] [x......]..." 4483# nogroup ALA ... 4484# 4485# then 4486# 4487# color cartoons "byResidue_Mine" 4488 4489# ----------------------------------------------------------------------------- 4490 4491#version=11.3.15 4492 4493# new feature: fully customizable popup menu -- see file jmol.mnu 4494# 4495# load menu jmol.mnu 4496# 4497# applet parameter param=menuFile value="jmol.mnu" 4498# 4499# application parameter -m filename 4500# 4501# mostly untested 4502# 4503# new feature: show menu 4504# new feature: getProperty menu 4505# 4506# These deliver the current menu (as translated) in jmol.mnu format 4507 4508# ----------------------------------------------------------------------------- 4509 4510#version=11.3.14 4511 4512# new feature: fully customizable popup menu -- see file jmol.mnu 4513# 4514# load menu jmol.mnu 4515# 4516# applet parameter param=menuFile value="jmol.mnu" 4517# 4518# largely untested 4519 4520 4521# bug fix: HDO not recognized as "water" 4522# bug fix: rotateSelected MOLECULAR not around {0 0 0} 4523# bug fix: -g ignored on -n option, even if -w is present 4524# bug fix: unknown color palette could cause error 4525 4526# new feature: %l atomic element number 4527 4528# new feature: APPLICATION -q (quality) option 4529# new feature: lcaoCartoon, mo, isosurface, pmesh: color [translucent [n]|opaque] [colors...] 4530 4531# adjustment: setting JPG default quality to 75, not 100 4532 4533# new feature: {r,g,b} can be used in place of [r,g,b] for indicating color, 4534# allowing programmatic color definition: 4535# 4536# r = 255; g = 255; b = 0; 4537# background {@r,@g,@b} 4538 4539# new feature: expanded color command for properties 4540# 4541# color atoms property partialcharge "rwb" range -1.0 1.0 4542# 4543# and reverse with range inverted: 4544# 4545# color atoms property partialcharge "rwb" range 1.0 -1.0 4546 4547# new feature: unlimited user-defined color schemes: 4548# 4549# select none; 4550# color "myname=[xff00ff] [xffff00] [xff00ff]" 4551# 4552# colors must be [xRRGGBB] format for this one 4553 4554# new feature: fully remappable isosurface using COLOR command: 4555# 4556# isosurface s1 molecular map mep 4557# color $s1 "bwr" 4558# color $s1 "rwb" range -0.2 0.2 4559 4560 4561# APPLICATION adjustment to console window scaling/size 4562 4563# ----------------------------------------------------------------------------- 4564 4565#version=11.3.13 4566 4567# this version introduces fully customizable color schemes 4568# 4569# new feature: .color for numbers and points delivers the 4570# color associated with a given value in the current 4571# coloring or propertyColorScheme. 4572# (some number).color gives a color triple as a point {x y z} 4573# {x y z}.color gives a hexadecimal string [xRRGGBB] 4574# 4575# 4576# select atomno=3;color yellow 4577# x = {atomno=3}.color # gives {255.0, 255.0, 0.0} 4578# x = {atomno=3}.color.color # gives "[xFFFF00]" 4579# 4580# set propertyColorScheme "bwr" 4581# x = {atomno=3}.partialcharge.color 4582# 4583 4584# new feature: color ["schemeName"] RANGE [min] [max] 4585# allows setting of color range and scheme so that color 4586# values can be determined. This would be used for making 4587# a color key using positionable ECHO text boxes: 4588# 4589# color "bwr" absolute -0.1 0.1 4590# x = (0.01).color # gives the point-color associated with that number 4591# set echo myecho 100 100 # position 4592# echo " " # just some space 4593# color echo @x; background echo @x # color this bar the color of 0.01 4594# 4595# new feature: show colorscheme "schemeName" 4596# delivers "colorscheme = " followed by a string of color values. 4597# without the scheme name, returns the current colorscheme listing 4598# For example: show colorscheme "low" delivers: 4599# 4600# colorscheme = [xff0000] [xff2000] [xff4000] [xff6000] [xff8000] [xffa000] [xffc000] [xffe000] [xfff000] [xffff00] [xf0f000] 4601# 4602# setting an array variable to the color values: 4603# 4604# list = script("show colorscheme \"low\"")[15][0].split(" ") 4605# 4606# new feature: set userColorScheme [list of color names] 4607# creates a colorscheme referred to as "user" and its reverse, "resu" 4608# based on a list of color values: 4609# 4610# set userColorScheme red green [x00FFFF] blue 4611# color atoms property partialcharge "user" range -1.0 1.0 4612 4613# ----------------------------------------------------------------------------- 4614 4615#version=11.3.12 4616 4617# bug fix: zoomTo 100% 4618# bug fix: set language fr needs quotes but should not 4619# bug fix: load multiple files inline causes null pointer exception 4620# 4621# new feature: APPLICATION: File|Export...|Export to Web Page 4622 4623# ----------------------------------------------------------------------------- 4624 4625#version=11.3.11 4626 4627# bug fix: lcaoCartoon for sp center requires "sp2" not "sp" 4628# bug fix: mo not showing titles 4629# 4630# new feature: lcaoCartoon rotate [x|y|z] degrees create "px" 4631# new feature: adds Jaguar PLT plot file reader for isosurface 4632# isosurface sign red blue "myfile.plt" 4633 4634# ----------------------------------------------------------------------------- 4635 4636#version=11.3.10 4637 4638# bug fix: script window using swing thread start not from event queue 4639# bug fix: state of multi-polymer protein cannot be restored 4640# bug fix: dots nn% not operational 4641# bug fix: molecular dipole and multiple frames 4642# 4643# new feature: molecular dipole for Gaussian files 4644# 4645# new feature: simple calculation of approximate dipole moment from charge distributions. 4646# dipole molecular # from file value if provided 4647# dipole calculate molecular # from "center of gravity" of charges calculation 4648# 4649# new feature: show frame # based on models in the current frame set, displays information about frames 4650# 4651# new feature: application option for web page export 4652# 4653# new feature: write JPG n "filename" # where n is the quality (<=100) 4654 4655# ----------------------------------------------------------------------------- 4656 4657#version=11.3.9 4658 4659# bug fix for isosurface mapping of planes by MEP (see 11.3.2) 4660 4661# new feature: symmetryRange: load "someFile" {mmm nnn 1|0} range x.x where x.x is a maximum distance away from closest atom in the base cell 4662# new feature: synchronization of applets using JavaScript 4663# new feature: synchronization of applets using Jmol scripts: 4664# 4665# synchronize .|>|*|appletId[syncId] ON|OFF|SLAVE|command 4666# 4667# The synchronize (sync) command allows two or more applets to be synchronized in 4668# terms of orientation. Move one with the mouse, and the other moves as well. 4669# In addition, the sync command allows ANY command to be sent to one or more 4670# other applets directly, without the intervention of JavaScript. 4671# 4672# Applets are identified by appletId (jmolApplet0, for instance) 4673# along with an optional bracketed sync group identifier -- generally a random 4674# number that identifies the page containing the controlling applet. If the 4675# syncId is not given, then the ID for the page containing the controlling applet 4676# is used. This feature is important for cross-frame synchronization only. 4677# 4678# 4679# . this applet only 4680# > all applets except this one 4681# * all applets 4682# appletId id of a specific applet 4683# [syncId] (optional) a unique string of digits -- brackets included 4684# 4685# ON sync as driver (default) 4686# OFF turn sync off 4687# SLAVE turn sync on, but not as driver 4688# command command to send 4689# 4690# for example: 4691# 4692# sync * # synchronize all applets as drivers 4693# sync jmolApplet1 #syncs this applet with jmolApplet1 both as drivers 4694# sync > "set echo top left;echo OK" # sends OK to top left of all OTHER applets 4695# sync jmolApplet2[254678942] OFF # turns sync off for an applet ON A DIFFERENT PAGE 4696# # or in a different FRAME 4697# sync . OFF # turns sync off for this applet 4698# 4699# new Jmol.js feature: jmolGetSyncId(); jmolSetSyncId(id); 4700# allows control over the sync ID via javascript. jmolSetSyncId(id) 4701# should be called prior to jmolApplet() and should incorporate some sort of 4702# random digits and no space characters. (A number is good.) 4703# This should only be necessary for multi-frame pages. 4704 4705# ----------------------------------------------------------------------------- 4706 4707#version=11.3.8 4708 4709# bug fix: isosurface color -- not operating for some isosurface types 4710# bug fix: isosurface "xxxx.cube" -- not assigning proper default colors 4711# bug fix: gamess reader MO fix 4712# bug fix: state save of STRUCTURE misplaced 4713 4714# feature: adds adjustable scale for unitcell axes 4715 4716# ----------------------------------------------------------------------------- 4717 4718#version=11.3.7 4719 4720# bug fix: reading of JVXL files for orbitals loses phase information 4721# bug fix: ACD/Labs nonstandard cml "builtin" property reader 4722# bug fix: isosurface interior cavity was not setting meshdata surfaceSet null 4723# bug fix: select dna can select rna if chain is mixed hybrid dna+rna 4724 4725# ----------------------------------------------------------------------------- 4726 4727#version=11.3.6 4728 4729# bug fix: inappropriate draw pick spinning for single point 4730# bug fix: dots not available in multimodel mode 4731# bug fix: multiple isosurface cavities incorrect in a multimodel environment 4732# bug fix: isosurface cavity not filled completely 4733# bug fix: nested ifs can cause last endif to throw error 4734# bug fix: compiler bug working with very small real numbers 4735# bug fix: Support for mol2 files with blank line after comments. 4736 4737# ----------------------------------------------------------------------------- 4738 4739#version=11.3.5 4740 4741# bug fix: ACD/Labs nonstandard cml "builtin" property reader 4742# note that xmlReader (SAX reader) is now set to ignore all DOCTYPE declarations 4743# bug fix: odydata fix for files with \r\n for line ending 4744# bug fix for PDB remediated T/DT difference of C5M/C7 4745# bug fix: set spin X was case-selective 4746# bug fix: echo text not re-orienting on resize of applet or application 4747# bug fix: multiple isosurface cavities in a multimodel environment 4748# bug fix: missing set picking ident in popup window 4749# bug fix: popup menu set picking label not working 4750 4751# ----------------------------------------------------------------------------- 4752 4753#version=11.3.4 4754 4755# rough export of VRML using 4756# 4757# write VRML "myfile.wrl" 4758# 4759# includes colored balls and sticks; uncolored isosurfaces 4760 4761# ----------------------------------------------------------------------------- 4762 4763#version=11.3.3 4764 4765# bug fix pmesh not working 4766# bug fix for state after calculate surface, calculate hbonds, configuration, dynamic variable definition in multimodel environment (ModelSet::addStateScript) 4767 4768# NEW FEATURES from the 2007 Gordon Research Conference on Visualization in Science and Education: 4769# 4770# internal dataFrame concept 4771# 4772# new command: ramachandran 4773# 4774# new command: quaternion [w x y z] [derivative] 4775# 4776# TODO: frame menu 4777# TODO: write VMRL 4778 4779# preliminary Maya export -- sets the stage for any number of export frameworks. 4780 4781# ----------------------------------------------------------------------------- 4782 4783#version=11.3.2 4784 4785# bug fix: set picking label 4786# bug fix: minus-sign "fix" in 11.3.1 broke all {x -y z} notation 4787# bug fix: state for phased atomic orbitals does not preserve red/blue color 4788# bug fix: mo opaque causing "invalid argument" when no MOs 4789# bug fix: isosurface cavity molecular caused exception 4790# feature: adds isosurface capability to map MO and MEP data onto planes 4791 4792# ----------------------------------------------------------------------------- 4793 4794#version=11.3.1 4795 4796# bug fix: debugscript on;center 3-5; "-" missing 4797# bug fix: zoomTo (5-7) read as "5 to -7" 4798# bug fix: move with time < 0.03 seconds causes molecule to disappear 4799# bug fix: hover interruption 4800# bug fix: image offsets in creating JPG image if model has been moved by CTRL-ALT-LEFT drag 4801 4802# ----------------------------------------------------------------------------- 4803 4804#version=11.3.0 4805 4806# perspectiveModel 11 default 4807# bug fix for 3D text echo staying in window 4808# bug fix for draw text+translucency 4809# bug fix for draw text not hovering for points 4810# bug fix for multiple draw objects in show state 4811# bug fix for spin save reversed direction 4812# bug fix for CdkAdapter not having auxiliaryInfo data 4813# 4814# adds the ability to find the coordinate of a specific 4815# draw object vertex using $objName[vertexId] as in 4816# draw p perp plane (atomno=1) (atomno=2) 4817# x = $p[3] 4818# draw pt1 $p[1] 4819 4820 4821# ----------------------------------------------------------------------------- 4822 4823#version=11.1.49 4824 4825# bug fix for Gaussian file reader fix for very large negative MO coefficients 4826# bug fix for move not releasing isInMotion 4827# bug fix for x = "testing"[0], x = "testing"[-1], "testing".split("t")[0], and "testing".split("t")[-1] 4828# bug fix for select {*}[0], {*}[-1], etc., which now counts from the end back 4829# adds proper indents on debugscript for if/else/endif 4830# allows "jmolscript:" for embedded scripts and callbacks 4831 4832# ----------------------------------------------------------------------------- 4833 4834#version=11.1.48 4835 4836# bug fix for gamess reader MO fix 4837# bug fix for mopac GRAPHF file fix (resolver thought MOL) 4838# bug fix for lcaocartoon "lp" fix for AX3E and AX2E 4839 4840# ----------------------------------------------------------------------------- 4841 4842#version=11.1.47 4843 4844# bug fix for compound document reader not reading enough short segment pointers 4845# bug fix for Spartan reader not recognizing 5D orbital problem 4846# bug fix for animation skipping frames 4847 4848# ----------------------------------------------------------------------------- 4849 4850#version=11.1.46 4851 4852# bug fix for Jvxl.jar standalone application not having complete set of class files (jvxl) 4853# adds inline help support for Jmol application running under Java 6 (Java 1.6.xx) 4854# bug fix for inappropriate pre-JVM12 menu items not disabled 4855 4856# ----------------------------------------------------------------------------- 4857 4858#version=11.1.45 4859 4860# bug fix for animFrameCallback not indicating animation direction 4861# bug fix for help not working and help URL not displaying (app) 4862# bug fix for app not writing state from File...Export menu (app) 4863# bug fix for retaining the last-saved file type selected for Image export (app) 4864# bug fix for "wait" not recognizing if it is just a syntax check (app) 4865 4866# ----------------------------------------------------------------------------- 4867 4868#version=11.1.44 4869 4870# bug fix for inability to specify fractional coordinates: adds fx, fy, fz as 4871# select fx < 0.5 and fy < 0.5 and fz < 0.5 4872# aveFracX = {molecule=1}.fx 4873# bug fix for inability to use x,y,z,fx,fy,fz with cartesian points 4874# bug fix for select BONDS ({...}) not preserved in state 4875# bug fix for geosurface not always restored from saved state 4876# bug fix for strandcount saved explicitly forces bioshape load 4877 4878# ----------------------------------------------------------------------------- 4879 4880#version=11.1.43 4881 4882# bug fix for labels mysteriously disappearing. Also probably taking up HUGE amounts of hashtable space. 4883# bug fix for hydrogen bond calculation with incomplete nucleic acid definitions. 4884# bug fix for "set picking draw" crashing Jmol 4885# bug fix for strandCount not carrying over to meshRibbon 4886# bug fix for geosurface/dots save/restore state exception 4887# bug fix for save state using "measurements off" instead of "set measurements off" 4888 4889# ----------------------------------------------------------------------------- 4890 4891#version=11.1.42 4892 4893# bug fix for lack of updating of certain variable predefined expressions 4894# bug fix for smiles nonfunctional 4895 4896# bug fix for load append and structure commands 4897# bug fix for load files losing structure and cartoons 4898# bug fix for multiple frames displayed does not show Select...Elements menu 4899# bug fix for select @x not functioning where x = {atom expression} or x = "atom expression" 4900# bug fix for {atom expression}.ident nonfunctional 4901 4902# code refactoring Frame --> ModelSet and ModelLoader 4903# code refactoring modelframe --> modelset package 4904# code refactoring shapebio --> shapebio + molsetbio packages 4905# code refactoring dissociates Mps.MpsShape from Mps as BioShape 4906# code refactoring removes Mps.Mpsmodel 4907# code refactoring Mps --> BioShapeCollection 4908# code refactoring greatly simplifies BioShapeCollection subclasses 4909 4910# ----------------------------------------------------------------------------- 4911 4912#version=11.1.41 4913 4914# bug fix for load with explicit spacegroup not respecting normalization choice 4915# bug fix for symop=nijk selecting base atoms when not appropriate 4916# bug fix for select specialposition non-functional 4917# bug fix for adding atoms but mads[] going stale 4918# slight redefinition of "special position" 4919# bug fix for structure loss on load append. (structure is supposed to be recalculated). 4920# adds language switching for Open / Save dialog boxes and full menuing system in Jmol application 4921# adds "structure" command -- structure [helix|sheet|turn|none] (atom expression) 4922# adds "save/restore structure" command 4923 4924# ----------------------------------------------------------------------------- 4925 4926#version=11.1.40 4927 4928# bug fix for backgroundModel and save state 4929# bug fix for load append with spacegroups causing atoms to be repositioned 4930# bug fix for anim playrev in loop mode causing animation to stall 4931 4932# ----------------------------------------------------------------------------- 4933 4934#version=11.1.39 4935 4936# several bug fixes: 4937# 4938# bug fix for mo data misreading in smol files 4939# bug fix for lcaoCartoon "s" giving incomplete spheres 4940# bug fix for select symop=3555 not giving proper atoms when load "" {444 666 0} 4941# bug fix for PDB files not supplying information about residues for the popup menu. 4942# bug fix in frame range 1.0 when file 1 has only one model. 4943 4944# ----------------------------------------------------------------------------- 4945 4946#version=11.1.38 4947 4948# bug fix for opaque triangles missing one pixel on right side when translucent objects are present. 4949# bug fix for label alignments sometimes not being saved properly in the state 4950# bug fix for animFrameCallback giving multiple callbacks -- still there, but identified now 4951# in terms of whether animation is on or not in the 7th parameter being 1 or 0: 4952# 4953# function animFrameCallback(app,frame,fileno,modelno,firstno,lastno,isRunning){...} 4954 4955# ----------------------------------------------------------------------------- 4956 4957#version=11.1.37 4958 4959# fixes bugs in draw and unicode label state definitions 4960# adds simplistic <sub></sub> <sup></sup> to text, including echo, label, hover, etc. 4961# fixes popup menu to better deal with multiple file context 4962# update of Turkish translation 4963 4964# ----------------------------------------------------------------------------- 4965 4966#version=11.1.36 4967 4968# build: renames applet files JmolApplet0*.jar and JmolAppletSigned0*.jar 4969# 4970# bug fixes for isosurface in multi-file environment 4971# 4972# bug fix and additional work in relation to translations 4973# 4974# zoomTo (atom expression) 0 4975# 4976# with options 4977# 4978# zoomTo (atom expression) 0+n 4979# zoomTo (atom expression) 0-n 4980# zoomTo (atom expression) 0*n 4981# zoomTo (atom expression) 0/n 4982# 4983# also 4984# 4985# moveTo timeSec {x y z w} (atom expression) 0 [zoom factor] 4986# and 4987# moveTo timeSec {x y z w} 0 transX transY (atom expression) 0 [zoom factor] 4988# 4989# where [zoom factor] is x, where x > 0 4990# or 4991# [0] [[+ | - | * | /] x] 4992# 4993# 4994# app fix for Edit...preferences not properly refreshing for axes and boundbox 4995 4996# ----------------------------------------------------------------------------- 4997 4998#version=11.1.35 4999 5000# fix for x = {...}.resno and {...}.groupID 5001# fix for select resno=-1 5002# first version of pt_BR translation 5003 5004# ----------------------------------------------------------------------------- 5005 5006#version=11.1.34 5007 5008# language submenu 5009 5010# ----------------------------------------------------------------------------- 5011 5012#version=11.1.33 5013 5014# bug fixes -- draw state, menu not updating, language submenu 5015 5016# ----------------------------------------------------------------------------- 5017 5018#version=11.1.32 5019 5020# adds capability to define a property for selected atoms: 5021# 5022# select xxx 5023# property_x = n.m 5024 5025# ----------------------------------------------------------------------------- 5026 5027#version=11.1.31 5028 5029# adds capability to read data from selected fields (white-space delimited columns) in a file 5030# 5031# propertyDataField = 0 # no fields -- just read tokens 5032# propertyDataField = 2 # data are in field 2 (second from the left) 5033# propertyAtomNumberField = 1 # data must match atomNo in field 1 and will be in 5034# the field specified by propertyDataField 5035 5036# ----------------------------------------------------------------------------- 5037 5038#version=11.1.30 5039 5040# full support for switching languages, including a new "language" menu item 5041# 5042# Jmol.js: 5043# 5044# jmolSetCallback("language", "de") 5045# 5046# Jmol scripting: 5047# 5048# language = "de" 5049# 5050# Menu: 5051# 5052# new language submenu with checkboxes. 5053# 5054# allows for efficient specific file reader options for the applet (particularly) 5055# 5056# adds _spinning variable 5057# 5058# adds LOAD xxx::myfile xxx indicating file type xyz, mol, etc. 5059# 5060# not important generally. 5061# 5062# adds PQR reader option, at least for PDB2PQR generated output 5063# 5064# better spin control during zoomTo and moveTo 5065# spinning now detects that a zoomTo or moveTo operation is occurring 5066# or the user is manipulating the model with the mouse, and pauses 1 second 5067# for that operation to complete before resuming spinning 5068# 5069# hover now is turned off during spinning or user manipulation of the model 5070# 5071# zoomTo and moveTo the same location changed to no time delay 5072 5073# ----------------------------------------------------------------------------- 5074 5075#version=11.1.29 5076 5077# code: totally reorganized isosurface code; new org/jmol/jvxl packages 5078# 5079# adds (1) isosurface functionxy "file:data.dat" ... 5080# adds (2) isosurface functionxy "functionName" {x0 y0 z0} {-ni ...} ... 5081# adds (3) isosurface functionxy "functionName" {x0 y0 z0} {-ni ...}{-nj ...} ... 5082# 5083# (1) "file:" allows reading of xy data from files for graphing f(x,y) 5084# (2) ni<0 indicates JavaScript functionName will return a single string that 5085# should be parsed for numeric data. 5086# (3) ni<0, nj<0 indicates that JavaScript will fill the fourth parameter 5087# of the function with an array of f[nX][nY] data values: 5088# 5089# Jmol: 5090# 5091# isosurface s1 functionXY "xyData" {-2 -2 -2} {21 0.1 0 0} {21 0 0.1 0} {21 0 0 0.1} 5092# 5093# JavaScript: (slow) 5094# 5095# function xyData(app, x, y) { 5096# return func(x, y) 5097# } 5098# 5099# Jmol: 5100# 5101# isosurface s2 functionXY "xyDataAsString" {-2 -2 -2} {-21 0.1 0 0} {21 0 0.1 0} {21 0 0 0.1} 5102# 5103# JavaScript: (much faster) 5104# 5105# function xyDataAsString(app, nX, nY) { 5106# var s 5107# for (var i = 0; i < nX; i++) 5108# for (var j = 0; j < nY; j++) 5109# s += "x_"+i+"\ty_"+j+"\t"+func(i,j)+"\n" 5110# 5111# //non-numeric formatting allowed but not necessary 5112# 5113# return s 5114# } 5115# 5116# Jmol: 5117# 5118# isosurface s3 functionXY "xyDataAsArray" {-2 -2 -2} {-21 0.1 0 0} {-21 0 0.1 0} {21 0 0 0.1} 5119# 5120# JavaScript: (very fast) 5121# 5122# function xyDataAsArray(app, nX, nY, fxy) { 5123# for (var i = 0; i < nX; i++) 5124# for (var j = 0; j < nY; j++) 5125# fxy[i][j] = func(i,j) 5126# } 5127# 5128# (2) and (3) are very fast; (1) is the original method, but it is slow. 5129# 5130# MAYSCRIPT expanded 5131# 5132# for the Wiki or any application where absolutely no JavaScript 5133# is to be allowed, simply remove the MAYSCRIPT parameter, which 5134# now covers all aspects of JavaScript interaction from within Jmol 5135# 5136# 5137# adds applySymmetryToBonds (default: FALSE) 5138# 5139# applySymmetryToBonds 5140# 5141# When set TRUE, this flag instructs Jmol when applying symmetry 5142# to atoms, as in "load xxx.cif {1 1 1}", to also apply symmetry 5143# to the bonds indicated in the file. The flag is useful when 5144# normal Jmol autobonding would not properly connect atoms, but 5145# the model is "molecular" -- the base atom coordinates are correct 5146# for whole molecules. The flag should NOT be used in cases where 5147# the application of symmetry operations creates new bonds that 5148# were not present in the original set, as for quartz.cif, where 5149# there is only one bond initially, and after applying symmetry 5150# new bonds are created that are between atoms that were created 5151# using two different symmetry operations. 5152# 5153# adds isosurface HOMO/LUMO [+/- n] 5154# 5155# better isosurface plane rendering, especially in regard to meshes 5156# bug fix in isosurface contour -n going WAY back to before 10.9.60 5157# refactoring of all isosurface-related classes 5158# support for Spartan MO HOMO 5159# 5160# adds isosurface POCKET [cavity] sasurface 5161# adds isosurface INTERIOR [cavity] sasurface 5162# 5163# adds load TRAJECTORY -- for a single file with multiple models all with 5164# the same number of atoms. Atom locations can also be updated on the 5165# fly using the data statement. 5166# 5167# adds TRAJECTORY n command -- like FRAME or MODEL, but never more 5168# than one model at a time displayed, because there is only one set 5169# of atoms. 5170# 5171# adds script: option for callbacks set from within Jmol. That is, callbacks 5172# can either be to host page JavaScript functions or to Jmol scripts. This 5173# will allow interactive sessions without external JavaScript. 5174# 5175# set pickcallback "script: script doCallback.spt" 5176# 5177# adds resizeCallback because certain positioning of echos and sizing of the 5178# structure may require method intervention after the resizing 5179# 5180# adds translucency for echo and hover, both text and backgrounds 5181# 5182# adds echo script to defined state 5183# 5184# adds hourglass cursor during MO/Isosurface operations 5185# 5186# fixes inoperative "set pickingstyle measures on" 5187 5188# ----------------------------------------------------------------------------- 5189 5190#version=11.1.28 5191 5192# adds 5193# 5194# a = script("some script command") 5195# a = javascript("some javascript") 5196# 5197# putting output into a from commands such as "show" or "getProperty", for instance. 5198# 5199# reinstates tempManager properly. 5200# 5201# adds support for CAChe CSF files with MOPAC (AM1, PM3, etc.), 5202# Density Functional, and Extended Huckel Gaussian/Slater-based molecular orbitals. 5203# 5204# CHANGES DEFAULT RENDERING FOR MOLECULAR ORBITALS TO: MESH NOFILL FRONTONLY 5205# 5206# adds MOPAC 2007 graphf output reader (gpt2 files, MOPAC molecular orbitals) 5207# based on the VERY latest version (not released yet), which includes 5208# "MOPAC-Graphical data" on the first line, character index 6. 5209# 5210# adds 5211# 5212# mo HOMO [+/- n] 5213# mo LUMO [+/- n] 5214# 5215# fixes bugs found by FindBugs: 5216# 5217# labels: default z setting for labels (set labelFront, set labelGroup, set labelAtom) 5218# was not being recorded properly 5219# move: with slab or zoom was doing integer math 5220# GhemicalMMReader -- was incorrectly assigning aromatic to bond type 4 via fall-through of switch 5221# 5222# adds xodydata reading of "boundary" as unitcell 5223# enhances default axis rendering for axes unitcell 5224# 5225# adds expanded isosurface-related commands: 5226# 5227# draw list 5228# isosurface list 5229# lcaocartoon list 5230# (mo list) -- not particularly useful 5231# pmesh list 5232# 5233# Listing gives id, number of vertices, number of polygons, visibility, 5234# and title (usually the command that was given that created this isosurface) 5235# 5236# CHANGED BEHAVIOR FOR ISOSURFACE COMMAND WITHOUT ID INDICATED: 5237# 5238# Now if no ID is indicated, the previous ID is used for all commands 5239# EXCEPT "isosurface delete", which deletes all isosurfaces. 5240# 5241# This is a change from Jmol 10.2 and 11.0, where if you leave 5242# off the ID, a new isosurface is created. 5243# 5244# This was a needed change to prevent unwanted multiple isosurfaces. 5245# 5246# CHANGED BEHAVIOR FOR ISOSURFACE DEFAULT COLOR 5247# 5248# The default isosurface color no longer changes shade among 5 possible shades. 5249# That was necessary only because it was easy to mistakenly make multiple 5250# isosurfaces that otherwise would look the same. 5251 5252# ----------------------------------------------------------------------------- 5253 5254#version=11.1.27 5255 5256# fixes two state bugs: 5257# 1) dots/geosurface not being saved properly in state 5258# 2) animation parameters not being saved properly in state 5259 5260# ----------------------------------------------------------------------------- 5261 5262#version=11.1.26 5263 5264# fixes two nasty bugs relating to isosurfaces and JVXL files. 5265# -- JVXL files created from molecular orbitals will show up with no color 5266# in 11.1.0 - 11.1.25 because of a missing number in the definition line :( 5267# -- JVXL files created from molecular orbitals will show unwanted cross-over 5268# surfaces from + to -. 5269 5270# ----------------------------------------------------------------------------- 5271 5272#version=11.1.25 5273 5274# --fully dissociates geosurface from dots; 5275# --allows coloring and transparency of geosurface 5276# similarly to the way stars are colored 5277 5278# ----------------------------------------------------------------------------- 5279 5280#version=11.1.24 5281 5282# refactored Geodesic3D, Dots, DotsRenderer 5283# independent dots/geosurface 5284# 5285# isosurface CAVITY 5286 5287# ----------------------------------------------------------------------------- 5288 5289#version=11.1.23 5290 5291# fixes a number of bugs, some critical 5292# 5293# adds isosurface CAVITY x.xx -- a new way to depict the cavities of 5294# a molecule in terms of color. 5295 5296# ----------------------------------------------------------------------------- 5297 5298#version=11.1.21/22 5299 5300# adds 5301# 5302# load file "=xxxx" and set loadFormat "http://....../%FILE..... 5303# load files ..... # just a cleaner version of loading multiple files. 5304# load append ..... # APPENDS the file(s) or model(s) as new frames onto the current set. 5305# data append ..... # same thing, but inline 5306# 5307# isosurface MODEL n 5308# pmesh MODEL n 5309# isosurface within x.x (what) 5310# 5311# Introduces "real" color translucency 5312# 5313# color xxxx translucent N 5314# 5315# where N is -1 to 9. 5316# 5317# OR OR 5318# translucent -1 same as Jmol 10.2 5319# translucent 0.0 opaque 5320# through 5321# translucent 1.0 transparent (invisible) 5322# 5323# translucent 2 0.125 32 1/8 translucency (slightly translucent) 5324# translucent 3 0.25 64 2/8 translucency 5325# translucent 4 0.375 96 3/8 translucency 5326# translucent 5 0.5 128 4/8 translucency (default) 5327# translucent 6 0.625 160 5/8 translucency 5328# translucent 7 0.75 192 6/8 translucency 5329# translucent 8 0.825 224 7/8 translucency (very sheer) 5330# translucent 9 1.00 255 8/8 transparent (invisible) 5331 5332# ----------------------------------------------------------------------------- 5333 5334#version=11.1.20 5335 5336# cleans up axes/boundbox/unitcell business 5337# 5338# allows for individually colored axes: 5339# 5340# color axis1 ... 5341# color axis2 ... 5342# color axis3 ... 5343# color axes ... (of course) 5344# 5345# and these objects are considered more like background -- 5346# colors and sizes persist past file load 5347# 5348# to turn on and off without messing with size, just use 5349# 5350# showAxes = true 5351# showBoundBox = true 5352# 5353# etc. 5354 5355# ----------------------------------------------------------------------------- 5356 5357#version=11.1.19 5358 5359# allows comparison of user-defined atom properties in SELECT: 5360# 5361# select property_myprop < 1e-5; 5362# 5363# and 5364# 5365# x = {carbon}[5].property_test 5366# x = {carbon}.property_test.min 5367# x = {carbon}.property_test.max 5368# 5369# etc. 5370# 5371# This is it! :) 5372 5373# ----------------------------------------------------------------------------- 5374 5375#version=11.1.18 5376 5377# introduces user-definable atom properties that can be used 5378# to color isosurfaces: 5379# 5380# x = load("file.dat"); 5381# isosurface variable x # simple 100% vdw radius mapping 5382# 5383# select 1.3 5384# data "property_myprop @x" 5385# isosurface property_myprop 5386# 5387# allows isosurface mapping of general atom properties: 5388# 5389# isosurface sasurface colorscheme bwr map property temperature 5390# 5391# adds "bwr" colorscheme as opposed to "rwb", which I think is backward. 5392# 5393# isosurface -- now supports APBS ( ) 5394# molecular electrostatic potential output files 5395# 5396# write -- modified to allow unquoted filename in 5397# write isosurface file.name 5398# 5399# jvxl 1.0 -- adds ANGSTROMS flag on line with # of atoms (line 3) 5400 5401# ----------------------------------------------------------------------------- 5402 5403#version=11.1.17 5404 5405# deprecation of SET 5406# ------------------ 5407# 5408# The "SET" command is no longer necessary. Anything that could have 5409# been set using "SET x .... " can now be set using 5410# 5411# x = .... 5412# 5413# This allows for a much cleaner interface because we simply make 5414# settings in a normal sort of way: 5415# 5416# axes on 5417# axes = molecular 5418# 5419# measures = angstroms 5420# 5421# It will take a bit more to make it all consistent, but the idea 5422# is that there are then some special reserved variables that 5423# mean something special when set, like "bondmode" 5424# 5425# This build allows for the applet to be "bare-bones" -- only the 5426# essential classes included in the Jar file; others never included 5427# or possibly in accompanying jar files, such as, perhaps, JmolPopupMenu.jar, 5428# JmolNavigation.jar, JmolBio.jar, Jm olSurface.jar, JmolXtal.jar, etc. 5429# 5430# Then a developer can slim down the download. The minimum is 697K, 5431# about 58% of the full package. All that gets you is atoms, bonds, 5432# and measures. 5433 5434# ----------------------------------------------------------------------------- 5435 5436#version=11.1.16: 5437 5438# First incompatibility found: 5439# 5440# set echo myecho (atomno=3) or (atomno=5) 5441# 1) adds two new modifiers: 5442# .min 5443# .max 5444# 5445# as in: 5446# 5447# x = {*}.bonds.length.max #the longest bond length 5448# x = {*}.atoms.max #the last atom 5449# 5450# 2) extends find() to sets of lines. For example: 5451# 5452# longLine={*}.bonds.label("%=, %LENGTH").lines.find({*}.bonds.length.max) 5453# message @longLine 5454# longest = longLine%(longLine.find(",")-1) 5455# b = {*}.bonds[longest] 5456# select b_set;color bonds yellow 5457# 5458# NOTE: _set removed in 11.3.41: 5459# select @b;color bonds yellow 5460# 5461# ----------------------------------------------------------------------------- 5462 5463#version=11.1.15: 5464 5465# APPLICATION: adds undo/redo to a fixed depth of 50 commands 5466# 5467# TYPE CONVERSION 5468# 5469# We have eight different variable types now: 5470# boolean True/False 5471# integer 0, 1, 2, .... 5472# decimal 3.5, 3.25E-3 5473# string "test" "3.5" 5474# point {2.3 3.4 5.6} {0 1/2 1} 5475# plane {0 1 1 0} 5476# atomset {oxygen} 5477# bondset {oxygen}.bonds 5478 5479# plane and bondset are new; arithmetic operations are not fully developed. 5480 5481# These can be mixed and matched to good effect. Certain relatively 5482# intuitive rules apply. Usually the operand on the left sets 5483# the overall type, allowing for easy type conversion depending upon 5484# operand order: 5485# int + float: 5486# 0 + 3.6 ==> 3 (int on left rounds float on right) 5487# 3.6 + 0 ==> 3.6 (float on left sets result) 5488# 5489# int/float + string: 5490# 0.0 + "3.5" ==> 3.5 (string converted to float) 5491# 0 + "3.5" ==> 3 (string converted to float, then int) 5492# "3.5" + 0 ==> "3.50" (integer converted to string) 5493# "3.5" + 0.0 ==> "3.50.0" (float converted to string) 5494# 5495# 1.0 + {carbon}.xyz ==> 1 + distance from {0 0 0} to {carbon} center 5496# {carbon}.xyz + 1 ==> {carbon} center point offset by {1 1 1} 5497# 5498# x = {carbon}.xyz * {1 0 0} ==> (dot product) 5499# 5500# Now x is the average x coordinate of carbon 5501# 5502# Boolean expressions are a bit different in that the operators 5503# AND, OR, XOR, and NOT all require conversion to boolean UNLESS both 5504# operands are atom expressions, in which case these operate directly on the 5505# atom sets and return a new atom set, just like in SELECT. 5506# 5507# 3 and 0.5 ==> TRUE (both are nonzero) 5508# false OR 2.0 ==> true (2.0 is not 0, so it is TRUE) 5509# {oxygen} and {molecule=1} ==> all oxygen atoms in the first molecule 5510# 5511# x = ({oxygen} and {molecule=1}).xyz 5512# 5513# x is now the center point of all oxygen atoms in the first molecule 5514# 5515# In standard math, boolean TRUE evaluates to 1.0; FALSE evaluates to 0.0 5516# 5517# true + 2.0 ==> 3.0 ("TRUE" evaluates to 1.0 in math operations) 5518# 2 + true ==> 3 ("TRUE" evaluates to 1.0 and is then turned into an integer) 5519# 5520# 5521# ATOM EXPRESSION AUTOMATIC DEFINE 5522# 5523# When you set a variable to a value, and that value is a point, plane, or atom expression, 5524# then Jmol automatically registers the result as follows: 5525# 5526# points: 5527# x = "{x y z}" 5528# 5529# planes: 5530# x = "{x y z w}" 5531# 5532# atom expressions: 5533# x = n 5534# x_set = "({i j k ...})" 5535# 5536# NOTE: "set x" removed in 11.3.40: 5537# NOTE: _set removed in 11.3.41: 5538# 5539# x = {oxygen}.xyz 5540# y = {carbon}.xyz 5541# draw @x 5542# draw @y 5543# draw line1 @x @y 5544# 5545# and 5546# 5547# x = {carbon}[3][5] 5548# select @x 5549# color green 5550 5551# x = {carbon}[3][5] 5552# select @x 5553# color green 5554 5555# 5556# x = {carbon or oxygen}.bonds 5557# select BONDS @x 5558# color bonds green 5559 5560# 5561# DATA() function and variable option for DATA command 5562# 5563# x = data({atomno < 10},"xyz") 5564# x = data({atomno < 10},"mol") 5565# x = data({atomno < 10},"pdb") 5566# 5567# data "model @x" 5568# 5569# write data t.xyz 5570# write data t.mol 5571# write data t.pdb 5572# 5573# 5574# Better BITSET implementation 5575# 5576# CHANGE: default string value for a bitset is now the ({n:m}) 5577# string format, which can be used in numerous commands. 5578# 5579# To get the count within a string context, just use .size: 5580# 5581# x = "number selected is " + {selected}.size 5582# 5583# or force integer math: 5584# 5585# x = "number selected is " + (0 + {selected}) 5586# 5587# merges math functions within(), connected(), substructure() into molecular math 5588# 5589# adds connected() both for finding atoms and for identifying bonds: 5590# xAtoms = connected(3, {carbon}) 5591# xBonds = connected(1.3,2.5,"single", {carbon} {oxygen}) 5592# 5593# adds 5594# x.atoms 5595# to go along with x.bonds 5596# 5597# adds distance({carbon},{oxygen}) 5598# adds angle({carbon}[4],{oxygen}[3], {nitrogen}[2]) 5599# 5600# angle function accepts from three or four 5601# atom expressions or XYZ coordinates and returns a decimal number for 5602# the distance, angle, or dihedral relating these points. 5603# When more than one atom is involved, average positions are used. 5604# 5605# Note that when more than one atom is involved in a set, 5606# the following are different: 5607# 5608# x1 = {molecule=1}.distance{molecule=2} 5609# x2 = {molecule=1}.xyz - {molecule=2}.xyz 5610# 5611# x1 is a NUMBER that is the "average distance measured 5612# from each molecule 1 atom to the average molecule 2 position" 5613# x2 is a point representing the VECTOR from the "average position of molecule 2" 5614# to the "average position of molecule 1" 5615# 5616# The following are all equivalent: 5617# 5618# x3 = {molecule=1}.xyz.distance{molecule=2} 5619# x4 = 0.0 + ({molecule=1}.xyz - {molecule=2}.xyz) 5620# x5 = ({molecule=1}.xyz - {molecule=2}.xyz).distance{0 0 0} 5621# x6 = distance({molecule=1} {molecule=2}) 5622# 5623# They are all the distance from the center of molecule 1 5624# to the center of molecule 2 5625# 5626# 5627# x = load("filename") 5628# 5629# The string data in the file are loaded into the string. 5630# If the file does not exist, then the string contains the error message. 5631# 5632# 5633# Implements ({i j:k m n}) bitset option across all commands 5634# 5635# RESET varName 5636# 5637# reset varName # clears that variable definition 5638# 5639# 5640# "UNSPECIFIED" and "QUADRUPLE" BOND TYPES 5641# 5642# An additional bond type is now avaiable: "UNSPECIFIED". 5643# This shows up in the MOL2 reader and may be selected for and modified using, for example: 5644# 5645# select connected(unspecified) 5646# color bonds red 5647# 5648# or 5649# 5650# select connected(unspecified) 5651# connect (selected) single modify 5652# 5653# In addition, we now can depict quadruple bonds. 5654 5655# ----------------------------------------------------------------------------- 5656 5657#version=11.1.14: 5658 5659# DYNAMIC MEASUREMENTS 5660# 5661# Now that we can move atoms so easily, we don't want those measurements getting stale. 5662# 5663# set dynamicMeasurements 5664# 5665# allows measurements to be recalculated on the fly. 5666# 5667# 5668# MEASUREMENT FORMAT STRINGS 5669# 5670# Measurement format strings can be set using 5671# 5672# measure "format string..." 5673# 5674# where the format string may have the following keys: 5675# 5676# %= 1-based index 5677# %VALUE the value of the measurement 5678# %UNITS the units for the measurement 5679# %x1 atom property "x" for atom 1 5680# %x2 atom property "x" for atom 2 5681# %x3 atom property "x" for atom 3 5682# %x4 atom property "x" for atom 4 5683# 5684# for example: 5685# 5686# measure "%a1 -- %VALUE %UNITS --- %a2" 5687# 5688# 5689# MATH OPERATOR PRECEDENCE AND PARENTHESES 5690# 5691# Jmol 11.1.14 supports full standard operator precedence and parentheses 5692# in IF, SET, and %{} expressions 5693# 5694# degUnsat = ({carbon} * 2 + {nitrogen} + 2 - {hydrogen}) / 2 5695# 5696# 5697# BRACES INDICATE ATOM EXPRESSIONS 5698# 5699# Use {} in IF, SET and %{} for designating atom expressions. 5700# We are still using () for "embedded expressions" in all other commands. 5701# 5702# nOxygen = {oxygen} 5703# xOxygen = {oxygen}.x 5704# ptOxygen = {oxygen.xyz} 5705# 5706# a = {oxygen}.temperature 5707# message %{{carbon}.x} 5708# if {O22}.bondCount > 2;goto ... 5709# 5710# but 5711# 5712# draw line1 (atomno=2) (atomno=3) 5713# 5714# 5715# ATOM EXPRESSION ITEM SELECTOR [n] 5716# 5717# In SET, IF, and %{ } in MESSAGE and ECHO you can now specify a subset of the 5718# atom expression. 5719# 5720# x = {carbon}[3] # the third carbon atom 5721# x = {carbon}[3][5] # the third through fifth carbon atoms 5722# x = {carbon}[3][0] # the third through last carbon atoms 5723# 5724# This also works in standard select expressions, but using () instead: 5725# 5726# select (carbon)[3] # the third carbon atom 5727# 5728# and anywhere an embedded expression might be found: 5729# 5730# measure ((_C)[1]) ((_C)[2]) 5731# 5732# 5733# POINTS IN IF, SET, and %{} 5734# 5735# Points in IF, SET, and %{} can be designated using the standard {x y z} 5736# notation WITHOUT commas. This is because we have to distinguish between 5737# atom expressions {1,2,3} and coordinates {x y z}, and this seems to me the 5738# simplest way to do it. (Comma means "or" in atom expressions.) In all other 5739# instances, the commas are fine, including "SET UNITCELL" and "SET DEFAULTLATTICE". 5740# 5741# x = {1 1 0} + {oxygen}.xyz 5742# 5743# { }.distance ATOM PROPERTY FOR SET, IF, and %{} 5744# 5745# d = {oxygen and * /1}.distance{oxygen and * /2} 5746# set echo top left 5747# echo the O-O distance is %{{oxygen and * /1}.distance{oxygen and * /2}} 5748# 5749# message %{{atomno=3}.distance{atomno=4}} 5750# message %{{atomno=3}.distance{1/2 1/2 1/2}} 5751# 5752# 5753# { }.label "xxxx" ATOM PROPERTY FOR IF, SET, and %{} 5754# 5755# The .label format provides a convenient means of delivering a wide range of 5756# atom-based data back to the user with whatever formatting is desired. 5757# 5758# x2 = {atomno=3).label("atom %a\t" + (atomno=3).xyz) 5759# xyzFile = "" + {selected}.size + "\n\n" + {selected}.label("%a %x %y %z") 5760# 5761# 5762# "....".lines 5763# 5764# The .lines operator splits a string into an array based on line termination. 5765# 5766# WRITE VAR "filename" (application only) 5767# 5768# pdbAtomData = {selected and not hetero}.label("ATOM %5i %-4a%1A%3n %1c%4R%1E %8.3x%8.3y%8.3z%6.2Q%6.2b %2e%2C") 5769# pdbHeteroData = {selected and hetero}.label("HETATM%5i %-4a%1A%3n %1c%4R%1E %8.3x%8.3y%8.3z%6.2Q%6.2b %2e%2C") 5770# pdbFile = pdbAtomData + pdbHeteroData 5771# write VAR pdbFile "test.pdb" 5772# 5773# molFileData = "line1\nline2\nline3\n"+(""+{selected}.size)%-3+(""+{selected}.bonds.size)%-3+" 0 0 0\n"+{selected}.labels("%-10.4x%-10.4y%-10.4z %2e 0 0 0 0 0")+{selected}.bonds.labels("%3D1%3D2%3ORDER 0 0 0") 5774# 5775# 5776# GETPROPERTY "evaluate" 5777# 5778# You can now use getProperty to get expression information directly: 5779# 5780# getproperty "evaluate" "{*}.xyz" 5781# 5782# or on a web page the following returns a valid XYZ file for molecule 1: 5783# 5784# var info = jmolGetPropertyAsJavaObject("evaluate", '"" + {molecule=1} + "\n\n" + {molecule=1}.label("%a %x %y %z")') 5785# 5786# 5787# SELECTED ATOMS FROM ATOM EXPRESSIONS 5788# 5789# You can select atoms from an atom expression using [n]. 5790# "[0]" means "and everything after". 5791# 5792# x = {atom expression}[3].ident 5793# x = {atom expression}[3][0].xyz # 3 and after (average position) 5794# x = {atom expression}[3][5].x # 3-5 (average x) 5795# 5796# 5797# SELECTED BONDS FROM EXPRESSIONS 5798# 5799# You can select bonds from an atom expression 5800# 5801# x = {atom expression}.bonds.ident 5802# x = {atom expression}.bonds[3].ident 5803# 5804# 5805# BOND INFORMATION 5806# 5807# You can specify how to label a set of bonds using format strings. 5808# Numbers are currently in Angstroms. Keys are 5809# 5810# %# sequential number 5811# %= file 1-based index 5812# %ORDER the bond order 5813# %TYPE the bond type 5814# %LENGTH the bond length 5815# %x1 atom property "x" for atom 1 5816# %x2 atom property "x" for atom 2 5817# 5818# The special atom properties %D1 and %D2 give sequential numbers for the 5819# atoms FOR THIS SET OF BONDS. This is so that a proper subfile of type MOL 5820# could be generated. 5821# 5822# x = {atom expression}.bonds[3].label("%# %3ORDER %TYPE %a1 %a2 %6.3LENGTH") 5823# 5824# 5825# EXPANDED MODULUS % OPERATOR IN IF, SET, AND %{} 5826# 5827# Usually modulus is reserved for integer math, so we 5828# extend that here to add some useful "modulus-like" capability: 5829# 5830# string modulus for trimming and padding 5831# "test" %3 ==> left trim: "tes" 5832# "test" %6 ==> right pad: "test " 5833# "test" %-3 ==> right trim: "est" 5834# "test" %-6 ==> left pad: " test" 5835# 5836# float modulus for rounding and scientific notation 5837# 3.5456 %3 ==> "3.546" (STRING!) 5838# 3545.6 %-3 ==> "3.55E+3" (STRING!) 5839# 5840# 0.0 + 3.5456 %3 ==> 3.546 (float) 5841# 0.0 + 3545.6 %-3 ==> 3550.0 5842# 5843# point modulus for getting base unit cell equivalent position 5844# {3/2 1/2 1/1} % 0 ==> {1/2 1/2 0} 5845 5846# ----------------------------------------------------------------------------- 5847 5848#version=11.1.13: 5849 5850# DATA "coord set" 5851# invertSelected POINT .... 5852# invertSelected PLANE .... 5853# invertSelected HKL ...... 5854# rotateSelected .... 5855# rotateSelected spin .... 5856# full state support for "tainting" atom positions using translateSelected or invertSelected 5857# 5858# set allowRotateSelected # then use ALT-LEFT for rotating just the selected molecule 5859# 5860# this all definitely needs some work and discussion in terms of user interface via mouse 5861# 5862# 5863# write coords xxxx.spt 5864# load xxxx.spt # minimal -- just coord. 5865# script xxxx.spt # this is the full state load 5866# 5867# x = (some atom expression).atomProperty -- takes an average if more than one atom 5868# for example: 5869# 5870# x = (* /1).temperature 5871# x = (C5).bondcount 5872# 5873# note that you can even say: 5874# set echo top left 5875# echo average position= {%{(selected).x},%{(selected).y},%{(selected).z}} 5876# 5877# and it will AUTOMATICALLY update with new values as you select different atoms. 5878 5879# ----------------------------------------------------------------------------- 5880 5881#version=11.1.12: 5882 5883# app fix for console entry messing up cursor position; 5884# allows for scripting during pause or interrupt of running script using ! as first character of script 5885# new: within(x.x,plane,$plane1) 5886# fix for "draw off" not recorded in save state 5887# fix for within(integer,...) bug using RasMol units 5888# fix for _modelnumber showing up as 2001 5889# reconfigures _modelNumber as x.y for single models; x.x - y.y for range 5890# adds _currentFileNumber 5891# adds _currentModelNumberInFile 5892# disallows user setting of variables with _ as first character 5893# adds @variableName in any command 5894# adds frame x.x - y.y 5895# adds frame 0.0 5896# adds frame range x.x - y.y 5897# adds file command 5898# adds select file= 5899# tunes select model= 5900