# Developers: to add a description of changes you have made, # add it on a line starting with # below the "version=..." line version=12.1.39_dev # new feature draw ARROW..... BARB # -- "radical" arrows # -- TODO -- not implemented in exporters # bug fix: write JMOL (instead of write xxx.jmol) not implemented # bug fix: Jaguar reader not reading vibrations correctly # -------------------------------------------------------------- #version=12.1.38 # bug fix: load of model when animation is on may cause animation NEXT to fail # new feature: isosurface... map property x WITHIN x.y # -- allows a maximum distance to be defined; speeds up calculation # -- defaults to 5.0 when set isosurfacePropertySmoothing FALSE # bug fix: isosurface VDW can ignore H2O # bug fix: load FILES incorrectly autobonds CONECTed atoms # bug fix: (signed applet only) write FRAMES multiple calls to file dialog # bug fix: draw/show pointGroup not correct when {0 0 0} is not center of model # bug fix: draw pointGroup deletes all draw objects, not just of this model's point group # bug fix: multimodel show pointGroup does not reset when frame is changed # -------------------------------------------------------------- #version=12.1.37 # bug fix: set PICKING OFF nonfunctional # bug fix: unnecessary moveto commands in state # bug fix: CTRL-SHIFT-LEFT on Macintosh must be pressed with LEFT first. go figure... (Old, old problem fixed) # -- problem was that CTRL-SHIFT-LEFT-DRAG specifically was delivered as CTRL-SHIFT-MOVE # -- specifically relates to changing the slab after slab ON # new feature: (relevant to Macintosh only) COMMAND-SHIFT-LEFT-DRAG same as CTRL-SHIFT-LEFT-DRAG # bug fix: isosurface for trajectory not working # bug fix: Var x in function x() not recognized # bug fix: Var data followed by data++ causes syntax error # new feature: you can put element numbers in place of element symbols in XYZ files, # and you can have a sixth column that is radius e.g. # elemno x y z charge radius # or (for just the radius with no charge) # elemno x y z - radius # note that charge can be formal (integer) or partial (decimal) # # bug fix: isosurface .... map select {...} not saved properly in state # bug fix: MO HOMO should select highest non-negative value if no occupancy info # bug fix: Spartan reader not reporting HOMO # bug fix: load xxxx.top should default to xxxx.trj for coord files # -------------------------------------------------------------- #version=12.1.36 # new feature: preliminary DCD file format reader # -- load trajectory "c:/temp/t.pdb" coord "c:/temp/t.dcd" # code: binary model file reading capability added # bug fix: set bondPicking deletes bond # new feature: Molden reader filter options VIBONLY, OPTONLY, NOOPT, NOVIB # bug fix: Molden reader does not read optimizations # bug fix: Molden reader nonfunctional # code: JPEG encoder stores state in APP1 (FFE1) tag set instead of comment field # bug fix: Spartan reader fails when no MO calculation # bug fix: Spartan MO d6/f10 reader problems # bug fix: QuantumEspresso reader first-model not read as Cartesian coordinates # new feature: mo -n -- switches phase of orbital # code: MOCalculation streamlined # bug fix: load ? broken in 12.1.34 # bug fix: getProperty by itself does not return SORTED list of properties # -------------------------------------------------------------- #version=12.1.35 # bug fix: SMILES generator error for cationic aromatic nitrogen # bug fix: application with file name does not run jmolscript: embedded scripts # bug fix: isosurface x.xx should default to "isosurface CUTOFF x.xx" for legacy compatibility # bug fix: {xxx}.label = "xxx" does not allow saving state # bug fix: {xxx}.element = "B" only assigns "B" to first atom in set # new feature: linear combinations of molecular orbitals # -- any number of orbitals may be combined: mo [c1, mo1, c2, mo2, c3, mo3...], for example: # mo [0.5, 20, 0.5, 21] # -- coefficients will automatically be normalized such that SUM_i(c_i*c_i) = 1.00 # -- if variables are involved, one needs @{...}: # load c6h6.smol; for (f = 0; f <= 10; f++) { mo @{[f/10.0, 20, (10-f)/10.0, 21]}; refresh } # -------------------------------------------------------------- #version=12.1.34 # bug fix: {xxx}.element = "B" does not work # new feature: CTRL-V "dropping" of a url into Jmol loads the model found at that URL. # bug fix: JavaScript getPropertyAsArray("auxiliaryInfo.models") will fail for crystal structures # bug fix: undocumented select within(hkl,...) and select within(plane,...) missing # bug fix: message @x should replace x with a variable; "message @x is the value of x" should not # bug fix: older syntax MESSAGE %{x} for variable value missing # bug fix: variable pointers such as @x = 3 and y = 3 + @x not working # bug fix: subtle label off bug leaves atom "clickable" # bug fix: subtle bond deletion bug leaves atoms with bonds unclickable # bug fix: AMBER CYX not recognized in @cystine definition # bug fix: MD topology/coord file loading problems; general trajectory problems # bug fix: write xxx.obj upgrade # bug fix: drag/drop CUBE files should use isosurface sign red blue $FILENAME$ # -------------------------------------------------------------- #version=12.1.33 # bug fix: CIF reader not reading files with multiple models involving GEOM_BOND # new feature: write xxx.OBJ -- WaveFront OBJ file writing # new feature: isosurface MRC keyword indicates file is MRC type (for nonstandard MRC files) # bug fix: scriptLevelMax 20 too small -- changed to 100 # bug fix: for/while local variables improperly localized in iterative functions # bug fix: 12.1.32 should not have changed + to be # -------------------------------------------------------------- #version=12.1.32 # new feature: simple embedded application version of evalStringWaitStatus # that returns output from print/message/echo commands # -- see TestScriptOutput: # http://jmol.svn.sourceforge.net/viewvc/jmol/trunk/Jmol/examples/basic/org/jmol/TestScriptOutput.java?content-type=text%2Fplain # new feature: preliminary NWChem orbital reading # -- still not normalized correctly # -- d and f orbitals not checked # -- UHF alpha/beta not checked # new feature: | x # -- IN PLACE concatenation # -- array1 will be appended to # -- if x is an array of length n, then n elements will be added # -- works as a |= b # -- to append a full array as one element, use a |= [x] # -- to append with creating a NEW array, use a + x or a + [x] instead # new feature: "unset" command same as "reset" # -- for example: # a = array([1,2,3],[4,5,6],[7,8,9]) # y = a[3] # unset a # show variables # y = [7,8,9]; # -- just looks better for variables # -- good to use this if just a small part of a large array # or hashtable is wanted and the rest can be discarded # new feature: sort/reverse does array sorting IN PLACE, not by copying # -- for example: # y = x.sort # x is sorted, and y is a copy of that # -- still need x = x.sort in general, because "x.sort" is not a command # new feature: array assignment is always by reference, as for JavaScript and Java # -- y = x[3], if x[3] = [3, 4, 5], assigns y to [3, 4, 5], so if later # one uses y[4] = "new", then at that point x[3] = [3, 4, 5, "new"] # -- y == x[3] distinction removed # new feature: x = intersection(plane, plane) # new feature: x = intersection(pt, plane) (i.e. line perp to plane through pt) # new feature: x = intersection(ptLine, vLine, plane) # new feature: x = intersection(ptLine, vLine, point) (i.e. plane perp to line through point -- projection of point onto line) # new feature: draw polygon @x @y where @x and @y are arrays of points and faces, respectively # bug fix: a = {} initialized as bitset, not associative array # bug fix: | should set bit # bug fix: | should set bits indicated in # bug fix: & should return true if bit is set # bug fix: % n when n < 0 should do "last n + 1" # bug fix: | [a,b,c] should append elements to array -- IN PLACE # bug fix: animation incompatible with spin for largish structures # bug fix: _modelFile variable incorrect for file read from zip file # bug fix: If a script such as "test.spt" creates a function # test(), then the next implicit script command "test.spt" will fail # bug fix: implicit script command XXXX.xxx loses case of filename # bug fix: array appending appends string values # bug fix: frame 0.0 does NOT enable all frames; breaks "quaternion" command # bug fix: isosurface fragment fix # bug fix: cartesian exporter capping cylinders flat and spherical both # bug fix: Jmol logo was missing from the Help>What's New window. # bug fix (improvement): the Help>User Guide window was too narrow. # bug fix: echo @x when x is an associative array # bug fix: write t.jvxl does not work for new solvent/molecular surfaces business # code: ArrayList X ... --> List X # code: ScriptVariable simplified # -- ScriptVariable[]objects --> (ArrayList)value # -------------------------------------------------------------- #version=12.1.31 # feature change: undocumented a[13] = 3 (where a is a matrix, for a[1][3]) removed # new feature: MOL reader reads > # new feature: load FILTER "*.CA,/=5" # -- every 5th alpha carbon # -- note comma before /= # new feature: write xxxx.OBJ # -- Wavefront OBJ files # -- export/_ObjExporter written by Ken Evans # new feature: write xxxx.XYZRN # -- input for MSMS # -- suggest first using set DEFAULTVDW BABEL # new feature: multidimensional array assignment: a[1][2] = 10 # -- allows setting of a specific element of a multidimensional array # -- value can be anything -- a number, an array, an hashtable, a bitset, etc. # -- allowed also for matrices, but if the value is not a number, or # the row/column pointers are outside the range 1-3 or 1-4, then # the matrix is turned into an array automatically # -- for an array, when not a direct assignment, you need parentheses: # x = (a[1])[2]; if ((a[1])[2] == 3).... # because in general a[1][2] means "array a, elements 1 through 2" # -- for a matrix, you can use a[1][2] anywhere -- this is a difference between matrices and arrays # new feature: y == x[3] (double "=" in context of assignment) (removed in 12.1.32) # -- y is now an alias for x[3], not a copy # -- allows, for example: # y = x[3]; y[2] = 6; # equivalent to (x[3])[2] = 6 (which is not a valid syntax) # new feature: x.sort(n) # -- array sorting by nth object 1 - arrayLength; 0 == last, -1 = next to last, etc. # new feature: load 1blu.pdb filter "*.CA | HETATM,![HOH]" # - "|" means "OR", so this reads: # load only alpha carbons OR (HETATM and not HOH) # bug fix: Jmol 11.9.24+ will read states created by prior versions incorrectly # -- fixed by adding "legacyAutoBonding" setting # bug fix: loading a file on command line does not allow # for write xxxx.jmol to include model file in zip file # bug fix: fails: load 1mbo.cif; isosurface select(not solvent) ignore(none) sasurface; # bug fix: passing an array to a function does not correctly pass by reference # bug fix: dot function included in array x = [(whatever).something...] fails # bug fix: array sorting for objects # bug fix: creating arrays from variables does not copy variable value # bug fix: draw .... @s does not work for title, but @{s} does # new feature: x = plane(, , true) # bug fix: ZAP should not set appendNew TRUE # bug fix: load APPEND after ZAP inserts ZAP into state after load command # bug fix: write MOL writes incorrect charge # code: overhaul of ScriptVariable # -- "list" type renamed "varray" # -- value = null now for varray # -- way more efficient use of arrays # -- may have introduced problems, but they should all be catastrophic. # -------------------------------------------------------------- #version=12.1.30 # bug fix: isosurface POCKET broken # bug fix: isosurface MOLECULAR or SETS with DOTS gives too many dots # bug fix: draw TRIANGLES not working # bug fix: annoying tic label side-switching removed # bug fix: set measurementLabels off not working for ticks # new feature: Finnish translation # bug fix: isosurface color mesh blue not working # bug fix: (modelkit) load $PCl5; assign atom ({2}) "C" fails to place H atoms correctly # code: Commentized WebMaker.java in prep for complete removal. Fixes to Widgets javadocs. # bug fix: not all translated html text was escaped in web export widgets # code: isosurface MOLECULAR efficiencies # -------------------------------------------------------------- #version=12.1.29 # new feature: isosurface SLAB within x.y {point} # -- smooth circular slabbing # -- negative x.y --> "not within" (creates a circular hole at this position) # code: isosurface MOLECULAR/SOLVENT x.y completed; "FULL" option removed # code: (new concept) nonlinear Marching Cubes for IsoSolventReader # bug fix: isosurface molecular/solvent improvements # bug fix: logFile/logCommands/logGestures should not be saved in state # bug fix: log file cannot be turned off by setting value to "" # bug fix: user-defined function calls should be able to look like Jmol commands, without () # -------------------------------------------------------------- #version=12.1.28 # bug fix: 12.1.27 writing of script lists # /*file*/ inappropriately. # bug fix: 12.1.27 isosurface area is 1/3 actual. # bug fix: isosurface molecular/solvent better version, adds tripod-test logging # bug fix: write xxx.jmol can fail if the same file is used twice in two different contexts # -------------------------------------------------------------- #version=12.1.27 # code: System.out.println comments out # new feature: isosurface molecular FULL # new feature: isosurface solvent [optionalRadius default:1.2] FULL # -- very fast solvent excluded surface # -- FULL option does reduced-surface analysis, # -- uses Marching Cubes to create the surface # -- very close fit to MSMS; slightly smaller area and volume # -- replaces work from 12.1.24 # -- use isosurface SET 1 generally # -- irrelevant inner surface removed due to negative volume. # TODO: test for this with cavities # bug fix: isosurface sets not sorted by number of vertices # new feature: isosurface MSMS xxxx.vert -- creates isosurface from MSMS output files # -- implies xxxx.face is also present in the same directory as xxxx.vert. # -- if only .vert are present, only dots will be generated # bug fix: failure to create atomicOrbital does not clear that isosurface # new feature: QuantumEspresso reader # bug fix: popup menu does not show load {1 1 1} options correctly # new feature: GULP reader # bug fix: draw intersection/polygon without vertices does not clear existing object # bug fix: isosurface slab for plane not working # bug fix: space before [ not recognized as significant when following $xxx or {...} # new feature: isosurface/draw .length (also added to 12.0.26) # bug fix: undocumented $isosurface1[3] fixed # bug fix: isosurface set 0 does not display all sets # -------------------------------------------------------------- #version=12.1.26 # new feature: write SDF creates multi-model SDfile based on models of selected atoms # new feature: write V3000 creates V3000 file; see http://www.symyx.com/downloads/public/ctfile/ctfile.pdf # new feature: the list of languages in the popup menu # -- is ordered by language code # -- displays each language name both in the current language and in the native language # -- is updated adding a new language if this is chosen via script (or maybe by the OS default) # new feature: plane(pt1, pt2) -- returns bisecting plane # new feature: draw SLAB $draw1 PLANE @{plane({...} {....})} # -- clips a drawn polygon based on a plane # -- $draw1 must be a draw POLYGON definition # -- draw draw1 SLAB $draw1... is allowed # -- for example: # draw p4 polygon 4 {1 2 3} {2 3 4} {4 5 6} {7 8 9} 2 [0 1 2 0] [2 3 0 0] # draw p4 slab $p4 PLANE @{plane({0 0 0}, {10 0 0})} # new feature: measure list -- same as show measurements # bug fix: GenNBO reader does not read MOs properly # bug fix: GenNBO reader does not read UHF data # bug fix: GenNBO reader does not read xxx.31 file P orbitals not in X Y Z order # bug fix: applying unit cell in LOAD command to XYZ file containing multiple models # does not convert later model coordinates to fractional ones. # bug fix: Web Export and write xx.jmol fail for load XXX:: forcing file type # bug fix: write MOL creates V2000 file # bug fix: over-run of SDF, MOL/V2000 reports error # bug fix: assigning array elements using x[i] = pt, where pt is a # variable that is a cartsian point or a plane does not copy variable # bug fix: SMILES generator in certain cases may not return stereochem (c-C(OH)(H)-c) # bug fix: mistyped command such as measure LIST (with LIST present) crashes Jmol # bug fix: pop-up menu after zap 1.1 in set of two models crashes Jmol # code: V3000Reader integrated into MolReader # code: JUnit test for file reading GenNBO and CIF files lacks viewer object # -------------------------------------------------------------- #version=12.1.25 # bug fix: failure to read properly data "connect_atoms" from state # when struts or hbonds turned OFF # bug fix: 12.1.16-24 fail to write state properly -- saved settings not saved # bug fix: CIF reader does not recognize -1 for _atom_site_disorder_group # new feature: default for loading of CIF files with GEOM_BOND records is to load them # -- as full molecules (symop=1 or connected to such (or within autobonding range of such) # -- without unit cell # -- Cartesian coordinates # -- similar to the way CCDC Mercury loads these files # -- attaches H atoms and otherwise respects GEOM_BOND designations explicitly # new feature: CIF load FILTER "MOLECULAR" # -- does molecular load even when no GEOM_BOND records # -- defaults to {1 1 1} # new feature: pop-up menu includes load "" FILTER "MOLECULAR" option (under SYMMETRY...) # bug fix: VaspOutcarReader misreads file with line containing "Therefore set LREAL=.FALSE. in the INCAR file" # code: rename VaspReader VaspOutcarReader # -------------------------------------------------------------- #version=12.1.24 # bug fix: isosurface t.obj should be discernable as OBJ if created by PyMOL # bug fix: set drawPicking does not pick visible isosurfaces # bug fix: draw * translucent does nothing # bug fix: isosurface on frame other than first will be incorrect # bug fix: draw with multiple models can fail to save state # bug fix: SMILES check for c=c can fail. # bug fix: Mopac MGF reader upgrade allows orbital subset # bug fix: Mopac MGF reader upgrade allows filter "alpha", filter "beta" # bug fix: isosurface OBJ pymol.obj not reading Pymol output # new feature: streamlined STATE for appended files # bug fix: appending data to models with unit cells can cause odd results # bug fix: JME load append does not get saved properly in state # bug fix: bond set variables [{1 2 3}] incorrectly shown as atom bitsets ({1 2 3}) # bug fix: xxx.yyy when "yyy" has been defined as a local variable using VAR fails # bug fix: find("SMILES", smilesString) does not find Jmol atomIndex == 0 # bug fix: find("SMILES", smilesString) does not find [2H] # bug fix: slightly better response to command line input errors (complete command in history) # new feature: print point(3.5) -- rounds down (toward 0) to nearest integer # bug fix: IDTF exporter inverts rotation matrix from pt1, pt2, for dx = dy = 0 # bug fix: Linux file completion from LOAD " improperly lowers the case of file names # new feature: Jmol SMILES generation includes stereochemistry # for octahedr al and trigonal bipyramidal # -------------------------------------------------------------- #version=12.1.23 # bug fix: labels OFF broken in 12.1.22 # -------------------------------------------------------------- #version=12.1.22 # code: efficiencies in LabelToken # new feature: P2N reader -- see http://q4md-forcefieldtools.org/ # -- adds "altName" auxiliary data # -- allows FILTER "altName" # -- allows label %{altName} # # new feature: label %{dataName} # -- allows reading values from a DATA array. # -- case-sensitive # -- data are read sequencially as string data, one per data line. # -- if data of that name are not found, looks for data in auxiliaryInfo of that name. # and bases the index as atom index relative to the model. # # new feature: Edit...Preferences...Clear History # -- resets window positions and clear all history. # -- thank you, Tami Caraballo! # bug fix: zap 1.1 when models have cartoons or other bioshapes crashes Jmol # bug fix: Ramachandran approximation of P straightness off by a few percent # bug fix: SMILES matching string with ".[C@H]" reads stereochemistry incorrectly # bug fix: load SMILES with %nn fails # bug fix: Jmol creating possibly ambiguous aromatic amine SMILES # 1-H-4-methylimidazole was: n1cnc(C)c1; now: [nH]1c[n]c(C)c1 # bug fix: {*}.find("SMILES",smilesString) does not include aromatic H # bug fix: Smiles MF calculation for aromatic atoms N and C in error. # NOTE: Jmol may undercount the number of hydrogen atoms # for aromatic amines where the ring bonding to N is # not explicit. Each "n" will be assigned a bonding count # of two unless explicitly indicated as -n-. # Thus, we take the position that "n" is the # N of pyridine unless otherwise indicated. # # For example: # $ print "c1ncccc1C".find("SMILES","MF") # H 7 C 5 N 1 (correct) # $ print "c1nc-n-c1C".find("SMILES","MF") # H 6 C 4 N 2 (correct) # but # $ print "c1ncnc1C".find("SMILES","MF") # H 5 C 4 N 2 (incorrect) # -------------------------------------------------------------- #version=12.1.21 # new feature: set allowMoveAtoms # -- automatically sets/unsets allowRotateSelected and dragSelected # -- ALT-left --> rotates selected set # -- ALT-SHIFT-left --> drags selected set # bug fix: popup submenu "file" only enabled for application or signed applet # bug fix: load xxx.jmol broken in 12.1.17 # bug fix: write JMOL missing from popup menu # -------------------------------------------------------------- #version=12.1.20 # bug fix: WRITE PDB not padding to 80 char # TODO: WRITE PDB not adding TER records # bug fix: PDB reader not flagging models as PDB properly when all groups are same amino acid # -------------------------------------------------------------- # version=12.1.19 # new feature: (Application) toolbar "set picking center" # bug fix: bad build of 12.1.18 for distribution # -------------------------------------------------------------- # version=12.1.18 # bug fix: 12.1.17 breaks popup menu # bug fix: relaxing single-model requirement for isosurface # as long as only a single model's atoms are selected # -------------------------------------------------------------- # version=12.1.17 # new feature: "getPopupMenu" added to JmolViewer.getProperty("DATA_API","getPopupMenu","current"|null) # -- null --> java.awt.Container # -- "current" --> current menu # # bug fix: no callback for ZAP model=1 # new feature: isosurface ROTATE # -- rotates an isosurface based on a quaternion # -- a display property, like OFFSET or SCALE3D # -- useful if model coordinates are changed and an isosurface is present # -- rotations are cumulative. # -- rotations are about {0 0 0}, not the centroid of the isosurface # -- ROTATE NONE removes the rotation # -- for example: # # isosurface sasurface ROTATE @{quaternion({1 0 0}, 90)} # isosurface ROTATE @{quaternion({1 0 0}, 90)} ROTATE @{quaternion({0 0 1}, 90)} # # bug fix: compare(...) with @SP, @OH, @TB gives null pointer exception # bug fix: set picking invert stereo/delete atom not sending pick callback # bug fix: Argus .agl reader not setting viewpoint transform # bug fix: load xxx where x is a flawed data file can try to load file as a script or isosurface # new feature: VASP OUTCAR reader (xtal/VaspReader) # bug fix: compiler function(){{ double brace error # bug fix: compiler context { var chain=3;print chain } not recognizing context variable for "chain" # bug fix: PDB reader not reading files with empty group name field # bug fix: popup menu does not include measure SEQUENCE # new feature: auxiliaryInfo.models[1].infoUnitCell # -- 17-element array # -- a, b, c, alpha, beta, gamma # -- Va, Vb, Vc # -- dimension = 1 (polymer), 2 (slab), 3 (standard) # -- volume (Angstrom^3) # # bug fix: set picking measure SEQUENCE not reporting to application console # bug fix: (application only) distance picking not being reported in console # bug fix: set picking chain, then mouse click does not report number of atoms selected # # new feature: reset STRUCTURE -- resets structure to author's after calculate STRUCTURE # # new feature: load OFFSET {x y z} # --follows UNITCELL parameter, if present # --offsets the atoms in the file by a given amount # --may be fractional # --added to allow for shifts in origin for nonstandard CIF files # --applicable to ALL readers # --for example: # load quartz.cif {1 1 1} spacegroup "ignoreoperators" offset{0 0 2/3} # load caffeine.xyz offset {8.0 0 0} # # bug fix: LINUX file dropper returning \r\n with name # bug fix: DRAW $xxx reverses order of points # bug fix: load PACKED for slab/polymer does not work # bug fix: load "" does not work after loading a SET of models using load DATA # bug fix: CIF reader cannot read files with _space_group_symop_operation_xyz field # -------------------------------------------------------------- #version=12.1.16 # bug fix: naming functions or variables after Jmol token names fails or acts unexpectedly # (fixing this bug required script compiler changes, and that lead to the # two new features below) # # bug fix: User variables and functions removed from state because they are # no longer necessary and also indeterminant in terms of the "state". # Originally these were needed because ECHO and DEFINE can be dynamic # -- which is still true -- and because certain commands such as ISOSURFACE # were being saved in the state just as their strings instead of their # intepreted code. But that was changed for 12.0, and this fix also changes # ECHO to be saved in its current state, not its dynamic state. While # dynamic DEFINE types may include variables, they aren't really # part of the "state" per se and aren't needed to recreate the state. So # they are dropped from the state with this fix as well. # # new feature: function calls can look like Jmol commands (also added to 12.0): # function myfunc(a, b, c, d){....} # myfunc a b c d # -- these are MATHEMATICAL commands # -- use just a b, not @a @b # # new feature: custom overloading of Jmol commands (also added to 12.0) # function measure(a, b) { print "measuring " + a + " " + b; measure @a @b } # measure {atomno=2} {atomno=3} # -- within function X, command X is standard Jmol; # -- outside the function, it is a reference to that function # -- overloaded functions are not saved in the state # # bug fix: array variable elements cannot be changed # # new feature: load xxx.pdb filter "CONF 1" does a front-end filter of just # the first alt-loc atoms within a given residue. This leads to proper # formation of polymers in certain cases (2BLN, 2CI1). # bug fix: "var chains" does not work -- i.e. a name of a "within" option. # solution was to allow var ANYTHING, understanding that if you # use "var CARTOONS" for instance, then CARTOONS ON is no longer # a command within the scope of that assignment. # bug fix: cartoon helix in 1TF6 broken by DSSP HHHGGG run # bug fix: not loading MOL files having no bonds # bug fix: load append INLINE ... not working # bug fix: max for Rasmol/chime units 499 -- should be 1000 # bug fix: show state/xxxx incorrectly case-sensitive # code: undocumented load RANGE [i, j, k,...] removed (see load MODELS) # code: load FILTER clean-up, standardization # -------------------------------------------------------------- #version=12.1.15 # bug fix: QCHEM reader fails # bug fix: CRYSTAL reader fails to read formico_opt.out # bug fix: CIF reader not reading insertion codes (since forever!) # bug fix: set appendNew FALSE fails # bug fix: getproperty IMAGE (returning JPG64) doubles font size with set antialiasDisplay true # bug fix: "configuration 1" should select all if no alternative locations # bug fix: load FILTER does not include %x for PDB files # bug fix: conformation n definition changed for PDB files to be consistent with DSSP # bug fix: isosurface "xxxx.jvxl" colorscheme "rwb" does not work (jvxl files specifically) # # new feature: PDB and CIF readers read helix subtypes alpha, 3/10, and pi # new feature: atom property substructure includes helixalpha(8), helix310(7) and helixpi(9) # feature change: DSSP default for "calculate structure" # -- old way is now "calculate structure RAMACHANDRAN" # feature change: DSSP default for LOAD of PDB file with no header. # in previous versions, Jmol used a ramachandran-angle-based calculation # for secondary structure determination when a PDB file had no HELIX or SHEET records. # It just seems reasonable to use the industry-standard DSSP method instead. # new feature: defaultStructureDSSP (default TRUE) # --setting this FALSE gives previous behavior (see above) # --for the CALCULATE STRUCTURE and LOAD commands # --in the case of LOAD, only relevant when PDB header is missing HELIX/SHEET records # # code: http://jmol.svn.sourceforge.net/viewvc/jmol/trunk/Jmol-datafiles/dssp/cullpdb_pc20_res1.6_R0.25_d101001_chains1769 # was used for DSSP validation along with checkdssp.spt in that same directory # # -------------------------------------------------------------- #version=12.1.14 # note: ready for release; DSSP testing is done # bug fix: conformation n definition changed for PDB files to be consistent with DSSP # bug fix: hetero group protein check should not care about C CA N O file order (1YC5) # bug fix: conformation not working when an alternate location is for key atoms such as N, C, O, CA # bug fix: loading a multi-structure PDB file with CONECT bonding may not autobond (2q3t) # new feature: "xxxx"%9999 == "to upper case"; "xXxX"%-9999 == "to lower case" # bug fix: undocumented save STRUCTURE not working for initial structure state # code: removal of unnecessary structure class in ModelCollection # new feature: Accurate DSSP structure determination should be identical to DSSP # using CALCULATE STRUCTURE DSSP # # Also available is a version that takes into account already-determined # amide hydrogen positions using SET dsspCalculateHydrogenAlways FALSE # # DSSP details available using SHOW DSSP # DSSP debugging available with SET DEBUG # DSSP structure-determining hydrogen bonds available with CALCULATE HBONDS STRUCTURE # DSSP substructure (helix310 and helixPI) available with SELECT HELIX310 and SELECT HELIXPI # -- for an example of helixPI (>>555<<), see 2JC9 # # code: Efficient Java bitset-based DSSP calculation based solely on a careful reading of # W. Kabsch and C. Sander, Biopolymers, vol 22, 1983, pp 2577-2637 # with detailed quote-based comments from the article explaining the process. # Includes options to create the structures, just make a report, or just deliver a set of # hydrogen bonds. (MUCH appreciated permission by Gert Vriend to implement DSSP as open- # source Java code in Jmol.) # # new feature: show state/xxxxx where xxxxx is any phrase. Does a line-by-line filter of the # state script for xxxxx. So, for example: # # show state/load # show state/isosurface # show state/hbond # show state/draw # show state/measure # show state/connect # # new feature: STRUCTURE HELIX310 .... # new feature: STRUCTURE HELIXPI .... # # new feature: calculate hbonds STRUCTURE (only those that define the DSSP "HGITEB" markings) # new feature: set dsspCalculateHydrogenAlways (default TRUE -- standard DSSP; set to FALSE # to ensure that file-based NH atoms are used instead of rough approximations) # new feature: show DSSP (just produces a report) # new feature: calculate structure DSSP # new feature: load reports model count and overall number and model number for MOs # new feature: helix310 and helixPI structures may be set using the STRUCTURE command # new feature: select helix310 and select helixPI -- provided those have been set. # Note that select HELIX only selects "4-turn" aka "alpha" helices, as previously. # # new feature: load SUPERCELL "2x, x+y, 2z" # load SUPERCELL {2 2 2} # load {20 20 2} SUPERCELL {2 2 2} # new feature: new 5th parameter for measureCallback is actual, unrounded value # # bug fix: calculate structure only works with last model loaded # bug fix: calculate structure after zap x.y fails # bug fix: GAMESS reader (US) not reading full atom name such as "MOLYBDENUM" # bug fix: load append after calculating structure recalculates structure for other models # bug fix: calculate structure does not target selected model # bug fix: bioshapes not clearing automatically after calculate STRUCTURE # bug fix: switch DEFAULT not working # bug fix: label %1 will cause exception # bug fix: load '@x' not saved properly in state # bug fix: arrays of hashtables and other more complex variables not being saved or created in usable form # bug fix: isosurface MEP with multiple frames fails on second isosurface # bug fix: //comments not searched properly for GOTO operation # bug fix: data "connect_atoms" does not update bond diameter, order, or energy # bug fix: %8.4VALUE still truncating in set defaultdistancelabel # -------------------------------------------------------------- #version=12.1.13 # new feature: hide/display bonds # new feature: hide/display [{bond set}] # new feature: set STRUCTURE HELIX|SHEET|TURN [a, b, c, d, a1, b1, c1, d1,...] # allows customization of Jmol's phi/psi-based structure calculation # phi >= a && phi <= b && psi >= c && psi <= d # || phi >= a1 && phi <= b1 && psi >= c1 && psi <= d1 # etc. # bug fix: unbind unknownName unbinds LEFT mouse! # bug fix: Safari slideZoom issue upon leaving and returning to applet (mouse MOVE not issued by OS) # bug fix: naming a variable after a function name such as "color" should be allowed # bug fix: "smilesString" changed to "_smilesString" and properly set # bug fix: Application filename for $xxxx not properly set # bug fix: language changing doesn't set tool tips # bug fix: MEP menu item is using MOLECULAR with default range; should be using VDW with range ALL # bug fix: unescaped spaces in load "$ethyl ether" cause fault at NIH. # bug fix: error writing isosurface color density JVXL file # bug fix: catch without catch(e) causes exception # bug fix: isolated H atoms when calculating hydrogen bonds causes exception # bug fix: Spartan reader not reading INPUT file coord -- adding filter "INPUT" # bug fix: calculate structure requiring {xxx} # code: deprecated "commandOption" shape property removed # -------------------------------------------------------------- #version=12.1.12 # code: JmolViewer interface Component display --> Container display (JPanel, JFrame, JDialog) # code: consoles work # code: examples get proper termination upon window closing # bug fix: reading unmapped isosurface from JVXL files broken in 12.0.13 # -------------------------------------------------------------- #version=12.1.11 # test: set testFlag3 -- reports mouse action and mode (for Eric Martz) # new feature: set multipleBondRadiusFactor 0.75 # new feature: set isosurfacePropertySmoothingPower # 0 (no property smoothing) # 10 (very strong smoothing) # 7 (default, same as Jmol 11.8) # new feature: AppletConsole allows embedding in larger applications # new feature: smooth on-the-fly language changes in applet and application # new feature: integrated AppConsole for embedded Jmol -- see Integration.java # new feature: multipleBondSpacing # set multipleBondSpacing = -1 (default, varies with viewing angle) # set multipleBondSpacing = -0.5 (half that distance; varies with viewing angle) # set multipleBondSpacing = 0.35 (positive ==> fixed multiple bond spacing) # bug fix: MO NOPLANE not working # bug fix: SmarterJmolAdapter should not read zip bytes it doesn't have to # bug fix: spacefill JMOL does not work # bug fix: Jmol 12 does not read old 11.1 isosurface commands from states # bug fix: load {i j k} RANGE x.x not expanding load box by 1 in each direction # bug fix: applet console does not display startup message # bug fix: console buttons do not change with new language # bug fix: undo/redo problems in AppConsole # bug fix: crystal reader can't read selected model # bug fix: 3.5E+0.0 read as "3.5 0.0" # bug fix: navY/navy color issue # bug fix: write PDB for nonPDB files incorrect # code: streamlined AppConsole and AppletConsole # code: GuiMap/JmolConsole AbstractButton methods merged # code: AppConsole now implements JmolCallbackListener, called by JmolPanel.notifyCallback # -------------------------------------------------------------- #version=12.1.10 # bug fix: JavaScript jmolScriptWait() can fail # bug fix: mep color range error (12.1.9, 12.0.11) # new feature: Spartan reader filter "ESPCHARGES" for ESP charges, if available, instead of Mulliken charges # color structure for carbohydrate fails # new feature: reset SPIN # new feature: set slabRange 5.0 -- a zoom-independent slabbing plane # bug fix: reset should not reset spin (introduced in 11.7.47); new RESET SPIN includes reset spinning # bug fix: SMILES generator allowing sp3 center in aromatic # bug fix: storing atom properties from CrystalReader messes up model atom bitset # bug fix: non PDB large molecule should not change default rendering # bug fix: PDB large molecule default rendering flaws # -------------------------------------------------------------- #version=12.1.9 # TODO: Check setting of other color schemes. # bug fix: set usercolorscheme not working. # bug fix: color label none when already none and after rendering for multi-line labels or with antialiasdisplay crashes Jmol # bug fix: lcaoCartoon p orbitals for CO2 # bug fix: isosurface ISSQUARED # bug fix: PLOT command broken (Parser.parseStringInfestedFloatArray) # bug fix: color PROPERTY x with set rangeSelected does not work # bug fix: isosurface contour colors # bug fix: #....... #.... two # in one line with first in first character fails # bug fix: isosurface plane problems # bug fix: set drawHover isosurface hover error kills hover watcher # code: AtomPropertyMapper isolated from IsoSolventReader # bug fix: isosurface "t.jvxl" map property temperature nonfunctional # bug fix: isosurface PROPERTY ("VDW 100%" implied) not working # code: rewrite of calculateHydrogen/hybridization code # bug fix: WRITE xxx should do SHOW not clipboard for application # bug fix: % at end of line acts as a line continuation # new feature: label %[shape] # new feature: lcaoCartoons dsp3 (a,b,c,d,e), d2sp3 (a,b,c,d,e,f) # bug fix: "sp3a" not "first bonded atom" # bug fix: failure to read old-style JVXL files. # bug fix: reading nth model from a file within a ZIP collection not possible # -------------------------------------------------------------- #version=12.1.8 # bug fix: LcaoCartoon capping/slabbing not saved in state # bug fix: isosurface planar mapping, contours, atomic orbital speed and scaling problems # bug fix: oops; isosurface atomicOrbital REALLY not scaling well # -------------------------------------------------------------- #version=12.1.7 # bug fix: isosurface atomicOrbital not scaling well # bug fix: undo and smilesurlformat tokens missing # new feature: load SMILES to use http://cactus.nci.nih.gov/chemical/structure/..../file?format=sdf&get3d=True # bug fix: isosurface ... map SQUARED ... nonfunctional # new feature: zSlab, zDepth -- default 0,0 meaning "use slab and depth" settings # new feature: slab and depth are variables and can be read and set as for any other # bug fix: exit, quit are stopping spinning -- should just be stopping moveTo # unless !exit or !quit. # bug fix: associative array problems with some auxiliaryInfo data saving to state # new feature: Vasp reader shows enthalpy and Gibbs energy in model name # bug fix: binary map files within zip directories cannot be read # bug fix: mouse-based slab does not refresh # bug fix: JME reader misreading "Br+" # bug fix: Writing PDB file with residue number > 9999 trashes file. Now writes "0000" "0001" etc. # new feature: getProperty can drill down a list for a hashtable entry: # print getProperty("shapeInfo.isosurface.id") # s2 # isosurface1 # -------------------------------------------------------------- #version=12.1.6 # bug fix: very first start of Jmol, with no history, fails. # bug fix: QChem reader not indicating symmetry A B properly # bug fix: QChem reader filter "BETA" fails # bug fix: obscure error when array variable is in place of required expression # code: ColorEncoder cleaner, no inappropriately static classes # bug fix: ColorEncoder not allowing for override of BW and WB palette # bug fix: GAMESS reader UHF caught on reading orbitals with LZ VALUE line # -------------------------------------------------------------- #version=12.1.5 # bug fix: set defaults RASMOL broken # bug fix: CRYSTAL reader FREQUENCY needs fragment numbers sorted # bug fix: rotation QUATERNION broken by 11.9.36, Mar 25, 2009 - Does not rotation about {0 0 0} # bug fix: CURSOR_WAIT hourglass not turning off automatically after set picking JmolScript operation # bug fix: associative array function .keys should report sorted key list # bug fix: associative arrays as ScriptVariables must be checked for type # new feature: color() function: # color("") -- full details on current propertyColorScheme # color("$someID") -- full details on isosurface ID "someID" color scheme # color("xxx") -- full details for a named scheme where "xxx" is "rwb", for instance # color("myscale = [xFF0000] [ x00FF00] [x0000FF]") creation of a scheme and return of details # color("roygb", n) -- nth color of a standard color scheme # color("", x.y) -- color for a property value x.y # color("$someID", x.y) -- color for isosurface ID "someID" value x.y # color("roygb", min, max) -- color/value pairs (two arrays) # color("roygb", min, max, value) -- color for specific value # print color("myscale = [xFF0000] [x00FF00] [x0000FF]") # colors : # {255.0 0.0 0.0} # {0.0 255.0 0.0} # {0.0 0.0 255.0} # # max : 4.0 # min : 1.0 # name : myscale # reversed : false # values : # 1.0 # 2.0 # 3.0 # 4.0 # # print color("myscale = [xFF0000] [x00FF00] [x0000FF]", 0, 10, 0) # {255.0 0.0 0.0} # # The scheme is constructed, so it can be used later: # # print color("myscale", 0, 10, 5) # {0.0 255.0 0.0} # # bug fix: associative array key sorting, new line for arrayed values # new feature: getProperty shapeInfo reports colorKey for isosurfaces: # getproperty shapeInfo.isosurface[1].colorKey # # shapeinfo.isosurface[1].colorkey.colors *List[31] # shapeinfo.isosurface[1].colorkey.colors[1] {255.0 0.0 0.0} # shapeinfo.isosurface[1].colorkey.colors[2] {255.0 0.0 0.0} # ... # shapeinfo.isosurface[1].colorkey.colors[31] {16.0 16.0 255.0} # shapeinfo.isosurface[1].colorkey.color {255.0 165.0 0.0} # shapeinfo.isosurface[1].colorkey.values *float[32] [50.0,48.387096,46.774193,...,0.0] # shapeinfo.isosurface[1].colorkey.name "roygb" # shapeinfo.isosurface[1].colorkey.max 31 # shapeinfo.isosurface[1].colorkey.min 1 # # bug fix: isosurface color range should not carry over to general "color property" # bug fix: isosurface colorscheme TRANSLUCENT "xxx" fillTriangle error # bug fix: should not allow isosurface ... map colorscheme "xxx" TRANSLUCENT # bug fix: CRYSTAL reader FREQUENCY when input deck is missing VIBRATION record # -------------------------------------------------------------- #version=12.1.4 # new feature: isosurface display within 2.0 {atomset} -- renderable subset of isosurface # new feature: isosurface display all # bug fix: CRYSTAL reader not allowing {555 555 0} load # bug fix: CRYSTAL reader orientation error # bug fix: show info not showing molecule info # bug fix: isosurface LATTICE {x y z} should be relative to current UNITCELL # bug fix: broken selectExtended mode # bug fix: some isosurface display properties not generalized to wildcard # bug fix: Parallel processing not creating process-specific copies of shapes # bug fix: load unitcell for slab/polymer should allow 0, not just -1 # bug fix: diastereomer check still checking stereochemistry # bug fix: SMILES generator should not produce stereochemistry for RX2R' # -------------------------------------------------------------- #version=12.1.3 # bug fix: set picking invertStereo not working for non-ring stereocenters # new feature: load "myfile.xxx" {1 1 1} unitcell [ax ay az bx by bz cx cy cz] # new feature: x = compare({atomset1}, {atomset2}, "ISOMER") # new feature: x = compare(smilesString1, smilesString2, "ISOMER") # bug fix: "CCCC".find("SMILES","CCCC") should return 1 (other returns 0 and -1) # bug fix: "CCCC".find("SMARTS","CCC") should return [1,5,8,11] (other returns [] and "?" # bug fix: SmilesGeneration stereochemistry error # bug fix: "smilesString".find("smarts","pattern") should return "?" upon parsing error # bug fix: proper "false AND"/"true OR" action where second operand is skipped # -------------------------------------------------------------- #version=12.1.2 # bug fix: SmilesGeneration fails for double bond stereochemistry # bug fix: documented within("SMILES",...) missing and required for SmilesGenerator # bug fix: select within(branch,{},{}) exception # bug fix: "sheet" token missing, so select within(sheet) fails # bug fix: struts not restored from state # bug fix: color STRUTS also colors hbonds # new feature: Application Display menu item "resize" (also added to 12.0) # bug fix: draw CYLINDER n ... where n is an integer does not give flat ends # bug fix: PNG file state for multiple file load cannot be read # bug fix: Jmol application not accepting -g # bug fix: "no atoms found returns wrong error message # bug fix: XYZ reader fails with load "filename" 3 # bug fix: "[1,3,4,5]" can be translated to [1,3,4] # code: Java 1.5 upgrade -- many generics still have warnings # bug fix: slab/depth mouse action does not automatically refresh # -------------------------------------------------------------- #version=12.1.1 # bug fix: measure search("...{X}....{X}...") does not work # bug fix: draw arrows are being FIXED in state # bug fix: if ( )....; single-line syntax broken # bug fix: try/catch in functions not implemented correctly # bug fix: SMILES nested $(...) broken # bug fix: binary pmesh reader broken # bug fix: better coding for isosurface file typer # bug fix: print write("ramachandran") # bug fix: reading background images from PNG images within zip files # bug fix: write xxxx.jmol zip sets cannot be read # bug fix: binary surface readers map and ccp4 can misread file type # bug fix: isosurface "=xxx" missing check for isSyntaxCheck # bug fix: isosurface slab for polymer/slab symmetry # -------------------------------------------------------------- # version=12.1.0 # July 28, 2010