Jmol Changelog

What's new in Jmol 14.32.27

Feb 28, 2022
  • New feature: plane designations "ab" "ab1" "ac "ac1" "bc" bc1" short for {0 0 1/1 0} {0 0 1/1 c} etc.
  • New feature: MODELKIT MOVETO @1 {1/2 0 0}:
  • moves the atom only if its invariant symmetry is unchanged (that is, doesn't create or destroy atoms)
  • New feature: MODELKIT FIXED VECTOR point1 point2:
  • constrains atom dragging to a given vector
  • atom will still not move if symmetry does not allow it
  • replaces any fixed plane
  • cleared by changing the value of set MODELKITMODE
  • New feature: MODELKIT FIXED PLANE plane:
  • constrains atom dragging to a given plane
  • atom will still not move if symmetry does not allow it
  • replaces any fixed vector
  • cleared by changing the value of set MODELKITMODE
  • New feature: MODELKIT FIXED NONE:
  • removes constraint
  • New feature: @1.symop("invariant"):
  • delivers an array of integers, the symmetry operator indexes other than identity
  • (numbers 2-N) for which the specified atom is unchanged in position when operated upon
  • for example, the position of an atom on a rotation element or on a mirror plane is unchanged upon rotation or reflection, respectively
  • used internally to determine when MODELKIT MOVETO can allow a change in position
  • New feature: @1.pointgroup("spacegroup"):
  • same as pointgroup("spacegroup", @1)
  • consistent with @1.spacegroup()

New in Jmol 14.32.24 (Feb 21, 2022)

  • Bug fix: ChemDraw CDXML reader was not tested in 15.2.23:
  • Now loads proper compounds with (common) protecting groups.
  • 2D -> 3D enabled; adds "Nickname" nodes (minimized as fluorine)
  • Bug fix: bonds to transparent atoms should be flat ends, not open
  • New feature: SET UNDOAUTO FALSE|TRUE:
  • Default value TRUE, enabling automatic saving of the state only in the Java application
  • Setting false turns off Java application console automatic undo/redo and allows user-defined undo/redo states
  • Disabled by SET PRESERVESTATE FALSE
  • New feature: SET UNDO:
  • Saves the current state on the UNDO stack.
  • Clears the REDO stack
  • Sets undoAuto FALSE
  • New feature SET UNDOMAX n:
  • Sets the maximum number of saved states (default 20) with SET defaultAuto FALSE
  • Setting this value to 0 clears both the UNDO and the REDO stacks
  • New feature UNDO:
  • When undoAuto is true, in the Jmol application console only, carries out an undo action
  • When undoAuto is false, or not in the Java application, restores the most recent state saved using SET UNDO
  • New feature REDO:
  • When undoAuto is true, in the Jmol application console only, carries out a redo action
  • When undoAuto is false, or not in the Java application, restores the most recent state prior to an UNDO operation
  • New feature: SHOW UNDO:
  • Reports if undoAuto is true or false, and if it is false, reports the sizes of the user UNDO and REDO stacks.
  • New feature: MODELKIT UNDO/REDO:
  • A separate undo/redo stack specifically for the ModelKit
  • Undoes or redoes a ModelKit action
  • Disabled by SET PRESERVESTATE FALSE
  • New feature: UNITCELL SURFACE {h k l} [height | scale%] [offset or offset%] [TOP]:
  • Operates on current unit cell, so for repeat use, use unitcell reset
  • Allows creating a unit cell based on a Miller plane
  • Perpendicular to plane, with u = b/k - a/h, v = c/l - b/k (generally)
  • Optional height in Angstroms or scaled relative to hkl distance to origin
  • Optional offset in Angstroms or percent of unit cell height
  • Default offset sets bottom of unit cell at origin
  • Optional TOP parameter measure from the top of the new unit cell

New in Jmol 14.32.17 (Feb 1, 2022)

  • Bug fix: Show $s2 for isosurface reports first isosurface only
  • Bug fix: _M.unitCellParams does not update after modifying the unit cell
  • Bug fix: GausssianReader Tensor "csa" broken
  • Bug fix: ScriptEditor many issues
  • Bug fix: ... HKL {1 1 1} works, but HKL 1 1 1 fails, if not last in a command
  • New feature: getproperty("atomInfo").select("fx,fy,fz"):
  • Adds fractional coordinates to atomInfo
  • New feature: draw boundbox @1 @2 @3 @4:
  • Draws a boundbox with edges in the x, y, and z directions through a set of points
  • New feature: draw best boundbox @1 @2 @3 @4:
  • Draws the best boundbox through a set of points
  • New feature: draw best plane @1 @2 @3 @4:
  • Draws the best plane through a set of points
  • New feature: draw best line @1 @2 @3 @4:
  • Draws the best line through a set of points
  • New feature: draw intersection [unitcell or boundbox description] [line or plane description]:
  • Intersects all types of boundboxes and unitcells with any type of plane or line
  • New feature: draw intersection [unitcell or boundbox description] ON [line or plane description]:
  • Projects a unitcell or boundbox on any plane
  • New feature: draw intersection [unitcell or boundbox description] LINE @1 @2:
  • Extends the specified line to intersect a unitcell or boundbox
  • New feature: draw diameter -1:
  • For lines or mesh option
  • Draws a simple line with 1-pixel width
  • New feature: draw diameter -n:
  • For lines or mesh option
  • Draws a dotted 1-pixel line with alternating n on, n off pixels
  • New feature: draw HKL {1 1 1 x.x}:
  • Offsets an HKL plane from the origin by x.x Angstroms
  • New feature: draw HKL {1 1 1} OFFSET x.x:
  • Alternative to HCL {1 1 1 x.x}

New in Jmol 14.32.1 (Nov 30, 2021)

  • New feature: adds "private" function option:
  • PRIVATE function test() {....}
  • private functions can only be called by commands in the script declaring them
  • private functions are not displayed in SHOW FUNCTIONS
  • in a state script, all functions are implicitly private
  • solves the problem that a script with function xxx can overwrite function xxx in a calling script
  • New feature: "//@private" comment:
  • explicitly indicates that all functions in a script are private functions
  • processed during script compilation; should be placed at the top of a script

New in Jmol 14.31.52 (Aug 18, 2021)

  • Bug fix: JavaScript does not return to correct scrpt level after DELAY

New in Jmol 14.31.51 (Aug 13, 2021)

  • New feature: ISOSURFACE DENSITY option
  • Checks for cryo-EM data from EBI/EMDB and, if that exists, uses it; otherwise uses x-ray diffraction data
  • Bug fix: problems with ISOSURFACE in 14.31.50
  • Bug fix: EM isosurface not saved in state.

New in Jmol 14.31.50 (Aug 10, 2021)

  • Bug fix: JSpecView upgrade for misc. JDXReader issues
  • Bug fix: Jmol file dropper not asking to resize (broken in 15.1.46/14.31.46)
  • Bug fix: Jmol not reading EBI cryo-EM files from density server.
  • Bug fix: Jmol not using EBI submap feature of density server for full-structure volumes
  • New feature: ISOSURFACE *.../full
  • Returns the FULL EBI volume data, not just one localized around a structure

New in Jmol 14.31.49 (Aug 6, 2021)

  • Bug fix: JSpecView not using ##FIRSTX for diff-dup x values after first.
  • Bug fix: JSpecView version not showing
  • Bug fix: Jmol not reading EBI cryo-EM files from density server.
  • New feature: isosurface "*em":
  • - same as *emdb, just simpler.

New in Jmol 14.31.48 (Jul 28, 2021)

  • Bug fix: JavaScript isosurface asynchronous file loader
  • Failing to finalize, causing refresh in later-called
  • Function to not return.
  • Bug fix: Filenames and directories with unicode accents not saved in ZIP, PNGJ, JMOL files.
  • Bug fix: Locally loaded JavaScript files not save in ZIP, PNGJ, JMOL

New in Jmol 14.31.47 (Jul 23, 2021)

  • New feature: isosurface "*emdb/nnnn"
  • Retrieves the cryo-EM surface EMD-nnnn
  • Uses http://ftp.ebi.ac.uk/pub/databases/emdb/structures/EMD-%file/map/emd_%file.map.gz
  • (https did not work in Java due to certificate issues)
  • New feature: isosurface "*emdb/=xxxx"
  • Looks up the EMDB id for the cryo-EM surface associated with pdb id xxxx
  • First uses https://www.ebi.ac.uk/emdb/api/search/fitted_pdbs:%file?fl=emdb_id,map_contour_level_value&wt=csv
  • Then uses http://ftp.ebi.ac.uk/pub/databases/emdb/structures/EMD-%file/map/emd_%file.map.gz
  • New feature: isosurface "*emdb" (or "*emdb/" or "*emdb/=")
  • Uses the current model's PDB ID with *emdb/=xxxx"

New in Jmol 14.31.46 (Jul 23, 2021)

  • Bug fix: Drag-drop of PNGJ can fail due to SCRIPT command not accepting "spt::" type identifier.

New in Jmol 14.31.45 (Jul 22, 2021)

  • bug fix: model kit changes for atomName and element not saved in state (since Jmol 14.28?)

New in Jmol 14.31.39 (May 15, 2021)

  • Bug fix:
  • GAMESS reader broken

New in Jmol 14.31.38 (May 9, 2021)

  • Bug fix: TopoCIF 0.9.2 upgrade for _topol_node and _topol_net
  • Bug fix: JSpecView SVG export missing in menu and broken

New in Jmol 14.31.36 (Apr 6, 2021)

  • Bug fix: capture broken in 14.31.34

New in Jmol 14.31.35 (Apr 1, 2021)

  • Adds GamessReader MOPAC parameters from F90 files provided by Jimmy Stewart for MO reading
  • Adds GamessReader MOPAC option
  • Adds MoldenReader [STO] ANGS and MOPAC options (zeta in 1/Angs; apply MOPAC scaling)

New in Jmol 14.31.20 (Dec 21, 2020)

  • bug fix: GamessReader should read ENERGY, MP2, CSDD, and CSDD(T) energy types (Mark Perri)
  • adds _M.EnergyType
  • bug fix: VaspOutcarReader upgrade for Vasp6
  • new feature: initialize INCHI
  • for JavaScript specifically, loads the inchi-wasm module asynchronously.
  • allows the very first call to {*}.find("inchi") to be active.
  • note that a very first call to Jmol.evaluateVar(applet,"{*}.find('inchi')") will still fail.
  • new feature: {*}.find("inchi")
  • new feature: {*}.find("inchi",flags)
  • generates InChIs from modelset atoms
  • integrates jni-inchi-0.7-jar-with-dependencies.jar
  • uses inchi-wasm for JavaScript (R.Apodaca https://github.com/rapodaca/inchi-wasm)
  • flags include (https://www.inchi-trust.org/technical-faq-2):
  • perception flags: DoNotAddH SNon NEWPSOFF
  • stereo flags: SRel SRac SUCF
  • more flags: NEWPSOFF SUU SLUUD RecMet FixedH KET 15T
  • java-only flags: key outputsdf (Java only; still no InChIKey for JavaScript)
  • JavaScript is InChI 1.05; Java is still 1.03
  • note: JavaScript-only directories _WASM and _ES6 should not be processed by Google Closure Compiler

New in Jmol 14.31.18 (Nov 20, 2020)

  • bug fix: MacSpartan Release 1.0.3 (ancient!) skips orientation and orbitals
  • bug fix: SHOW SPACEGROUP fails for nonstandard space group (=ams/quartz)
  • new feature: Topology CIF (TopoCifParser.java) reading of _topol_xxx records
  • topoCIF filter "topos_type=x" where x is v, vw, hb, or some concatentation of those using "+"
  • topoCIF filter "topos_ignore" skips reading of _topol records, reading as standard CIF
  • undocumented: set hiddenLinesDashed (14.8.0)

New in Jmol 14.31.17 (Nov 12, 2020)

  • bug fix: print 2 > 1.0 gives false. typo introduced 2020.10.02 causes int[>,<,>=,<=] float to fail
  • bug fix: minimizer step reports should be in user units, not native
  • bug fix: minimizer initial/final reports should state "/mol" for units

New in Jmol 14.31.16 (Nov 3, 2020)

  • new feature: (undocumented) now("message")
  • new feature: now("message","format")
  • bug fix: print load("t.tar") should act as load("t.tar|.") to give directory
  • bug fix: MO linear combination should not show type in info
  • bug fix: MO squared should show ^2 in info

New in Jmol 14.31.14 (Nov 2, 2020)

  • new feature: TAR file reader with zip-like entry loading
  • load "t.tar|guest/77317/output.log"
  • new feature: GenNBOReader supports older NBO 3.0 output.properties rather than missing .46 labels file
  • new feature: NBO command expanded to allow named orbitals
  • NBO "C1-C2"
  • NBO TYPE PNBO "C1-C2"

New in Jmol 14.31.12 (Oct 26, 2020)

  • Bug fix: minimization constraint broken in 14.29.45

New in Jmol 14.31.10 (Oct 11, 2020)

  • bug fix: dots -1.0 does not imply ONLY

New in Jmol 14.31.9 (Oct 3, 2020)

  • Bug fix: set pdbaddhydrogens does not work with PDB files that have some H atoms (but no multiple bonds)
  • Bug fix: MOVETO quaternion jumps (seconds=0) if crude check for change fails

New in Jmol 14.31.8 (Sep 26, 2020)

  • Bug fix: large integer number != operator failure

New in Jmol 14.31.6 (Sep 16, 2020)

  • bug fix: msCIF reader not reading ICDD Fourier modulated file.

New in Jmol 14.31.5 (Sep 16, 2020)

  • Bug fix: https for NMRDB
  • Bug fix: JSpecview applies ##SHIFTREFERENCE as HZ for data in PPM
  • Bug fix: JSpecview must ignore ##SHIFTREFERENCE for JEOL, at least for $$ JEOL NMR v1.10

New in Jmol 14.31.4 (Aug 24, 2020)

  • New feature: isosurface S1 VAL [points or atoms] SELECT:
  • calculates isosurface values for a set of points or atoms
  • values are created during surface constructions, not after
  • for solvent and molecular surfaces, negative value is "inside"; positive is "outside"
  • surfaces that are not calculated will give 0 for all values
  • New feature: $s1.getProperty("values");
  • retrieves the array of values produced by isosurface s1 VAL
  • Bug fixes:
  • NWChem reader does not ignore file-save data block properly
  • get property fileInfo initially or after ZAP throws exception
  • isosurface map colorscheme "rwb" fails, whereas color isosurface "rwb" works

New in Jmol 14.31.3 (Aug 9, 2020)

  • bug fix: Jmol app does not allow width smaller than about 350 pixels

New in Jmol 14.31.2 (Jul 8, 2020)

  • bug fix: draw pointgroup C2 3 draws all C2 axes, not just the third

New in Jmol 14.31.1 (Jul 5, 2020)

  • bug fix: SYNC/sockets should not automatically subscribe to CLICK (which includes drag events)
  • bug fix: "WRITE IMAGE width height" (with no file name) causes array out of bounds exception
  • bug fix: SYNC command sending not working with raw JSON or Jmol associative arrays

New in Jmol 14.31 (May 28, 2020)

  • new feature: Switch to Java 7, allowing for string-based switch and Files.readAllBytes().
  • bug fix: ellipsoids "csa" scale 0.5 on does not scale
  • bug fix: implicit refresh required after translateSelected
  • new feature: Gaussian reader reads NMR shielding tensors as "csa"
  • new feature: Gaussian reader reads NMR_J_coupling data
  • new feature: atom properties can be float[][] arrays
  • for atom-atom values
  • new feature: MEASUREMENT property_xxx
  • for 2D float[][] properties
  • new feature: MEASUREMENT VALUE x.x
  • sets a fixed value for a standard measurement
  • new feature: measurement unit "+xxx" means abs(value)
  • specifically, "+hz" useful for calculation data
  • new feature: measurement "+hz" units automatically use property_J values
  • new feature: MEASUREMENT "<unit>" where <unit> is valid measurement unit
  • new feature: measure() allows "property_xxx"
  • new feature: measure() allows "<unit>"
  • new feature: SYNC sockets completely rewritten, allowing for substantially more
  • feedback and simpler JSON-based interface. Many features of the
  • Molecular Playground now implemented in Jmol itself. Features include:
  • simplification of sockets, allowing for just one that is use for
  • input and outoput
  • default short-message callbacks for all significant callbacks
  • added set XxxxCallback SYNC:ON and SYNC:OFF for subscribing to
  • full callback Object[] data information.
  • better JSON creation/parsing
  • simpler class structure
  • allows Molecular Playground-like gestures to be socket-defined.

New in Jmol 14.30.2 (Jan 31, 2020)

  • Bug fix:
  • CrystalReader fails to read models in CRYSTAL17 double-walled nanotube file tn0.out
  • New feature: (undocumented) set picking dragMolecule
  • Acts like set picking dragSelected
  • LEFT-drag to translate; ALT-LEFT-drag to rotate
  • Useful for two more molecules (covalently bonded units)
  • New feature: set picking dragModel
  • Acts like set picking dragMolecule or dragSelected
  • LEFT-drag to translate; ALT-LEFT-drag to rotate
  • Useful for two more models not loaded using set appendNew FALSE

New in Jmol 14.29.55 (Oct 31, 2019)

  • Bug fix: show chemical image has no image
  • Bug fix: dotted lines with antialiasing are too thin and half the spacing

New in Jmol 14.29.53 (Sep 20, 2019)

  • bug fix: PyMOL PSE reader broken for broken PyMOL 2.3.0

New in Jmol 14.29.52 (Aug 20, 2019)

  • Bug fix: CASTEP reader broken by Siesta %block check in Resolver

New in Jmol 14.29.51 (Aug 20, 2019)

  • Bug fix: (undocumented) measure ID "xx" ... buggy
  • Fixes measure vertical center when using ID
  • Adds id, hidden, visible to getproperty measurementInfo

New in Jmol 14.29.50 (Aug 8, 2019)

  • Bug fix: SiestaReader upgrade
  • Bug fix: load =3dna/val validation loading does not work

New in Jmol 14.29.49 (Aug 2, 2019)

  • Bug fix:
  • Isosurface cutoff +0.3 does not work to indicate positive only for difference electron density maps
  • Bug fix:
  • Load =3dna/val validation loading does not work (same reason as 14.29.28)

New in Jmol 14.29.48 (Aug 1, 2019)

  • bug fix: LOAD xxxx:: broken in 14.29.25

New in Jmol 14.29.47 (Jul 31, 2019)

  • bug fix: standard PDB files (no hydrogens and no multiple bonds) should not require /aromaticPlanar/
  • in search() selection.

New in Jmol 14.29.42 (May 2, 2019)

  • Bug fix:
  • MolReader not assigning _M.dimension to "2D" or "3D", just the overall auxiliaryInfo.dimension

New in Jmol 14.29.41 (May 1, 2019)

  • Bug fixes:
  • CrystalReader does not skip over INFORMATION or WARNING line in CRYSTAL output files
  • Symop("x,y,z",{0 0 1}) does not return correct value for unit cells oriented by a b c axes
  • OutputManager and FileManager fix for WRITE PDB "https://..." sending information to a server
  • JSmolJME.js miscodings cause error message in JSME
  • Nmr_predict_HC.htm not correlating signals to structure correctly
  • JSpecView peak tabs for simulation or correlation in JmolJDX not proper width

New in Jmol 14.29.39 (Apr 25, 2019)

  • New feature: capture SCRIPT "some script":
  • Captures the given script
  • New feature: DELAY 1 while capturing inserts a one-second delay into the GIF animation:
  • Thus, the following is a +/-20-degree looping rock
  • Around the Y axis with a 2-second wait at each end:
  • CAPTURE "t.gif" LOOP SCRIPT "rotate y 20 20;delay 2;rotate y -40 -40;delay 2;rotate y 20 20;"
  • Bug fix: JSpecView inline loading fails due to null file name assignment - now "[inline]"
  • Bug fix: JSpecView inline loading does not save data needed for export SOURCE

New in Jmol 14.29.37 (Apr 17, 2019)

  • new feature: MO titleformat "...%3.1E"..." allows rounding of energy value bug fix: (Java only) Jmol console does not accept paste with first character = 'n'

New in Jmol 14.29.36 (Apr 12, 2019)

  • bug fix: getProperty("filecontents",filename) does not work.

New in Jmol 14.29.35 (Apr 11, 2019)

  • bug fix: Jmol.jar does not contain JSpecView class files

New in Jmol 14.29.32 (Mar 29, 2019)

  • Bug fix: (JavaScript only) script with raw {...} expression fails to compile

New in Jmol 14.29.31 (Jan 30, 2019)

  • bug fix: (JavaScript only) ModelKit checkboxes broken in atom submenu. (JSmol jsmoljs/JmolMenu.js)

New in Jmol 14.29.30 (Jan 28, 2019)

  • JmolApplet*.jar Java files are no longer distributed in JSmol.zip. See the main release zip file for these.
  • bug fix: H--Y hydrogen bonds miscalculated due to length maximum miscoded in 14.29.27 // JmolVersion="14.29.30" 01/27/2019 -- fixes bug of 10/29/2018

New in Jmol 14.29.29 (Dec 3, 2018)

  • New feature: print intersection(point vLine center radius) // 11/28/18
  • Returns a list of 0 to 2 points representing the intersection of
  • A line through point with vector vLine and a sphere of radius about center
  • Allows for 3D building with constraints of a screen coordinate and a distance from an atom
  • Doc fix: intersection(point1 point2 point3) should be intersection(point1 vector1 point2)
  • Closest point to point2 on a line through point1 in the direction vector1
  • Bug fix: intersection() function changes value of point2
  • Bug fix: CrystalReader not reading vibration data for fragment calculation

New in Jmol 14.29.28 (Nov 1, 2018)

  • bug fix: modelkit appending broken in 14.29.25 10/10/18 new feature: assign atom "C" {2 2 2} - adds an unbonded atom at the given position

New in Jmol 14.29.27 (Oct 30, 2018)

  • New feature:
  • CrystalReader auxiliary info:
  • PrimitiveToCrystal M3 transforming primitive lattice to conventional lattice
  • Mat4PrimitiveToCrystal M4 for use in transforming symmetry operations
  • Mat4CrystalToPrimitive M4 convenience inverse of mat4PrimitiveToCrystal
  • FileSymmetryOperations List<String> symmetry operators (primitive)
  • Drawing primitive unitcell operations:
  • Ops = _M.fileSystemOperations
  • DRAW SYMOP @{ops[2]}
  • If using the conventional cell, you can use its operators, or you can
  • Limit yourself this primitive subset using:
  • Mp2c = _M.mat4PrimitiveToCrystal
  • Mc2p = _M.mat4CrystalToPrimitive
  • DRAW SYMOP @{mc2p
  • Ops[2]
  • Mp2c}
  • Bug fix:
  • CrystalReader not showing proper primitive cell with UNITCELL PRIMITIVE
  • Missing == for matrix3f and matrix4f
  • Draw symop with offset unitcell misses planes
  • Calculate hbond too generous for H--Y bond length -- max set at 2.2 Angstroms
  • Jmol application "first frame" toolbar button broken
  • Script "inline" broken

New in Jmol 14.29.24 (Oct 9, 2018)

  • Bug fix: CRYSTAL reader can read one last 0-atom model
  • Bug fix: 3-membered aziridine with non-H substituent should be chiral.
  • Bug fix: isosurface "?" fails in JavaScript

New in Jmol 14.29.22 (Sep 11, 2018)

  • Bug fix: (JSmol only) menu items that are checkboxes do not work

New in Jmol 14.29.21 (Sep 10, 2018)

  • Bug fix: set measurement 5 (integer; pixels) produces no line.
  • Bug fix: polyhedra flat restored

New in Jmol 14.29.19 (Sep 1, 2018)

  • bug fix: LOAD <old CRYSTAL output file> may not work (CrystalReader.java)
  • bug fix: LOAD ... supercell fails with multiple models (XtalSymmetry.java)
  • bug fix: state creation Spacefill output "2" not "2.0" (missing PT.escF(f) call in StateCreator.java)

New in Jmol 14.29.16 (Jun 6, 2018)

  • Bug fix: unitcell("a=10 b=10,c=20,alpha=90,beta=90,gamma=129") crashes Jmol
  • Bug fix: pointgroup(x) crashes Jmol when x is a set of points
  • Bug fix: UNITCELL parent not working
  • Bug fix: Brillouin Zone id set to "" for unknown reason
  • Bug fix: SMILES allene R/S chirality broken for some connections
  • Print "C1.CC=[C@@]=[CH]1".find("smiles","chirality").join("") should be PP, not MM
  • Bug fix: undocumented unitcell {1500500500 1500500501 1} not working
  • Notation for expanding cell=555 to 1000 cells (1000jjjkkk-1999jjjkkk)
  • Due to large integer not being stored in float properly in Java
  • Related to 1505050 1505051, which does work (expands capability to 100 cells, 100jjkk-199jjkk)
  • Bug fix: load xxxx FILL UNITCELL broken (should not need "conventional" or "primitive")
  • Bug fix: MSCIFReader not recognizing atom_site_Fourier_wave_vector_q1_coef
  • Bug fix: Magnetic incommensurate files crashing unnecessarily
  • New feature: getproperty spaceGroupInfo

New in Jmol 14.29.15 (May 24, 2018)

  • new feature: print {xxx}.find("SMILES/molecule","CC...")
  • new feature: print {xxx}.find("SMARTS/molecule","CC...")
  • molecule-based SMILES or SMARTS
  • returns an array of matching molecules in {xxx}
  • array.count gives number of matching molecules
  • bug fix: [array].distance.min([array]) does not work
  • bug fix: Bilbao reader does not allow for a blank line that is " "
  • bug fix: CrystalReader not reading vibrations properly for filter "CONV"
  • bug fix: SMILES should allow [C@+1]

New in Jmol 14.29.14 (May 15, 2018)

  • new feature:
  • running CALCULATE CHIRALITY will generate
  • a CIPInfo entry in the model's auxiliary info
  • array indicating the decision
  • points in the stereochemical analysis
  • new feature:
  • "<smiles string>".find("smiles","chirality")
  • creates an array indicating the stereochemical designator (R,S,r,s,M,P,m,p,E,Z) at each atom in the SMILES string
  • no structure is necessary
  • bug fix: CIP chirality did not recognize large conjugated rings as "mancude-like"
  • bug fix: model kit should not change selection when inverting a stereocenter
  • bug fix: WRITE xxx.PDB not writing CONECT records

New in Jmol 14.29.13 (Apr 19, 2018)

  • new feature:
  • running CALCULATE CHIRALITY will generate
  • a CIPInfo entry in the model's auxiliary info
  • array indicating the decision
  • points in the stereochemical analysis:

New in Jmol 14.29.12 (Mar 28, 2018)

  • Bug fix:
  • jsmol.php security fix for sites implementing their own Info.serverURL
  • CrystalReader filer "conv" fix
  • MSCIFReader not recognizing atom_site_Fourier_wave_vector_q_coef
  • MSCIFReader not recognizing atom_site_Fourier_wave_vector_q<n>_coef and _x,_y,_z in same block
  • GaussianReader broken for high-precision frequency data (broken in 14.29.10)
  • New feature:
  • GaussianReader orientation filters (default is ALL)
  • filter 'orientation:input' (includes Z-Matrix)
  • filter 'orientation:standard'
  • filter 'orientation:all'
  • note that vibrations are only returned if orientation is ALL or STANDARD
  • CrystalReader returns atom property_irreducible:
  • select property_irreducible > 0
  • display property_irreducible > 0
  • CrystalReader adds ellipsoid set "raman"

New in Jmol 14.29.11 (Mar 26, 2018)

  • bug fix: CrystalReader not handling symmetry for filter "conv"
  • bug fix: CrystalReader not properly generating vibrational modes
  • code: refactored for SwingJS
  • code: refactored CrystalReader

New in Jmol 14.29.10 (Mar 14, 2018)

  • bug fix: GaussianReader for fixed atoms in freq calculation

New in Jmol 14.29.5 (Feb 9, 2018)

  • bug fix: (Java application only) Incorrect class file in Jmol.jar causes BOUNDBOX ON to fail

New in Jmol 14.29.4 (Feb 8, 2018)

  • Bug fix: set hbondsrasmol false fails with O atom-only HOH group
  • Bug fix: calculate pointgroup does not change with new atom positions

New in Jmol 14.29.2 2018-01-30 (Jan 30, 2018)

  • new feature: set label picking icon in application
  • new feature: set label picking does not require shift for drag
  • new feature: set label picking allows double-click to set the label
  • new feature: drag-drop of PNGJ into script opens editor (for movie.spt; use not implemented)
  • new feature: set allowAudio (default TRUE)
  • new feature: AUDIOcallback - used to continue after completion of an audio clip - parameter is a hashtable with information about the audio clip
  • new feature: load AUDIO "xxx.wav" FILTER "...options..." - filter options include: - id='....' an identifier for this audio clip - loop loop until told to stop - start='...', play='...', stop='...', ended='...' callback scripts allowed - single word arguments allowed - for example, id=a2 ended=audioDone() note: These features will be included in a future AUDIO command
  • bug fix: changing an atom's element should delete all partial charges
  • bug fix: load AUDIO "xxx.wav" broken in Java
  • bug fix: load AUDIO "xxx.wav" broken in JavaScript
  • bug fix: loading of pdb file does not report HET = .... to console
  • bug fix: CONTACT leading to no contacts crashes Jmol.
  • bug fix: load FILES with filter does not work
  • bug fix: load =xxxx/val with filter does not save in state solution was to change "+" to "-" to indicate special two-file loading in this case

New in Jmol 14.29.1 2018-01-25 (Jan 26, 2018)

  • new feature: select peptide, defined as: protein && within(chain,monomer>1)&!within(chain,monomer>12)
  • bug fix: isosurface EDS not working for mmCIF files

New in Jmol 14.28.4 2017-01-25 (Jan 25, 2018)

  • bug fix: script "minimize; calculate partialcharge" can cause exception
  • bug fix: partial charges not reset to 0 after atom type change as with {_N}[2].element = "O"
  • bug fix: isosurface CACHE should store isosurface as byte[] not String otherwise it is not saved in a subsequent WRITE xxx.PNG AS PNGJ

New in Jmol 14.28.3 2017-01-19 (Jan 19, 2018)

  • TODO: contact into jvxl format Jmol.___JmolVersion="14.28.3"
  • bug fix: BCIF/CIF volume reader not properly assigning axes in some cases
  • bug fix: GAMESS reader does not work with symmetry indicated in input deck

New in Jmol 14.28.2 2017-01-17 (Jan 18, 2018)

  • new feature: isosurface eds
  • generates electron density surface 2fo-fc for current PDB model
  • trimmed to structure
  • note that isosurface eds AS "t.bcif" will save the full data block to a BCIF file
  • new feature: isosurface within 3 {e20:A} eds
  • generates electron density surface 2fo-fc for current PDB model
  • localized to WITHIN specification
  • note that adding AS "t.bcif" will save only the retrieved localized block to a BCIF file
  • new feature: isosurface edsdiff
  • generates electron density surface fo-fc for current PDB model
  • trimmed to structure new feature: isosurface "=1eve/full"
  • generates electron density surface 2fo-fc for 1eve - reads and shows full data set, not trimmed to structure
  • new feature: isosurface "=1eve/diff" - generates electron density surface fo-fc for 1eve new feature: isosurface "=1eve/diff/full" - generates electron density surface fo-fc for 1eve - reads and shows full data set, not trimmed to structure
  • bug fix: for BCIF/CIF EBI density server data, switch to sigma_sampled from sigma_source

New in Jmol 14.28.1 2017-01-15 (Jan 15, 2018)

  • new feature: WRITE CONTACT xxx.jvxl
  • saves a JVXL file for a contact
  • reload using ISOSURFACE xxx.jvxl, not CONTACT
  • new feature: write contact "cache://t.jvxl"
  • saves a contact as a jvxl file in the cache
  • new feature: isosurface "cache://t.jvxl"
  • loads an isosurface from a cached JVXL file
  • new feature: generalized use of cache://
  • cache:// saves or retrieves files from the FileManager cache
  • cleared upon ZAP
  • for example, the following transfers a contact to an isosurface for saving to a PNGJ file load =1eve zoom {e20:a} 0 contact {e20:A} hbond write contact cache://t.jvxl isosurface cache://t.jvxl contact delete write t3.png as PNGJ
  • n -- for example: isosurface "https://www.ebi.ac.uk/pdbe/densities/x-ray/1eve/box/-3.434,55.646996,59.195/7.479,70.943,74.928?space=cartesian&encoding=bcif" isosurface "https://www.ebi.ac.uk/pdbe/densities/x-ray/1eve/box/-3.434,55.646996,59.195/7.479,70.943,74.928?space=cartesian&encoding=cif" new feature: Jmol automatically uses EBI density server BinaryCIF files when "within" keyword is used. -- for example: load =1eve display e20 zoom {displayed} 0 isosurface within 4 {e20:A} "=1eve" -- allows testing of non-binary CIF electron density files using .cif: isosurface within 4 {e20:A} "=1eve.cif" bug fix: loading, modifying, and resaving a PNGJ file fails in Java bug fix: JavaScript JSmol improperly saves a PNGJ file within a PNGJ file

New in Jmol 14.27.2 2017-12-15 (Dec 15, 2017)

  • new feature: frame MO
  • goes to first frame with a molecular orbital
  • bug fix: [UNK] missing in atom identities, even when part of actual structures such as 3A0B
  • bug fix: polyhedra ID p1 @11 to {connected(@11)} not working -- allows for $p1.getProperty(....)
  • bug fix: load(filename, "JSON") should allow for files that start with "[" rather than "{"
  • bug fix: JSJSON parser fails for leading whitespace in map values
  • code: additions to QCJSONWriter and QCJSONReader
  • working with Jmol-datafiles/qcjson/preliminary
  • "QCJSON 0-0-0.Jmol_14.27.2__2017-12-11_09:38",

New in Jmol 14.27.1 2017-12-12 (Dec 12, 2017)

  • new feature: functions write("zip") and write("jmol")
  • allows creating a binary variable containing zip data
  • does not include preview.png (unlike write xxx.zip or xxx.jmol)
  • includes any local files (as for WRITE command)
  • "zip" does not include remote-access files
  • "jmol" DOES include remote-access files
  • allows use of .pop() and .push() to remove, modify, or add files
  • same as write xxx.zip; x = load("xxx.zip",true) -- except includes no preview.
  • bug fix: CIPChirality adds "mancude system" averaging of atomic numbers in Rule 1a

New in Jmol 14.26.1 2017-12-08 (Dec 8, 2017)

  • new feature: experimental qcjson write format - ALPHA only bug fix: decimal formatter failing for 9.9999999 to 5 digits
  • bug fix: Jaguar reader not reading MOs; (working, but still does not read STO-3G)
  • bug fix: direct call to sun.audio on some systems fails;
  • moved to class openscience.jmol.jmolPanel.JmolAudio
  • accessed by reflection, so not loaded unless needed.
  • code - synchronized with NBOServe project. (2017.11.10)

New in Jmol 14.25.2 2017-09-16 (Nov 16, 2017)

  • bug fix: DCD (trajectory) reader failing when periodic lattice info is present

New in Jmol 14.24.2 2017-09-11 (Nov 9, 2017)

  • bug fix: invertSelected was not clearing chirality
  • bug fix: JmolAppletSigned0.jar fails -- missing org/apache/tools
  • bug fix: SHOW SMILES sometimes missing allene chirality
  • bug fix: hbondsDistanceMaximum should not be limited by 2.5 max; increased maximum to 3.5
  • bug fix: hbondsDistanceMaximum and hbondsAngleMinimum should not be in state
  • code: moved scriptEval.cmdInvertSelected to scriptext.cmdExt

New in Jmol 14.24.1 2017-05-11 (Nov 6, 2017)

  • new feature: MACRO bz; createWS("p1") -- creates a Wigner-Seitz cell as polygon id "p1" -- requires current unit cell to be primitive to work correctly -- polyhedron can be shifted using POLYHEDRA OFFSET -- default ID "pbz1_1_" for just CREATEWS()
  • new feature POLYHEDRA edgesOnly
  • -- shows just edges -- operates on ALL polyhedra -- complements edges, noEdges, frontEdges
  • new feature: select within(d, $p1) where $p1 is a polyhedron ID -- d = 0 is "on or within the polyhedron" -- d < 0 is "-d angstroms within polyhedron" -- d > 0 is "within d angstroms of polyhedron"
  • bug fix: POLYHEDRA edges should inherit color, not use black as default
  • bug fix: calculate CHIRALITY may fail to show Z for some seqCis systems
  • new macros: "aflow", "http://aflowlib.mems.duke.edu/users/jmolers/jmol/spt/AFLOW.spt", "AFLOW macros", "bz", "http://aflowlib.mems.duke.edu/users/jmolers/jmol/spt/bz.spt", "Brillouin Zone/Wigner-Seitz macros" code: biomodel classes are being loaded prematurely due to @cystine definition involving cys.sg instead of cys and atomname=sg

New in Jmol 14.23.1 2017-03-11 (Nov 3, 2017)

  • new feature: load "" fill UNITCELL PRIMITIVE (for files that are conventional)
  • new feature: load "" fill UNITCELL CONVENTIONAL (for VASP files, which are primitive cells)
  • bug fix: primitive unit cell incorrect for rhombohedral lattice space groups (trigonal R...; 146, 148, 155, 160, 161, 166, 167)
  • bug fix: (AFLOW specific) CIF for trigonal and hexagonal cells (itn 143-194) should orient rotated 60 deg cw
  • bug fix: LOAD ... SUPERCELL {2 2 2} broken

New in Jmol 14.22.1 2017-28-10 (Oct 30, 2017)

  • new feature: draw BOUNDBOX BEST -- draws the best box around currently selected atoms
  • bug fix: a.distance.min(b).min should not report 0 if a == b. (testing atom against itself should be skipped)
  • bug fix: SHOW BEST ROTATION just shows the current rotation, not the best rotation to use to get to the best view
  • bug fix: rotate BEST can fail with flat structures
  • bug fix: LOAD "" FILE BOUNDBOX does not include all atoms

New in Jmol 14.21.1 2017-23-10 (Oct 23, 2017)

  • new feature: set noDelay true sets all time delays to 0 and forces all file operations to be synchronous
  • bug fix: CIP adds S4 symmetry check in Rule 6
  • bug fix: chirality broken for JavaScript in MSIE 11 due to range error
  • bug fix: Should be able to save PNGJ from menu even if zapped (because there might be a surface)

New in Jmol 14.20.7 2017-20-08 (Oct 8, 2017)

  • bug fix: STEREO DTI never implemented for Java, only JavaScript
  • bug fix: color property_xxxx broken
  • bug fix: platformSpeed not actuated for wheel zoom.

New in Jmol 14.20.7 2017-09-20 (Sep 20, 2017)

  • bug fix: calculate chirality broken for JSmol (missing Integer.compare)

New in Jmol 14.20.6 2017-09-15 (Sep 15, 2017)

  • bug fix: MO HOMO + n delivers HOMO + 2*n
  • code: more efficient CIPChirality using breadth-first scanning for chirality descriptors

New in Jmol 14.20.5 2017-08-29 (Sep 1, 2017)

  • bug fix: isosurface intersect unitcell broken
  • bug fix: show spacegroup does not report H-M name

New in Jmol 14.20.4 2017-08-09 (Aug 9, 2017)

  • bug fix: SpartanSMOL reader for iSpartan files does not read charges or vibrational mode data
  • bug fix: CIPChirality fix for BH64_075; adding Rule 3b.
  • bug fix: CIPChirality new Rule 6 covers all special spiro cases and C3-symmetry bug fix: SMILES generator fails for [2H]/C=C/[1H]
  • bug fix: write SDF fails for 1H. (Must use M ISO.) JmolVersion="14.20.3" // 2017.07.20 bug fix: ROTATE should not stop spin if it does not initiate a spin
  • bug fix: CIPChirality tests for CIP1966#31,#32 douple spirans and C3 compounds
  • bug fix: CIPChirality for Rule 2 using atomic masses and not for duplicate atoms
  • bug fix: MOL file reading where isotope is indicated in atom line and V item
  • bug fix: MOL reader fails for H1, D, T isotopes indicated as symbols along with isotope difference

New in Jmol 14.20.2 2017-07-09 (Jul 11, 2017)

  • bug fix: CIPChirality adding presort for Rules 4a and 4c (test12.mol; 828 lines)
  • bug fix: write SDF and write MOL do not set atom parity field
  • bug fix: JavaScript JSmol broken for chirality due to bug in Clazz.clone(obj)
  • bug fix: Upgrade of natural abundance average masses (no significant changes here): // all numbers except radionuclides from: // Atomic weights of the elements 2013 (IUPAC Technical Report) // Juris Meija, Tyler B. Coplen, Michael Berglund, Willi A. Brand, Paul De Bièvre, // Manfred Gröning, Norman E. Holden, Johanna Irrgeher, Robert D. Loss, Thomas Walczyk, // Thomas Prohaska Published Online: 2016-02-24 |

New in Jmol 14.19.1 2017-06-25 (Jun 26, 2017)

  • bug fix: CIPChirality: minor fixes for Rule 4b and 5 for BH64_012-015; better atropisomer check
  • bug fix: SPIN QUATERNION
  • bug fix: CENTERAT ABSOLUTE broken (since forever?)
  • bug fix: SPIN QUATERNION {0 0 -1 0} still does a positive, not negative, rotation (solution is to apply a miniscule rotation of 1e-10 degrees)
  • bug fix: script array context [3 -0] becomes [3], as in [3 - 0]
  • new feature: WRITE "SDF" implements atom value V nnn ... information
  • requires assigning the data property name "atom_values" in the model's molData property
  • $ load $2,3-dichlorobutane
  • $ molData = {"atom_values":"chirality"}
  • $ model properties "molData" molData
  • $ write diol.sdf
  • -- note that if the model already has a molData property, then use the following to append to it:
  • $ molData = (_M.molData ? _M.molData : {})
  • $ molData.atom_values = "chirality"
  • $ model properties "molData" molData
  • new feature: x = load("filename","JSON") -- loads JSON data into variable
  • bug fix: SET ANTIALIASDISPLAY requires click [via resizeImage()]
  • bug fix: CIP gives wrong alkene root distance for cyclopropene
  • bug fix: WRITE of structure file does not report number of atoms and warn if selected is different from this molecule
  • bug fix: WRITE MOL using format 10f.5 instead of 10f.4 for x, y, z coordinates
  • bug fix: MOL/SDF files should truncate lines at 80 characters.

New in Jmol 14.18.1 2017-06-06 (Jun 7, 2017)

  • bug fix: CIP misses Rule 4b cases where a branching atom has R or S chirality.
  • see test_bt_P4.mol and test_bt_O3.mol (BH64.65 and BH64.66)
  • see AY236.179 (3D structure was diasteriomer, so I missed that)
  • bug fix: WRITE MOL should not generate > <JMOL_PARTIAL_CHARGES> because it is not SDF format
  • bug fix: WRITE SDF should generate > <JMOL_PARTIAL_CHARGES> with a trailing space
  • bug fix: (SMILES) targetString.find("SMILES",patternString) will fail for .[C@H]2 (new group and attached to a connection number)
  • bug fix: SHOW CHEMICAL SMILES fails when logLevel is set > 4
  • new feature: WRITE SDF writes > <.... user data
  • can be set using MODEL PROPERTY "molData" x where x is an associative array
  • can be read using _M.molData new feature: associativeArray.pop()
  • clears associativeArray
  • new feature: assArray1.push(assArray2)
  • adds all key/value entries in assArray2 to assArray1.
  • new feature: assArray1 + assArray2
  • adds all key/value entries into a new associative array.

New in Jmol 14.17.2 2017-06-04 (Jun 5, 2017)

  • bug fix: WRITE FILE not working when file has been cached.
  • bug fix: array.find("regex...","") does not reset RegExp each time it runs RegExp.exec() so does not find all possibilities
  • code: CIPChirality.java fully interfaced using SimpleNode and SimpleEdge

New in Jmol 14.17.1 2017-05-27 (May 29, 2017)

  • new feature:
  • atom property x.cipRule
  • CIP sequence rule deciding this center
  • one of 1a, 1b, 2, 3, 4a, 4b, 4c, 5, or blank
  • bug fix: polyhedra broken in Jmol 14.10.0
  • bug fix: finalizing CIP algorithm
  • adding spiro chirality from P-93.5.3
  • completing root path for auxiliary descriptors
  • bug fix: JSmol: JSME/JSmol 2D->3D fails when one H of a CH2 is explicitly wedge and the other H is implicit (not shown at all). (JSmolJME.js)
  • code:
  • /** * A full validated relatively efficient implementation of Cahn-Ingold-Prelog
  • rules for assigning R/S, M/P, and E/Z stereochemical descriptors. Based on
  • IUPAC Blue Book rules of 2013.
  • Features include:
  • deeply validated
  • implemented in Java (Jmol) and JavaScript (JSmol)
  • only two Java classes; roughly 1000 lines
  • efficient, one-pass process for each center using a single finite digraph for all auxiliary descriptors
  • exhaustive processing of all 8 sequence rules (1a, 1b, 2, 3, 4a, 4b, 4c, 5)
  • includes R/S, r/s, M/P (axial, not planar), E/Z
  • covers any-length odd and even cumulenes
  • uses Jmol conformational SMARTS to detect atropisomers and helicenes
  • covers chiral phosphorus and sulfur, including trigonal pyramidal and tetrahedral
  • properly treats complex combinations of R/S, M/P, and seqCis/seqTrans centers (Rule 4b)
  • properly treats neutral-species resonance structures using fractional atomic mass and a modified Rule 1b
  • implements CIP spiro rule (BB P-93.5.3.1)
  • detects small rings (fewer than 8 members) and removes E/Z specifications for such
  • detects chiral bridgehead nitrogens
  • reports atom descriptor along with the rule that ultimately decided it
  • Primary 236-compound Chapter-9 validation set (AY-236) provided by Andres
  • Yerin, ACD/Labs (Moscow).
  • Mikko Vainio also supplied a 64-compound testing suite (MV-64), which is available on SourceForge in the Jmol-datafiles directory.
  • Additional test structures provided by John Mayfield.
  • Additional thanks to the IUPAC Blue Book Revision project, specifically
  • Karl-Heinz Hellwich for alerting me to the errata page for the 2013 IUPAC
  • specs (http://www.chem.qmul.ac.uk/iupac/bibliog/BBerrors.html), Gerry Moss
  • for discussions, Andres Yerin for discussion and digraph checking.
  • Many thanks to the members of the BlueObelisk-Discuss group, particularly
  • Mikko Vainio, John Mayfield (aka John May), Wolf Ihlenfeldt, and Egon Willighagen, for encouragement, examples, serious skepticism, and extremely helpful advice.

New in Jmol 14.16.1 2017-05-19 (May 22, 2017)

  • new feature: load =chebi/nnnnnn chEBI 2D molecule load, with minimal 100-step minimization
  • bug fix: CML reader does not read 2D wedge/hash information
  • bug fix: CIP fix for missing branch descriptors; 984 lines
  • bug fix: CIP adds helicene M/P chirality - validated using CCDC structures HEXHEL02 HEXHEL03 HEXHEL04 ODAGOS ODAHAF - http://pubs.rsc.org/en/content/articlehtml/2017/CP/C6CP07552E code: CIP: additional simplification; code: CIP status: implementation complete, including: All subrules implemented fully: 1a, 1b, 2, 3, 4a, 4b, 4c, 5 R/S, E/Z, M/P (odd-cumulene and helicene), r/s, seqCis/seqTrans (as Z/E) fused benzenoid aromatic Mancude ring "Kekule weighted" atom number adjustments
  • Added logic to Rule 1b: The root distance for a Kekule-ambiguous duplicate
  • atom is its own sphere, not the sphere of its duplicated atom.
  • Stated more precisely:
  • Proposed amended Sequence Rule 1:
  • (1a) higher atomic number precedes lower;
  • (1b) in comparing two duplicate nodes, lower root distance precedes higher
  • root distance, where "root distance" is defined:
  • (i) in the case of a duplicate atom for which the atomic number is averaged
  • over two or more atoms in applying Rule 1a, the distance from the duplicate
  • node itself to the root node; and
  • (ii) in all other cases, the distance of its corresponding nonduplicated atom
  • node to the root node.

New in Jmol 14.15.4 2017-05-13 (May 14, 2017)

  • bug fix: INVERTSELECTED ATOM not documented; functionality of INVERTSTEREO SELECTED folded into it, and INVERTSELECTED STEREO deprecated inverts ring or chain stereochemistry
  • adds that keyword ATOM is optional, so INVERTSELECTED @2 works
  • bug fix: @n for "atom n" not working in several script-checking contexts where atoms} works.
  • bug fix: CIP full implementation; simplified algorithm - 984 lines
  • bug fix: CIP Rule 1b modification to ensure aromatic rings do not result in false positive for R/S (binap2)
  • specifically that the duplicate atom is given the root distance of its parent, not its duplicated atom
  • bug fix: CIP chiral bridgehead N designations missing
  • bug fix: CIP Assignment of auxiliary r/s not functional (AY-236.201,202)
  • bug fix: CIP basic "mancude" atom number adjustment for heteroatoms
  • implemented for benzenoids (benzene, pyridine, pyrazine) and fused benzenoids only
  • new feature: set debugHigh
  • same as set loglevel 6 - debugging only
  • debugging only; not considered significant enough to increment minor version

New in Jmol 14.15.3 2017-05-08 (May 9, 2017)

  • bug fix: SMARTS search for atropisomeric bond that is in an alicyclic ring fails (Fred Ziegler)
  • used for M/P chirality check
  • for example: load $c1cc2c3-c4c5CC2.c5ccc4C.c3(C)c1 select on smarts("a-a") calculate chirality print {*}.chirality.join("") MM
  • bug fix: use of the less preferred name of Jmol token that has two optional forms ("fix" vs "fixed") as a VAR does not assign that variable name
  • bug fix: set cartoonRibose misses the C1'-O4' and O3'-P(+1) edges
  • bug fix: JVXL reader not reading Gaussian files with "1" in the third line, 5th field
  • bug fix: CIP M/P chirality test: load "$2,2'-dibromobiphenyl"; calculate chirality; print {*}.chirality.join("")
  • bug fix: CIP chirality nearly fully validated on ACD/Labs AY-236 set, with some unimplemented aspects

New in Jmol 14.15.2 2017-04-29 (Apr 30, 2017)

  • bug fix: CIP chirality adds axial chirality (M/P[Ra/Sa], m/p[ra/sa]) for cumulenes
  • bug fix: CIP chirality adds atropisomer chirality (M/P[Ra/Sa], m/p[ra/sa]) for biaryls
  • bug fix: CIP chirality adds cumulene E/Z chirality
  • lines
  • validation data are at https://sourceforge.net/p/jmol/code/HEAD/tree/trunk/Jmol-datafiles/cip/
  • validates for 160 structures (some duplicates; both cip_examples.zip and stereo_test_cases.sdf)
  • validates for all cases considered:
  • simple R/S and E/Z small-ring removal of E/Z
  • parallel-strand Rule 4b and Rule 5 (Mata)
  • pseudochiral r/s and m/p odd and even cumulenes
  • atropisomers
  • P, S, As, Se, Sb, Te, Bi, Po trigonal pyramidal and tetrahedral
  • imine and diazine E/Z chirality

New in Jmol 14.15.1 2017-04-28 (Apr 28, 2017)

  • new feature: x.split(true)
  • does a white-space token split of the string value of x
  • new feature: MOL/SDF reader reads M ISO lines for isotopes
  • new feature: CIP chirality adds P, S, As, Se, Sb, Te, Bi, Po trigonal pyramidal and tetrahedral
  • new feature: CIP chirality adds imine and diazine E/Z chirality
  • bug fix: CIP chirality broken for carbonyl groups
  • bug fix: CIP chirality E/Z should not be indicated for rings of size < 8
  • bug fix: values not saved in state for cartoonBlockHeight, cartoonBlocks, and cartoonSteps
  • bug fix: write MO broken
  • bug fix: set cartoonBlockHeight (for DSSR nucleic acid rendering) fails code: CIPChirality.java 779 lines Rules 1-5 validated on 145 compounds

New in Jmol 14.14.1 2017-04-17 (Apr 20, 2017)

  • new feature: CALCULATE CHIRALITY {atom set}:
  • starts with basic CIP Rule 1-2 determination of R/S and E/Z.
  • continues with Rules 3-5, which require full-molecule analysis.
  • work in progress:
  • Rules 1 and 2 complete
  • Rule 3 (E/Z) implemented
  • Rule 4 partially implemented
  • simple linear sequences of R/S ok
  • Rule 5 implemented
  • caveates
  • no pseudochirality
  • not cyclitols
  • does not distinguish rings, so inserts "Z" into ring bonds
  • only validated on
  • optionally limited to the given atom set (or the currently selected atoms by default)
  • new feature: set jmolInJSpecView:
  • allows Jmol window to NOT be embedded in JSpecView when JSpecView is opened in Jmol
  • default TRUE
  • new feature: WRITE ISOSURFACE "t.pmesh"; WRITE ISOSURFACE "t.pmb":
  • creates ASCII (.pmesh) or binary (.pmb) file (a Jmol-specific file format)
  • relatively compact format
  • can speed up loading of meshes and contours
  • for filled surfaces, use .jvxl instead
  • read back into Jmol using ISOSURFACE "t.pmesh"/"t.pmb"
  • note that binary files are NOT RECOMMENDED for JSmol because some platforms cannot read them locally
  • example
  • load $methane:
  • isosurface plane {0 0 0 1} map vdw contours 20
  • write ISOSURFACE contour.pmb
  • isosurface contour.pmb
  • bug fix: mesh capper producing gaps
  • bug fix: CIP chirality fixed for rule ordering; validated for IUPAC Rules 1, 2, and 3 (though still some questions about Rule 3)
  • bug fix: print getProperty("cifinfo") without file name fails

New in Jmol 14.13.1 2017-04-09 (Apr 10, 2017)

  • new feature: MOL V2000 reader loads > <dataname> blocks into _M.molData
  • new feature: set labelfor {atomset} "value" -- allows setting of label without changing current selection -- uses same syntax as LABEL command after {atomset} -- for example: set labelfor @atoms @myLabel set labelfor {atomno <= 3} @{["a","b","c"]} set labelfor {_C && chirality != ""} "%[atomname] %[chirality]"
  • bug fix: {*}.chirality with triple bonds fails bug fix: {*}.chirality fix for duplicate atoms check b
  • bug fix: dotted line has extra dot: measure ID m @1 @4 radius 0.1 bug fix: NBO H-BOND and MODEL focus issues

New in Jmol 14.12.1 2017-04-08 (Apr 8, 2017)

  • bug fix: NBO update
  • bug fix: JavaScript bug - missing Math.signum(f) - causes {atom}.chirality to not work in JSmol

New in Jmol 14.12.0 2017-04-06 (Apr 7, 2017)

  • new feature: {atom}.chirality
  • uses Cohen-Ingold-Prelog rules to assign R or S to a carbon center
  • ignores sulfur chirality
  • may not fully implement high symmetry cases
  • not fully tested
  • Checked using:

New in Jmol 14.11.2 2017-04-04 (Apr 5, 2017)

  • BUG FIX:
  • NBO fixes
  • backboneSteps moved to cartoonSteps // order of checking for TRUE is:
  • // cartoonBlocks, cartoonBaseEdges, cartoonSteps, cartoonLadders, cartoonRibose

New in Jmol 14.11.1 2017-04-03 (Apr 4, 2017)

  • bug fix: set cartoonBlocks; set cartoonBlockHeight x.x
  • needs to be cartoon, not backbone (needs to be single-monomer based)
  • replaces set backboneBlocks; set backboneBlockHeight x.x from 14.11.0
  • for nucleic only
  • overrides set cartoonSteps and cartoonBaseEdges
  • uses DSSR data if present (using calculate structure DSSR or load =xxxx/dssr)
  • displays a DSSR block for each base based on dssr.nts.frame
  • x.x is height of box in Angstroms (default 0.5)
  • bug fix: NBO communications upgrade - still has bug in NPA atom charge query

New in Jmol 14.11.0 2017-04-01 (Apr 2, 2017)

  • NEW FEATURE: color NUCLEIC:
  • for nucleic only (others will be grey)
  • based on DSSR nucleic color scheme: G green, C yellow, A red, T blue, U cyan
  • NEW FEATURE: set backboneBlocks; set backboneBlockHeight x.x:
  • for nucleic only
  • overrides set backboneSteps
  • uses DSSR data if present (using calculate structure DSSR or load =xxxx/dssr)
  • displays a DSSR block for each base based on dssr.nts.frame
  • x.x is height of box in Angstroms (default 0.5)
  • NEW FEATURE: color property DSSR type:
  • where type is one of: bulges, coaxStacks, hairpins, hbonds, helicies, iloops, isoCanonPairs, junctions, kissingLoops, multiplets, nonStack, nts, pairs, ssSegments, stacks, stems
  • color is based on index into the list of the given structures
  • 0 (not of that structure), 1 (first entry), 2 (second entry), etc.
  • BUG FIXES:
  • bug fix: drag-drop of PDB file with isolated nucleic acids gives odd unbonded look
  • bug fix: set drawPicking TRUE does not report pending measurement
  • bug fix: DSSR calculation should reset after atom coordinate changes
  • bug fix: using Jmol.scriptWait() within a callback will not work, as it will overwrite the currently running eval object

New in Jmol 14.10.0 2017-03-25 (Mar 26, 2017)

  • NEW FEATURE:
  • x = {*}.find(smartsString,"map")
  • returns an array of arrays of atom indices (0-based)
  • indicates exact correlation between atoms in {*} and atoms of smartsString -- only unique sets of atoms are found, not every possibility
  • SELECT @x where x is an array of integers or array of array of integers
  • selects atoms from array rather than from a bitset
  • note that variable must be used, as SELECT [1,2,3] would look for PDB group "1,2,3"
  • DRAW polygon @face @points
  • draws a filled polygon based on arrays of atom indices
  • @face is an array of integers, not necessarily wound correctly
  • @points is an atom bitset or an array of points (optional, defaults to {*}
  • DRAW polyhedron @faces @points
  • draws sets of polygons based on arrays of atom indices
  • @faces is an array of array of integers, not necessarily wound correctly
  • @points is an atom bitset or an array of points (optional, defaults to {*}
  • POLYHEDRON ID xxx @faces @points
  • @faces is an array of array of integers, not necessarily wound correctly
  • @points is an atom bitset or an array of points (optional, defaults to {*}
  • 4-order bond in MOL file using 14 for bond order
  • Jmol extension for MOL file format to allow 4-bond
  • example: [Re2Cl8](2-)
  • 5-order bond in MOL file using 15 for bond order
  • Jmol extension for MOL file format to allow 5-bond
  • 6-order bond in MOL file using 16 for bond order
  • load "=xxxx/dssr--xxx=yyy"
  • allows adding specialized options to dssr
  • xxx=yyy added on to &opt= search item
  • BUG FIX:
  • DSSR fix for multi-model PDB file bug fix: DSSR - 4fe5 HPA ligand causes set backboneSteps true to fail bug fix: EXIT command with -n command line flag does not exit Jmol bug fix: echo renderer may not show correct font size bug fix: POLYHEDRA ID id OFFSET {x y z} broken bug fix: ScriptManager debug output being sent even if -i (silent) command line option set.
  • Jmol extension for MOL file format to allow 6-bond

New in Jmol 14.9.1 2017-02-19 (Feb 20, 2017)

  • bug fix: bad release file for 14.9.0

New in Jmol 14.9.0 2017-02-16 (Feb 17, 2017)

  • new feature: set nboCharges (default true)
  • determines whether formal charges are also displayed with LABEL %[nbo]
  • new feature: connect NBO <nbotype>
  • connect atoms in the currently visible model using a resonance structure configuration found in an NBO .46 or .nbo file
  • where <nbotype> is one of alpha|beta|46|46a|46b|nrtstr_n|nrtstra_n|topo_n|topoa_n|topob_n
  • new feature: label %[nbo];
  • label an atom using a resonance structure configuration found in an NBO .46 or .nbo file
  • requires a previous connect NBO
  • new feature: quintuple and sextuple bonds.
  • connect @1 @2 quintuple
  • connect @1 @2 sextuple
  • readily saved in state
  • adding MOL file bond type 15 and 16 for these
  • a bit of a hack, of course. new feature: Viewer.runScriptCautiously(String) replacement name for older Viewer.runScript(String) new feature: plugin main menu item.
  • allows integrated additions to Jmol
  • Just has NBO at this time; could have more, as it is a simple interface
  • created automatically from reading org/openscience/jmol/app/plugins/plugin.properties, which just contains a list of name=class pairs:
  • new feature: startup options -U nbo or --plugin nbo
  • starts Jmol in NBO mode, as if the Plugins...NBO menu item had been clicked
  • could be generalized, but do not that more than just nbo in place at this time
  • case insensitive
  • new feature: NBO n BETA - for GenNBOReader nth beta orbital; could be expanded bug fix: SHOW CHEMICAL JME (from NCI CIR) does not properly return formal charges bug fix: JSpecView, when open in application, does not allow ZAP
  • bug fix: draw POINTGROUP crashes Jmol if model is not first model
  • bug fix: DRAW circle rendering broken (load $2-butene ; draw pointGroup)
  • bug fix: NBO/ISOSURFACE command - Displaying BETA orbitals for NBO types (NHO, PNBO, etc.) that are from a file other than the current file causes read failure and no orbital display.
  • bug fix: Viewer.runScript(String) now uses evaluateExpression(T[]) Lesson learned: Never mix viewer.runScript() and viewer.runScriptQueued() calls. What will happen is that the unqueued calls will corrupt the queued calls. However, if you use viewer.evaluateExpression("script('....')"), that is also synchronous, and it uses a new ScriptEval() to isolate it from the script being queued. You still have the problem that the scripts could mess up each other, but at least it will not cause catastrophic failure.
  • bug fix: *.CA should pick up calcium in a PDB file
  • bug fix: cfi format (for NBOPro) writing broken - from using the command x = data({*}, 'cfi')
  • bug fix: La and Ac should be in transitionmetal
  • bug fix: GenNBO reader not recognizing FILTER "BETA" code: NBO options extended using the NBO VIEW or NBO OPTIONS "..." command options protected boolean jmolOptionNOZAP = false; // do no zap between modules protected boolean jmolOptionNOSET = false; // do not use NBO settings by default protected boolean jmolOptionVIEW = false; // present only the VIEW option protected boolean jmolOptionNONBO = false; // do not try to contact NBOServe noting previously undocumented: set fontscaling true; font label 10 arial plain 0.020
  • last number is a fontscaling factor that allows one to set a font size for - labels in angstroms. Roughly, this pointSize
  • factor is in Angstroms. - if label is changed, one must use set fontscaling FALSE; label .... ; fontScaling TRUE;

New in Jmol 14.8.0 2016.12.17 (Dec 20, 2016)

  • new feature: set labelOffset [mode sx sy sz ax ay az] (3.1.15, never documented)
  • set labelOffset [sx, sy, sz]
  • set labelOffset [mode, sx, sy, sz, ax, ay, az]
  • NEW FEATURES:
  • fully implemented CIF 2.0 reader:
  • new feature: MagCIF reader upgraded to new IUCr standard
  • first CIF 2.0 format implemented by IUCr
  • see http://comcifs.github.io/magCIF.dic.html
  • x = getProperty("cifInfo", "c:/temp/test.cif"):
  • reads CIF file data in structured format
  • automatically uses CIF 1.0 or CIF 2.0, as needed.
  • if file name is missing, uses current model file
  • autocalculation of MMFF94 partial charges:
  • isosurface ... map MEP
  • DIPOLE MOLECULAR
  • no need to preface these with CALCULATE PARTIALCHARGE
  • 3DPrinter-compatible VRML and STL writing:
  • mesh only; does not use high-level objects Cone, Cylinder, Sphere
  • extensive use of dEF and USE for small-footprint VMRL files
  • STL is binary generally, but will be ASCII using SET DEBUG TRUE
  • write t.wrl
  • write t.stl
  • measure ID "test" radius 0.0 font 15.0 SansSerif Plain align CENTER @1 @2 "test":
  • radius 0.0 turns off line (optional)
  • font... sets font (optional)
  • align [left|right|center|none] sets text alignment (optional)
  • requires ID
  • allowance for external app loading of binary (mmtf) files or any other file using a simple interface:
  • Viewer.openReader(fullPathName, reader)

New in Jmol 14.6.5 2016.12.06 (Dec 7, 2016)

  • bug fix: DSSR final touches
  • The associative array _M.dssr holds the DSSR information. This array has the following main keys and subkeys of interest to this discussion
  • new feature: fully implemented CIF 2.0 reader
  • new feature: x = getProperty("cifInfo", "c:/temp/test.cif")
  • reads CIF file data in structured format
  • automatically uses CIF 1.0 or CIF 2.0, as needed.
  • if file name is missing, uses current model file
  • new feature: MagCIF reader upgraded to new IUCR standard and CIF 2.0
  • _magnetic_space_group.transform_from_parent_Pp_abc // _parent_space_group.child_transform_Pp_abc // _magnetic_space_group.transform_to_standard_Pp_abc // _space_group_magn.transform_BNS_Pp_abc

New in Jmol 14.7.5 2016.12.02 Beta (Dec 7, 2016)

  • new feature: fully implemented CIF 2.0 reader
  • new feature: x = getProperty("cifInfo", "c:/temp/test.cif") reads CIF file data in structured format automatically uses CIF 1.0 or CIF 2.0, as needed. -- if file name is missing, uses current model file

New in Jmol 14.7.5 2016.12.02 Beta (Dec 5, 2016)

  • new feature: fully implemented CIF 2.0 reader new feature: x = getProperty("cifInfo", "c:/temp/test.cif")
  • reads CIF file data in structured format
  • automatically uses CIF 1.0 or CIF 2.0, as needed.
  • if file name is missing, uses current model file

New in Jmol 14.6.4 2016.11.05 (Nov 6, 2016)

  • bug fix: MCIF (magnetic CIF) reader miscalculates vector scales JmolVersion="14.6.4_2016.11.02"

New in Jmol 14.6.4_2016.10.26 (Oct 27, 2016)

  • bug fix: POV-Ray output spheres too large -- somehow broken in 14.6.4_2016.10.15

New in Jmol 14.6.4_2016.10.23 (Oct 27, 2016)

  • code: netscape.jar references isolated to org.jmol.applet.Jmol

New in Jmol 14.6.4 2016.10.21 (Oct 24, 2016)

  • bug fix: menu item for X3D export delivers STL; item for STL not functional
  • bug fix: X3D export includes extraneous VRML text
  • bug fix: load "@x" not saved in state properly
  • bug fix: IDTF exporter broken in Jmol 14.6.4_2016.10.02

New in Jmol 14.6.4 2016.10.15 (Oct 18, 2016)

  • bug fix: (JSmolJavaExt.js) JSmol/HTML5 WRITE xxx.stl not working.
  • bug fix: STL export can place two endcaps in the same location

New in Jmol 14.6.3 2016.09.18 (Sep 19, 2016)

  • bug fix: write MENU broken for non-English language (UTF-8 strings not correctly encoded using base64)
  • bug fix: write PNGJ should not store "#_DOCACHE_" in PNGJ file
  • bug fix: JSmol echo image loading from PNGJ can fail
  • bug fix: load "" after pasting in structure to load fails

New in Jmol 14.6.2 2016.08.28 (Aug 29, 2016)

  • new feature: allowance for external app loading of binary (mmtf) files or any other file using a simple interface: Viewer.openReader(fullPathName, null, reader)
  • bug fix: RCSB -> https "https://files.rcsb.org/download/%FILE.pdb"
  • bug fix: EBI sites to https
  • bug fix: Spartan 16 reader may have empty first model
  • bug fix: 2D model show SMILES uses @SP -- should be /nostereo/ based on _.dimension == "2D"
  • bug fix: NCI/CADD now requires "get3d=true" not "get3d=True" code: Unit test includes binary types PyMOL and MMTF

New in Jmol 14.6.1 2016.08.11 (Aug 12, 2016)

  • bug fix: PyMOL dump_binary file reading fixes

New in Jmol 14.6.1 2016.08.09 (Aug 11, 2016)

  • sycnronized with Jmol 14.7.1
  • bug fix:
  • upgrade of RCSB mmtf format reading to version 0.2 specs

New in Jmol 14.6.1 2016.07.29 (Aug 2, 2016)

  • bug fix: COMPARE command can fail if an atom has no bonds

New in Jmol 14.6.1 2016.07.11 (Jul 12, 2016)

  • sychronized with Jmol 14.7
  • bug fix: Jmol SMILES not allowing for insertion-code search -- adds "^" for insertion code: [G#129^A.*]

New in Jmol 14.6.0 2016.06.30 (Jun 30, 2016)

  • bug fix: cartoon rendering broken in 2016.06.28

New in Jmol 14.6.0 2016.06.28 (Jun 28, 2016)

  • bug fix: using an exporter (write VRML, eg) with cartoonsFancy will break rendering after that
  • bug fix: after loading PNGJ data, using write FILE crashes Jmol

New in Jmol 14.7.0 2016.06.22 Beta (Jun 23, 2016)

  • new feature: settable chain string using {atomset}.chain = "xxx" bug fix: compare(a,b,"isomer") does not detect ENANTIOMER (broken in 14.5.5) bug fix: missing error trap for unsettable property setting bug fix: load models {0 0 1} ... fails in script compiler

New in Jmol 14.6.0 2016.06.22 (Jun 23, 2016)

  • bug fix: compare(a,b,"isomer") does not detect ENANTIOMER (broken in 14.5.5)
  • bug fix: missing error trap for unsettable property setting
  • bug fix: load models {0 0 1} ... fails in script compiler

New in Jmol 14.6.0 2016.06.21 (Jun 23, 2016)

  • bug fix: x3d export shows partial bond as standard bond

New in Jmol 14.6.0 2016.06.14 (Jun 15, 2016)

  • bug fix: reading of protein structure for a group that is not in a polymer causes null pointer exception

New in Jmol 14.6.0 2016.05.24 (May 25, 2016)

  • bug fix: localization broken due to too-old GNU msgfmt version.
  • bug fix: splash image not appearing in Jmol application Help...about Jmol
  • bug fix: Jmol application Help may not appear at all bug fix: switching out of hermite "fancy" cartoons doesn't actually do that.
  • code: removing unnecessary J/api/JmolBioMeshRenderer.js -- when I started working with Java2Script, I thought that all references to a class had to be removed and an interface used instead if modularization was to work in JavaScript. But it turns out only "new Xxx()" will trigger that request.
  • This might be something I changed in j2sjmol.js early on; I cannot remember.

New in Jmol 14.6.0 2016.05.23 (May 24, 2016)

  • bug fix: calculate pointgroup polyhedra "xxx" does not work
  • bug fix: draw pointgroup $xxx does not work for named polyhedra
  • bug fix: named polyhedra set visibility broken bug fix: colors light(and dark)grey and light(and dark)gray should be synonymous
  • bug fix: isosurface SILENT should pass that to readers popup menu: reorganization of color... submenu
  • new features:
  • unitcell reciprocal x.x - allows scaling of reciprocal cell, similar to unitcell("reciprocal", x.x)
  • just a very simple CIF file, P1 format - allows writing a simple CIF file with changed coordinates after a UNITCELL command

New in Jmol 14.6.0 2016.05.17 (May 18, 2016)

  • new feature: full implementation of OpenSMILES and OpenSMARTS in Jmol
  • code: unnecessary org.jmol.util.BNode removed; methods now part of org.jmol.util.Node
  • new feature: C13 NMR prediction from http://www.nmrdb.org/service/jsmol13c?smiles=CCCC
  • although we send MOL file, not SMILES here.
  • actuated with:
  • SHOW NMR H1 // H1 1H H or just SHOW NMR all default to this
  • SHOW NMR C13 // or C or 13C
  • SHOW NMR none // close JSpecView
  • new feature:
  • Jmol now implements a way of indicating atropisomer chirality.
  • measured dihedral angle is clockwise-positive front-to-back, as for Jmol dihedrals
  • matching with {*}.find("SMILES","...a^nm-a...") where n and m are 1, 2, or 3 indicate first, second, or third, respectively, and indicate which bonds of the biaryl bond, as written, are to the reference atoms.
  • new feature:
  • CONNECT {pair1} {pair2} ATROPISOMER
  • creates a new bond of type atropisomer (bond chirality in biaryl systems)
  • each pair must include the bonded atom and its reference connected atom
  • new feature:
  • BONDORDER ATROPISOMER_nm
  • not for general use; will be found in state file
  • new feature: Jmol SMILES bond atropisomerism ^nm- and ^^nm-
  • indicates atropisomerism (bond chirality in biaryl systems)
  • ^ and ^^ for bonds similar to @ and and @@ for atoms
  • n and m are single-digit bond selectors, generally one of 1, 2, or 3
  • n = 1/2/3 means "reference atom is first/second/third bonded
  • ^- and ^^- same as ^22- and ^^22-, respectively
  • bug fix: MolPRO reader broken
  • bug fix: Jmol SMILES directive /noaromatic/ should ignore ":" bond type
  • bug fix: Jmol SMILES directive /aromaticDouble/ not implemented for SMILES
  • buf fix; Jmol SMARTS measurements should be required to come after branches
  • bug fix: Jmol SMILES parser should require connection numbers to be placed prior to branches
  • bug fix: Jmol SMILES should not allow (.t!50,60,70,80)
  • bug fix: Jmol SMILES should treat search("[THR.*][THR.*]") should select all atoms in each group
  • bug fix: Jmol SMILES should return ({}) not ERROR if no atoms are involved
  • code: StateCreator and Shape getStateInfo methods simplified and condensed

New in Jmol 14.4.4 2016.04.22 (Apr 23, 2016)

  • bug fix: on loading, crystallographic file reading fails when applying symmetry
  • bug fix: on loading, user-defined space groups using Hall symbol fails
  • bug fix: SHELX reader broken

New in Jmol 14.4.4 2016.04.21 (Apr 22, 2016)

  • bug fix: CIF files with missing tags that Jmol needs fail to load at all. (Not necessarily a bad thing, but it is not supposed to fail so dramatically.)
  • bug fix: mmCIF/mmTF reader does not complete symmetry for biomolecules when there is a lattice. for example: load =2tbv.mmtf {1
  • 1 1} filter "biomolecule 1;*.ca" backbone off; spacefill 200% color property symop
  • bug fix: mmCIF, PDB, and mmTF readers with lattice indicated does not show unit cell
  • bug fix: certain viral capsid CIF files will fail to load due to this line: XAU '(X0)(1-10,21-25)' A,B,C

New in Jmol 14.4.4 2016.04.14 (Apr 15, 2016)

  • bug fix: Jmol 14.4.4_2016.04.13 will fail to read PDB files from scripts referencing http://www.rcsb.org/pdb/
  • does not affect http://www.rcsb.org/pdb/ligand
  • does not affect load =xxxx or load xxx
  • does not affect PNGJ files
  • only affects scripts that specifically reference that site (e.g. state scripts created prior to 4/13/2016)
  • bug fix: selection of dssr elements using select within(dssr,"pairs[where...]") is not working
  • Note that this works because SELECT can find unit ids ("|1|E|DC|36||||") in any string.

New in Jmol 14.4.4 2016.04.13 (Apr 14, 2016)

  • bug fix: SET nihResolverFormat does not work; using "=" does work. (There should be no reason to set this; Jmol is automatically changing those to "https".)
  • bug fix: JSmol cannot load RCSB ligand files
  • bug fix: "axis" unintentionally made reserved word in "14.4.4_2016.03.19"
  • bug fix: symop(@1 @2) broken
  • bug fix: symop() taking default unitcell from "current" should be "first"
  • bug fix: models from PyMOL reader do not save atom colors in state when balls are colored
  • new feature: "$isosurface1".getProperty("atoms") -- returns atoms associated with this surface
  • new feature: show xxx /yyy -- filters any SHOW command for lines containing "yyy" (case insensitive)
  • FEATURE NOTE:
  • Jmol now has a RELATIVELY COMPLETE set of analysis and visualization tools for space group symmetry. All standard and magnetic space group operations are covered. Features are concentrated in four command options and one function: LOAD .... SPACEGROUP .... UNITCELL .... SHOW SYMOP .... DRAW SYMOP .... DRAW POINTGROUP SPACEGROUP x = symop(....)
  • With these features, you can:
  • oad any model while applying any actual or conceivable space group or subset of a space group
  • tabulate all space group operations associated with that model
  • retrieve an associative array indicating all aspects of the operation, including point, rotation axis, plane, glide vector, lattice offset vector, and 4x4 matrix visualize all aspects of an operation, including proper and improper rotations inversion centers, mirror planes, glide planes, translations, and magnetic spin time reversal apply any operation to any atom or any point in space
  • given any combination of two atoms or two points in space, determine and/or epict the operation(s) that relate those to atoms or positions
  • new feature:
  • symop(3,@3,"atom")
  • returns target atom or atoms new feature: show symop 3 @3 "atom" -- shows target atom or atoms

New in Jmol 14.4.4 2016.04.11 (Apr 12, 2016)

  • bug fix: qchem reader fails to switch to spherical D/F basis for second structure
  • bug fix: pointGroup secondary axis in yellow is too hard to see
  • using "orange" instead
  • new feature: symop() options: symop(op)
  • returns the 4x4 matrix representation of this operator symop(op, atom) returns the point generated by operator op on atom
  • op may be a positive or negative integer indictating the operation (or its reverse) to apply from the loaded space group
  • for example, symop(3, @1) or symop(-4, {atomindex=16})
  • op may be a string such as "x+1/2,1/2-y,z" representing a specific generic operation symop(atom1, atom2)
  • returns the description of the first of possibly several operations that take atom1 to atom2, for example: "2-fold screw axis|translation: 1/2 0 0" symop(atom1, atom2, n)
  • returns the description of the nth operation that takes atom1 to atom2 symop(...point...)
  • any place an atom can be used in symop(), one can substitute an xyz coordinate.
  • for example, symop(@1, {1/2 1/2 1/2}) {atomset}.symop(...)
  • when more than one model is loaded, prepending any symop function with an atom set specifies which atoms, space group, and unit cell are being referenced.
  • All uses of symop() and {atomset}.symop() can be extended using a final parameter that changes the default output described above to be something else. Options for outputType include: "draw" Returns the Jmol script illustrating this operation with DRAW commands. "lattice" Returns the lattice type associated with the space group involving this operation. "list" Specifically when two atoms or points are specified, returns a string list of all operations taking the first to the second.
  • These include: "axisVector", "cartesianTranslation", "centeringVector", "fractionalTranslation", "inversionCenter", "label", "matrix", "plane", "rotationAngle", "timeReversal", "unitTranslation", "xyz", and "xyzOriginal" Three of these that may be less than obvious are explained below: "centeringVector" For operations that are pure lattice translations, returns the vector for this centering in fractional coordinates. "timeReversal" This quantity is 0 for standard space groups. Magnetic space group operations also include the possibility of inversion of the spin along with any 3D symmetry operation. This inversion characteristic is referred to as "time reversal" and takes the value of 1 or -1. "unitTranslation" Symmetry operations involving two atoms may include an extra lattice translation if the two atoms are in different unit cells. This translation is above and beyond any fractional lattice centering that this operator incorporates for a face- or body-centered space group.
  • new feature: show spacegroup/xxxxx
  • selects lines from a space group report similar to the way show state/xxxx works
  • gives full list of matching symmetry operations
  • plane|translation: 0 0 -2|time-reversed
  • new feature: show/draw symop @1 @2 n
  • shows or draws the nth symmetry operation relating atom 1 to atom 2
  • analyzes the point group (crystal class) of a crystal.
  • uses three irrational-coordinate points to generate all possible operators
  • creates a map with keys (somewhat variable depending upon axes present): C2 C3 Ci Cs S6 detail distanceTolerance linearTolerance nAtoms nC2 nC3 nCi nCn nCs nS6 nSn nTotal name points principalAxis
  • new feature: draw SPACEGROUP
  • draws all operations in space group
  • new feature: draw POINTGROUP SPACEGROUP
  • draws crystal class symmetry operations for a pointgroup
  • uses point group style, with circular planes
  • new feature: @1.find("crystalClass", pt)
  • generates a list of points based on a model's crystal class (point group)
  • uses @1 just to find the unit cell and space group
  • optional pt is used as a generator (defaults to @1)
  • example: load =ams/calcite 1 x = @3.find("crystalClass") print pointgroup(x).name draw points @x polyhedra ID p {0 0 0} to @x

New in Jmol 14.4.4 2016.03.24 (Mar 24, 2016)

  • bug fix: NCI requires stereochemistry to rings to be prior to a branch: C\1(/C)=C\C=C.C/1=C not C(/C)\1=C\C=C.C/1=C
  • new feature: x.bin() method allows return of an array listing both the bound and the count

New in Jmol 14.4.4 2016.03.23 (Mar 24, 2016)

  • new feature: load =magndata/1.1.37
  • links to the MAGNDATA database at http://webbdcrista1.ehu.es/magndata
  • "magndata", "http://webbdcrista1.ehu.es/magndata/mcif/%FILE.mcif",
  • new feature: set vectorTrail n adds a trail onto a modulating vector (as for an incommensurate magnetic spin) n trails are made, typically in a fan-like pattern that trails the spinning vector load =magndata/1.1.37 set vectortrace 20 set vibrationperiod 2 vibration on
  • new feature: unitcell ON adds #nnn (international table number) to cell description if found
  • bug fix: {*}.find("CHEMICAL","NAMES") only reports one name.
  • code: more efficient identifying space group

New in Jmol 14.4.4 2016.03.22 (Mar 22, 2016)

  • bug fix: unitcell PRIMITIVE does not work as reported 3/21
  • bug fix: unitcell("conventional","F") does not work
  • bug fix: crystal systems with translational symmetry may have duplication of symmetry operators

New in Jmol 14.4.4 2016.03.13 (Mar 14, 2016)

  • new feature:
  • polyhedra POINTS x.y adds variable size spherical points at corners of polyhedra
  • color is that of element, or black
  • new feature: show SMILES/xxxx
  • xxx = open, strict, openstrict, mmff94
  • new feature: show chemical NAME singular "name" gives just the first name; "names" gives full list new feature: full implementation of OpenSMILES aromatic model
  • new feature: {*}.find("SMILES/open") generates OpenSMILES string for selected atoms applies OpenSMILES aromaticity rules for 5-, 6-, and 7-membered rings not chemical
  • allows exocyclic c=C bonds and [nH] in 6-membered rings
  • also adds atom class if property_atomClass is nonzero for example: $ load $2-butanol $ @2.property_atomclass=2 $ @3.property_atomclass=3 $ $5.property_atomclass=5 $ print {*}.find("smiles/open") C[C@H:2]([OH:5])[CH2:3]C
  • new feature: /open option for smiles.find("SMILES", pattern) applies OpenSMILES model of aromaticity finds aromaticity-normalized pattern "in" aromaticity-normalized smiles can be after SMILES or as beginning of pattern $ print "
  • new feature:
  • compare("smile1","/open/smiles2")
  • applies OpenSMILES model of aromaticity checks for match of atom class if present (default value 0 matches "not present") does aromaticity normalization on both trings $ print compare("OC1=CC(N)=CC=C1", "NC1=CC(O)=CC=C1", "isomer") ONSTITUTIONAL ISOMERS $ print compare("OC1=CC(N)=CC=C1", "/open NC1=CC(O)=CC=C1", "isomer") IDENTICAL
  • new feature: {*}.find("SMILES/strict") generates OpenSMILES string for selected atoms applies standard Hueckel aromaticity rules for 5-, 6-, and 7-membered rings does not allow exocyclic c=C bonds or [nH] in 6-membered rings does not create atom classes also for compare() and search()
  • new feature: {*}.find("SMILES/open strict")
  • same as just /strict, but also generates atom classes if present as property_atomClass -- also for compare() and search()
  • new feature: {*}.find("SMILES/mmff94")
  • applies a very STRICT, chemically meaningful Hueckel 4+2 Rule
  • adds allowance for only a 1-electron contribution to 6-membered rings (three double bonds)
  • also for compare() and search() new feature: optional processing of OpenSMILES [CH2:002] ":" atom class.
  • positive integer value only
  • checks the atom property property_atomclass
  • for SMARTS, [:0] means "without an atomclass"
  • for SMARTS, [!:0] means "any non-zero atomclass"
  • for SMARTS, same as [$(select property_atomclass=n)]
  • only enabled with Jmol SMILES directive "/open/"; otherwise ignored
  • for example: $ load $2-butanol $ show smiles C[C@H](O)CC $ @2.property_atomclass=2 $ @3.property_atomclass=3 $ @5.property_atomclass=5 $ select * 15 atoms selected $ select on search("/open/[:3]") 1 atoms selected $ select on search("/open/[!:3]") 14 atoms selected $ select on search("/open/[:0]") 12 atoms selected $ select on search("/open/[!:0]") 3 atoms selected $ select on search("/open/[!:3 & !:0]") 2 atoms selected new feature: UNITCELL TRANSFORM @m4x4
  • direct 4x4 matrix transformation of a unit cell new feature: calculate symmetry polyhedra {atomset}
  • selectively calculates polyhedra.
  • for example: calculate symmetry polyhedra {polyhedra(4)} new feature: calculate symmetry polyhedra id
  • selectively calculates polyhedra for a given ID.
  • for example: calculate symmetry polyhedra "poly1" new feature: atom set can be specified in polyhedra() function:
  • print {2.1}.polyhedra(3)
  • print {2.1}.polyhedra("....polySMILES string...")
  • new feature: WRITE MOL67 xxx.mol
  • writes MOL format with bonds of type 6 or 7 (aromatic single/double; rarely significant) bug fix: SMILES should not be returned with comments for internal processing or sending to PubChem or others
  • bug fix: SHOW chemical SMILES can be off because it was using the name, not the SMILES string
  • sometimes - e.g. "menthol" - the name has no chirality, but the structure does (of course).
  • bug fix: Jmol 14.3.16_2015.09.15 broke first-match-only flag in SMILES mapping
  • bug fix: POLYHEDRA when selection halos are on, all have edges
  • bug fix: moving of polyhedron will fail if corner of polyhedron is an atom
  • bug fix: macro functions cannot be used later in same script as a MACRO command
  • presence of MACRO command now removes check for unknown command name exception
  • bug fix: Tripos MOL2 reader does not read element symbols properly
  • bug fix: default write MOL file should not indicate aromatic bond types 6 and 7
  • corrects the fact that these bonds are reserved for queries only affects cases where that bond type has been set (after calculate aromatic or loading of ligand CIF files

New in Jmol 14.4.3 2016.03.02 (Mar 3, 2016)

  • bug fix: JavaScript reference to j2s for working gif does not recognize Info.j2sPath

New in Jmol 14.4.3 2016.02.28 (Feb 29, 2016)

  • bug fix: cyclic peptides do not complete loop for cartoons, backbone, etcs

New in Jmol 14.4.3 2016.02.27 (Feb 29, 2016)

  • bug fix: [function:"yyy",Function:"zzz"] fails to retain key capitalization after first entry for special names
  • bug fix: (JavaScript only) polyhedra not saved in state
  • bug fix: (Applet) broken image in coverImage
  • bug fix: polyhedra DELETE can crash Jmol if polyhedra are not colored

New in Jmol 14.4.3 2016.02.18 (Feb 19, 2016)

  • bug fix: slab/depth SET do not behave properly
  • bug fix: select VISIBLE is not properly set based on slab/depth SET
  • bug fix: _GEOM_BOND reading in CIF files nonfunctional.
  • broken in 13.3.4_dev_2013.08.21
  • result is that between 8/21/2013 and 2/15/2016 the CIF reader would not recognize _GEOM_BOND and so also not create whole molecules as it was designed to do when those are present.
  • no impact on states created within this version range
  • no impact on mmCIF reader
  • only impact is upon Materials Studio-generated files such as http://www.rsc.org/suppdata/cc/c2/c2cc34714h/c2cc34714h.txt (supplemental mat. for http://pubs.rsc.org/en/Content/ArticleLanding/2012/CC/c2cc34714h)

New in Jmol 14.4.2 2016.02.14 (Feb 15, 2016)

  • FEATURE CHANGE: JSmol default for Info._disableInitialConsole changed to true -- no longer necessary with JSmol_spinner.gif
  • new feature: j2s/img/JSmol_spinner.gif implemented (Angel Herraez) -- as default for Info._appletLoadingImage -- use Info._appletLoadingImage = "none" to disable
  • new feature: j2s/img/cursor_wait.gif animation implemented
  • bug fix: STRUCTURE statement (utilized in RESTORE STRUCTURE) broken

New in Jmol 14.4.2 2016.02.14 (Feb 15, 2016)

  • FEATURE CHANGE: JSmol default for Info._disableInitialConsole changed to true
  • no longer necessary with JSmol_spinner.gif
  • new feature: j2s/img/JSmol_spinner.gif implemented:
  • as default for Info._appletLoadingImage
  • use Info._appletLoadingImage = "none" to disable
  • new feature: j2s/img/cursor_wait.gif animation implemented:
  • bug fix: STRUCTURE statement (utilized in RESTORE STRUCTURE) broken
  • broken in Jmol 14.4.0_2015.10.30
  • bug fix: EBI assembly CIF files that are multi-model files will be by chain, not by model.
  • result was that each chain became a new model
  • bug fix: XmlMolProReader does not recognize FILTER "NOMO"
  • bug fix: JSmol has never shown cursors

New in Jmol 14.4.2 2016.02.09 (Feb 10, 2016)

  • bug fix: SMARTS pattern [ALA.*] not working without biological polymer type indication
  • bug fix: SMARTS pattern [r500] not working outside of MINIMIZE

New in Jmol 14.4.2 2016.02.05 (Feb 5, 2016)

  • bug fix: LOAD $benzene; SHOW smiles should give c1ccccc1 not c1=cc=cc=c1
  • bug fix: LOAD FILES "$caffeine" ":caffeine";print {1.1}.find("SMARTS",{2.1}) should give atoms, but it does not. Problem is with aromatic structure to SMILES shows c=c instead of just cc. (SMARTS searching with c=c does not match

New in Jmol 14.4.1 2016.11.15 (Jan 17, 2016)

  • bug fix: d = [start:1,end:10] fails due to reserved word "end" (also "select", "case", "default", "if", "for", etc.)
  • bug fix: color "chain" (with quotes) should work, allowing for x="chain"; color @x
  • bug fix: inappropriate use of REGEX in ["a","b"].find("x")
  • bug fix: ".xxx" should be allowed as a math continuation: print script("show spacegroup all") .split() .find("Hall symbol:")

New in Jmol 14.4.1 2016.01.04 (Jan 5, 2016)

  • bug fix: (JvxlReader) Jmol 12 mapped isosurface jvxl files do not show mapped color bug fix: setting cartoons on for phosphorus-only polymers fails
  • bug fix: setting default label properties using select none;.... fails
  • bug fix: undocumented model-based draw [array of points] broken -- points only -- selects from visible frames (frame *, for example) -- load cyclohexane_movie.xyz; frame *; draw @{{C5}.split().sub({1,0,0}

New in Jmol 14.4.1 2016.01.01 (Jan 4, 2016)

  • bug fix: file dropping of JVXL files does not work
  • bug fix: Mesh capper not working for multiple cuts due to unclosed surface cut -- for example: load maleic.cif 1;select on atomindex=6;lcaocartoon scale 1.0 CAP unitcell "cpk"
  • bug fix: Escape.e(P4) returns value for Escape.e(T3) -- only affects SurfaceTool
  • bug fix: (JSmol only) Java return (int) fValue(x); will return "NaN" instead of "0" for x NaN -- JSmol script 0 + "test" will print "NaN" rather than "0"

New in Jmol 14.4.1 2015.12.23 (Dec 23, 2015)

  • bug fix: PyMOL 1.8 PSE files cannot be read
  • bug fix: dots broken when colored none
  • bug fix: color cartoons red blue not saved in state
  • bug fix: color cartoons red blue flipping red/blue in sheets

New in Jmol 14.4.1 2015.12.21 (Dec 23, 2015)

  • bug fix: color [0xffffff] should not be case-sensitive -- [0Xffffff] should be OK bug fix: set spin fps ... fails

New in Jmol 14.4.1 2015.12.20 (Dec 23, 2015)

  • bug fix: array handling for labels very inefficient bug fix: y = javascript("x") only creates string equivalent of x, not actual numerical/object values bug fix: y = javascript("x") draws "x" from wrapped anonymous function using eval() instead of global context using window.eval()

New in Jmol 14.4.1 2015.12.15 (Dec 22, 2015)

  • bug fix: color [0xffffff] should not be case-sensitive -- [0Xffffff] should be OK
  • bug fix: set spin fps ...
  • fails code: (JavaScript) adding use of typedArray.buffer.slice

New in Jmol 14.4.0 2015-12-02 (Dec 2, 2015)

  • bug fix: PDB reader broken for filter "biomolecule n"
  • bug fix: mmCIF reader can fail to popup menu when biomolecule is present.

New in Jmol 14.4.0 2015-12-01 (Dec 1, 2015)

  • bug fix: JSON generation from arrays broken in HTML5 version due to browser changes in Array.toString().
  • bug fix: DCD reader broken.
  • bug fix: getProperty("JSON", "variableInfo", "x") will fail if x is an array -- was problem with JSV_predict2 failing to properly map atoms between Jmol and JSME
  • bug fix: {atomset}.sxyz gives incorrect screen coordinate when antialiased
  • bug fix: point(pt, true|false) also modifies pt itself
  • bug fix: point({atomset}, true) gives incorrect screen coordinate when antialiased.
  • bug fix: point({atomset}, false) gives incorrect Cartesian coordinate when antialiased.
  • bug fix: popup menu item "Surfaces...Off" resets atom selection
  • bug fix: files with names containing "[]" cannot be loaded.
  • bug fix: print {cell=555}.find("cellFormula") can fail because of 2% slop involved in defining cell=555
  • bug fix: {atomset}.split() [split atomset by model] returns array of strings, not array of atoms
  • bug fix: getproperty SHAPEINFO fails if CGO is present
  • bug fix: CGO from state deletes DRAW objects
  • bug fix: CGO not properly isolated to current model; "fixed" not implemented

New in Jmol 14.4.0 2015-11-18 (Nov 18, 2015)

  • bug fix: loading mmCIF files where label_asym_id != auth_asym_id will apply biomolecule symmetry to wrong chain

New in Jmol 14.5.0 2015-11-06 Beta (Nov 17, 2015)

  • bug fix: restoring bonds to a model having fewer bonds than the model for which they were saved throws an exception
  • bug fix: mCIF does not read incommensurately modulated mCIF files
  • bug fix: WRITE xxx.ZIP crashes Jmol
  • bug fix: POLYHEDRA ... {xxx} TO {yyy} not working

New in Jmol 14.4.0 2015-11-13 (Nov 17, 2015)

  • bug fix: echo "" fails in applet
  • bug fix: 3x3 and 4x4 matrix multiplication of points changes the point itself.

New in Jmol 14.4.0 2015-11-06 (Nov 9, 2015)

  • bug fix: restoring bonds to a model having fewer bonds than the model for which they were saved throws an exception
  • bug fix: CIF reader does not read incommensurately modulated magCIF files
  • bug fix: WRITE xxx.ZIP crashes Jmol bug fix: POLYHEDRA ... {xxx} TO {yyy} not working

New in Jmol 14.4.0 2015-11-03 (Nov 3, 2015)

  • bug fix: FOR without {} but with ";" after sole statement followed immediately by second FOR improperly loops for (var i from [1,5]) print i; for (var i from [1,5]) print i
  • bug fix: OXT missing from BACKBONE selection
  • bug fix: (JSmol) CIF parser fails to read CIF files containing only a single (non-loop) _struct_ref_seq_dif.align_id
  • bug fix: slabbing should reset area and volume of isosurface
  • bug fix: meshSlicer may fail to add edge to sliced pmesh
  • bug fix: polyhedron volume will be incorrect if there is a face triangle that has no edges visible (requires a six or more sided face)
  • bug fix: nested if...{...if... } else {...} gives compiler syntax error: if (i=1) { print "i=1" if (j=1) print "j != 1" } else { // } closes if (j=1) instead of if (i=1) { print "i != 1" } bug fix: empty format crashes Jmol -- print "testing".format("")
  • bug fix: after CALCULATE HYDROGENS TRUE and then deleting hydrogens, hydrogens are not added to aromatic rings in PDB models
  • bug fix: reading saved state after adding hydrogen atoms results in infinite loop

New in Jmol 14.4.0 2015-10-28 (Nov 3, 2015)

  • bug fix: XODYDATA file reader does not read bond info or formal charge // changes in 14.4.0_2015.10.28

New in Jmol 14.4.0 2015-10-24 (Nov 3, 2015)

  • bug fix: [{1,2,3},{4,5,6}].average fails
  • bug fix: [{1,2,3},{4,5,6}].pivot should return "NaN"

New in Jmol 14.4.0 2015.10.22b (Oct 24, 2015)

  • bug fix: CIF parser fails to read CIF files containing only a single (non-loop) _struct_ref_seq_dif.align_id
  • bug fix: WRITE .... AS does not properly allow for unquoted file name

New in Jmol 14.4.0 2015.10.22 (Oct 22, 2015)

  • bug fix: CIF parser fails to read CIF files containing only a single (non-loop) _struct_ref_seq_dif.align_id
  • bug fix: WRITE .... AS does not properly allow for unquoted file name

New in Jmol 14.4.0 2015.10.21 (Oct 22, 2015)

  • bug fix: write c:/temp..... AS PNGJ does not work without quotes that way; it should

New in Jmol 14.4.0 2015.10.20 (Oct 21, 2015)

  • bug fix: set platformSpeed 1 for pmesh fails bug fix: polyhedron EDGES fails
  • bug fix: @{ {"hash":{0.1 0.1 0.1},...} } fails (attempts to turn "," into "OR") solution is to not allow "," for OR within associative arrays

New in Jmol 14.4.0 2015.10.17 (Oct 20, 2015)

  • bug fix: if (...) \n { .... not working bug fix: CIF reader will read empty second model for IUCr files with terminal data_global block
  • bug fix: polyhedra bonds unitcell can cause error in HTML5
  • bug fix: nucleic backbone should include O atoms on P and C bug fix: nucleic spine should not include C2'
  • bug fix: pmesh/isosurface RESOLUTION 0.0001 with plane can cause loss of some or all of the plane -- resolution 0.0001 creates just a minimum of triangles to construct the plane.
  • bug fix: set testflag4;isosurface ... ; does not generate normals
  • bug fix: (Application) set refreshing false shows Jmol console in model frame (Java bug??)

New in Jmol 14.3.16 2015.09.20 Beta (Sep 21, 2015)

  • FEATURE CHANGE: 3DNA DSSR has switched over to JSON; some array names are changed.
  • new feature: print @1.label("%[unitid]") -- generates unit IDs for atoms or residues -- unit IDs are a proposed general standard for representing atoms and residues in biomolecules
  • bug fix: quoted labels containing \n are supposed to ignore | as new-line char
  • new feature: select shortcuts for nucleic acid structures -- for example: select junctions; select kissingloops -- activated after load =xxxx/dssr or calculate structure dssr -- includes: "@bulges within(dssr,'bulges')", "@coaxStacks within(dssr,'coaxStacks')", "@hairpins within(dssr,'hairpins')", "@hbonds within(dssr,'hbonds')", "@helices within(dssr,'helices')", "@iloops within(dssr,'iloops')", "@isoCanonPairs within(dssr,'isoCanonPairs')", "@junctions within(dssr,'junctions')", "@kissingLoops within(dssr,'kissingLoops')", "@multiplets within(dssr,'multiplets')", "@nonStack within(dssr,'nonStack')", "@nts within(dssr,'nts')", "@naChains within(dssr,'naChains')", "@pairs within(dssr,'pairs')", "@ssSegments within(dssr,'ssSegments')", "@stacks within(dssr,'stacks')", "@stems within(dssr,'stems')",
  • new feature: jmolSQL [SELECT a;b ...]

New in Jmol 14.3.16 2015.09.15 Beta (Sep 16, 2015)

  • bug fix: JSME's noncanonical SMILES does not match Jmol's standard SMILES for aromatics -- solution is to use /noncanonical/ with find().
  • bug fix: JSmol does not automatically start non-English language
  • new feature: SMILES /noncanonical/ -- matches Jmol's aromatic with JSME's "noncanonic
  • new feature: {*}.find("SMILES", "NOAROMATIC") -- creates nonaromatic (noncanonical) SMILES
  • new feature: JmolSQL x.select("...") -- shortcut for x.getProperty("[select ... ]") -- x should by an associative array {key:value,..} or a sequential array [a,b,c,d]
  • new feature: JmolSQL {associative array}.select("xxx** where...") -- double * indicates desire to return full sub-arrays, with keys -- "all keys starting with "xxx"; -- uses LIKE -- can be at beginning or end or both: xxx**, **xxx, **xxx** -- WHERE clause is optional -- similar to [array].select("** where

New in Jmol 14.3.16 2015.09.14 Beta (Sep 15, 2015)

  • bug fix: Crystallographic Open Database CIF files have unusual atom_site_label ("MgT") and no atom_site_type_symbol, leading to missing element assignments

New in Jmol 14.3.16 2015.08.25 Beta (Sep 14, 2015)

  • bug fix: JmolThread should use setTimeout in resumeEval
  • new feature: JmolSMILES $(.x:1,2,3,4,5,6,7,8)
  • new feature: print {2.1}.find("SMILES",{1.1})
  • bug fix: compare() function returning matrix with translation about center, not origin bug fix: print compare({1.1},{2.1}, "SMILES", "stddev") broken
  • bug fix: select search("[$(select atomno < 5)]") broken
  • bug fix: select search("[$(select atomno < 5) or @5]")
  • broken new feature: _hoverLabel -- reports general hover label set by hover command
  • new feature: _hoverEnabled -- reports if hover is enabled or not
  • bug fix: calculate partialCharge does not store result if all values are 0 (Otis Rothenberger)
  • bug fix: still problems with aTest = "testing"; x = [aTest:aTest] or a =
  • [property_MYINFO:aTest] (Rolf Huehne)
  • bug fix: cross(a,b) broken
  • bug fix: write PDB broken; works without "PDB" keyword broken in 4.3.15_2015.06.18
  • new feature: /invertStereo/ flag for SMARTS search -- allows quick check for enantiomers
  • bug fix: SMILES recognizes atom name [*.CA] but not residue name [ALA.*]
  • bug fix: Jmol BioSMILES broken
  • bug fix: set cartoonLadders with phosphorus-only polymers crashes Jmol
  • bug fix: protein and nucleic are not set properly for non-monomer groups (Eric Martz)
  • Broken in Jmol 14.3.11 (12/13/2014)
  • General definition of protein is from having CA, C, and N. But there are situations where we know it is protein from its group name (ALA,LEU..) despite the fact that it is just one atom. Same for nucleic.
  • Note that non-canonical (HETERO) amino acids or nucleic bases that do not have the requisite atoms to identify them as such will still not test positive for "protein" or "nucleic".

New in Jmol 14.3.16 2015.08.19 Beta (Aug 20, 2015)

  • bug fix: PyMOL reader does not load surface from PNGJ file
  • bug fix: PDB reader can skip assignments of secondary structure after first structure loaded during session

New in Jmol 14.3.16 2015.08.18 Beta (Aug 19, 2015)

  • bug fix: PyMOL reader not reading "H69" as "helix"
  • bug fix: PyMOL labels offset in Y direction (down.pse)
  • bug fix: PyMOL session with isosurface cannot be read from state known bug: RGS-Ga_8pdb_structures_aligned_S90_20.5.15.pse has two frames; showing frame 2 with no displayed atoms

New in Jmol 14.3.16 2015.08.17 Beta (Aug 18, 2015)

  • bug fix: PDB reader cuts off long titles.
  • bug fix: slab setting by wheel can be unintentional
  • bug fix: wheeling slab could run range unintentionally way too high or low

New in Jmol 14.3.16 2015.08.14 Beta (Aug 18, 2015)

  • bug fix: label "3%" reads "3null"
  • bug fix: {*}.label = ... resets offsets, fonts, and alignment
  • bug fix: label "3%%" is saved in the state as "3%"

New in Jmol 14.3.16 2015.08.12 Beta (Aug 13, 2015)

  • bug fix: set labeloffset 4 4 (specifically) just centers label
  • bug fix: var b = a..B fails (found by Rolf Huehne) -- non-lower-case associative array name same as user variable name turned into lower case and then looked up as a["b"] instead of a["B"], so not found
  • bug fix: show xxx (variable) broken in 4.3.15_2015.06.13

New in Jmol 14.3.16 2015.08.11 Beta (Aug 12, 2015)

  • bug fix: a = {*}.label("%[xxx]") does not work.
  • bug fix: "".format([a,b]) crashes Jmol
  • NEW FEATURE:
  • load filter "addBonds"
  • processes _struct_conn records
  • inter-group connections only
  • includes _struct_conn bond types:
  • covale covalent bond
  • covale_base covalent modification of a nucleotide base
  • covale_phosphate covalent modification of a nucleotide phosphate
  • covale_sugar covalent modification of a nucleotide sugar
  • disulf disulfide bridge
  • metalc metal coordination
  • ignores _struct_conn bond types:
  • hydrog hydrogen bond mismat mismatched base pairs modres covalent residue modification saltbr ionic interaction new feature:
  • load *1crn*
  • loads PDBe "updated" CIF files to allow CONECT-like bond creation -- for example, http://www.ebi.ac.uk/pdbe/static/entry/1h68_updated.cif -- suitable replacement for PDB CONECT
  • processes _chem_comp_bond and _struct_conn categories -- presence of _chem_comp_bond will process _struct_conn as well, regardless of filter "addbonds" (because _chem_comp bonds are only intra-group, and for full

New in Jmol 14.3.15 2015.08.08 Beta (Aug 9, 2015)

  • new feature: atom property "monomer" same as %g
  • new feature: atom property "seqcode" same as %r
  • new feature: load "test.pdb" from write property atom no temperature now restores values for atomno and temperature for points on plot
  • bug fix: label %g does not indicate group index in chain
  • bug fix: JSmol does not recognize label %W %g %r %O etc. with single digits where there is no %[xxx] equivalent
  • bug fix: "print stateVersion" not reporting as documented.
  • bug fix: write property atomno temperature "test.pdb" does not preserve long residue names from CIF files or long atom names from other file types

New in Jmol 14.3.15 2015.07.03 Beta (Jul 13, 2015)

  • bug fix: mmCIF reader does not recognize load MODEL
  • bug fix: PDB reader should be reading load "" [1 3 4] as MODEL record numbers, not sequential numbers
  • bug fix: load MODELS "" [1 3 4] does not work (although load "" [1 3 4], without with MODELS keyword, works)

New in Jmol 14.2.15 2015.07.09 (Jul 13, 2015)

  • bug fix: load files "xxx.png|xxxx" "xxx.png|zzzz" not read from state properly
  • bug fix: polyhedra not saved in state property
  • bug fix: moving atoms with 4x4 matrix not saved in state
  • bug fix: moving of an atom having a polyhedron fails to move the polyhedron as well
  • new feature: smiles2.find("SMILES",smiles1, asMap, allMappings)

New in Jmol 14.3.15 2015.06.19b Beta (Jun 20, 2015)

  • new feature: MACRO command
  • runs predefined script, generally defining new functions of general use
  • contributions welcome! -- will be expanded
  • bug fix: AFLOW binary file reader can fail with certain VASP formats containing both in-line atom labels and atom elements prior to #elements line.

New in Jmol 14.3.15 2015.06.11 Beta (Jun 11, 2015)

  • bug fix: polyhedra broken for number of vertices > 6.
  • needed smaller default distanceFactor (set to 1.5; formerly 1.85)
  • this setting is for any

New in Jmol 14.3.10_2014.11.27 Beta (Nov 27, 2014)

  • bug fix: SPIN BRANCH {atomno=2} {atomno=1} does not work code: scriptExt.IsoExt splits CmdExt into two parts -- (note this will require changes to build_03_tojs_stable)
  • code: simplification of SurfaceGenerator
  • bug fix: JVXL files do not record selected contour bug fix: isosurface CONTOUR -n broken (in Jmol 12)
  • bug fix: isosurface "t.jvxl" loading of contoured planes broken
  • bug fix: isosurface plane xy map property atomno broken every other time used
  • new feature: isosurface contour 0 "t.jvxl" will override contour selected in JVXL file
  • new feature: isosurface CONTOUR n i -- n contours; i-th only
  • FEATURE CHANGE: For the ISOSURFACE command, there is an undocumented syntax that the CUTOFF keyword prior to a number is optional, as in "ISOSURFACE 2.0". This was never documented and was never shown in any examples. This change is to require the CUTOFF keyword
  • new feature: isosurface LATTICE {i j k} FIXED -- creates an isosurface from periodic volumetric data with the specified number of unit cells -- "fixed" in the sense that the operation is at load time not at rendering, allowing slabbing and use of WITHIN
  • new feature: isosurface UNITCELL x.x .... -- for periodic lattices only -- adjusts grid by x.x in fractional coordinates -- caution is advised, as the grid is expanded in this process, leading to more grid points and more memory required -- negative x.x results in a selection of a subset of the data centered on the center of the unit cell

New in Jmol 14.3.9_2014.11.23 Beta (Nov 24, 2014)

  • bug fix: isosurface slab plane -xy not recognizing "-"
  • bug fix: PNGJ writing broken bug fix: VASP CHGCAR reader not recognized for primitive cell
  • bug fix: Euler ZYZ and ZXZ for quaternion({0 0 1},theta) where theta < 0 in error

New in Jmol 14.2.9 (Nov 19, 2014)

  • new feature: VASP CHGCAR reader
  • new feature: VASP CHGCAR isosurface reader
  • new feature: load HISTORY "saved.his" (Gabor Oszlanyi)
  • loads command history with script in saved.his
  • new feature: CTRL-PAGE_UP CTRL-PAGE_DOWN in console (Gabor Oszlanyi)
  • searches for next instance of current start of command up or down command history
  • new feature: capture END
  • closes capture without annoying popup message
  • also for capture CANCEL and just CAPTURE
  • new feature: transparent GIF using WRITE GIFT "xxx.gif"
  • new feature: GIF images use dithering to approximate full palette.
  • new feature: CAPTURE "file.gif" 10 transparent
  • or CAPTURE "file.gift" -- "gift" automatically changed to "gif"
  • new feature: CAPTURE "filename0000.png"
  • captures set of PNG files
  • 0000 is not required
  • new feature: CAPTURE "filename0000.gif"
  • captures set of GIF files
  • 0000 IS required in order to distinguish this from animated GIF
  • bug fix: set labelOffset {1 2 3} or set labelOffset [1 2 3 4 5 6 7]
  • fails if selection does not contain a label at each selected atom
  • bug fix: Molden reader fails to read orbitals if [GEOCONV] is present
  • bug fix: JmolVersion 14.3.3_2014.07.27 broke ligand bond reading when fetching ligands.
  • mmCIF reader was not being selected by the Resolver
  • Requires an increment of version number to 14.3.9
  • bug fix: slightly better GIF processing
  • bug fix: GIF writer not properly handling large numbers of colors
  • use of CIE L*a*b for color quantification
  • nearly identical to GIMP
  • uses MEAN_cut (not MEDIAN_cut)
  • uses Floyd-Steinberg dithering
  • will not discolor background (as GIMP will do)
  • bug fix: GIF and PPM writing broken in JavaScript
  • initial putString improperly forces string buffer mode in OC (Output Channel)
  • bug fix: WRITE command should remove "t" or "j" in WRITE xxx.PNGJ, WRITE xxx.PNGT, WRITE xxx.GIFT
  • specifically when no PNGJ, GIFT, or PNGT designation is made.
  • bug fix: PDB reader limited to 20 connections per atom
  • bug fix: up-arrow in console may not return command if contains unicode
  • bug fix: antialiasing can subtly change background color
  • bug fix: working on GIF writer -- some success with 256 colors using median-cut with RGB
  • bug fix: GIFT (transparent-background GIF) dithering transparent background
  • bug fix: Legendre for U not implemented in msCIF reader - preliminary
  • bug fix: Legendre for D,U in Jana2006 reader not implemented - preliminary
  • code: code clean-up in GData, Graphics3D, and Export3D
  • code: PDB reader CONECT efficiency

New in Jmol 14.3.7_2014.10.13 Beta (Oct 15, 2014)

  • new feature:
  • modulation occupancy settable using {*}.occupancy = {*}.modulation('O',t)
  • bug fix: msCIF reader superspace group operators with mixing of x1,x2,x3 into x4,x5 was still not quite correct.
  • bug fix: data "occupancy set" spelled wrong in state

New in Jmol 14.2.7 (Oct 13, 2014)

  • feature change: DSSR reference to "lonePairs" changed to "isolatedPairs"
  • select within(dssr,"isolatedPairs") preferred
  • select within(dssr,"lonePairs") still OK
  • bug fix: msCIF reader incorrectly handling multiple Legendre orders
  • bug fix: msCIF reader incorrectly handling superspace operators with x1,x2,x3 mixed into x4,x5
  • bug fix: CONTACT FULL does not report proper volume (Young ho Jhon)
  • bug fix: (Java only) write FILE fails for string (copy/pasted) data

New in Jmol 14.3.6_2014.08.17 Beta (Aug 18, 2014)

  • bug fix: modulated magnetic moment scaling by VECTORS MAX x.x not saved in state for modulations that are 0,0,0.
  • bug fix: magnetic CIF reader not automatically showing modulation
  • bug fix: load SUPERCELL {x y z} not working correctly in terms of packing
  • bug fix: load SUPERCELL not working correctly with modulation or magnetic

New in Jmol 14.2.4 (Aug 4, 2014)

  • bug fix: annotation atom sets not adjusted for added hydrogens
  • bug fix: 14.3.3_2014.08.02 broke mmCIF reader
  • bug fix: BinaryDocument (Spartan file) reading broken in 14.1.12_2014.03.18
  • new feature: point({x,y,z}, true) TO screen coordinates
  • new feature: point({sx,sy,sz}, false) FROM screen coordinates
  • bug fix: move+moveto/zoomto still an issue.
  • new feature: load *1cbs/dom
  • new feature: load *1cbs/val
  • new feature: load *1cbs/all
  • ew feature: label %[validation.xxxx]
  • new feature: set hoverlabel "%[validation.xxxx]"
  • new feature: select within(validation, "clashes where value>3")
  • new feature: print getProperty("validationInfo[select * where _type='clashes']", atomset)
  • new feature: print getProperty("domainInfo[select * where _type='SCOP']")
  • new feature: SQL NOCACHE flag
  • new feature: SHOW DOMAINS "some info"
  • new feature: SHOW DOMAINS " all"

New in Jmol 14.2.2 (Jun 30, 2014)

  • bug fix: MCIF reader misreads magnetic symmetry operators involving xyz scaling
  • bug fix: isosurface "=3hyd" AS "3hyd.omap" fails to save proper file (error in seek() method of javajs.util.binaryDocument)

New in Jmol 14.2.1 (Jun 30, 2014)

  • bug fix: zz = write("coord") should write untransformed coordinates in XYZ format. It is writing untransformed coordinates in MOL format.
  • bug fix: zz = write("coord", "MOL") should write transformed coordinates in MOL format. It is writing untransformed coordinates.
  • bug fix: write COORD should display untransformed coordinates in XYZ format in the console, but it does not. It writes a JPG file named "coord".
  • bug fix: MCIF reader not reading magnetic centerings 1/3, 2/3
  • bug fix: JSV jsvAddHighlight broken
  • bug fix: JSmol HTML5 console broken for Safari and Chrome
  • bug fix: CASTEP phonon .geom file reading broken

New in Jmol 14.2.0 (Jun 14, 2014)

  • new feature: readers with unit cells may load as trajectories
  • bug fix: CASTEP reader broken for multiple cells and geometry optimization

New in Jmol 14.0.17 (Jun 10, 2014)

  • Contains the changes from the previous Beta release

New in Jmol 14.1.17 Beta (Jun 9, 2014)

  • FEATURE CHANGE:
  • jmolCommandInput 6th parameter added is default value -- defaults to "help"
  • FEATURE CHANGE: set useArcBall removed:
  • no longer necessary; never documented
  • arcBall is always used anyway
  • FEATURE CHANGE: removed UNITCELL "xxx" where xxx is an isosurface ID:
  • undocumented
  • not necessary, as UNITCELL $xxx or UNITCELL isosurface xxx does as well
  • conflicts with new UNITCELL "parent" and other unit cell types
  • FEATURE CHANGE: REMOVED: set fractionalRelative
  • an odd quantity -- related specifically to scripts commands using {1/1 1/2 1/3} and cell=nnn
  • Its use with cell= was never documented.
  • It makes no sense to change the unit cell and not change the meaning of {1/1 1/2 1/3} and cell=nnn
  • Only relates to situations where the unit cell has been offset.
  • Its presence caused unitcell [{origin} {a} {b} {c}] to fail.
  • It should never have been set in state, as it has nothing to do with the state
  • FEATURE CHANGE: default space group names for Int. Tables # 39, 41, 64, 67, 68 added
  • new feature: x= format("JSON", data):
  • simple way to generate JSON code.
  • new feature: x = format("base64", data):
  • creates base64-encoding of the data
  • data can be an array, a byteArray, a string, or a base64-encoded array
  • prepends the string with ";base64,"
  • new feature: x = format("byteArray", data):
  • creates byte array from the data
  • data can be an array, a byteArray, a string, or a base64-encoded array
  • new feature: x = format("array", data):
  • data can be an array, a byteArray, a string, or a base64-encoded array
  • turns byteArrays and strings into integer arrays
  • copies arrays if data is an array
  • new feature: load xxxx filter "CELL=va,vb,vc;oa,ob,oc":
  • generic cell transformation during load
  • applicable to any crystallographic file
  • must be the LAST element of a filter
  • implicit "packed"; can be avoided by using nopackcell=...
  • operators are applied BEFORE this transformation
  • can be expanded with {i j k} or {mmm nnn 1} with or w/o PACKED
  • can be used to create a supercell with or without offset
  • reversed with "cell=!a,b,c:0,0,1/2"
  • new feature: load "cell=parent" or "cell=standard":
  • for MCIF files (magnetic spin CIF files
  • later, UNITCELL "conventional" displays conventional cell
  • new feature: set showUnitCellInfo TRUE (default):
  • set FALSE to hide unit cell information display
  • new feature: unitcell "type"
  • type can be "standard" or "parent" for now derived from CIF records
  • "primitive" may follow:
  • unitcell "standard"
  • unitcell "parent"
  • unitcell "conventional"
  • new feature: unitcell "abc_offset"
  • abc_offset is of the form "a,b,c;0,0,0" where a, b, and c, can be any expression involving a, b, and c and 0 can be an offset
  • numbers can be expressed fractionally or as decimals
  • offset is optional, but semicolon is not
  • effect is cumulative -- unit cell is NOT first restored
  • reversed using !
  • new feature: unitcell {555 575 0}:
  • 0 here means "draw these cells without internal lines"
  • (currently) .uxyz does not scale
  • new feature: unitcell OFFSET and RANGE:
  • explicit parameters for unitcell {i j k} and unitcell {nnn mmm x}
  • new feature: unitcell BOUNDBOX:
  • allows calculation of positions relative to boundbox using fractional coordinates
  • new feature: x.push(key,value) for associative array:
  • same as x.key = value; seems appropriate
  • new feature: x.pop("key") for an associative array:
  • same as x - "key"; just seems more appropriate
  • new feature: load ORIENTATION or load DATA "...orientation...":
  • loads a file and preserves current orientation
  • creates saved orientation "preload"
  • shortcut for save orientation preload;load....;restore orientation preload
  • new feature: V3000 reading of DATA SGROUP records
  • new feature: moveTo AXIS [a,b,c,x,y,z]:
  • for example: moveTo AXIS a
  • rotates the model smoothly to a crystallographic or cartesian axis.
  • in the case of abc, the rotation places the remaining two axes to the right and down (International Tables standard)
  • in the case of xyz, the rotation places the remaining two axes to the right and up (standard Cartesian orientation)
  • for abc, if no unit cell is available, a simple {1 1 1 90 90 90} unit cell is used
  • added to application and popup View menus
  • new feature: JSmol: allow for a user callback for customization of menu
  • if (Jmol._showMenuCallback)
  • Jmol._showMenuCallback(menu, x, y);
  • new feature: show(xxx) function:
  • same as script("show " + xxx)
  • new feature: set showUnitCellDetails TRUE (default):
  • FALSE removes a,b,c,alpha,beta,gamma lines
  • new feature: unitcell RESET (or RESTORE):
  • returns unit cell to original values and removes offset and scaling
  • resets width to fine line
  • new feature: restore UNITCELL:
  • returns unit cell to original values and removes offset and scaling
  • new feature: show symop n "fmatrix"
  • new feature: show symop @1 @2 "fmatrix":
  • gives rational fractional matrix
  • new feature: BilbaoReader NONORM option -- reads displacements as actual values, not normalized
  • new feature: load ... filter "symop=...":
  • list of numbers separated by space, for example
  • load quartz.cif packed filter "symop=2"
  • load quartz.cif packed filter "symop=2 3"
  • new feature: set echo depth x.x for standard echos:
  • works for 3D echos now as well as 2D echos
  • values in percent of depth
  • x.x >= 1000 are (x.x % 1000) in front of the 3D position
  • x.x

New in Jmol 14.1.16 Beta (May 29, 2014)

  • FEATURE CHANGE: jmolCommandInput 6th parameter added is default value - defaults to "help"
  • FEATURE CHANGE: set useArcBall removed:
  • no longer necessary
  • arcBall is always used anyway
  • FEATURE CHANGE: removed UNITCELL "xxx" where xxx is an isosurface ID:
  • undocumented
  • not necessary, as UNITCELL $xxx or UNITCELL isosurface xxx does as well
  • FEATURE CHANGE: REMOVED: set fractionalRelative:
  • an odd quantity -- related specifically to scripts commands using {1/1 1/2 1/3} and cell=nnn
  • Its use with cell= was never documented.
  • It makes no sense to change the unit cell and not change the meaning of {1/1 1/2 1/3} and cell=nnn
  • Only relates to situations where the unit cell has been offset.
  • Its presence caused unitcell [{origin} {a} {b} {c}] to fail.
  • It should never have been set in state, as it has nothing to do with the state
  • FEATURE CHANGE: default space group names for Int. Tables # 39, 41, 64, 67, 68 added
  • new feature: moveTo AXIS [a,b,c,x,y,z]
  • rotates the model smoothly to a crystallographic or cartesian axis.
  • in the case of abc, the rotation places the remaining two axes to the right and down (International Tables standard)
  • in the case of xyz, the rotation places the remaining two axes to the right and up (standard Cartesian orientation)
  • for abc, if no unit cell is available, a simple {1 1 1 90 90 90} unit cell is used
  • added to application and popup View menus
  • new feature: unitcell "type":
  • type can be "standard" or "parent" for now derived from CIF records
  • "conventional" and "primitive" may follow
  • unitcell "standard"
  • unitcell "parent"
  • new feature: unitcell "abc_offset"
  • abc_offset is of the form "a,b,c;0,0,0" where a, b, and c, can be any expression involving a, b, and c and 0 can be an offset
  • numbers can be expressed fractionally or as decimals
  • offset is optional, but semicolon is not
  • effect is cumulative -- unit cell is NOT first restored
  • reversed using !
  • new feature: JSmol: allow for a user callback for customization of menu:
  • if (Jmol._showMenuCallback)
  • Jmol._showMenuCallback(menu, x, y);
  • new feature: show(xxx) function:
  • same as script("show " + xxx)
  • new feature: set showUnitCellDetails TRUE (default):
  • FALSE removes a,b,c,alpha,beta,gamma lines
  • new feature: unitcell RESET (or RESTORE):
  • returns unit cell to original values and removes offset and scaling
  • resets width to fine line
  • new feature: restore UNITCELL:
  • returns unit cell to original values and removes offset and scaling
  • new feature: show symop n "fmatrix":
  • new feature: show symop @1 @2 "fmatrix"
  • gives rational fractional matrix
  • new feature: BilbaoReader NONORM option -- reads displacements as actual values, not normalized
  • new feature: load ... filter "symop=...":
  • list of numbers separated by space, for example:
  • load quartz.cif packed filter "symop=2"
  • load quartz.cif packed filter "symop=2 3"
  • new feature: set echo depth x.x for standard echos:
  • works for 3D echos now as well as 2D echos
  • values in percent of depth
  • x.x >= 1000 are (x.x % 1000) in front of the 3D position
  • x.x

New in Jmol 14.1.15 Beta (May 7, 2014)

  • bug fix: CIF reader not filtering atoms by element
  • bug fix: structure command may not properly remove residues from structures (F. Reichmann)
  • bug fix: FRAME n setting frame to n - 1. (F. Reichmann)
  • bug fix: unitcell {0 0 0}; in state leaves unit cell on
  • bug fix: modulation of anisotropic parameters broken
  • bug fix: Jana2006 reader does not accept filter "MODAVE"
  • bug fix: msCIF with filter "MODAXES=X" broken
  • new feature - reset PRINT:
  • clears the output buffer (scriptWait, scriptEcho, evaluateVar
  • bug fix: color property x does not pass script check, so not allowed in web command box
  • bug fix: echo "@{xxx}" may fail
  • but fix: print @b fails for referred variable an array
  • bug fix: xxx.format("%8.-3p") does not work
  • bug fix: [array].format("%8.3p") does not work
  • bug fix: PDB Reader skips first ANISOU record
  • bug fix: SFTP not supported
  • bug fix: fix for measurements not updating with modulation x.x
  • new feature: replace() - no arguments means "clean whitespace to single space and trim"
  • new feature: replace(x, y, TRUE) - all occurrences of characters of x will be replaced with y.
  • new feature - mCIF reader:
  • Bilbao Crystallographic Server format
  • magnetic extension to CIF reader
  • new feature - set vectorsCentered:
  • centers vibration vector on atom
  • vector is never animated
  • useful for magnetic/spin properties
  • new feature - select xyz > 1.0:
  • xyz, fxyz, fuxyz, uxyz, vxyz
  • uses length

New in Jmol 14.1.14 Beta (Apr 26, 2014)

  • new feature: getProperty(x, SQL_query):
  • Full SQL for any Jmol associative array.
  • Result is an array if x is an array.
  • new feature: LIKE operator extended to atom expressions:
  • as for other atom expressions, is not case-sensitive
  • new feature: "like" operator, strings only:
  • a LIKE "x" a equals x
  • a LIKE "*x" a ends with x
  • a LIKE "x*" a starts with x
  • a LIKE "*x*" a contains x
  • new feature: rich SQL logic in GETPROPERTY, getProperty(), and within(dssr,"xxxx.yyy..."):
  • syntax: [SELECT keys WHERE expression]
  • keys indicating only one key, such as "nt1", return just the value
  • keys may be a LIKE wildcard such as "nt*" or "*nt" or "*nt*"also return just the value(s)
  • keys * or */* means "return all values as an associative array"
  • keys */nt1,nt2 means "return a new associative array including only keys nt1 and nt2"
  • keys */nt* means "return a new associative array including all keys starting with nt"
  • if drilling to this associative array from a list, * or */... returns an array of key/value pairs
  • expression may be any standard Jmol expression that does not involve actual Jmol variables (instead, the variable names should all be the keys, and their values will be that given in the key:value pair)
  • new feature: JANA2006 reader adds M40 molecular group support:
  • no TLS modulation
  • no local axes (third header line of pos# record)
  • new feature: calculate structure dssr:
  • builds auxiliaryInfo.models.n.dssr
  • displays summary report
  • complements calculate structure dssp, except it is done by the x3dna server at Columbia, not Jmol
  • new feature: (application only) -a --autoAnimationDelay:
  • delay time in seconds for press-and-hold operation of toolbar animation buttons (default 0.2; set to 0 to disable)
  • new feature: calculate hbonds structure:
  • now includes DSSR-calculated bonds for nucleic acids
  • new feature: select leadAtom(s):
  • selects *.CA, *.P and terminal O in nucleotides
  • new feature: set backboneSteps TRUE:
  • draws base pair steps between dssr-identified base pairs
  • new feature: load =1msy/dssr:
  • very simple RCSB/DSSR connection
  • loads both files:
  • new feature: select within(dssr,"subset"):
  • subsets include
  • optionally followed by ".n" where n is a number starting with 1
  • optionally followed by ".linkedBy" for loops, bulges, and junctions
  • optionally followed by ".res1" or ".res2"
  • can accommodate SQL
  • results are cached for individual models
  • new feature: select x = [array or array variable]:
  • implied OR
  • operators other than equals use implied AND
  • new feature: DSSR server:
  • load files "=1d66" + "=dssr/1d66"
  • uses new "concatenate" notation to combine data from two sources
  • after loading, try
  • new feature: array.keys.all:
  • drills down in sequential or associative arrays
  • gives all keys as well as number of array elements
  • new feature: array.join():
  • creates a flat array from an array of arrays:
  • new feature: DSSR output reading:
  • Defining the (Secondary) Structures of RNA
  • use system command x3d-dssr.exe --input=xxxx.pdb > xxxx.out
  • then in Jmol: load files "xxxx.pdb" + "xxxx.out"
  • all DSSR information will be in auxiliaryInfo.models.dssr with the following keys:
  • aMinorMotifs
  • basePairs
  • bulges
  • coaxialStacks
  • hairpinLoops
  • helices
  • internalLoops
  • junctions
  • kinkTurns
  • kissingLoops
  • lonePairs
  • multiplets
  • riboseZippers
  • singleStrandedSegments
  • stems
  • all entries are lists.
  • most of these list entries have "nt" entries, and those are nucleotide residue identifiers, so Jmol's getProperty() "drill-down" capabilities allow for:
  • x = getProperty("auxiliaryInfo.models.1.dssr.basepairs.nt") select @{x}
  • bug fix: halos ON fails for small vdw radii
  • bug fix: CIF reader with bsModels fails
  • bug fix: reading concatenated files from PNGJ with model selected
  • bug fix: reading gzip files from PNGJ fails when concatenated
  • bug fix: group1 codes for nonstandard residues not read from mmCIF (_struct_ref_seq_dif.db_mon_id) or PDB (SEQADV)
  • bug fix: select group="ALA" fails due to select group ..... option
  • bug fix: getProperty("auxiliaryInfo") fails for JavaScript
  • bug fix: Gaussian FCHK file reader fails when no SP coefficients
  • bug fix: set defaultVDW not working
  • bug fix: color isosurface range broken (Lucy Cusinato)
  • bug fix: script compiler error: x.x*x.x requiring space: x.x * x.x (Alexander Rose)
  • bug fix: lost H atoms of PDB-designated water
  • bug fix: mouse rotation can cause loss of model
  • bug fix: Jana2006 reader not reading groups correctly (still work TODO)
  • bug fix: functions called in script defined by script called by this script must be lower case.
  • bug fix: clickable atoms may not be considered visible for hover
  • bug fix: select color=red should be color="red" to allow for variable after "color="
  • code: upgrade of Apache Commons CLI (Command Line Interface) to 1.2 from 1.0
  • code: T4 generalized as extending T3, allowing 4D mesh reading.
  • code: implementation of Andrew Hanson's 3D Ball Roll mouse algorithm:
  • no significant practical improvement, but nicer mathematics
  • a bit more involved, but this is once per mouse move. Doesn't matter.

New in Jmol 14.1.13 Beta (Apr 4, 2014)

  • bug fix: LOAD command cannot force XML types:
  • load xmlvasp::vasprun.xml
  • load vasp::vasprun.xml - option without "xml" required only for Odyssey, as there are both Odyssey and XmlOdyssey
  • bug fix: application file open fails when preview is unchecked in Edit|Properties
  • bug fix: vectors using vibration scale, not vector scale
  • bug fix: vector 0.01 misread as if integer "20" (pixel width)
  • bug fix: Gaussian fchk+freq needs to propagate bonding as well to modes
  • bug fix: JDX reading of older Chime-related ##PEAKASSIGNMENTS records
  • bug fix: polyhedra display improperly when some vertex atoms are hidden (Nick Greeves)
  • code: Huge refactoring for JavaScript and judicious post-Google Closure Compiler editing serves to reduce code size by 5% -- to 1.38 MB for core.z.js partially due to additional directory changes in JavaScript and partially due to removing unnecessary final static variable defs. (These are just constants that are never referred to.)
  • bug fix: JmolAppletSigned0.jar missing export classes (POV-Ray, VRML, for example)
  • bug fix: Mac Spartan spardir reading - for web, use zipped up version of spardir
  • new feature: Gaussian fchk file reader
  • bug fix: A=[]; A[3] = 5 not working
  • new feature: var x,y,z:
  • commas optional
  • similar to JavaScript
  • initializes the variable to ""
  • bug fix: var x not isolated to script context
  • bug fix: ellipsoid command broken

New in Jmol 14.0.13 (Apr 2, 2014)

  • bug fix: changes to var incomplete
  • bug fix: JmolAppletSigned0.jar missing export classes (POV-Ray, VRML, for example)
  • bug fix: Mac Spartan spardir reading - for web, use zipped up version of spardir
  • new feature: Gaussian fchk file reader
  • bug fix: A=[]; A[3] = 5 not working
  • new feature: var x,y,z:
  • commas optional
  • similar to JavaScript
  • initializes the variable to ""
  • bug fix: var x not isolated to script context
  • bug fix: ellipsoid command broken

New in Jmol 14.1.12 Beta (Mar 31, 2014)

  • new feature: JSpecView getSolutionColor fill/all/none/false:
  • any combination of these four flags
  • fill: fill area under a VIS spectrum with color
  • none: remove fill
  • all: do this for all spectra, not just the selected spectrum
  • false: use interpolation method rather than curve fitting
  • new feature: JSpecView PEAK command -- adds PEAK GC/MS "#1":
  • #1 here indicates "MS for first GC peak"
  • new feature: x= format("JSON", data) - simple way to generate JSON code.
  • new feature: x = format("base64", data):
  • creates base64-encoding of the data
  • prepends the string with ";base64,"
  • new feature; binary byte array:
  • from array(s) where s starts with ";base64,"
  • from binary associative arrays
  • new feature: binary associative arrays:
  • Any array containing "$_BINARY_$" as a key.
  • Values may contain raw byte array data, but need not.
  • Can be expanded or changed, just like any associative array.
  • Seen in string form when in a string context.
  • .type of elements will report "byteArray"
  • new feature: x = write("PNGJ"):
  • Creates a binary associative array equivalent to writing a PNGJ file
  • Contains keys "_IMAGE_", "JmolManifest.txt", "state.spt" and all associated files.
  • new feature: write VAR x "filename" or write @x "filename":
  • Where x is a binary array or a binary associative array.
  • When x is a binary array, writes binary data to a file.
  • When x is an array, creates a ZIP file (or PNGJ file, if _IMAGE_ is present and is PNG format), automatically converting strings starting with ";base64," to byte arrays in the ZIP file. To do the same with x a binary array, just use @{array(x)} instead of @x.
  • new feature: x = load("myfile",true):
  • Creates a binary associative array variable x that contains the contents of the file file.
  • data are stored as raw bytes.
  • If the file is a standard file, the key "_DATA_" will hold the file data.
  • If the file is a PNGJ file, the key "_IMAGE_" will hold the image data, and additional files are keyed by file name.
  • If the file is a zip file, the files are keyed by file name.
  • Note that x = load("myfile") without "true" loads the contents of the file into x and, if the file is a PNGJ or ZIP file, just loads the list of files in the collection, not the actual data.
  • new feature: filter "ATOM" opposite of filter "HETATM":
  • new feature: load ASYNC ....
  • new feature: script ASYNC .... load and script ASYNC start a new asynchronous thread to load the file and then continue after that / JSmol/HTML5 only; others ignore
  • new feature: Mol3D reader
  • new feature: show CHEMICAL STDINCHIKEY
  • new feature: show CHEMICAL STDINCHI
  • new feature: load ":inchikey:xxxxx" -requires STANDARD InChIKey (as from {*}.find("chemical", "stdinchikey")
  • new feature: x = {*}.find("chemical",type):
  • type is "smiles", "inchi", "stdinchi", "inchikey", "stdinchikey"
  • uses NCI/CADD CIR
  • Note that unlike SHOW CHEMICAL, "InChIKey=" and "InChI=" are dropped
  • Note that unlike SHOW CHEMICAL, trailing new line char is removed
  • new feature: x = smilesString.find("chemical",type):
  • type is "smiles", "inchi", "stdinchi", "inchikey", "stdinchikey"
  • allows going directly from SMILES to other quantities
  • uses NCI/CADD CIR
  • Note that unlike SHOW CHEMICAL, "InChIKey=" and "InChI=" are dropped
  • Note that unlike SHOW CHEMICAL, trailing new line char is removed
  • bug fix: NWChem reader broken
  • bug fix: JSpecView GC/MS issues
  • bug fix: JSmol callbacks should refer to "jmolApplet0" not "jmolApplet0_object"
  • bug fix: set cameraDepth not working - note that loading of PyMOL files affects this setting, which is reset only using the INITIALIZE command
  • bug fix: getProperty() function does not recognize a list as a variable and returns it as a string
  • bug fix: Dsn6Reader.java misnamed, causing EDS map file load error in JavaScript only. (I did not know that was even possible!)
  • bug fix: java.io.dataStreamReader.readShort() does not take into account JavaScript equivalence of short and int, causing "-1" to be read as 65535.
  • bug fix: minimum modulationScale set to 1; should be 0.1.
  • bug fix: translucent echo backgrounds broken
  • bug fix: filter "HETATM" does not work
  • bug fix: write XYZ broken by changes to the way arrays are shown with the PRINT command
  • bug fix: x = adfjladj(3) crashes Jmol
  • bug fix: x[0] = "tst" "here" "now" should cause script exception
  • bug fix: isosurface MOLECULAR delivers wrong surface
  • bug fix: spacefill ionic not working
  • bug fix: set cameraDepth disabled
  • bug fix: some translations not being carried out.
  • bug fix: msCIF reader not accepting normalized commensurate Fourier vectors
  • bug fix: JSmol/HTML MSIE local installation AJAX working again (still no binary files)
  • code: variable compression issues in Jmol and JSV
  • code: org.jmol.io and org.jmol.io2 consolidated
  • code: select water hard-coded for speed (2 x faster)
  • code: careful attention to loading of biomolecules results in 160K core bio load savings
  • code: JavaScript core load reduced by 2% (30KB) by changing high-frequency global name "viewer" to "vwr"
  • code: refactoring of image writing code to javajs.img for general use
  • code: refactoring of zip code into javajs.util for general use
  • code: refactoring of minimization code saves 10KB
  • code: isosurface MOLECULAR speed-up by a factor of 10. - better handling of constants during iteration / better identification of unnecessary edges and faces

New in Jmol 14.1.11 Beta (Mar 31, 2014)

  • FEATURE CHANGE: associative array .count, .length, .lines removed:
  • specifically for associative arrays, nothing more
  • these were unnecessary equivalents of .size
  • change will not be incorporated into Jmol 14.0
  • new feature: JSpecView readers for ACD/Labs annotated MS, IR, Raman, and UV/VIS:
  • displays fragments for MS (highlights atoms)
  • highlights atoms involved in an IR/Raman stretch
  • UV/VIS and Raman untested
  • new feature: JSpecView and Jmol read ACD/Labs assigned spectra block JDX files:
  • 2D MOL files with missing hydrogens on hetero atoms.
  • fully synced
  • drag-drop enabled
  • new feature: associative array standard "dot" notation:
  • a.test = 33
  • print a.test
  • caveat: cannot do this with a.keys, a.size, or a.type
  • not implemented in Jmol 14.0 because of the feature change
  • new feature: associative array alternative ".." syntax:
  • same as JavaScript and Java, but ".." instead of "."
  • new feature: .covalentRadius added as more appropriate alias for .covalent
  • new feature: .bondingRadius added as more appropriate alias for .ionic
  • new feature: set bondingVersion:
  • 0: Jmol default, from OpenBabel 1.100.1, uses a mix of covalent and ionic radii for autobonding
  • 1: Pyykko and Atsumi, 2009, changes the distance criteria for autobonding to be specifically covalent
  • saved in state only for file loading; should be unchanged after state loading.
  • new feature: color(color1, color2, n, asHSL):
  • returns a color scheme as a string
  • colors can be of any nature -- string or point, name or rgb
  • n colors; simple interpolation from color1 to color2
  • asHSL must be TRUE or FALSE; when TRUE, uses hue/saturation/luminance instead of rgb gradient
  • new feature: added simpler associative array notation: [key:value,...]:
  • no quotes required
  • supplements {"key":value,...} where quotes are still required
  • due to conflict with atom set chain descriptors such as {a:b}.
  • new feature: catchable THROW:
  • as in Java or JavaScript, allows a way of jumping out of a process.
  • outside of try/catch gives the expected error report
  • passes a string as the variable thrown_value
  • can be trapped with try/catch
  • new feature: asynchronous resumable processes:
  • THROW CONTEXT contextName
  • throws a catchable error, but in the process of doing so, creates a script context that allows RESUMING at the point of the throw, unlike anything in JavaScript or Java (or perhaps like a debug mode).
  • if within a try/catch phrase, is handled by catch. in which case the error message is simply the context name.
  • if not within a try/catch phrase just reports - to resume, enter: &contextName
  • essentially provides a callback into the running script, so you could, for example, put a running script on hold while you load a file, check variables, etc., then continue.
  • can be resumed using RESUME CONTEXT or just & followed by the name of the context
  • replaces PAUSE/RESUME, now deprecated.
  • The current context returns to the highest level, however the variables in the context that was thrown are accessible as though the context variable was an associative array.
  • contexts can be restored using &contextName
  • new feature: SAVE CONTEXT contextName:
  • similar to THROW, but does not stop processing. So in the above example, if we change THROW to SAVE, the processing continues, but after it has completed, we can change context variables and run it again.
  • new feature: show SAVED: same as show SAVE
  • new feature: RESUME with arguments is synonymous with RESTORE
  • bug fix: applet language localization skipping translations containing \"
  • bug fix: application language localization does not include defs defined for JmolApplet
  • bug fix: JSpecView/JSME connection with simulated and ACD/Labs annotated spectra
  • bug fix: JSpecView loading simulation now compatible with synced applets
  • bug fix: drag/drop not working for JSV applet
  • bug fix: solid-state NMR calc (Magres) should not apply "nearest-atom-only" algorithm for measure ALL in dipolar coupling measurements
  • bug fix: state contains: zap;load /*data*/ data "append inline"
  • bug fix: zoomto without time goes over 2 seconds, not 1 second
  • bug fix: print "id" + "x" fails (back to 13.2 at least)
  • bug fix: animFrameCallback not reporting for each morph
  • bug fix: inline-if fails if not at end of statement. Bug goes back to at least 11.8
  • bug fix: Jmol math fix for new . notation. needs testing
  • bug fix: state reading broken in most recent version at chemapps
  • bug fix: ++/-- compatibility with no-comma arrays
  • bug fix: print ++b["test"] fails
  • bug fix: ++b["test"] fails
  • bug fix: a[6][8] = "q" not working correctly when a is a string
  • bug fix: {*}.covalent is misleading in that it is a mix of covalent and ionic bonding distances. As such, I have replaced it with data at the Blue Obelisk Data Repository
  • bug fix: try { ... throw ...} catch {....} continues through catch when resumed.
  • bug fix: anonymous context { ..... } not closed
  • bug fix: JSON of 4x4 matrix (M4) fails
  • bug fix: modelkitmode broken for Java in 14.1.10
  • code: unused obrador package removed from application
  • code: JavaScript org.jmol.modelset->JM, org.jmol.modelsetbio->JMB
  • code: org.jmol.util.Quaternion moved to javajs.util.Quat
  • code: Refactoring of script.ScriptEvaluator to make it more manageable

New in Jmol 14.1.10 Beta (Mar 31, 2014)

  • bug fix: color atoms formalcharge not saved in state
  • bug fix: averageAtomPosition never updated.
  • bug fix: load of model with one atom does not set center to that atom
  • bug fix: ==/!= comparison not appropriate for arrays or strings
  • string/string comparison should be case sensitive, but wasn't, (you can use x �99 == y �99 to force no-case comparison)
  • array/array comparison should be element by element and exact
  • assoc.array/assoc.array should be key/value by key/value and exact
  • int/decimal comparison should be simply numerical, always
  • decimal/decimal comparison should be able to be done without the < 1e-6 cutoff, you can now use [x] == [y] for exact numerical comparison
  • string/int and string/decimal comparison should also only be outside of arrays
  • all approximations for type1/type2 should be only outside the context of arrays

New in Jmol 14.1.9 Beta (Mar 31, 2014)

  • bug fix: recently released 14.0.8 introduced a math bug that caused
  • y = "test" + x.f() to be evaluated as ("test" + x).f()
  • bug fix: long-time multiple unary minus bug (at least 6 years!)
  • that print 3 +(- -3) evaluates to 0, not 6.
  • new feature: WRITE "filename" AS type:
  • allows setting type at end of WRITE command using AS
  • meant only for very simple production; no additional parameters.
  • all parameterized cases must use standard notation
  • write PNGJ 300 300 "t.png"

New in Jmol 14.0.12 (Mar 31, 2014)

  • new feature - JSpecView getSolutionColor fill/all/none/false:
  • any combination of these four flags
  • fill: fill area under a VIS spectrum with color
  • none: remove fill
  • all: do this for all spectra, not just the selected spectrum
  • false: use interpolation method rather than curve fitting (see jspecview.common.Visible.java for details)
  • new feature - JSpecView PEAK command:
  • adds PEAK GC/MS "#1"
  • #1 here indicates "MS for first GC peak" summary: We now have general ZIP and image file (including PDF) creation in JavaScript independent of Jmol itself.
  • new feature - x= format("JSON", data):
  • simple way to generate JSON code.
  • new feature - x = format("base64", data):
  • creates base64-encoding of the data
  • prepends the string with ";base64,"
  • new feature - binary byte array:
  • from array(s) where s starts with ";base64,"
  • from binary associative arrays
  • new feature - binary associative arrays:
  • Any array containing "$_BINARY_$" as a key.
  • Values may contain raw byte array data, but need not.
  • Can be expanded or changed, just like any associative array.
  • Seen in string form when in a string context.
  • .type of elements will report "byteArray"
  • new feature - x = write("PNGJ"):
  • Creates a binary associative array equivalent to writing a PNGJ file
  • Contains keys "_IMAGE_", "JmolManifest.txt", "state.spt" and all associated files.
  • new feature - write VAR x "filename" or write @x "filename":
  • Where x is a binary array or a binary associative array.
  • When x is a binary array, writes binary data to a file.
  • When x is an array, creates a ZIP file (or PNGJ file, if _IMAGE_ is present and is PNG format), automatically converting strings starting with ";base64," to byte arrays in the ZIP file. To do the same with x a binary array, just use @{array(x)} instead of @x.
  • new feature - x = load("myfile",true):
  • Creates a binary associative array variable x that contains the contents of the file file. -- data are stored as raw bytes.
  • If the file is a standard file, the key "_DATA_" will hold the file data.
  • If the file is a PNGJ file, the key "_IMAGE_" will hold the image data, and additional files are keyed by file name.
  • If the file is a zip file, the files are keyed by file name.
  • Note that x = load("myfile") without "true" loads the contents of the file into x and, if the file is a PNGJ or ZIP file, just loads the list of files in the collection, not the actual data.
  • new feature:
  • filter "ATOM" opposite of filter "HETATM"
  • new feature - load ASYNC .... script ASYNC:
  • load and script ASYNC start a new asynchronous thread to load the file and then continue after that.
  • JSmol/HTML5 only; others ignore
  • new feature: Mol3D reader
  • new feature: show CHEMICAL STDINCHIKEY
  • new feature: show CHEMICAL STDINCHI new feature: load ":inchikey:xxxxx" requires STANDARD InChIKey (as from {*}.find("chemical", "stdinchikey")
  • new feature - x = {*}.find("chemical",type):
  • type is "smiles", "inchi", "stdinchi", "inchikey", "stdinchikey"
  • uses NCI/CADD CIR
  • Note that unlike SHOW CHEMICAL, "InChIKey=" and "InChI=" are dropped
  • Note that unlike SHOW CHEMICAL, trailing new line char is removed
  • new feature - x = smilesString.find("chemical",type):
  • type is "smiles", "inchi", "stdinchi", "inchikey", "stdinchikey"
  • allows going directly from SMILES to other quantities
  • uses NCI/CADD CIR
  • Note that unlike SHOW CHEMICAL, "InChIKey=" and "InChI=" are dropped
  • Note that unlike SHOW CHEMICAL, trailing new line char is removed
  • bug fix: NWChem reader broken
  • bug fix: JSpecView GC/MS issues
  • bug fix: JSmol callbacks should refer to "jmolApplet0" not "jmolApplet0_object"
  • bug fix: set cameraDepth not working - note that loading of PyMOL files affects this setting, which is reset only using the INITIALIZE command
  • bug fix: getProperty() function does not recognize a list as a variable and returns it as a string
  • bug fix: Dsn6Reader.java misnamed, causing EDS map file load error in JavaScript only. (I did not know that was even possible!)
  • bug fix: java.io.dataStreamReader.readShort() does not take into account JavaScript equivalence of short and int, causing "-1" to be read as 65535.
  • bug fix: minimum modulationScale set to 1; should be 0.1.
  • bug fix: translucent echo backgrounds broken
  • bug fix: filter "HETATM" does not work
  • bug fix: write XYZ broken by changes to the way arrays are shown with the PRINT command
  • bug fix: x = adfjladj(3) crashes Jmol bug fix: x[0] = "tst" "here" "now" should cause script exception
  • bug fix: isosurface MOLECULAR delivers wrong surface
  • bug fix: spacefill ionic not working
  • bug fix: set cameraDepth disabled
  • bug fix: some translations not being carried out.
  • bug fix: msCIF reader not accepting normalized commensurate Fourier vectors
  • bug fix: JSmol/HTML MSIE local installation AJAX working again (still no binary files)
  • code: variable compression issues in Jmol and JSV
  • code: org.jmol.io and org.jmol.io2 consolidated
  • code: select water hard-coded for speed (2 x faster)
  • code: careful attention to loading of biomolecules results in 160K core bio load savings
  • code: JavaScript core load reduced by 2% (30KB) by changing high-frequency global name "viewer" to "vwr"
  • code: refactoring of image writing
  • code to javajs.img for general use
  • code: refactoring of zip code into javajs.util for general use
  • code: refactoring of minimization
  • code saves 10KB
  • code: isosurface MOLECULAR speed-up by a factor of 10:
  • better handling of constants during iteration
  • better identification of unnecessary edges and faces

New in Jmol 14.0.11 (Mar 10, 2014)

  • FEATURE CHANGE: associative array .count, .length, .lines removed
  • specifically for associative arrays, nothing more:
  • these were unnecessary equivalents of .size
  • change will not be incorporated into Jmol 14.0
  • new feature: JSpecView readers for ACD/Labs annotated MS, IR, Raman, and UV/VIS:
  • displays fragments for MS (highlights atoms)
  • highlights atoms involved in an IR/Raman stretch
  • UV/VIS and Raman untested
  • new feature: JSpecView and Jmol read ACD/Labs assigned spectra block JDX files:
  • 2D MOL files with missing hydrogens on hetero atoms.
  • fully synced
  • drag-drop enabled
  • new feature - associative array standard "dot" notation:
  • a.test = 33
  • print a.test
  • caveat: cannot do this with a.keys, a.size, or a.type
  • not implemented in Jmol 14.0 because of the feature change
  • new feature: associative array alternative ".." syntax - same as JavaScript and Java, but ".." instead of "."
  • new feature: .covalentRadius added as more appropriate alias for .covalent new feature: .bondingRadius added as more appropriate alias for .ionic
  • new feature - set bondingVersion:
  • 0: Jmol default, from OpenBabel 1.100.1 uses a mix of covalent and ionic radii for autobonding
  • 1: Pyykko and Atsumi, 2009 changes the distance criteria for autobonding to be specifically covalent
  • saved in state only for file loading; should be unchanged after state loading.
  • new feature - color(color1, color2, n, asHSL):
  • returns a color scheme as a string
  • colors can be of any nature
  • string or point, name or rgb
  • n colors; simple interpolation from color1 to color2
  • asHSL must be TRUE or FALSE;
  • when TRUE, uses hue/saturation/luminance instead of rgb gradient
  • new feature - dded simpler associative array notation: [key:value,...]
  • no quotes required
  • supplements {"key":value,...} where quotes are still required due to conflict with atom set chain descriptors such as {a:b}.
  • new feature: catchable THROW
  • new feature - asynchronous resumable processes:
  • THROW CONTEXT contextName
  • throws a catchable error, but in the process of doing so, creates a script context that allows RESUMING at the point of the throw, unlike anything in JavaScript or Java (or perhaps like a debug mode).
  • if within a try/catch phrase, is handled by catch. in which case the error message is simply the context name.
  • if not within a try/catch phrase just reports to resume, enter: &contextName
  • essentially provides a callback into the running script, so you could, for example, put a running script on hold while you load a file, check variables, etc., then continue.
  • can be resumed using RESUME CONTEXT or just & followed by the name of the context: &test resume context &test
  • replaces PAUSE/RESUME, now deprecated.
  • The current context returns to the highest level, however the variables in the context that was thrown are accessible as though the context variable was an associative array.
  • contexts can be restored using &contextName
  • new feature: SAVE CONTEXT contextName similar to THROW, but does not stop processing. So in the above example, if we change THROW to SAVE, the processing continues, but after it has completed, we can change context variables and run it again.
  • new feature - show SAVED: same as show SAVE
  • new feature - delete $SAVED savedName: delete $SAVED Context_xxxx:
  • $ is important; case is not.
  • allows selective deletion of saved objects
  • Contexts always start with "Context_" but the subname "xxxx" in this case will work as well.
  • new feature: RESUME with arguments is synonymous with RESTORE
  • bug fix: applet language localization skipping translations containing \"
  • bug fix: application language localization does not include defs defined for JmolApplet
  • bug fix: JSpecView/JSME connection with simulated and ACD/Labs annotated spectra
  • bug fix: JSpecView loading simulation now compatible with synced applets
  • bug fix: drag/drop not working for JSV applet
  • bug fix: solid-state NMR calc (Magres) should not apply "nearest-atom-only" algorithm for measure ALL in dipolar coupling measurements
  • bug fix: state contains: zap;load /*data*/ data "append inline"
  • bug fix: zoomto without time goes over 2 seconds, not 1 second
  • bug fix: print "id" + "x" fails (back to 13.2 at least)
  • bug fix: animFrameCallback not reporting for each morph
  • bug fix: inline-if fails if not at end of statement - Bug goes back to at least 11.8
  • bug fix - Jmol math fix for new . notation.: needs testing
  • bug fix: state reading broken in most recent version at chemapps
  • bug fix: ++/-- compatibility with no-comma arrays
  • bug fix: print ++b["test"] fails
  • bug fix: ++b["test"] fails bug fix: a[6][8] = "q" not working correctly when a is a string
  • bug fix: {*}.covalent is misleading in that it is a mix of covalent and ionic bonding distances. As such, I have replaced it with data at the Blue Obelisk Data Repository
  • bug fix: try { ... throw ...} catch {....} continues through catch when resumed.
  • bug fix: anonymous context { ..... } not closed
  • bug fix: JSON of 4x4 matrix (M4) fails
  • bug fix: modelkitmode broken for Java in 14.1.10
  • code: unused obrador package removed from application
  • code: JavaScript org.jmol.modelset->JM, org.jmol.modelsetbio->JMB
  • code: org.jmol.util.Quaternion moved to javajs.util.Quat
  • code: Refactoring of script.ScriptEvaluator to make it more manageable
  • code: faster CONNECT [{...}] process for specified bonds

New in Jmol 14.0.10 (Feb 20, 2014)

  • bug fix: color atoms formalcharge not saved in state
  • bug fix: averageAtomPosition never updated.
  • bug fix: load of model with one atom does not set center to that atom
  • bug fix: ==/!= comparison not appropriate for arrays or strings
  • string/string comparison should be case sensitive, but wasn't
  • (you can use x 99 == y 99 to force no-case comparison)
  • array/array comparison should be element by element and exact
  • assoc.array/assoc.array should be key/value by key/value and exact
  • int/decimal comparison should be simply numerical, always
  • decimal/decimal comparison should be able to be done without the < 1e-6 cutoff
  • you can now use [x] == [y] for exact numerical comparison
  • string/int and string/decimal comparison should also only be outside of arrays
  • all approximations for type1/type2 should be only outside the context of arrays
  • bug fix: array/string assignment broken in 14.1.9
  • bug fix; HTML5 popup frank mini-menu not implemented
  • bug fix: HTML5 popup menu checkboxes not turning off
  • bug fix: zap or zap {atom expression} broken
  • does not affect ZAP command without parameters

New in Jmol 14.0.8 (Feb 15, 2014)

  • feature change: IDTF exporter now calling media9 rather than movie15 in accompanying TeX file
  • new feature: JSmol Info.z, Info.zIndexBase
  • new feature - set cartoonRibose:
  • draws in ribose rings, with facets showing puckering
  • connects via C4'-C5'-O5'-P explicitly
  • shows C3'-O3' for reference.
  • disables cartoonBaseEdges (Leontis-Westhof Edges)
  • disabled by SET cartoonBaseEdges ON
  • suggested by Rick Spinney, Ohio State
  • new feature: anim frame [a,b,c,d] works with negative numbers to indicate ranges:
  • anim frame [1, -5, 10, -6] --> [1,2,3,4,5,10,9,8,7,6]
  • read as "1 through 5 and then 10 through 6"
  • new feature - Tinker file reader (and FoldingXYZ reader upgrade):
  • Can use Tinker:: but this is only required if first line is JUST an atomCount
  • accommodates older Tinker format with n-1 atoms for atomCount
  • allows for trajectories and desired model number
  • new feature: (actually 13.1 but undocumented) animation frame [ 51 50 49 48 47 46 45 (etc) 27 1 2 3 4 5 6 7 (etc)....]
  • new feature: x = compare({atomset1}, {atomset2}, "MAP") new feature: x = compare({atomset1}, {atomset2}, "MAP", "all")
  • new feature: x = compare({atomset1}, {atomset2}, "MAP", "best")
  • new feature: x = compare({atomset1}, {atomset2}, "MAP", "H")
  • new feature: x = compare({atomset1}, {atomset2}, "MAP", "allH")
  • new feature: x = compare({atomset1}, {atomset2}, "MAP", "bestH")
  • generates one or more correlations lists based on non-aromatic SMILES
  • optionally includes H atoms -- optionally generates all possible atom mappings
  • returns int[][] = [ [a1 b1],[a2 b2],[a3 b3],... ] where an and bn are integer atom indices or list when "all" option is chosen.
  • the following will generate one atom correlation map for two structures including hydrogen atoms:
  • load files "a.mol" "b.mol"
  • x = compare({1.1} {2.1} "MAP" "H")
  • (useful for 2D/3D model atom matching)
  • the following compares the model of caffeine from NCI to that from PubChem:
  • load $caffeine;load append :caffeine;frame *
  • select 2.1; label %[atomIndex]
  • compare {1.1} {2.1} SMILES rotate translate
  • x = compare({1.1}, {2.1}, "MAP" "bestH")
  • for (a in x) {a1 = a[1];a2=a[2];select atomindex=a1;label @a2}
  • new feature: compare {model1} {model2} SMILES
  • no need to give SMILES; Jmol can generate it from {model1}
  • new feature: x = {*}.find("SMILES", "H")
  • generates SMILES with explicit H atoms
  • bug fix: set defaultLoadScript "{0 0 0}" actually sets that to {1 1 1} - goes way way back to early Jmol math where there were no point-type variables
  • bug fix: PyMOL reader update for Version 1700 lacking setting 83.
  • bug fix: -m option not working with Jmol.jar
  • bug fix: PNGJ files within ZIP collections not being read.
  • full PNGJ models can be extracted from MS Word .docx files.
  • bug fix: tensor("efg", "value") should return sparce array, not dense for missing tensors
  • bug fix: JSmol now allows writing POVRAY, MAYA, IDTF, VRML, etc. both from Java and from HTML5
  • code: reworking of export classes
  • bug fix: label @{math expression...} not working
  • bug fix: interpretation of x and @x in select commands and {...} phrases Variable substitution has been unintuitive and inconsistent.
  • bug fix: for(i in ...) does not exit when i is assigned a value, as per documentation
  • bug fix: for(x in ...) command broken and also quite inefficient.
  • bug fix: substructure() function using SMILES instead of SMARTS, so only full structures;
  • bug fix: better error trapping and messages in SMILES-related methods
  • bug fix: make webexport discovery of path to Jmol.jar and jsmol.zip more robust.
  • bug fix: getProperty extractModel not honoring subset
  • bug fix: set pdbGetHeader TRUE does not capture REMARK3 REMARK290 REMARK350
  • bug fix: getProperty("JSON",....) should wrap value in {value:...}
  • bug fix: MO persistent translucency broken in 11.x
  • bug fix: show MENU write MENU load MENU all broken in 12.2
  • bug fix: {*}[n] should be empty if nAtoms 80%
  • code: JSmol: applying atom mapping between mol2D and mol3D for viewSets
  • code: refactoring to enable SWING in JavaScript for all menus
  • code: methods from jcampdxReader extracted to org.jmol.jsv.JDXMOLParser
  • code: reader overhaul for setting atom coordinates in a consistent fashion

New in Jmol 14.1.8 Beta (Feb 7, 2014)

  • new feature - set cartoonRibose:
  • draws in ribose rings, with facets showing puckering
  • connects via C4'-C5'-O5'-P explicitly
  • shows C3'-O3' for reference.
  • disables cartoonBaseEdges (Leontis-Westhof Edges)
  • disabled by SET cartoonBaseEdges ON
  • suggested by Rick Spinney, Ohio State
  • new feature: anim frame [a,b,c,d] works with negative numbers to indicate ranges:
  • anim frame [1, -5, 10, -6] --> [1,2,3,4,5,10,9,8,7,6]
  • read as "1 through 5 and then 10 through 6"
  • new feature: Tinker file reader (and FoldingXYZ reader upgrade):
  • Can use Tinker:: but this is only required if first line is JUST an atomCount
  • accommodates older Tinker format with n-1 atoms for atomCount
  • allows for trajectories and desired model number
  • new feature: (actually 13.1 but undocumented) animation frame [ 51 50 49 48 47 46 45 (etc) 27 1 2 3 4 5 6 7 (etc)....]
  • new feature: x = compare({atomset1}, {atomset2}, "MAP")
  • new feature: x = compare({atomset1}, {atomset2}, "MAP", "all")
  • new feature: x = compare({atomset1}, {atomset2}, "MAP", "best")
  • new feature: x = compare({atomset1}, {atomset2}, "MAP", "H")
  • new feature: x = compare({atomset1}, {atomset2}, "MAP", "allH")
  • new feature - x = compare({atomset1}, {atomset2}, "MAP", "bestH"):
  • generates one or more correlations lists based on non-aromatic SMILES
  • optionally includes H atoms
  • optionally generates all possible atom mappings
  • returns int[][] = [ [a1 b1],[a2 b2],[a3 b3],... ]
  • where an and bn are integer atom indices or list when "all" option is chosen.
  • the following will generate one atom correlation map for two structures including hydrogen atoms: load files "a.mol" "b.mol" x = compare({1.1} {2.1} "MAP" "H")
  • the following compares the model of caffeine from NCI to that from PubChem:
  • load $caffeine;load append :caffeine;frame *
  • select 2.1; label %[atomIndex]
  • compare {1.1} {2.1} SMILES rotate translate
  • x = compare({1.1}, {2.1}, "MAP" "bestH")
  • for (a in x) {a1 = a[1];a2=a[2];select atomindex=a1;label @a2}
  • new feature: compare {model1} {model2} SMILES:
  • no need to give SMILES; Jmol can generate it from {model1}
  • new feature: x = {*}.find("SMILES", "H"):
  • generates SMILES with explicit H atoms
  • bug fix: substructure() function using SMILES instead of SMARTS, so only full structures;
  • bug fix: better error trapping and messages in SMILES-related methods
  • bug fix: make webexport discovery of path to Jmol.jar and jsmol.zip more robust.
  • bug fix: getProperty extractModel not honoring subset
  • bug fix: set pdbGetHeader TRUE does not capture REMARK3 REMARK290 REMARK350
  • bug fix: getProperty("JSON",....) should wrap value in {value:...}
  • bug fix: MO persistent translucency broken in 11.x
  • bug fix: show MENU write MENU load MENU all broken in 12.2
  • bug fix: {*}[n] should be empty if nAtoms

New in Jmol 14.1.7 Beta (Feb 7, 2014)

  • bug fix: 14.0.6 fatally bugged - unitcell and echo rendering, getProperty

New in Jmol 14.1.6 Beta (Feb 7, 2014)

  • bug fix: translucent geosurface was turned off;
  • bug fix: Jmol2.js should have commented lines in Jmol.Info but does not
  • bug fix: JSpecView cannot close "Options...Show Header" panel in HTML5
  • bug fix: for (a in {displayed}) { a.property_x = 3 } construction fails
  • bug fix: FireFox browser in mode to open files in new tabs in the background fails to load second applet of a page unless Jmol.__execDelay is more than 55 ms and the user specifically right-clicks a link to open a page in a new tab.
  • bug fix: write ....?POST? fails
  • bug fix: getproperty broken in 14.1.6_dev_2014.01.15
  • bug fix: GETPROPERTY command and function can return SV.toString() rather than property escaped value
  • bug fix: getProperty for certain arrays returns string "[object Array]"
  • bug fix: Jmol2.js not working when there is no jmolInitialize()
  • bug fix: _DirectDatabaseCalls not including NMR prediction site
  • bug fix: reading of *co*mmensurately modulated structures (e.g. Lilianite) working
  • bug fix: wrong name for coverimage in WebExport.
  • code: refactored matrix classes javajs.util.M34/M3/M4
  • code: JSpecView upgrade includes:
  • operational applet from jnlp
  • append options from menus
  • file helper for local files using load ?
  • file helper for URL using load http://?
  • file helper for simulation using load $?
  • code: reader refactoring isolates symmetry aspects
  • update: images and instructions for WebExport

New in Jmol 14.0.7 (Jan 21, 2014)

  • bug fix: unitcell and echo rendering, getProperty

New in Jmol 14.0.5 (Jan 10, 2014)

  • bug fix: LCAOCartoon translucency broken
  • bug fix: translucent backbone broken
  • bug fix: pqr,p2n readers broken
  • bug fix: isosurface map property xxx can fail if surface is a fragment that (somehow) has a point not associated with an underlying atom.

New in Jmol 14.1.5 Beta (Jan 9, 2014)

  • bug fix: LCAOCartoon translucency broken
  • bug fix: translucent backbone broken
  • bug fix: pqr,p2n readers broken
  • bug fix: isosurface map property xxx can fail if surface is a fragment that (somehow) has a point not associated with an underlying atom.

New in Jmol 14.1.4 Beta (Jan 9, 2014)

  • bug fix: PDB byChain, bySymop not supported.
  • new feature: {xxx}.distance.all({yyy}) returns float[][] of values
  • new feature: expanded unit cell ijk notation:
  • 111 - 1000 --> center 5,5,5; range 0 to 9 or -5 to +4
  • 1000000 - 1999999 --> center 50,50,50; range 0 to 99 or -50 to +49
  • 1000000000 - 1999999999 --> center 500, 500, 500; range 0 to 999 or -500 to +499

New in Jmol 14.1.3 Beta (Jan 9, 2014)

  • new feature: filter "MODCELL=x":
  • incommensurate composite readers Jana2006 and CIF
  • sets base cell to specified subsystem
  • new feature: MSCIF reader now allowing up to d=10; was d=6
  • new feature: escape pressed cancels pending measurement
  • new feature: {xxx}.getProperty("yyy"):
  • only for FIRST atom
  • returns getProperty("atomInfo.yyy", {xxx})[1] (not xxx.yyy.all)
  • new feature: unitcell {atomset}:
  • unit cell based on first atom of atom set.
  • canceled by any unitcell {none} or other unitcell command other than on/off and width
  • new feature: altloc set for msCIF _atom_site_subsystem_code:
  • sets % and also configuration
  • prevents covalent bonding between subsystems
  • new feature: select ON ; select OFF:
  • same as selectionHalos ON/OFF
  • deprecates selectionHalos command
  • new feature: atomSet1.distance.min(atomSet2, TRUE)
  • new feature: atomSet1.distance.min(point, TRUE)
  • new feature: atomSet1.distance.max(atomSet2, TRUE)
  • new feature: atomSet1.distance.max(point, TRUE):
  • returns single closest/furthest atom in atomSet1 from point or atomSet2
  • bug fix: incommensurate composite structures not packed into unit cell properly
  • bug fix: incommensurate composite structures - wrong unit cell for d > 1
  • bug fix: if load "" fails, last file name is lost
  • bug fix: print a (operator) b not processing string parameter B consistently across operators
  • bug fix: composite structures reading for JANA2006 M50/M40 files
  • bug fix: capture time slightly off; needs 50 ms addition. This may vary with rendering speeds.
  • bug fix: CIF reader goes into molecular mode even if geom_bond block is all "? ? ? ? ?"
  • bug fix: n-d incommensurate modulated composite structures (preliminary testing)
  • ug fix: getProperty atomInfo broken for modulated atoms
  • bug fix: x.distance.min(y) broken
  • code: generic javajs.util.Matrix class added based on Jama code for inversion using L/U decomposition

New in Jmol 14.0.4 (Jan 6, 2014)

  • bug fix: rockets broken
  • bug fix: PDB byChain, bySymop not supported.

New in Jmol 14.0.3 (Dec 30, 2013)

  • new feature: filter "MODCELL=x":
  • incommensurate composite readers Jana2006 and CIF
  • sets base cell to specified subsystem
  • new feature: MSCIF reader now allowing up to d=10; was d=6
  • new feature: escape pressed cancels pending measurement
  • new feature: {xxx}.getProperty("yyy"):
  • only for FIRST atom
  • returns getProperty("atomInfo.yyy", {xxx})[1] (not xxx.yyy.all)
  • new feature: unitcell {atomset}:
  • unit cell based on first atom of atom set.
  • canceled by any unitcell {none}
  • or other unitcell command other than on/off and width
  • new feature: altloc set for msCIF _atom_site_subsystem_code:
  • sets % and also configuration
  • prevents covalent bonding between subsystems
  • new feature: select ON ; select OFF:
  • same as selectionHalos ON/OFF
  • deprecates selectionHalos command
  • new feature: atomSet1.distance.min(atomSet2, TRUE)
  • new feature: atomSet1.distance.min(point, TRUE)
  • new feature: atomSet1.distance.max(atomSet2, TRUE)
  • new feature: atomSet1.distance.max(point, TRUE):
  • returns single closest/furthest atom in atomSet1 from point or atomSet2
  • bug fix: incommensurate composite structures not packed into unit cell properly
  • bug fix: incommensurate composite structures - wrong unit cell for d > 1
  • bug fix: if load "" fails, last file name is lost
  • bug fix: print a (operator) b not processing string parameter B consistently across operators
  • bug fix: composite structures reading for JANA2006 M50/M40 files
  • bug fix: capture time slightly off; needs 50 ms addition. This may vary with rendering speeds.
  • bug fix: CIF reader goes into molecular mode even if geom_bond block is all "? ? ? ? ?"
  • bug fix: n-d incommensurate modulated composite structures (preliminary testing)
  • bug fix: getProperty atomInfo broken for modulated atoms
  • bug fix: x.distance.min(y) broken
  • code: generic javajs.util.Matrix class added based on Jama code for inversion using L/U decomposition

New in Jmol 14.0.2 (Dec 16, 2013)

  • bug fix: modulation not distinguishing between q and t;
  • bug fix: modulated measurements not working
  • bug fix: not skipping set defaultLattice "{NaN NaN NaN}"
  • bug fix: isosurface map atomic orbital fails
  • bug fix: vibrational display of modulation with distances doesn't update
  • bug fix: vibration off causes unnecessary warning in console
  • bug fix: draw symop broken
  • bug fix: array.mul(matrix3f) crashes Jmol
  • bug fix: select symop=1555 broken
  • bug fix: set picking dragSelected not working
  • code: refactored CifReader, separating out MMCifReader and MSCifReader code: minor renaming/refactoring of methods in SV
  • code: adds javajs.api.JSONEncodable interface
  • super-simple implementation in org.jmol.script.SV
  • allows implementations of javajs to deliver custom JSON results

New in Jmol 14.1.2 Beta (Dec 14, 2013)

  • new feature: JavaScript: JSmol api Jmol.evaluateVar(applet, expression):
  • better than Jmol.evaluate because result is a JavaScript variable, not a string.
  • DEPRECATING JSmol api Jmol.evaluate(applet, expression)
  • new feature: getProperty("JSON", ....):
  • returns JSON code for property
  • allows JavaScript: x = Jmol.getPropertyAsArray("variableInfo","some expression")
  • new feature: getProperty variableInfo :
  • allows retrieval of variables in Java or JSON format
  • evaluates expression
  • defaults to "all"
  • new feature: modulation adjustable by q and t, up to d=3:
  • modulation on/off (all atoms)
  • moduation {atom set} on/off
  • modulation int q-offset
  • modulation x.x t-offset
  • modulation {t1 t2 t3}
  • modulation {q1 q2 q3} TRUE
  • new feature: pickedList:
  • ordered array of recently picked atoms
  • can be used the same as the PICKED variable, but that is ordered sequentially, not temporally
  • twice clicking off structure clears the list
  • @{pickedList}[0] last-picked atom
  • @{pickedList}[-1] next-to-last-picked atom
  • @{pickedList}[-1][0] last two picked atoms
  • new feature: array.pop(), array.push() - similar to JavaScript
  • new feature: modulation scale x.x
  • new feature: caption "xxxxx" x.x - number of seconds to run
  • new feature: modulation 0.2 // sets t-value
  • new feature: array.pop(), array.push(x)
  • a=[];a.push("testing");print a.pop()
  • new feature: select ON/OFF atom-set:
  • turns selection halos on or off as well as doing the selection
  • convenience only
  • new feature: pt1.mul3(pt2):
  • returns {pt1.x*pt2.x, pt1.y*pt2.y, pt1.z*pt2.z}
  • if both are not points, reverts to simple multiplication
  • new reature: array.mul3(pt2) - applies mul3 to all elements of array
  • new feature: {atomset}.modulation(type, t):
  • delivers P3 (displacement modulation)
  • implemented only for type="D" (optional)
  • optional t is 0 by default
  • bug fix: modulation not distinguishing between q and t;
  • bug fix: modulated measurements not working
  • bug fix: not skipping set defaultLattice "{NaN NaN NaN}"
  • bug fix: isosurface map atomic orbital fail
  • bug fix: vibrational display of modulation with distances doesn't update
  • bug fix: vibration off causes unnecessary warning in console
  • bug fix: draw symop broken
  • bug fix: array.mul(matrix3f) crashes Jmol
  • bug fix: select symop=1555 broken bug fix: set picking dragSelected not working
  • code: refactored CifReader, separating out MMCifReader and MSCifReader
  • code: minor renaming/refactoring of methods in SV
  • code: adds javajs.api.JSONEncodable interface:
  • super-simple implementation in org.jmol.script.SV
  • allows implementations of javajs to deliver custom JSON results

New in Jmol 14.1.1 Beta (Dec 14, 2013)

  • new feature: Jmol._j2sLoadMonitorOpacity (default 55)
  • new feature: load() function, as in print load("xxx"), limited local file reading in applet:
  • no root-directory files
  • no files without extension
  • no files with any "/." in path
  • new feature: JAR files securely signed
  • new feature: applet JAR files include JNLPs (Java Network Launch Protocols) for local file loading
  • new feature: JSmol URL options _USE= _JAR= _J2S= overrides for Info data
  • new feature: (was present but undocumented) print quaternion([array of quaternions]) - returns spherical mean a la Buss and Fillmore
  • new feature: print quaternion([array of quaternions], true):
  • returns standard deviation for spherical mean a la Buss and Fillmore
  • units are angular degrees
  • new feature: named quaternion modulus values
  • print quaternion(1,0,0,0)%"matrix"
  • options include w x y z normal eulerzxz eulerzyz vector theta axisx axisy axisz axisangle matrix
  • new feature: set celShadingPower:
  • sets strength of cel shading
  • integer values
  • default 10 is a thick line
  • 5 is a fine line
  • 0 turns cel shading off
  • negative value removes interior shading
  • outline only
  • operates on pixel based on normal to light source (power > 0) or user (power < 0)
  • sets color to background contrast (black or white) when normal_z < 1 - 2^-(|celShadingPower|/10)
  • new feature: mmCIF reading reports _citation.title in Jmol scripting console
  • new feature: minimize SELECT {atomset} ONLY - ONLY option excludes all other atoms
  • new feature: minimize {atomset} - implicit SELECT and ONLY
  • new feature: "extensions" directories in JSmol for contributed JS and SPT scripts:
  • jsmol/js/ext
  • jsmol/spt/ext
  • new feature: load ... filter "ADDHYDROGENS" - local set pdbAddHydrogens just for one load command
  • new feature: compare {1.1} {2.1} BONDS SMILES
  • new feature: list = compare({atomset1} {atomset2} "SMILES" "BONDS")
  • new feature: list = compare({atomset1} {atomset2} SmartsString "BONDS")
  • new feature: write JSON xxx.json
  • new feature: [#210] JSON {"mol":...} reader
  • new feature: set particleRadius:
  • global radius for atoms over the max radius value (16.0)
  • defaults to 20.0
  • new feature: CIF and PDB filters "BYCHAIN" and "BYSYMOP" for virus particulation:
  • creates just one atom per chain or per symop
  • size can be scaled larger than the max of 16 Angstroms using
  • new feature: symop() function allows symmetry from biomolecule filter for PDB and mmCIF
  • new feature: isosurface SYMMETRY
  • applies symmetry operators to isosurface
  • more efficient rendering and creation -- default selection is {symop=1} only
  • default coloring is to color by symop based on propertyColorScheme
  • example:
  • load 1stp filter "biomolecule 1"
  • color property symop
  • isosurface sa resolution 0.8 symmetry sasurface 0
  • new feature: new atom property: chainNo
  • sequentially from 1 for each model;
  • chainNo == 0 means "no chain" or chain = ''
  • new feature: new propertyColorScheme "friendly":
  • color-blindness-friendly color scheme
  • used at RCSD
  • new feature: JSpecView completely Java-free; includes 2D nmr and PDF printing of spectra
  • new feature: WRITE PDF "xxx.pdf" quality > 1 requests landscape mode:
  • uses efficient custom PDF creation classes
  • sizes image to fit if too large
  • new feature: JSpecView adds PDF and 2D NMR for JavaScript
  • new feature: load "==xxx" FILTER "NOIDEAL" - chemical component load from PDB using the "nonideal" coordinate set
  • bug fix: write CD removed; ChemDoodle has changed formats; use JSON instead
  • bug fix: PDB and CIF files indicated assemblies such as PAU as large negative number
  • bug fix: COMPARE with no rotation starts infinite loop
  • bug fix: looping problem with delay(-1)
  • bug fix: Mouse wheeling for Chrome in JavaScript
  • bug fix: JavaScript popup menu fix for language changes
  • bug fix: JavaScript core components not being processed; Jmol._debugCode not recognized
  • bug fix: unitcell offset incorrectly for biomolecules; origin incorrect for axes.
  • bug fix: isosurface/mo FRONTONLY broken
  • bug fix: language localization broken in JavaScript
  • bug fix: ADF reader not reading MO output from DIRAC Build 201304052106
  • bug fix: Safari reports yellow Jmol info instead of asking to accept applet -- tag needed to be
  • bug fix: CIF reader not handling _pdbx_struct_assembly_gen.assembly_id properly -- wrong atom set for load =3fsx.cif filter "ASSEMBLY 1"
  • bug fix: [#558 Compatibility issue with ChemDoodle] JSmol error in definition of Number.toString()
  • bug fix: mouse wheel not working properly
  • bug fix: JavaScript J2S compiler error does not coerce int += float to integer
  • bug fix: JavaScript WEBGL option broken
  • bug fix: JavaScript NMRCalculation does not access resources
  • bug fix: JavaScript stereo not implemented
  • bug fix: MOL reader fix for multiple-model file (just 13.3.9_dev)
  • bug fix: MOL reader error with load APPEND -- does not continue atom numbers
  • bug fix: CIF modulation reader not reading linear combinations of cell wave vectors
  • bug fix: CIF reading with filter "BIOMOLECULE 1" fails if only the identity operation
  • bug fix: mmCIF reader not reading all _pdbx_struct_assembly_gen.oper_expression options
  • bug fix: PDB CRYST entry 1.0 1.0 1.0 90 90 90 should mean "no unit cell" regardless of biomolecule filter
  • bug fix: isosurface slab not adapting well for flat molecules such as HEM
  • bug fix: print userfunc() may fail (userfunc() by itself is fine)
  • bug fix: within(helix) not implemented for C-alpha-only polymers
  • bug fix: _modelTitle not updated when a new file is loaded or zapped
  • bug fix: {*}.symop.all not delivering symmetry operator appropriately
  • bug fix: for triple bond in SMILES in URLs
  • bug fix: build.xml missing PDF creation classes
  • bug fix: following Java update, adding proper path check for local signed applet
  • bug fix: {xxx}.property_xx not saved in state (broken 8/7/2013 rev 18518)
  • bug fix: Manifests updated for signed and unsigned applet JAR files
  • bug fix: write fails
  • bug fix: applet scriptWait() method broken
  • bug fix: PyMOL session may display unit cell after read from saved state
  • bug fix: MMCIF reader fails for multiple assembly types
  • bug fix: CIF reader "biomolecule 1" translating to "molecular" rather than "assembly"
  • bug fix: load trajectory with multiple files not working
  • bug fix: JS applet popup menu not closing properly upon language change
  • bug fix: HTML checkbox id attribute not assigned
  • code: refactoring of applet/appletjs
  • code; org.jmol.util.GenericApplet
  • code: refactoring, simplification of buffered readers and buffered input streams.
  • code: JavaScript refactoring, better build_...xml
  • code: JavaScript Integer, Long, Short, Byte, Float, Double all reworked
  • code: disambiguation of GT._
  • code: Refactored all unnecessarily inner classes to top level
  • code: isolated util/ModulationSet using api/JmolModulationSet
  • code: All applet language localization read from plain .po files:
  • as for JavaScript already
  • no need to compile class files for applet languages
  • no language .jar files
  • new jsmol/idioma directory holds .po files for both Java and HTML5
  • code: faster isosurface rendering adding implicit "frontonly" with select {xxx} ONLY
  • code: faster isosurface rendering with implicit "isosurfacepropertySmoothing FALSE" in relevant (integer) cases
  • code: JmolBinary.getBufferedReaderForResource() - consolidates all references to URL.getContent() and Class.getResource()
  • code: JavaScript work around for inner class problem with variable name reassignment
  • code: work-around for eval(functionName) not working in JavaScript.
  • code: experimenting with ambient occlusion
  • code: Required manifests added for Java Ju51 (January, 2014).
  • code: JmolOutputChannel moved to javajs.util.OutputChannel
  • code: jsmol.php fixed to allow " in saveFile method
  • code: refactoring Parser into javajs.util
  • code: DSSP moved to org.jmol.dssx, reducing JSmol bio load by 20K
  • code: iText package jettisoned, no longer nec, as I wrote my own PDF creator

New in Jmol 14.0.1 (Dec 5, 2013)

  • new feature: Jmol._j2sLoadMonitorOpacity (default 55)
  • new feature: load() function, as in print load("xxx"), limited local file reading in applet:
  • no root-directory files
  • no files without extension
  • no files with any "/." in path
  • new feature: JAR files securely signed
  • new feature: applet JAR files include JNLPs (Java Network Launch Protocols) for local file loading
  • new feature: JSmol URL options _USE= _JAR= _J2S= overrides for Info data
  • new feature: (was present but undocumented) print quaternion([array of quaternions]) - returns spherical mean a la Buss and Fillmore
  • new feature: print quaternion([array of quaternions], true):
  • returns standard deviation for spherical mean a la Buss and Fillmore
  • units are angular degrees
  • new feature - named quaternion modulus values:
  • print quaternion(1,0,0,0)%"matrix"
  • options include w x y z normal eulerzxz eulerzyz vector theta axisx axisy axisz axisangle matrix
  • ew feature - set celShadingPower:
  • sets strength of cel shading
  • integer values
  • default 10 is a thick line
  • 5 is a fine line
  • 0 turns cel shading off
  • negative value removes interior shading -- outline only
  • operates on pixel based on normal to light source (power > 0) or user (power < 0)
  • sets color to background contrast (black or white) when normal_z < 1 - 2^-(|celShadingPower|/10)
  • new feature: mmCIF reading reports _citation.title in Jmol scripting console
  • new feature: minimize SELECT {atomset} ONLY - ONLY option excludes all other atoms
  • new feature: minimize {atomset} - implicit SELECT and ONLY
  • new feature -"extensions" directories in JSmol for contributed JS and SPT scripts:
  • jsmol/js/ext
  • jsmol/spt/ext
  • new feature: load ... filter "ADDHYDROGENS" - local set pdbAddHydrogens just for one load command
  • new feature: compare {1.1} {2.1} BONDS SMILES
  • new feature: list = compare({atomset1} {atomset2} "SMILES" "BONDS")
  • new feature: write JSON xxx.json
  • new feature: [#210] JSON {"mol":...} reader
  • ew feature - set particleRadius :
  • global radius for atoms over the max radius value (16.0)
  • defaults to 20.0
  • new feature - CIF and PDB filters "BYCHAIN" and "BYSYMOP" for virus particulation:
  • creates just one atom per chain or per symop
  • size can be scaled larger than the max of 16 Angstroms using, for example:
  • set particleRadius 30;
  • spacefill 30; // any number over 16 here uses particleRadius instead
  • new feature: list = compare({atomset1} {atomset2} SmartsString "BONDS")
  • new feature: symop() function allows symmetry from biomolecule filter for PDB and mmCIF
  • new feature - isosurface SYMMETRY:
  • applies symmetry operators to isosurface
  • more efficient rendering and creation
  • default selection is {symop=1} only
  • default coloring is to color by symop based on propertyColorScheme
  • example:
  • load 1stp filter "biomolecule 1"
  • color property symop
  • isosurface sa resolution 0.8 symmetry sasurface 0
  • new feature - new atom property: chainNo:
  • sequentially from 1 for each model;
  • chainNo == 0 means "no chain" or chain = ''
  • new feature - new propertyColorScheme "friendly":
  • color-blindness-friendly color scheme
  • used at RCSD
  • new feature: JSpecView completely Java-free; includes 2D nmr and PDF printing of spectra
  • new feature - WRITE PDF "xxx.pdf" quality > 1 requests landscape mode:
  • uses efficient custom PDF creation classes
  • sizes image to fit if too large
  • new feature: JSpecView adds PDF and 2D NMR for JavaScript
  • new feature: load "==xxx" FILTER "NOIDEAL" - Chemical component load from PDB using the "nonideal" coordinate set
  • bug fix: write CD removed; ChemDoodle has changed formats; use JSON instead
  • bug fix: PDB and CIF files indicated assemblies such as PAU as large negative number
  • bug fix: COMPARE with no rotation starts infinite loop
  • bug fix: looping problem with delay(-1)
  • bug fix: Mouse wheeling for Chrome in JavaScript
  • bug fix: JavaScript popup menu fix for language changes
  • bug fix: JavaScript core components not being processed; Jmol._debugCode not recognized
  • bug fix: unitcell offset incorrectly for biomolecules; origin incorrect for axes.
  • bug fix: isosurface/mo FRONTONLY broken
  • bug fix: language localization broken in JavaScript
  • bug fix: ADF reader not reading MO output from DIRAC Build 201304052106
  • bug fix: Safari reports yellow Jmol info instead of asking to accept applet
  • -- tag needed to be
  • bug fix: CIF reader not handling _pdbx_struct_assembly_gen.assembly_id properly
  • -- wrong atom set for load =3fsx.cif filter "ASSEMBLY 1"
  • bug fix: [#558 Compatibility issue with ChemDoodle] JSmol error in definition of Number.toString()
  • bug fix: mouse wheel not working properly
  • bug fix: JavaScript J2S compiler error does not coerce int += float to integer
  • bug fix: JavaScript WEBGL option broken
  • bug fix: JavaScript NMRCalculation does not access resources
  • bug fix: JavaScript stereo not implemented
  • bug fix: MOL reader fix for multiple-model file (just 13.3.9_dev)
  • bug fix: MOL reader error with load APPEND -- does not continue atom numbers
  • bug fix: CIF modulation reader not reading linear combinations of cell wave vectors
  • bug fix: CIF reading with filter "BIOMOLECULE 1" fails if only the identity operation
  • bug fix: mmCIF reader not reading all _pdbx_struct_assembly_gen.oper_expression options
  • bug fix: PDB CRYST entry 1.0 1.0 1.0 90 90 90 should mean "no unit cell" regardless of biomolecule filter
  • bug fix: isosurface slab not adapting well for flat molecules such as HEM
  • bug fix: print userfunc() may fail (userfunc() by itself is fine)
  • bug fix: within(helix) not implemented for C-alpha-only polymers
  • bug fix: _modelTitle not updated when a new file is loaded or zapped
  • bug fix: {*}.symop.all not delivering symmetry operator appropriately
  • bug fix: for triple bond in SMILES in URLs
  • bug fix: build.xml missing PDF creation classes
  • bug fix: following Java update, adding proper path check for local signed applet
  • bug fix: {xxx}.property_xx not saved in state (broken 8/7/2013 rev 18518)
  • bug fix: Manifests updated for signed and unsigned applet JAR files
  • bug fix: write fails
  • bug fix: applet scriptWait() method broken
  • bug fix: PyMOL session may display unit cell after read from saved state
  • bug fix: MMCIF reader fails for multiple assembly types
  • bug fix: CIF reader "biomolecule 1" translating to "molecular" rather than "assembly"
  • bug fix: load trajectory with multiple files not working
  • bug fix: JS applet popup menu not closing properly upon language change
  • bug fix: HTML checkbox id attribute not assigned
  • code: refactoring of applet/appletjs code; org.jmol.util.GenericApplet
  • code: refactoring, simplification of buffered readers and buffered input streams.
  • code: JavaScript refactoring, better build_...xml
  • code: JavaScript Integer, Long, Short, Byte, Float, Double all reworked
  • code: disambiguation of GT._
  • code: Refactored all unnecessarily inner classes to top level
  • code: isolated util/ModulationSet using api/JmolModulationSet
  • code - All applet language localization read from plain .po files :
  • as for JavaScript already
  • no need to compile class files for applet languages
  • no language .jar files
  • new jsmol/idioma directory holds .po files for both Java and HTML5
  • code: faster isosurface rendering adding implicit "frontonly" with select {xxx} ONLY
  • code: faster isosurface rendering with implicit "isosurfacepropertySmoothing FALSE" in relevant (integer) cases
  • code: JmolBinary.getBufferedReaderForResource() - consolidates all references to URL.getContent() and Class.getResource()
  • code: JavaScript work around for inner class problem with variable name reassignment
  • code: work-around for eval(functionName) not working in JavaScript.
  • code: experimenting with ambient occlusion
  • code: Required manifests added for Java Ju51 (January, 2014).
  • code: JmolOutputChannel moved to javajs.util.OutputChannel
  • code: jsmol.php fixed to allow " in saveFile method
  • code: refactoring Parser into javajs.util
  • code: DSSP moved to org.jmol.dssx, reducing JSmol bio load by 20K
  • code: iText package jettisoned, no longer nec, as I wrote my own PDF creator

New in Jmol 13.3.8 PreRelease (Nov 6, 2013)

  • new feature: JSpecView adds PDF and 2D NMR for JavaScript
  • bug fix: following Java update, adding proper path check for local signed applet
  • bug fix: {xxx}.property_xx not saved in state (broken 8/7/2013 rev 18518)
  • bug fix: Manifests updated for signed and unsigned applet JAR files
  • bug fix: write fails
  • bug fix: applet scriptWait() method broken
  • bug fix: PyMOL session may display unit cell after read from saved state
  • bug fix: MMCIF reader fails for multiple assembly types
  • bug fix: CIF reader "biomolecule 1" translating to "molecular" rather than "assembly"
  • bug fix: load trajectory with multiple files not working
  • bug fix: JS applet popup menu not closing properly upon language change
  • bug fix: HTML checkbox id attribute not assigned
  • code: Required manifests added for Java Ju51 (January, 2014).
  • code: JmolOutputChannel moved to javajs.util.OutputChannel
  • code: jsmol.php fixed to allow " in saveFile method
  • code: refactoring Parser into javajs.util
  • code: DSSP moved to org.jmol.dssx, reducing JSmol bio load by 20K

New in Jmol 13.2.8 (Nov 1, 2013)

  • bug fix: following Java update, adding proper path check for local signed applet bug fix: {xxx}.property_xx not saved in state (broken 8/7/2013 rev 18518) bug fix: write fails bug fix: applet scriptWait() method broken bug fix: MMCIF reader fails for multiple assembly types bug fix: load trajectory with multiple files not working bug fix: JS applet popup menu not closing properly upon language change bug fix: HTML checkbox id attribute not assigned

New in Jmol 13.3.7 PreRelease (Oct 10, 2013)

  • bug fix: Crystal reader not applying lattice translations
  • bug fix: translations incomplete
  • bug fix: state saving of echo "bottom left" instead does "top left"
  • bug fix: multiple-file crystal structures may fail to load if there is a lattice shift
  • bug fix: space group not being calculated automatically for user-defined space groups
  • bug fix: measures broken
  • code: further consolidation:

New in Jmol 13.2.7 (Oct 10, 2013)

  • bug fix: Crystal reader not applying lattice translations
  • bug fix: translations incomplete
  • bug fix: state saving of echo "bottom left" instead does "top left"
  • bug fix: multiple-file crystal structures may fail to load if there is a lattice shift
  • bug fix: space group not being calculated automatically for user-defined space groups
  • bug fix: angle measurements can end with "//nanometers"
  • bug fix: first pending measurement loses label
  • bug fix: JSON NIO port SYNC broken
  • bug fix: write IMAGE "t.png" not working
  • bug fix: rotate -10 -10 not working
  • code: code merge between 13.2 and 13.3
  • code: major clean-up of ActionManager
  • bug fix: mouse bindings not distinguishing DOWN/CLICK/DRAG/UP properly
  • bug fix: mouse bindings _center and _reset not working
  • bug fix: show MOUSE not including user-defined mouse bindings
  • FEATURE CHANGE: added bindings: "drag" and "up" -- may affect power users who use BIND command

New in Jmol 13.3.6 PreRelease (Oct 10, 2013)

  • bug fix: JSON NIO port SYNC broken
  • bug fix: print getProperty("image", "width=200;height=300;type=png") not working
  • bug fix: write IMAGE "t.png" not working
  • bug fix: rotate -10 -10 not working
  • bug fix: mouse bindings not distinguishing DOWN/CLICK/DRAG/UP properly
  • bug fix: mouse bindings _center and _reset not working
  • bug fix: show MOUSE not including user-defined mouse bindings
  • bug fix: chains improperly selected in JSmol/HTML5
  • bug fix: JSmol/HTML5 not allowing drag-drop or file loading from a local drive.
  • bug fix: JSmol/HTML5 not allowing WRITE FILE ?
  • bug fix: JSmol/HTML5 not allowing WRITE xxx.pdb, xxx.mol, etc
  • bug fix: platformSpeed persists but appears unreadable after loading a state
  • bug fix: JavaScript version InputStreamReader not processing non-UTF data correctly
  • bug fix: second reading of older PNG files with embedded script fails due to improper png file caching
  • code: overhaul of image creation methods
  • code: careful attention to core functions yields results in 5% reduction in core download size
  • code: continued refactoring of ScriptEvaluator to ScriptExt
  • code: refactoring to isolate LabelToken and Labels from core JavaScript load
  • code: refactoring, simplification of image output and export
  • code: major simplification and consolidation of file I/O methods, including exporters, using JmolOutputChannel class.
  • code: only FileOutputStream reference is one reference in org.jmol.awt.
  • code: code merge between 13.2 and 13.3 18 Sept 2013
  • code: major clean-up of ActionManager

New in Jmol 13.2.6 (Oct 10, 2013)

  • bug fix: JSON NIO port SYNC broken
  • bug fix: write IMAGE "t.png" not working
  • bug fix: rotate -10 -10 not working
  • code: code merge between 13.2 and 13.3 18 Sept 2013
  • code: major clean-up of ActionManager
  • bug fix: mouse bindings not distinguishing DOWN/CLICK/DRAG/UP properly
  • bug fix: mouse bindings _center and _reset not working
  • bug fix: show MOUSE not including user-defined mouse binding
  • FEATURE CHANGE: added bindings: "drag" and "up" -- may affect power users who use BIND command
  • bug fix: chains improperly selected in JSmol/HTML5
  • bug fix: JSmol/HTML5 not allowing drag-drop or file loading from a local drive.
  • bug fix: JSmol/HTML5 not allowing WRITE FILE ?
  • bug fix: JSmol/HTML5 not allowing WRITE xxx.pdb, xxx.mol, etc
  • bug fix: platformSpeed persists but appears unreadable after loading a state
  • bug fix: JavaScript version InputStreamReader not processing non-UTF data correctly
  • bug fix: second reading of older PNG files with embedded script fails due to improper png file caching
  • new feature: set drawFontSize // defaults to 14.0

New in Jmol 13.3.5 PreRelease (Oct 10, 2013)

  • new feature: show NMR taps into NMRDB directly
  • bug fix: CRYSTAL reader not allowing vibration for conventional cell
  • bug fix: JavaScript binary for Safari and Opera
  • new feature: strutureModifiedCallback
  • bug fix: ID @id vector fails

New in Jmol 13.2.5 (Oct 10, 2013)

  • new feature: show NMR taps into NMRDB directly
  • bug fix: CRYSTAL reader not allowing vibration for conventional cell
  • bug fix: JavaScript binary for Safari and Opera
  • new feature: strutureModifiedCallback
  • bug fix: ID @id vector fails

New in Jmol 13.3.4 PreRelease (Oct 10, 2013)

  • bug fix: JANA2006 reader not processing occupancies
  • bug fix: CIF reader not reading _CCDC_GEOM_BOND_TYPE record
  • bug fix: File dialog problems with paths having space
  • bug fix: GAMESS reader not reading energies
  • bug fix: TRY failure in a load command followed by a successful load having a loadScript will pop past the second TRY and crash Jmol
  • new feature: _logfile holds full path to logfile
  • code: Incommensurate modulated structure CIF and M50/40 file loading validation
  • bug fix: translation not read from state
  • new feature: set platformSpeed [0 to 10]
  • new feature: show ROTATION BEST
  • new feature: quaternion("best")
  • new feature: show ROTATION VOLUME
  • new feature: rotate BEST
  • new feature: rotate SELECTED BEST
  • new feature: pop-up menu selection "view...best"
  • bug fix: CIF reader does not find Hall name for space groups
  • bug fix: binding names not included in SHOW MOUSE
  • bug fix: "single" touch can fire double-click
  • bug fix: {x}.tensor() command fails when no atom tensors bug fix: isosurface slab not allowing two different slabs for two diffrent isosurfaces
  • bug fix: set wireframeRotation not working ("inMotion" flag not properly read in Viewer).
  • bug fix: screen repaints were being requested far too frequently
  • new feature: incommensurate modulation of ADPs. new feature: Jana2006 M40/M50 file reading
  • bug fix: set loglevel 6 (debugHigh) not working
  • bug fix: {*}.tensor("", "id") not implemented
  • bug fix: {*}.tensor("") not implemented
  • bug fix: {*}.tensor("adp") fails
  • bug fix: {*}.symmetry fails when space group is P1
  • bug fix: atom tensors lost when merging
  • bug fix: Jsmol menu and console broken in 2013.08.07 when jQuery calls were all moved into JSmolCore.js
  • bug fix: float parser broken in dev_2013.08.07
  • code: reorganization of ScriptEvaluator into two sections, one optional
  • new feature: COMPARE {atoms} [coords]
  • new feature: COMPARE {atoms} ATOMS {subset1} [coords1] {subset2} [coords2] ...
  • new feature: MODULATION command -- for modulated structures
  • bug fix: zoom setting lost in state
  • code: incommensurate crystal work -- Uiso, preliminary Uij and subsystems code: incommensurate crystal work -- occupancy Crenel, displacive sawtooths
  • bug fix: shapeInfo not reporting visibility of isosurface
  • code: pdb, cif readers separated into separate packages; p2n, pqr readers with pdb now
  • new feature: Jana2006 reader
  • new feature: CIF reader reads incommensurate modulated structures
  • code: Even faster float parsing
  • bug fix: filter lost after CENTROID or PACKED load option
  • bug fix: set rangeSelected not functional
  • new feature: msCIF file reading of incommensurate modulation data as vibration
  • new feature: msCIF file filter "MODAXES=xxx" where xxx = X,XY,XYZ,YZ,etc.
  • new feature: msCIF file filter "MODAVE" gives average structure with vibration vectors.
  • bug fix: minimization can fail after MMFF switches to UFF.
  • bug fix: CIF reader fix for no element given "phenyl1" in ZjzxlegN.cif

New in Jmol 13.2.4 (Oct 10, 2013)

  • bug fix: JANA2006 reader not processing occupancies -- read now forced to "PACKED" in order to calculate site multiplicity
  • bug fix: CIF reader not reading _CCDC_GEOM_BOND_TYPE record
  • bug fix: File dialog problems with paths having space
  • bug fix: GAMESS reader not reading energies
  • bug fix: TRY failure in a load command followed by a successful load having a loadScript will pop past the second TRY and crash Jmol new feature: _logfile holds full path to logfile
  • new feature: _logfile holds full path to logfile
  • bug fix: translation not read from state
  • new feature: set platformSpeed [0 to 10]
  • new feature: show ROTATION BEST
  • operates on currently selected atoms
  • reports "{quaternion}"
  • new feature: quaternion("best")
  • delivers actual quaternion
  • new feature: show ROTATION VOLUME
  • calculates approximate best box (from 1495 quaternion-based alternatives) reports " {dx dy dz}" -- where is the volume,
  • and {dx dy dz} are the dimensions, where dx > dy > dz
  • new feature: rotate BEST
  • new feature: rotate SELECTED BEST
  • new feature: pop-up menu selection "view...best"
  • bug fix: CIF reader does not find Hall name for space groups
  • bug fix: binding names not included in SHOW MOUSE
  • bug fix: "single" touch can fire double-click bug fix: {x}.tensor() command fails when no atom tensors
  • bug fix: isosurface slab not allowing two different slabs for two diffrent isosurfaces
  • bug fix: set wireframeRotation not working ("inMotion" flag not properly read in Viewer).
  • bug fix: screen repaints were being requested far too frequently
  • new feature: incommensurate modulation of ADPs.
  • new feature: Jana2006 M40/M50 file reading
  • bug fix: set loglevel 6 (debugHigh) not working
  • bug fix: {*}.tensor("", "id") not implemented
  • bug fix: {*}.tensor("") not implemented
  • bug fix: {*}.tensor("adp") fails
  • bug fix: {*}.symmetry fails when space group is P1
  • bug fix: atom tensors lost when merging
  • bug fix: Jsmol menu and console broken in 2013.08.07 when jQuery calls were all moved into JSmolCore.js
  • bug fix: float parser broken in dev_2013.08.07
  • new feature: COMPARE {atoms} [coords]
  • new feature: COMPARE {atoms} ATOMS {subset1} [coords1] {subset2} [coords2]
  • new feature: MODULATION command -- for modulated structures
  • bug fix: zoom setting lost in state
  • code: incommensurate crystal work - Uiso, preliminary Uij and subsystems
  • code: incommensurate crystal work - occupancy Crenel, displacive sawtooths
  • bug fix: shapeInfo not reporting visibility of isosurface
  • code: pdb, cif readers separated into separate packages; p2n, pqr readers with pdb now
  • new feature: Jana2006 reader
  • new feature: CIF reader reads incommensurate modulated structures
  • code: Even faster float parsing
  • bug fix: filter lost after CENTROID or PACKED load option
  • bug fix: set rangeSelected not functional
  • new feature: msCIF file reading of incommensurate modulation data as vibration
  • new feature: msCIF file filter "MODAXES=xxx" where xxx = X,XY,XYZ,YZ,etc.
  • new feature: msCIF file filter "MODAVE" gives average structure with vibration vectors.
  • bug fix: minimization can fail after MMFF switches to UFF.
  • bug fix: CIF reader fix for no element given "phenyl1" in ZjzxlegN.cif

New in Jmol 13.3.3 PreRelease (Jul 29, 2013)

  • bug fix: Gaussian cube format changed and not recognized (extra "1" in third line).
  • bug fix: PDB header don't do trim();
  • bug fix: isosuface ID @x ... becomes isosurface ID "@x"
  • bug fix: color chain broken
  • bug fix: rockets with color chain
  • bug fix: filter ":X" broken
  • bug fix: O not 2- in PDB adding hydrogens
  • bug fix: NWChem reader error
  • bug fix: JSmol 2-sided surface color problem due to Java2Script miscoding of Number.shortValue()
  • bug fix: PyMOLMeshReader code clean-up.

New in Jmol 13.2.3 (Jul 29, 2013)

  • bug fix: Gaussian cube format changed and not recognized (extra "1" in third line).
  • bug fix: PDB header don't do trim();
  • bug fix: isosuface ID @x ... becomes isosurface ID "@x"
  • bug fix: color chain broken
  • bug fix: rockets with color chain
  • bug fix: filter ":X" broken
  • bug fix: O not 2- in PDB adding hydrogens
  • bug fix: NWChem reader error bug fix: JSmol 2-sided surface color problem due to Java2Script miscoding of Number.shortValue()
  • bug fix: PyMOLMeshReader code clean-up.
  • bug fix: PyMOL mesh reader broken for EDS files
  • bug fix: MMCIF_PDBX structures not being read
  • bug fix: allow PyMOL PSE files reading as part of a set of files, not just by itself bug fix: quaternion plots not synched with originating structure
  • bug fix: 1skt.cif loses secondary structure (MMCIF_PDBX reader needed)
  • bug fix: set showTiming not functional
  • bug fix: set pdbAddHydrogens does not set formal charge on O(1-) or "O" of H2O (2-)
  • bug fix: PNGJ files not properly caching, and PSE files with DOCACHE option
  • new feature: calculate formalCharge

New in Jmol 13.2.0 (Jul 19, 2013)

  • new feature: set exportScale x.x -- adjusts export scale -- only implemented for VRML and X3D exporters
  • new feature: unitcell center {atomset}
  • new feature: unitcell center {fx fy fz}
  • new feature: {*}.ms, {*}.cs %[ms] %[cs] magnetic shielding and chemical shift
  • new feature: label xxx
  • new feature: set shift_H xxx (ppm)
  • new feature: getProperty("nmrInfo")
  • new feature: NMR analysis tools:
  • x = measure({a} {b} "isc_hz") - J coupling
  • x = measure({a} {b} "dc_khz") -- dipolar constant
  • MEASURE {a} {b} "2://dc_hz" -- dipolar constant
  • MEASURE {a} {b} "2:%3.2VALUE//dc_khz" -- dipolar constant
  • MEASURE {a} {b} "2://khz" -- defaults to dc_khz
  • MEASURE {a} {b} "2://hz" -- defaults to isc_hz
  • MEASURE {a} {b} "2://isc_1hz"
  • new feature: {xxx}.tensor(type,what) type = "temp", "ms", "efg", etc.
  • returns a list of data. isc-type returns a list of lists [index1, index2, value]
  • what = "j" (isc-type only) "chi" (efg only) "dc" (dipolar coupling constant; type ignored) "eigenvalues" float[v1,v2,v3] "eigenvectors" P3[V1,V2,V3] "value" Float (v3) "asymMatrix" Matrix3f "symMatrix" Matrix3f "isotropy" Float v_iso=(v1 + v2 + v3)/3 "anisotropy" Float v3 - (v1 + v2)/2 "asymmetry" Float (v2 - v1)/(v3 - v_iso) "eulerzxz" float[] "eulerzyz" float[] "quaternion" Quaternion "indices" float[modelIndex,atomIndex1,atomIndex2] "string" selected readable data "type" anything else
  • all key/value pairs new feature: bind "+:"
  • added "+:" indicates to NOT unbind Jmol action
  • new feature: ellipsoid OPTIONS "xxxx"
  • "xxxx" is a quoted string of options separated by semicolon: "arcs;arrows;axes;ball;dots;fill;wireframe" with optional "no" in front of each new feature: SET ECHO POINT {atom or point}
  • allows 2D and 3D echos to have pointers to atoms or points
  • bug fix: set shift_XX not saved in state
  • bug fix: JSmol menu not disappearing upon touch outside menu
  • bug fix: PyMOL surface map reading error
  • bug fix: magres measurement of dipole coupling constants do not reach just min-distance set bug fix: "cs" for Cs symmetry broken in chemical shift
  • bug fix: cartoons with too small nonzero size will not render anything code: org.jmol.quantum.NMRCalculation smoothly handles J-coupling and dipolar coupling constant display. code: org.jmol.quantum.NMRCalculation implements org.jmol.api.JmolNMRCalculation: public float getQuadrupolarConstant(Tensor efg); public float getJCouplingHz(Atom a1, Atom a2, String type, Tensor t); public float getDipolarConstantHz(Atom a1, Atom a2); public float getDipolarCouplingHz(Atom a1, Atom a2, V3 vField); public JmolList getInteractionTensorList(String type, BS bs); public BS getUniqueTensorSet(BS bs); public JmolList getTensorInfo(String tensorType, String infoType, BS bs); public Map getMinDistances(MeasurementData md); public boolean getState(SB sb); public Object getInfo(String sym)

New in Jmol 13.1.16 PreRelease (Jun 6, 2013)

  • new feature: color BALLS
  • distinct from color ATOMS because it doesn't get inherited
  • for PyMOL compatability with sphere_color new feature: restore SCENE "xxxx" nSec
  • new feature: Scene menu
  • PyMOL scene names, in order new feature: added parameters to moveTo allows setting cameraDepth, cameraX, and cameraY
  • new feature: moveTo PYMOL [18-element standard PyMOL view matrix]
  • used for PSE file loading
  • to be used also for scenes
  • [0-8] are 3x3 rotation matrix (row/column inverted)
  • [9,10] are x,y translations (y negative)
  • [11] is distance from camera to center (negative)
  • [12-14] are rotation center coords
  • [15-16] are slab and depth distance from camera (0 to ignore)
  • [17] is field of view; positive for orthographic projection
  • new feature: cache CLEAR
  • same as cache REMOVE ALL
  • new feature: load xxx.pse FILTER "DOCACHE"
  • specifically for editing large PSE files when included in a state
  • caches streamlined file that is still readable by PyMOL (needs testing!) (no electron density map data, for instance
  • caches all isosurfaces, creating JVXL equivalents
  • should be followed with WRITE xxx.pngj or WRITE xxx.jmol or WRITE xxx.zip
  • for example: before: 04/07/2013 07:46 AM 11,929,507 HupA_2.pse $ zap;load SYNC "file:///C:/temp/downloads/HupA_2.pse" filter 'DOcache' $ write t.zip after: Listing archive: t.zip Physical Size = 395174
  • new feature: anim FRAMES [1, 3, 9, 9, 9, 3, 1]
  • arbitrary PyMOL-like model list new feature: FRAME n
  • same as MODEL n, unless we have PyMOL-like frames
  • if have frames, then FRAME 2 goes to the second frame (model 3 in this case)
  • MODEL n still always goes to a specific model.
  • all relative options -- FIRST LAST PREV NEXT -- refer to frames if there are frames even if the MODEL command is given.
  • new feature: pyMOL PSE state options: LOAD "FOO.PSE" state FILTER "xxxx"
  • [state not present; default] load all PyMOL states (one PyMOL state == one Jmol model)
  • state = 0 (load only the current PyMOL state)
  • state > 0 (load just a specific PyMOL state)
  • FILTER "nosurface" -- load PyMOL file without surfaces
  • FILTER "
  • new feature: getProperty BONDINFO {atomset1} {atomset2}
  • new feature: measurements with IDs and radius/diameter:
  • measure ID "xxx" ...
  • measure ID "xxx" RADIUS x.y (or DIAMETER x.y)
  • renders as dots new feature: set zoomHeight -- FALSE by default -- set TRUE for PyMOL-like resizing (scale only set by height adjustment)
  • new feature: isosurface color density (decimal) -
  • variable decimal point size
  • new feature: PyMOL CGOs as CGO command
  • needs testing - CGO ID "xxx" [ cgo data (float array) ]
  • includes basic CGO methods
  • BEGIN
  • GL_POINTS
  • GL_LINES
  • GL_LINESTRIP
  • GL_TRIANGLE
  • GL_TRIANGLE_STRIP
  • GL_TRIANGLE_FAN
  • VERTEX
  • END
  • COLOR
  • NORMAL
  • SIMPLE_LINE
  • SAUSAGE TRICOLOR_TRIANGLE
  • popup: added menu for MEP range -0.1 0.1
  • PyMOL: uniqueBondSettings working
  • PyMOL: better scene restore;
  • PyMOL: adds SASURFACE option (surface_solvent ON), with "carving" (ProFusion_ABL.pse, scene F6)
  • PyMOL: abstraction of scene setting from reader
  • PyMOL: first phase of reader development complete
  • implementation of standard objects, including:
  • atoms with labels bonds
  • standard PyMOL rendering, including:
  • lines
  • sticks
  • nonbonded (stars)
  • nb_spheres
  • cartoons of various types (not plank)
  • rockets
  • ribbon (backbone/trace)
  • putty (trace)
  • dots
  • measures
  • simple CGO objects
  • molecular surfaces
  • electron density as points and meshes
  • custom colors
  • fog and slab
  • morphing movies
  • JVXL caching of isosurfaces
  • PyMOL: measurement font/offsets enabled
  • adds measure ID "xxx" FONT scale face style
  • adds measure ID "xxx" OFFSET [mode, sx, sy, sz, ax, ay, az]
  • adds measure ID "xxx" OFFSET {sx, sy, sz}
  • PyMOL: perspective fix for translated center - H115W.PinM.PSE
  • PyMOL: preliminary scene implementation
  • view only
  • use RESTORE ORIENTATION xxxxx
  • code: Text.java, Object2d.java moved from shapes to modelset
  • bug fix: JavaScript: adding SYNC
  • bug fix: antialiasing or resizing stray lines problem solved (introduced in 11.0, 08/2006!)
  • bug fix: "display add" by itself should not do anything
  • bug fix: Hall translation initialization problem
  • bug fix: JavaScript reading of old-style JVXL files
  • bug fix: Gaussian reader not splitting MO set by model
  • bug fix: polyhedron reading from state
  • bug fix: connect delete not saved in state
  • bug fix: rockets not working for alpha polymer (also in 13.0.16)
  • bug fix: GXL added to carbohydrates
  • bug fix: show state/anim turns "anim" into "animation"
  • bug fix: MoldenReader orbitals are not in energy order; use FILTER "NOSORT" to prevent sorting by energy bug fix: simultaneous spin/animation broken in 13.1.13
  • bug fix: MoldenReader fix for file blank lines and g,h,i orbitals - also for 13.0.16
  • bug fix: COMPARE does not allow nSeconds at beginning, as described in documentation
  • bug fix: isosurface VOLUME/ARRAY SET n cannot return to full array reporting; SET -1 added.
  • bug fix: isosurface VOLUME/ARRAY always returns an array, possibly of length 0
  • bug fix: isosurface molecular/solvent can give inappropriate inner surfaces
  • bug fix: show selected includes deleted atoms

New in Jmol 13.0.16 (Jun 6, 2013)

  • bug fix: antialiasing or resizing stray lines problem solved (introduced in 11.0, 08/2006!)
  • bug fix: "display add" by itself should not do anything
  • bug fix: Gaussian reader not splitting MO set by model bug fix: polyhedra not saved in state bug fix: rockets not working for alpha polymer
  • bug fix: GXL added to carbohydrates bug fix: show state/anim turns "anim" into "animation"
  • bug fix: MoldenReader fix for file blank lines and g,h,i orbitals
  • bug fix: COMPARE does not allow nSeconds at beginning, as described in documentation
  • bug fix: isosurface VOLUME/ARRAY SET n cannot return to full array reporting; SET -1 added.
  • bug fix: isosurface VOLUME/ARRAY always returns an array, possibly of length 0
  • bug fix: isosurface molecular/solvent can give inappropriate inner surfaces
  • bug fix: show selected includes deleted atoms

New in Jmol 13.1.15 PreRelease (Apr 29, 2013)

  • FEATURE CHANGE: default JPEG quality set to 100 (was 75, which looks crappy)
  • new feature: select command parameter completion using [TAB] includes variables
  • new feature: PyMOL-like label offset options: set labelOffset [sx, sy, sz] set labelOffset [mode, sx, sy, sz, ax, ay, az] where sx,sy,sz are screen coord offsets -- in Angstroms -- applied after view rotation -- sy > 0 LOWERS label ax,ay,az are xyz position (in Angstroms; applied before view rotation) mode == 1 indicates xyz position is an offset to the atom position mode != 1 indicates xyz position is absolute
  • new feature: CASTEP energy reading new feature: XCrysDen file reader
  • new feature: VASP POSCAR reader
  • new feature: set cartoonLadder -- no bases, like PyMOL
  • new feature: model CREATE n -- allows "empty" model creation without atoms -- n = number of models to create -- defaults to 1
  • new feature: "all frames" toolbar button starts/stops PyMOL movies: if(_isMovie){if (_animating) {animation off}else{animation play}} else {frame *}
  • new feature: Jmol/JmolData application -I flag accepts input from System.in and command piping: type t.spt | jmol -I start Jmol with this script Note: if you use a pipe, be sure to make "exitJmol" the last command of the script Add -o for output to System.out. Without the pipe, we are going to control Jmol from a Jmol> prompt on the command line console jmol -Io see messages on input console ...messages from Jmol Jmol> background red;load 1crn.pdb;.... ...messages from Jmol Jmol> exitJmol Add -n for headless operation (will not exit automatically). type t.spt | jmol -Ion Note: if you use a pipe, be sure to make "exitJmol" the last command of the script Add -i for silent operation (no writing to System.output).
  • new feature: dots IGNORE {atom set} ON;
  • new feature: Jmol or JmolData with -g0x0 and load filter "DORESIZE" will automatically resize the image to what is given in the PyMOL file as its default size: JmolData -ns "load t.pse filter 'DORESIZE'" -g0x0 -w "PNGJ:t.png" TODO: PyMOL electron density map data itself (meshes are done)
  • bug fix: isosurface map property may not reference correct atom
  • bug fix: set isosurfacekey may not work with slabbing
  • bug fix: deleting atoms does not remove bioshape rendering
  • bug fix: isosurface in multi-model context saved in state with wrong model number
  • bug fix: PyMOL label fix, including fonts
  • bug fix: PyMOL rockets, nucleic acid rendering
  • bug fix: write JPG not working in JavaScript
  • bug fix: isosurface ... map property colors not cleared entirely before next mapping
  • bug fix: MSMS reader broken
  • bug fix: labels lost upon z-shading
  • bug fix: isosurface property temperature default smoothing broken in 13.1.13.
  • bug fix: {xxx}.cartoon = {xxx}.temperature.all fails to use correct values (also backbone, trace, etc.)
  • bug fix: isosurface translucent level not re-zeroed properly
  • bug fix: IDTF exporter with translucency fails
  • bug fix: commands f.sort() and f.reverse() fail.
  • bug fix: {;...;} syntax does not work in 13.1
  • bug fix: select dots > 0 does not work
  • bug fix: JmolData broken
  • code: PyMOL work; CGO command and class CGO extends DRAW preliminary only; preliminary putty; fix for putty+sticks issue
  • code: PyMOL reader localSettings
  • code: PyMOL putty hack for Cover1.pse removed; colix index error fixed
  • code: PyMOL slab and depth; better field of view; even better zslab/zdepth
  • code: PyMOL reader "backbone" (really a trace -- fixed width?) code: PyMOL reader isosurface solvent code: PyMOL reader and full surfaces, mixed bigEndian/littleEndian Pickle reading
  • code: PyMOL reader: cartoon_ladder_mode approximation as cartoons
  • code: PyMOL reader: includes cartoon type 1,4,7 -> trace code: String JmolViewer.runScript(String script) runs script immediately and returns output buffer
  • code: continued work on PyMOL PSE file reader
  • code: simplification of JmolViewer interface and access to global parameters:
  • // several; methods were deprecated and removed in 13.1.15. All are accessible via "getXxxx" methods:
  • abstract public float getFloat(int tok);
  • abstract public int getInt(int tok);
  • abstract public boolean getBoolean(int tok);
  • //abstract public int getAnimationFps(); see getInt(T.animationFps)
  • //abstract public boolean getShowHydrogens(); see getBoolean(T.showhydrogens)
  • //abstract public boolean getShowMeasurements(); see getBoolean(T.showmeasurements)
  • //abstract public boolean getAxesOrientationRasmol(); see getBoolean(T.axesorientationrasmol)
  • //abstract public int getPercentVdwAtom(); see getInt(T.percentvdwatom)
  • //abstract public boolean getAutoBond(); see getBoolean(T.autobond))
  • //abstract public boolean showModelSetDownload(); deprecated -- was just "true"

New in Jmol 13.0.15 (Apr 29, 2013)

  • bug fix: isosurface map property may not reference correct atom
  • bug fix: set isosurfacekey may not work with slabbing
  • bug fix: deleting atoms does not remove bioshape rendering
  • bug fix: isosurface in multi-model context saved in state with wrong model number
  • bug fix: labels lost upon z-shading bug fix: {xxx}.cartoon = {xxx}.temperature.all fails to use correct values (also backbone, trace, etc.)
  • bug fix: isosurface translucent level not re-zeroed properly
  • bug fix: command f.sort() and f.reverse() fail.
  • bug fix: select dots > 0 does not work

New in Jmol 13.1.14 PreRelease (Apr 1, 2013)

  • bug fix: isosurface boundbox plane
  • bug fix: isosurface boundbox {pt1} {pt2} plane
  • new feature: JVXL vertex-only data encoding "none" allows hand-coding of JVXL files
  • new feature: isosurface efvet reader data "0" is "indicated colors" -- isosurface "test.efvet" 0 JavaScript: WebGL fix involving Collections.list calling ArrayList.add() J
  • avaScript: disambiguation of Mesh() JavaScript: changing to utf-8 String nonbinary reading of .po files
  • JavaScript: localization working code: cleaning up of Escape and checks for array types code: JavaScript does not need a visible canvas to create images -- could allow for "headless" JS operation
  • bug fix: JVXL 1.0 format reading broken
  • bug fix: MOL2 reader not properly assigning element symbols
  • bug fix: isosurface slab translucent broken when saved in state
  • bug fix: isosurface slab translucent mesh broken when saved in state
  • bug fix: JavaScript minimization fix bug fix: sync socket connections not working
  • bug fix: "navigate percent" broken bug fix: isosurface area/volume broken
  • bug fix: JavaScript WRITE IMAGE with HTML5 does not allow change of width or height
  • bug fix: WRITE PNGJ does not allow sizing of image
  • bug fix: backbone/spine defs do not take into account phosphorylated proteins. Better: "@backbone protein&(_a>=1&_a=64&_a=6&_a=72)", "@spine protein&_a>=1&_a=6&_a

New in Jmol 13.0.14 (Apr 1, 2013)

  • bug fix: isourface boundbox plane
  • bug fix: isosurface boundbox {pt1} {pt2} plane
  • bug fix: JVXL 1.0 format reading broken
  • bug fix: MOL2 reader not properly assigning element symbols
  • bug fix: isosurface slab translucent broken when saved in state
  • bug fix: isosurface slab translucent mesh broken when saved in state
  • bug fix: sync socket connections not working
  • bug fix: WRITE PNGJ does not allow sizing of image
  • bug fix: backbone/spine defs do not take into account phosphorylated proteins. Better: "@backbone protein&(_a>=1&_a=64&_a=6&_a=72)", "@spine protein&_a>=1&_a=6&_a

New in Jmol 13.0.12 (Jan 28, 2013)

  • bug fix: PDB file reading of remediated 1A7Y and 1E9W error due to too many CONECT bonds
  • now reads HEADER columns 63-66 for 4-digit PDB ID.
  • only if this ID is absent will the number of CONECT bonds be checked in decision to autobond

New in Jmol 13.1.12 PreRelease (Jan 24, 2013)

  • new feature: PDB reading of X-PLOR using hybrid-36 and NAMD files using hex
  • type=supportdocs&type2=&ident=530
  • new feature: load xxx.pdb filter "TYPE i,n"
  • loads custom text fields into the "atomType" property of an atom upon customized PDB file loading where i is the number of the column (starting with 1) and n is the number of columns
  • text is trimmed
  • e.g. load xxx.pdb filter "TYPE 73,4" loads four characters starting at column 73 as "atomType" (segID)
  • to convert to a numerical value, convert that to .property_foo:
  • load xxx.pdb filter "type 22,4"; {*}.property_seqNo = {*}.atomType
  • new feature: PDB filter "TYPE 73,4=xxx"
  • loads four characters starting at column 73 (1-based) as "atomType"
  • loads only those atoms with atom types starting with "xxx"
  • new feature: axes labels "a" "b" "c" "xxx" where "xxx" is the label for the origin
  • JavaScript: fix for SMILES matcher and compare({*},{*},"isomer")
  • j2s reminder: Can't use Java new int[n][]; must use org.jmol.util.ArrayUtil.newInt2(n)
  • JavaScript: going to Float64Array for all noninteger arrays -- all numbers double
  • Note that this could cause differences with Jmol, but I think we will have to live with that.
  • The problem was with (new Float32Array([13.48]))[0] != 13.48. So instead of trying to force
  • floats, it seems to make more sense to me to force doubles, using Float64Array instead of Float32Array.
  • Thanks given to Ira Hanson for clearing this up for me.
  • JavaScript: JSmol writes PNG, PNGJ, JMOL, ZIP files from a web page
  • JavaScript: JSmol writes text files from a web page
  • bug fix: PDB file reading of remediated 1A7Y and 1E9W error due to too many CONECT bonds
  • now reads HEADER columns 63-66 for 4-digit PDB ID.
  • only if this ID is absent will the number of CONECT bonds be checked in decision to autobond
  • bug fix/update: revision of the pages that make the About menu (application) in each language.
  • Some changes that had been formerly applied to the English page are now in all.
  • Removal of copyright date in text)
  • All About_xx.html files are now encoded and saved in UTF-8 w/o BOM,
  • except Chinese which is in GB2312/GB18030.
  • Extended characters in tr and zh that had become corrupt across revisions were restored from old ones.
  • Several html header tags updated or added (html5 doctype, charset, lang)

New in Jmol 13.1.11 PreRelease (Jan 7, 2013)

  • new feature: Jmol app "recent files" recognizes if file was drag-dropped or opened via "File Open"
  • new feature: color cartoons red blue
  • front/back colors
  • preliminary - only for hermiteLevel = 0, not cartoonFancy
  • a bit rough at the edges
  • not in state
  • bug fix: 13.1 does not calculate partial charges (mark/reset fault in reading resource files)
  • bug fix: MOPAC2012 files not recognized
  • bug fix: patch 3581394 - small fixes for cartoon meshes
  • bug fix: 13.1.8 does not display translucent bonds when only bonds are translucent
  • JavaScript: flat cartoons for WebGL using mesh
  • JavaScript: adds XML model file readers
  • tested: VASP, XODYDATA, CML, Chem3D, MolPro, XSD
  • code: refactoring for JavaScript popup/modelkit menus
  • code: GT optimization, refactoring
  • code: Naga sockets upgrade to Naga-3_0. (MolecularPlayground and jsonKiosk)

New in Jmol 13.0.10 (Dec 10, 2012)

  • bug fix: PDB occupancies for first atoms may be 0.0 instead of 1.0
  • bug fix: select *W does not work
  • bug fix: !quit was not stopping animation and vibration
  • bug fix: 13.0.9 breaks Gaussian reader, MagRes reader, NAME= load option broken in applet due to ref to jspecview.util.TextFormat
  • bug fix: setEllipsoid... options not implemented for nonthermal ellipsoids in 13.0 or 13.1

New in Jmol 13.1.9 PreRelease (Nov 25, 2012)

  • new feature: MO or (ISOSURFACE MO) DENSITY:
  • electron density
  • same as MO [1] SQUARED
  • new feature: MO HOMO|LUMO|NEXT|PREV|[c1 n2 c2 n2...] SQUARED:
  • Squares wave functions as it combines them.
  • That is, displays the collective electron density (if occupied)
  • if [...] is not given, groups orbitals by energy
  • code: adding quotes to above properties allows them to be used in JavaScript; j2sNative in JmolConstants.java
  • bug fix: Molden reader tweaks
  • bug fix: Jmol application toolbar picking tool should not select none
  • bug fix: ellipsoid rendering fails
  • bug fix: translucent echo oddities in Jmol 13.1.8
  • bug fix: lost volume rendering in 13.1.8
  • bug fix: CASTEP density reader fails to reset origin to 0 0 0 in mapping
  • bug fix: UTF files with BOM (byte order marker) present not read correctly
  • bug fix: UTF files within GZIP or ZIP files not read correctly
  • bug fix: set picking draw no longer works in Jmol 13.0 or 13.1
  • bug fix: translucent echo backgrounds lost in 13.1.8
  • bug fix: select resno=@{n+3} fails in 12.2, 13.0, and 13.1
  • bug fix: isosurface AtomicOrbital broken in 13.1.8

New in Jmol 13.0.9 (Nov 23, 2012)

  • bug fix: Jmol application toolbar picking tool should not select none
  • bug fix: ellipsoid rendering does not allow axes less than 0.2 Angstroms (changed to 0.02)
  • bug fix: CASTEP density reader fails to reset origin to 0 0 0 in mapping
  • bug fix: UTF files with BOM (byte order marker) present not read correctly
  • bug fix: UTF files within GZIP or ZIP files not read correctly
  • bug fix: set picking draw no longer works in Jmol 13.0 or 13.1
  • bug fix: select resno=@{n+3} fails in 12.2, 13.0, and 13.1

New in Jmol 13.1.8 PreRelease (Oct 29, 2012)

  • code: clearing font cache upon zap.
  • code: HTML5-only JavaScript full text working code: HTML5-only JavaScript version working
  • new feature: much better text rendering using 3-bit translucency
  • bug fix: boundbox $pmeshID, center $pmeshID, and zoomto $pmeshID not implemented
  • bug fix: stronger (bold) frame labels
  • bug fix: no automatic change to bold for antialiasDisplay or PovRAY
  • bug fix: try/catch not working when embedded in another context
  • bug fix: JmolData not producing output for PRINT commands
  • bug fix: JmolData setting haveDisplay true, then failing to get mouse manager
  • bug fix: MRC file reader not setting default cutoff correctly
  • bug fix: (13.1 only) MRC/DNS6 file readers fail
  • bug fix: MRC surface file reader with symmetry error
  • bug fix: (13.1 only) minimization broken

New in Jmol 13.1.7 PreRelease (Oct 18, 2012)

  • FEATURE CHANGE: getProperty isosurfaceInfo no longer returns vertex data new feature: getProperty isosurfaceData returns vertex data new feature: set cartoonFancy
  • -- creates elliptical ribbon for cartoons
  • -- if ribbonAspectRatio is its default value of 16, it is reset to 4 while cartoonFancy = true.
  • bug fix: (13.1 only) reading of states with select BONDS fails to select bonds broken in 13.1.6
  • bug fix: (13.1 only) centered/right-aligned text only aligned after first line bug fix: export WRL missing various objects requiring transformMatrixInv
  • bug fix: export may be missing protein cartoon turn
  • bug fix: set ribbonAspectRatio improperly widens ribbon
  • bug fix: zShadePower should not be static (affecting all applets/Jmol application frames)
  • bug fix: write OBJ xxx.obj not working (but write xxx.obj is fine)
  • bug fix: cartoons (with hermiteLevel > 1) adjusted to have smooth normals between segments also, hermiteLevel >= 6 now gives ellipse cross-section recommended settings: set hermiteLevel 6;set ribbonAspectRatio 4
  • bug fix: JmolControls.js had broken radio buttons
  • bug fix: DRAW {x y z} "title" can fail in multimodel cases with translucency

New in Jmol 13.0.6 (Oct 4, 2012)

  • bug fix: PDB 4B2Q, with faulty (incomplete) REMARK 350 not read
  • bug fix: CASTEP PHONON files not loading

New in Jmol 13.1.6 PreRelease (Oct 3, 2012)

  • bug fix: PDB 4B2Q, with faulty (incomplete) REMARK 350 not read code: successfully refactored for JavaScript
  • note that all code development is done in Jmol, then Java src code is transferred to JSmol project
  • adding: javax.util.BitSet javax.util.StringXBuilder
  • streamlining: javax.vecmath...
  • removed all references to StringBuffer
  • StringXBuilder allows optimization of performance in JavaScript
  • workaround for Java2Script compiler bug setting "char x;" to 0

New in Jmol 13.1.5 PreRelease (Sep 21, 2012)

  • bug fix: CASTEP PHONON files not loading
  • code: refactored for JavaScript

New in Jmol 13.1.4 PreRelease (Sep 17, 2012)

  • bug fix: translate selected x
  • bug code: refactored for JavaScript
  • new feature: ISOSURFACE PLANE ... MAP ... LATTICE {i j k} [volume data] -- allows periodic volume data to be mapped to a plane based on a specified translational lattice -- for example: isosurface plane x=2 map LATTICE {1 2 2} "data.dat"
  • new feature: POLYHEDRA {atom1} to {atoms_including_atom1} -- polyhedra with or without central atom, but with a reference atom
  • bug fix: ISOSURFACE saving in state broken 7/30/12 in 13.0.RC3 bug fix: simple isosurface PLANE not saved in state
  • bug fix: isosurface command with MAP from state when saved to state may fail bug fix: 13.1.2 offsets label positions incorrectly

New in Jmol 13.0.4 (Sep 17, 2012)

  • bug fix: translate selected x
  • bug bug fix: ISOSURFACE saving in state broken 7/30/12 in 13.0.RC3
  • bug fix: simple isosurface PLANE not saved in state
  • bug fix: isosurface command with MAP from state when saved to state may fail

New in Jmol 13.1.3 PreRelease (Sep 7, 2012)

  • bug fix: 13.1.2 breaks loading of ZIP files
  • bug fix: CUBE reader reading atom Z numbers as partial charge
  • bug fix: 13.1.2 breaks LOAD ?

New in Jmol 13.0.2 (Sep 4, 2012)

  • bug fix: translate x 0 does not recenter the model in the window
  • bug fix: PDB polymers of length 1 allow size to be set and appear {visible} but are not
  • bug fix: OPEN dialog doesn't allow for no PDB cartoons.
  • bug fix: open dialog for 1-residue PDB files does not show atoms.
  • bug fix: pngj storage of Spartan directory zip files or Spartan directories cannot be read because the PNGJ files created do not contain the necessary files from the directory

New in Jmol 13.0.1 (Aug 23, 2012)

  • APPLET:
  • a new OOP JavaScript interface (Jmol-JSO) allowing nonJava options such as ChemDoodle and GLmol as well as JME/JSpecView connectivity
  • JmolData full "headless" operation for server-side processing
  • BIOPHYSICS:
  • COMPARE command
  • FILE READING:
  • reading of JCAMP-DX files having structure/spectra assignment data using ##$MODELS and ##$PEAKS (see http://chemapps.stolaf.edu/jmol/jspecview)
  • Gaussian log reading of Natural Transition Orbitals
  • automatic PNGJ file caching for immensely faster loading of PNGJ files from remote servers
  • FILE WRITING:
  • write PNGJ files encapsulate all model file data into one PNG file
  • write image 400 400 PNGJ "http://....." POSTs JMOL or IMAGE or structure to a server as application/octet-stream
  • write MOL adds partial charge data as > in SDF format
  • multiple-scene PNGJ files allowing minimal or full data loading and scripted animations
  • ISOSURFACES:
  • isosurface caching
  • isosurface MOVE [[...matrix4f...]] moves/rotates an isosurface (for the state)
  • MINIMIZATION:
  • MMFF94/UFF minimization and energy calculation
  • MOLECULAR DATA:
  • show CHEMICAL
  • show NMR
  • MOLECULAR PLAYGROUND:
  • MolecularPlayground
  • remote status and remote control
  • SOLID-STATE PHYSICS:
  • solid state physics support
  • SPECTROSCOPY:
  • integration of JSpecView into Jmol, including 2D spectral display and manipulation
  • STRUCTURE SEARCHING:
  • extended Jmol SMARTS searching
  • PubChem search for name (which can be a CAS number), cid, or SMILES using ":"

New in Jmol 13.0 RC 6 (Aug 16, 2012)

  • bug fix: Gaussian reader not reading "AO basis set in the form of general basis input" properly ("Gen" keyword)
  • bug fix: Gaussian reader not reading "7D 0" correctly
  • bug fix: Trajectories still broken for PDB files
  • code: all import foo.*; removed, specified

New in Jmol 13.0 RC 5 (Aug 10, 2012)

  • bug fix: broke trajectories in 13.0.RC4

New in Jmol 13.0 RC 4 (Aug 10, 2012)

  • new feature: write SCENE PNG|PNGJ "xxxx.spt" option to create PNG or PNGJ files (same file, just different extension)
  • new feature: "menu" as sole contents of a script pops up the context menu -- joins category of special commands, including "exit" "pause" and "quit"
  • bug fix: load append TRAJECTORY (upper case) fails
  • bug fix: load append trajectory "$mannose" fails (loads two models)
  • bug fix: load trajectory "maleic.cif" fails with cryptic error message (not appropriate for trajectory loading)
  • bug fix: undocumented and inaccurate CALCULATE VOLUME removed

New in Jmol 12.2.34 (Aug 10, 2012)

  • bug fix: isosurface SOLVENT producing cavity-like artifacts
  • bug fix: isosurface MINSET or SET not compatible with SLAB
  • bug fix: show $d1 where d1 is a DRAW object broken
  • bug fix: calculate hydrogens incorrect for proteins

New in Jmol 13.0 RC 3 (Aug 6, 2012)

  • new feature: automatic PNGJ file caching for immensely faster loading new feature: MENU command pops up menu; preliminary; not tested; not documented new feature; write MOL adds partial charge data as > in SDF format
  • new feature: isosurface CACHE ....
  • parameter CACHE along with isosurface creation or alone instructs Jmol to immediately create JVXL data for the specified surface and to load that data instead. The surface remains in memory (in this version of Jmol) can can be used again using cache://isosurface_ where is the isosurface ID such as "isosurface1".
  • The command ISOSURFACE CACHE alone will cache the current isosurface
  • If the cache is no longer needed, then RESET CACHE will release the memory used to hold the JVXL data for the isosurface
  • The result should be essentially equivalent to the original command. (It is recommended that the original be a relatively simple command, because not all nuances of an isosurface may be stored in the JVXL data.)
  • THIS OPTION IS NOT COMPATIBLE WITH SAVING THE STATE AS AN SPT FILE.
  • Instead, one needs to save the state in PNGJ or JMOL format, where the cached isosurface can be reloaded from a file saved in the PNGJ or JMOL zip directory
  • bug fix: load a model, then load append TRAJECTORY
  • will fail bug fix: load APPEND xxx where xxx is FILE, INLINE, SMILES, TRAJECTORY, MODEL all save incorrect LOAD command in state
  • bug fix: shelx reader (.res) not assigning space group name or applying normalization

New in Jmol 13.0 RC 1 (Jul 16, 2012)

  • a new OOP JavaScript interface allowing nonJava options and JME/JSpecView connectivity
  • MMFF94/UFF minimization and energy calculation
  • integration of JSpecView into Jmol, including 2D spectral display and manipulation
  • reading of JCAMP-DX files having structure/spectra assignment data ##$MODELS and ##$PEAKS (see http://chemapps.stolaf.edu/jmol/docs/examples-12/jspecview)
  • multiple-scene PNGJ files allowing minimal or full data loading and scripted animations
  • write PNGJ files encapsulate all model file data into one PNG file
  • extended Jmol SMARTS searching
  • show CHEMICAL
  • show NMR
  • solid state physics support
  • MolecularPlayground
  • remote status and remote control
  • COMPARE command
  • JmolData full "headless" operation for server-side processing
  • PubChem search for name (which can be a CAS number), cid, or SMILES using ":"
  • isosurface caching
  • write ... "http://....." POSTs JMOL or IMAGE or structure to a server as application/octet-stream

New in Jmol 12.2.33 (Jul 16, 2012)

  • bug fix: select within(1.0, withinallmodels, 1.1) and 1.2 causes exception

New in Jmol 12.2.32 (Jul 2, 2012)

  • bug fix: compiler not synchronized; allows jmolEvaluate() to fail if two threads access it simultaneously
  • bug fix: getproperty isosurface after a "no-surface" isosurface call like load $water;isosurface sasurface fails
  • bug fix: color for hbonds/ssbonds backbone incorrect
  • bug fix: isosurface plane... map property temperature not working

New in Jmol 12.3.32 Prerelease (Jul 2, 2012)

  • FEATURE CHANGE: LOAD "myfile.xxx" with no additional parameters
  • where xxx is "png" or "pngj" or "spt"
  • now assumes these are scripts and runs SCRIPT "myfile.spt" instead
  • new feature: write SCENE "xxxx.spt"
  • -- creates pngj files
  • -- using "xxxx.png" will STILL USE "xxxx.spt" but will create PNGJ files with ".png" extensions
  • -- scene creation with linked PNGJ files
  • -- xxxx.spt should include "pause scene n" commands, which are then
  • used to separate the script into separate scenes. "n" must be an integer.
  • -- Two files are created for each scene (pngj unles:
  • xxxx_scene_n.min.pngj very small; does not contain anything more than # an image, JmolManifest.spt, and scene.spt
  • xxxx_scene_n.all.pngj adds all necessary files, plus script.spt
  • -- Either of these files can be used, but if x.min.pngj is used,
  • then x.all.pngj needs to be present as well in the same directory.
  • new feature: drawHover displays ID for isosurface and reports to hoverCallback
  • new feature: load "$$xxxxx" loads 2D version, not 3D (used for JmolData connection with JME)
  • -- basically, use of two $ signs results in drop of "&get3d=True" from NCI call
  • bug fix: compiler not synchronized; allows jmolEvaluate() to fail if two threads access it simultaneously
  • bug fix: getproperty isosurface after a "no-surface" isosurface call like load $water;isosurface sasurface fails
  • bug fix: color for hbonds/ssbonds backbone incorrect

New in Jmol 12.3.31 Prerelease (Jun 16, 2012)

  • bug fix: isosurface plane ... within ... map ... fails
  • bug fix: write broken in 12.3.30

New in Jmol 12.2.30 (Jun 14, 2012)

  • bug fix: background image NONE fails
  • bug fix: if(...) statement (no braces) broken in 12.2.21

New in Jmol 12.3.29 Prerelease (Jun 11, 2012)

  • new feature: set MESHSCALE (default 1) also allows isosurface/mo mesh scaling:
  • was DOTSCALE in 12.3.26, but that is not appropriate
  • new feature: Mopac archive reader, including internal coord. defs:
  • use FILTER "NOCENTER" to NOT center atoms in unit cell
  • use CENTROID for complete molecules with centroids within unit cell
  • use PACKED CENTROID for complete molecules with any atoms within unit cell
  • properties stored in auxiliaryInfo
  • use getProperty auxiliaryInfo or x = getProperty("auxiliaryInfo".foo) to retrieve
  • new feature: set pathForAllFiles "..."
  • all files, local or remote, will be taken from the indicated path
  • the indicated path may be a zip file entry (ending with "|")
  • automatically reset to '' in case of an unrecoverable error in execution
  • used for creating JMOL files containing user scripts instead of a state
  • disallows all writing and image creation
  • scripts including prompts to read wildcard files (for example, "load ?") will still prompt for those and read them properly
  • new feature: write SCRIPT ["scriptFileName", "filename2","filename3",...] PNGJ|JMOL...:
  • syntax is WRITE SCRIPT followed by an array of file names then whatever else is necessary to create the PNGJ or JMOL file
  • for example: write script ["wind.spt"] test.jmol
  • Creates a single PNGJ or JMOL file that instead of containing the state contains the script and additional files listed by the user.
  • The first script is run, and it is presumed that the other files are needed for full execution of that script.
  • Allows for creating PNGJ and JMOL files that run as animations, not just final states.
  • Jmol will automatically add any files current to the state, but other files not indicated by the state (script files especially) required for the script to run need to be indicated by the user.
  • When the script is executed, pathForAllFiles is set to the zip file itself. Thus, even scripts containing references such as "script2.spt" or "=xxxx" can be run, provided the user supplies script2.spt xxxx.pdb.gz as one of the required filenames.
  • Note that if a file is saved locally using LOAD =xxxx AS t.pdb, Jmol will automatically use the local file reference to t.pdb, not the RCSB reference.
  • If the file is loaded using only LOAD =xxxx, then Jmol will reload the remote file and store it in the PNGJ/JMOL file as xxxx.pdb.gz.

New in Jmol 12.2.28 (May 31, 2012)

  • bug fix: LOAD with SPACEGROUP or RANGE or UNITCELL should default to {555 555 -1} (packed) lattice
  • bug fix: JVXL reading of mapped data does not use file's rendering option for lighting
  • bug fix: default measure dotted lines are too thin for export

New in Jmol 12.3.28 Prerelease (May 31, 2012)

  • new feature: isosurface ... map PERIODIC ...
  • allows mapping grid-based data beyond the unit cell defining its grid
  • new feature: write VIBRATION n
  • writes 20 * n frames
  • n periods
  • some issues with first frame and value of n
  • new feature: load PACKED CENTROID
  • only complete molecules having centroid within or on the face of the unit cell
  • may not preserve
  • of atoms of unit cell
  • new feature: unitcell $isosurfaceID
  • new feature: unitcell [{center}, {a}, {b}, {c}]
  • sets unit cell for current model only
  • new feature: "plot data" command by itself opens a new frame with just one atom in it, at (0,0,0)
  • new feature: isosurface SLAB BRILLOUIN (or WIGNERSEITZ)
  • transposes an isosurface into the Brillouin-zone/Wigner-Seitz unit cell
  • based on the isosurface's vectors if there is no unit cell for this model.
  • for creating isosurfaces of Fermi surfaces
  • bug fix: LOAD with SPACEGROUP or RANGE or UNITCELL should default to {555 555 -1} (packed) lattice
  • bug fix: JVXL reading of mapped data does not use file's rendering option for lighting
  • bug fix: default measure dotted lines are too thin for export
  • bug fix: measures not offset correctly when given width in line.

New in Jmol 12.2.27 (May 25, 2012)

  • bug fix: draw pointgroup scale x.x -- changing x.x does not revise point group
  • bug fix: reading of JVXL-version 1 (nonXML) files does not display colors
  • bug fix: translate y 10 works, but translate Y 10 does not

New in Jmol 12.3.27 Prerelease (May 25, 2012)

  • new feature: [menu] vibration [*,/] 2
  • new feature: XSF isosurface reader
  • new feature: load CENTROID (only complete molecules having cenroid in unit cell)
  • bug fix: write PNGJ broken in 12.3.26
  • bug fix: 12.3.26 breaks Jmol/JspecView connection
  • bug fix: draw pointgroup scale x.x -- changing x.x does not revise point group
  • bug fix: reading of JVXL-version 1 (nonXML) files does not display colors
  • bug fix: translate y 10 works, but translate Y 10 does not

New in Jmol 12.2.26 (May 23, 2012)

  • bug fix: select 1.0 fails
  • bug fix: COMPARE broken
  • bug fix: nested SMARTS strings can give incorrect response
  • checkmm.spt
  • checkmm("FOVRAJ")
  • select search("/aromaticstrict aromaticdouble/$([#7v3][#6]([#7D3v3&!$([#7][O])])=[#7v4])")
  • show selected
  • was returning 1 atom, but should be 0
  • bug fix: measurementUnits = "au" does not work

New in Jmol 12.3.26 Prerelease (May 23, 2012)

  • bug fix: select 1.0 fails
  • bug fix: COMPARE broken
  • bug fix: Writing file into .jmol file after reading it from another results in the whole
  • zip file being copied into the new .jmol file.
  • new feature: Jmol SMARTS searching can include full Jmol selection syntax within
  • an atom primitive using the "atomType" option and "select:":
  • load caffeine.xyz
  • print {*}.find('{c}$(select _N and connected(2, _C))') new feature: model ID "xxx" (or frame ID....)
  • -- sets the model's ID to "xxx"
  • -- can be used to switch to that model using model "xxx"
  • -- can be targeted file-specifically using "filename#xxx"
  • -- if two models have the same ID and no filename is given, then the first model found becomes the current model
  • -- used for correlating non-Jmol synced applets
  • new feature: script "t.spt"(...variables...)
  • -- quotes are optional if file name does not include " " or "(" # -- "script" is optional if file name is quoted or ends with ".spt"
  • -- allows passing variables to a script much like a function call
  • -- variables will be in VAR named "_arguments" within that script (like JavaScript)
  • -- _arguments, like all arrays in Jmol, is 1-based, 0-terminated (unlike JavaScript)
  • -- _arguments is unsettable by the user
  • -- for standard script functions, _arguments will be []
  • -- for example, if test.spt is simply "show _arguments", then
  • load $caffeine
  • test.spt({*}, {*}.xyz ,35, [1,2,3,4])
  • will output:
  • _arguments = [({0:23}),{-0.086670786 -0.02787502 5.6667876E-4},35,[1,2,3,4]]
  • new feature: set forcefield "UFF" or "MMFF"
  • -- default is MMFF
  • -- automatically switches to UFF if atom types cannot be set
  • -- minimizationCallback reports actual force field used
  • new feature: set energyUnits kJ|kcal
  • new feature: set DOTSCALE (default 1) also allows isosurface/mo mesh scaling
  • new feature: antialiased display and image creation uses larger mesh scaling for cleaner look
  • code: adding empirical rules to MMFF94 calculation checkmm.spt;checkAllEnergies
  • checking calculated energies for 761 models
  • 1 COMKAQ E= -7.3250003 Eref= -7.6177 diff= 0.2926998
  • 2 DUVHUX10 E= 64.759995 Eref= 64.082855 diff= 0.6771393
  • 3 FORJIF E= 35.978 Eref= 35.833878 diff= 0.14412308
  • 4 JADLIJ E= 25.104 Eref= 24.7038 diff= 0.4001999
  • 5 PHOSLA10 E= 111.232994 Eref= 112.07078 diff= 0.8377838
  • 6 PHOSLB10 E= -93.479004 Eref= -92.64081 diff= 0.8381958
  • for 761 atoms, 6 have energy differences outside the range -0.1 to 0.1
  • with a standard deviation of 0.05309403
  • bug fix: nested SMARTS strings can give incorrect response
  • load data "mol"
  • C:/jmol-dev/bobtest/t6.mol
  • __Jmol-12_05191218593D 1 1.00000 0.00000 0
  • Jmol version 12.3.26 2012-05-19 18:34 EXTRACT: ({0 3 4})
  • 3 2 0 0 0 0 1 V2000
  • 2.89480 4.81990 0.01710 N 0 0 0 0 0 0
  • 3.52580 2.75730 -0.17290 N 0 0 0 0 0 0
  • 3.94370 4.03730 -0.25710 C 0 0 0 0 0 0
  • 1 3 2 0 0 0 # 2 3 1 0 0 0
  • M END
  • end "mol"
  • select search("$([#7][#6]([#7&!$([#7][O])])=[#7])")
  • show selected
  • was returning 1 atom, but should be 0 (because there are only two N atoms!)
  • bug fix: measurementUnits = "au" does not work

New in Jmol 12.2.25 (May 17, 2012)

  • bug fix: compare {22-31} {7-16} subset {*.ca} should work without ATOMSET next
  • bug fix: compare {22-31} {7-16} should work, using {spine} as default
  • bug fix: isosurface molecular for certain flat models will fail to cap H atoms
  • bug fix: dipole command fails after model kit changes

New in Jmol 12.3.25 Prerelease (May 17, 2012)

  • new feature: MMFF94 single point energy calculation and minimization
  • set forcefield "MMFF"
  • checkmm.spt # checkmm "AMHTAR01";minimize energy
  • AMHTAR01 Initial E = 66.180 kcal/mol
  • should be 66.18011
  • checkmm "ARGIND11";minimize energy
  • ARGIND11 Initial E = -207.436 kcal/mol
  • should be -207.43598
  • validation complete. The following 13 structures (of 761) do not validate to within 0.1 kcal/mol
  • COMKAQ E= -7.3250003 Eref= -7.6177 diff= 0.2926998
  • MMFF94 ignores 1 of 5-membered ring torsions for a 1-oxo-2-oxa-bicyclo[3.2.0]heptane
  • MMFF94_bmin.log: WARNING - Conformational Energies May Not Be Accurate 2 DUVHUX10 E= 64.759995 Eref= 64.082855 diff= 0.6771393
  • MMFF94 ignores 5-membered ring issue for S-S-containing ring MMFF94_bmin.log: WARNING - Conformational Energies May Not Be Accurate 3 FORJIF E= 35.978 Eref= 35.833878 diff= 0.14412308
  • MMFF94 uses some sort of undocumented empirical rule used for 1 torsion not found in tables
  • MMFF94_bmin.log: WARNING - Conformational Energies May Not Be Accurate 4 JADLIJ E= 25.104 Eref= 24.7038 diff= 0.4001999
  • ignores 5-membered ring for S (note, however, this is not the case in BODKOU)
  • MMFF94_bmin.log: WARNING - Conformational Energies May Not Be Accurate 5 KEPKIZ E= 61.127 Eref= 61.816277 diff= 0.68927765
  • MMFF94 requires empirical rule parameters
  • MMFF94_bmin.log: WARNING - Conformational Energies May Not Be Accurate 6 PHOSLA10 E= 111.232994 Eref= 112.07078 diff= 0.8377838
  • MMFF94 ignores all 5-membered ring torsions in ring with P
  • (note, however, this is not the case in CUVGAB)
  • MMFF94_bmin.log: WARNING - Conformational Energies May Not Be Accurate 7 PHOSLB10 E= -93.479004 Eref= -92.64081 diff= 0.8381958
  • MMFF94 ignores all 5-membered ring torsions in ring with P
  • (note, however, this is not the case in CUVGAB)
  • MMFF94_bmin.log: WARNING - Conformational Energies May Not Be Accurate empirical-rule-requiring models: (all are nonaromatic heterocycles)
  • 8 ERULE_01 E= -22.582 Eref= -21.515108 diff= 1.0668926 # 9 ERULE_02 E= 29.407999 Eref= 29.799572 diff= 0.39157295
  • 10 ERULE_03 E= -3.326 Eref= -2.9351802 diff= 0.3908198
  • 11 ERULE_04 E= -2.572 Eref= -2.31007 diff= 0.26193
  • 12 ERULE_07 E= 2.873 Eref= 3.16775 diff= 0.29474998
  • 13 ERULE_08 E= 33.734 Eref= 34.41382 diff= 0.6798172
  • bug fix: compare {22-31} {7-16} subset {*.ca} should work without ATOMSET next
  • bug fix: compare {22-31} {7-16} should work, using {spine} as default
  • bug fix: isosurface molecular for certain flat models will fail to cap H atoms bug fix: calculate partial charge fails after model kit changes (because Bond[] bonds field not cleaned # bug fix: dipole command fails after model kit changes
  • code: refactoring of minimize for generalization

New in Jmol 12.3.24 Prerelease (May 9, 2012)

  • new feature: SMARTS search for atom type using quotes: ["37"]-["58"]
  • new feature: SMARTS option /aromaticdouble/ allows distinguishing between aromatic single and double bonds
  • new feature; SMARTS option /aromaticstrict/ checks 6-electron rule for aromatics
  • new feature: CALCULATE partialCharge does MMFF94 charge calculation
  • -- all atom types validated
  • -- charge values validated to +- 0.001001 over the 761-atom dative validation set
  • new feature: isosurface CACHE
  • -- creates a JVXL version of the surface (possibly outside of Jmol, but that's not implemented yet)
  • -- saved by write JMOL as a JVXL file "isosurface_ID"
  • (where ID is the original isosurface ID) within the JMOL zip collection
  • -- Warning! not saved using write SPT
  • ***ALWAYS*** use write JMOL or write PNGJ after using the CACHE option, not write SPT
  • -- invoked by isosurface file "cache://isosurface_ID"
  • -- cleared by reset CACHE
  • -- allows rapid recreation of an isosurface across file loads
  • -- possibly limited to a subset of surface types
  • -- not fully tested
  • new feature: write ... "http://....."
  • -- POSTs JMOL or IMAGE or structure or whatever to a server as application/octet-stream
  • -- to be used in Proteopedia for saving a fully self-contained state
  • new feature: load filter "CENTER" -- centers models on the first model as they are loaded
  • new feature: load filter "NAME=..." -- loads only those models with a name that contains ...
  • new feature: calculate partialcharge
  • -- works on currently selected set of atoms
  • -- uses MMFF94 charge calculation (unverified; most certainly not quite correct)
  • -- preliminary only; working on validation
  • bug fix: x = {"c1": 3}; if(x["c1"]) should return TRUE
  • code: Simple way to assign MMFF94 atom types and partial charges
  • -- N,S-containing compounds not validated; CHO-containing compounds partially validated
  • bug fix: MOL2 reader assuming PDB for non-PDB format files (such as MMFF94-dative.mol2)
  • bug fix: label %W not working properly for non-PDB files
  • bug fix: write MOL does not save partial-single bond as type 8 ("ANY")
  • bug fix: set echo IMAGE fails (since 12.3.20)
  • code: (applet) JmolCore.js free of need for JSON

New in Jmol 12.2.24 (May 9, 2012)

  • bug fix: MOL2 reader not recognizing "am" bond type as single
  • bug fix: x = {"c1": 3}; if(x["c1"]) should return TRUE
  • bug fix: MOL2 reader assuming PDB for non-PDB format files (such as MMFF94-dative.mol2)
  • bug fix: label %W not working properly for non-PDB files
  • bug fix: write MOL does not save partial-single bond as type 8 ("ANY")

New in Jmol 12.3.23 Prerelease (Apr 25, 2012)

  • new feature: (applet) new interface for Jmol as an HTML object as well as full support on all platforms
  • using a ChemDoodle fall-back option for Java/Applet-challenged platforms (iPad,iPhone,Android)
  • Note that Jmol.js is no longer required, but not all of the features of Jmol.js are in place yet
  • allows Jmol applets to be created on a page with more flexibility and extendability
  • possibly using infrastructure of ChemDoodle for multiplatform doodlable structures
  • required/optional libraries (preferably in the following order):
  • jQuery.min.js -- required for ChemDoodle or any server-based options gl-matrix-min.js -- required for ChemDoodle option
  • mousewheel.js -- required for ChemDoodle option
  • ChemDoodleWeb.js -- required for ChemDoodle option
  • JmolCore.js -- required
  • JmolApplet.js -- required
  • JmolCD.js -- required for ChemDoodle option
  • JmolApi.js -- required
  • Allows Jmol-like objects to be displayed on Java-challenged (iPad/iPhone)
  • or applet-challenged (Android/iPhone) platforms, with automatic switching to whatever is appropriate. You can specify "ChemDoodle-only", "Jmol-only", "Image-only"
  • or some combination of those -- and of course, you are free to rewrite the logic below!
  • Allows ChemDoodle-like 3D and 3D-faked 2D canvases that can load files via a privately hosted
  • server that delivers raw data files rather than specialized JSON mol data. Access to iChemLabs server is not required for simple file-reading operations and
  • database access. PubChem and image services are provided by a server-side PHP program
  • running JmolData.jar with flags -iR (at St. Olaf College).
  • For your installation, you should consider putting JmolData.jar and jmolcd.php
  • on your own server. Nothing more than these two files is needed on the server.
  • The NCI and RCSB databases are accessed via direct AJAX if available (xhr2).
  • new feature: PubChem search for name (which can be a CAS number), cid, or SMILES using ":"
  • from pubChemFormat = "http://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/%FILE/SDF?record_type=3d";
  • (many thanks to Evan Bolton and Paul Thiessen (NIH) for their assistance on this.
  • load :name:tylenol
  • or load :tylenol
  • load :cas:103-90-2
  • or load :103-90-2
  • load :cid:1983
  • or load :1983
  • load :smiles:C/C=C/C
  • bug fix: callback functions for modular calls: applet0.readCallback(....)
  • bug fix: Molden reader problems reading frequencies
  • bug fix: VASP reader with {n n n} and vibration vectors problem
  • bug fix: in 2bat, SIA was considered part of the carbohydrate chain because we were not checking bonding

New in Jmol 12.2.23 (Apr 25, 2012)

  • bug fix: callback functions for modular calls: applet0.readCallback(....)
  • bug fix: Molden reader problems reading frequencies
  • bug fix: VASP reader with {n n n} and vibration vectors problem
  • bug fix: in 2bat, SIA was considered part of the carbohydrate chain because we were not checking bonding

New in Jmol 12.2.22 (Apr 17, 2012)

  • bug fix: "connect;" command in states saved prior to 11.9.24 and then read by versions after that
  • The order in which Jmol created bonds changed in 11.9.24. Due to this, Jmol must check for the
  • version number of Jmol used to create a state, and if it was before this point, it must
  • apply "legacy" autobonding methods. Unfortunately, if that state from pre-11.9.24 versions
  • contains the "connect;" command, which it would if someone used the CONNECT command by itself
  • to regenerate all bonds in a model PRIOR to saving the state (Proteopedia does this), then
  • those scripts will be misread in versions 11.9.24-12.2.21/12.3.21.
  • bug fix: antialiasDisplay does not show drag-box properly
  • bug fix: SMARTS syntax [${xxx}n] and [${xxx}m-n] changed to [$n{xxx}] and [$m-n{xxx}]
  • to avoid conflict with specifying isotope

New in Jmol 12.2.21 (Apr 9, 2012)

  • bug fix: PDB reader # and state scripts created with 12.1.51-12.2.20 and 12.3.0-12.3.20
  • state scripts prior to those versions with multiple models
  • and also select BOND commands will read the bond indexes incorrectly
  • and, in addition, will assign proper CONECT links only to the last model
  • bug fix: if (....)
  • comment fails
  • bug fix: Molden reader hack for bad Molden files with ** instead of atom number in [GTO]
  • note: Headless operation with image creation works perfectly using JmolData.jar java -Djava.awt.headless=true -Xmx512m -jar "JmolData.jar" -J "load $tylenol;write image 1000 1000 t.jpg"
  • see also: http://leshazlewood.com/2009/08/26/linux-javaawtheadless-and-the-display-environment-variable/
  • bug fix: headless creation of JPG fails
  • bug fix: spin .... 30 takes 30 to be number of degrees, not rate

New in Jmol 12.3.21 Prerelease (Apr 9, 2012)

  • new feature: app flag -R restricts file access -- no local file reading; no writing, no logging
  • // disables WRITE, LOAD file:/, set logFile
  • // command line -g and -w options ARE available for final writing of image
  • // for use with headless operation
  • new feature: app flag -T headless timeout delay for "exitJmol" note: Headless operation with image creation works perfectly using JmolData.jar
  • java -Djava.awt.headless=true -Xmx512m -jar "JmolData.jar" -RJ "load $tylenol;" -g1000x1000 -wJPG:t.jpg
  • see also: http://leshazlewood.com/2009/08/26/linux-javaawtheadless-and-the-display-environment-variable/
  • // determined by GraphicsEnvironment.isHeadless()
  • // from java -Djava.awt.headless=true
  • // disables command threading
  • // disables DELAY, TIMEOUT, PAUSE, LOOP, GOTO, SPIN , ANIMATION ON
  • // turns SPIN into just ROTATE
  • new feature: JSpecView JCamp-MOL files can reference model="$xxxx" -- model retrieved from NCI
  • bug fix: PDB reader
  • and state scripts created with 12.1.51-12.2.20 and 12.3.0-12.3.20
  • state scripts prior to those versions with multiple models
  • and also select BOND commands will read the bond indexes incorrectly
  • and, in addition, will assign proper CONECT links only to the last model
  • bug fix: if (....)
  • comment fails
  • bug fix: Molden reader hack for bad Molden files with ** instead of atom number in [GTO]
  • bug fix: headless creation of JPG fails # bug fix: spin .... 30 takes 30 to be number of degrees, not rate

New in Jmol 12.3.19 Prerelease (Apr 2, 2012)

  • bug fix: set dragSelected disallows popup menu
  • new feature: select baseModel for JSpecView
  • new feature; model {atomset} -- model of first atom in this set
  • bug fix: MOPAC (PUBLIC DOMAIN) output reader can fail on reading vibrations
  • bug fix: Spartan 10 archives have .gz and .carc files. This fix adds .gz reading; work-around is that Spartan 10 allows saving of Archive without carc compression, which is a proprietary format. From Wavefunction: "If you want all files to use the "text" version, you can go to the Options->Preferences->X-Platform pane and make sure "Use Binary Archive" is unchecked."
  • bug fix: rotateSelected of models that have had dots at one point retrieved from a state file fails
  • code: refactored org.jmol.g3d.[Normix3d,Shade3D] --> org.jmol.util.[Normix, Shader]
  • code: refactored org.jmol.geodesic.Geodesic --> org.jmol.util.Geodesic
  • bug fix: Jmol defaults not being loaded with startup option -n (no display)
  • bug fix: UIManager.setLookAndFeel UIManager.getCrossPlatformLookAndFeelClassName()
  • failed for non-graphics system, and even though it is an exception, it isn't trapped by try/catch.
  • bug fix: point() function does not accept 3x1 array
  • bug fix: show x where x is a matrix does not have ',' before tabs, so it can't be clipped directly back into Jmol
  • code: better coding for quaternions

New in Jmol 12.2.19 (Apr 2, 2012)

  • bug fix: set dragSelected disallows popup menu
  • bug fix: MOPAC (PUBLIC DOMAIN) output reader can fail on reading vibrations
  • bug fix: Spartan 10 archives have .gz and .carc files. This fix adds .gz reading; work-around is that Spartan 10 allows saving of Archive without carc compression, which is a proprietary format. From Wavefunction:"If you want all files to use the "text" version, you can go to the Options->Preferences->X-Platform pane and make sure "Use Binary Archive" is unchecked."
  • bug fix: rotateSelected of models that have had dots at one point retrieved from a state file fails
  • bug fix: Jmol defaults not being loaded with startup option -n (no display)
  • bug fix: UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName() failed for non-graphics system, and even though it is an exception, it isn't trapped by try/catch.
  • bug fix: point() function does not accept 3x1 array
  • bug fix: show x where x is a matrix does not have ',' before tabs, so it can't be clipped directly back into Jmol

New in Jmol 12.3.18 Prerelease (Mar 19, 2012)

  • bug fix: allow for alternating list/hash entry; for example: print getproperty("jspecview","##TITLE")["items"][1]["spectra"][1]["id"] instead of: print ((getproperty("jspecview","##TITLE")["items"][1])["spectra"][1])["id"]
  • new feature: JSpecView reads and displays 2D spectra very quickly -- all tested JCamp-DX 6.0 files readable. -- JSpecView 2.0.10176
  • bug fix: GaussianReader not reading "Natural Orbitals" section from B3LYP 6-31g sp gfprint pop(full,NO)
  • bug fix: Jmol support for ZIP collection of JDX files read properly
  • bug fix: support for file reading with BOM UTF-8, UTF-16, or UTF-32
  • bug fix: script processor not recognizing UTF-8 Binary Order Mark at start of script
  • bug fix: (undocumented) POLYHEDRA {...} to {...} with COLOR or TRANSLUCENT fails
  • bug fix: POLYHEDRA command or COLOR POLYHEDRA can change selection
  • bug fix: PDB reader doesn't recognize 16 LINK records at start of file
  • bug fix: script xxxx(xxx)xxx/xx.xxx fails at "(" due to revision 16201 2011-10-02

New in Jmol 12.2.18 (Mar 19, 2012)

  • bug fix: allow for alternating list/hash entry; for example: print getproperty("jspecview","##TITLE")["items"][1]["spectra"][1]["id"] instead of: print ((getproperty("jspecview","##TITLE")["items"][1])["spectra"][1])["id"]
  • bug fix: GaussianReader not reading "Natural Orbitals" section from B3LYP 6-31g sp gfprint pop(full,NO)
  • bug fix: support for file reading with BOM UTF-8, UTF-16, or UTF-32
  • bug fix: script processor not recognizing UTF-8 Binary Order Mark at start of script
  • bug fix: (undocumented) POLYHEDRA {...} to {...} with COLOR or TRANSLUCENT fails
  • bug fix: POLYHEDRA command or COLOR POLYHEDRA can change selection
  • bug fix: PDB reader doesn't recognize 16 LINK records at start of file
  • bug fix: script xxxx(xxx)xxx/xx.xxx fails at "(" due to revision 16201 2011-10-02

New in Jmol 12.3.17 Prerelease (Mar 6, 2012)

  • new feature: (JspecView 2.0.10033) new script commands (indicated with *)
  • UNKNOWN("?"),
  • APPLETID("APPLETID"),
  • APPLETREADYCALLBACKFUNCTIONNAME("APPLETREADYCALLBACKFUNCTIONNAME"),
  • AUTOINTEGRATE("AUTOINTEGRATE", "TF"),
  • BACKGROUNDCOLOR("BACKGROUNDCOLOR", "C"),
  • *CLOSE("CLOSE", "spectrumId or fileName or ALL"),
  • COMPOUNDMENUON("COMPOUNDMENUON", "TF"),
  • COORDCALLBACKFUNCTIONNAME("COORDCALLBACKFUNCTIONNAME"),
  • COORDINATESCOLOR("COORDINATESCOLOR", "C"),
  • COORDINATESON("COORDINATESON", "TF"),
  • *DEBUG("DEBUG", "TF"),
  • DISPLAYFONTNAME("DISPLAYFONTNAME", "fontName"),
  • ENABLEZOOM("ENABLEZOOM", "TF"),
  • ENDINDEX("ENDINDEX"),
  • *EXPORT("EXPORT", "[JPG,PNG,XY,...] \"filename\""),
  • GETSOLUTIONCOLOR("GETSOLUTIONCOLOR", ""),
  • GRIDCOLOR("GRIDCOLOR", "C"),
  • GRIDON("GRIDON", "TF"),
  • *INTEGRATE("INTEGRATE", ""),
  • INTEGRALPLOTCOLOR("INTEGRALPLOTCOLOR"),
  • INTEGRATIONRATIOS("INTEGRATIONRATIOS"),
  • INTERFACE("INTERFACE"),
  • *IRMODE("IRMODE", "A or T or ?"),
  • *LABEL("LABEL", "x y [color and/or \"text\"]"),
  • *LOAD("LOAD", "[APPEND] \"fileName\""),
  • MENUON("MENUON"),
  • OBSCURE("OBSCURE"),
  • *OVERLAY("OVERLAY", "spectrumID, spectrumID, ..."),
  • PEAKCALLBACKFUNCTIONNAME("PEAKCALLBACKFUNCTIONNAME"),
  • PLOTAREACOLOR("PLOTAREACOLOR", "C"),
  • PLOTCOLOR("PLOTCOLOR", "C"),
  • PLOTCOLORS("PLOTCOLORS"),
  • REVERSEPLOT("REVERSEPLOT", "TF"),
  • SCALECOLOR("SCALECOLOR", "C"),
  • SPECTRUM("SPECTRUM", "spectrumID"),
  • SPECTRUMNUMBER("SPECTRUMNUMBER"),
  • STARTINDEX("STARTINDEX"),
  • SYNCCALLBACKFUNCTIONNAME("SYNCCALLBACKFUNCTIONNAME"),
  • SYNCID("SYNCID"),
  • TITLEBOLDON("TITLEBOLDON", "TF"),
  • TITLECOLOR("TITLECOLOR", "C"),
  • TITLEFONTNAME("TITLEFONTNAME", "fontName"),
  • UNITSCOLOR("UNITSCOLOR", "C"),
  • VERSION("VERSION"),
  • XSCALEON("XSCALEON", "TF"),
  • XUNITSON("XUNITSON", "TF"),
  • YSCALEON("YSCALEON", "TF"),
  • YUNITSON("YUNITSON", "TF"),
  • *ZOOM("ZOOM", "OUT or x1,x2");
  • new feature: allows simpler color scheme definition
  • color property occupancy "myscheme=red green blue"
  • Var x = ["red","green","blue"]; color property occupancy @{"myscheme=" + x}
  • bug fix: JCampDX reader resolving should allow spaces before "##TITLE"
  • bug fix: jvxl issue when color PHASE and translucent
  • upon reading JVXL doesn't handle translucency right
  • upon writing SPT doesn't preserve colors
  • bug fix: user variable lower case "x" not cleared by "X = none"
  • bug fix: draw HELIX fails for residue numbers < 0
  • code: better Enum structure using name()

New in Jmol 12.2.17 (Mar 6, 2012)

  • bug fix: jvxl issue when color PHASE and translucent
  • upon reading JVXL doesn't handle translucency right
  • upon writing SPT doesn't preserve colors
  • bug fix: user variable lower case "x" not cleared by "X = none"
  • bug fix: draw HELIX fails for residue numbers < 0

New in Jmol 12.3.16 Prerelease (Feb 22, 2012)

  • new feature: (application) SYNC ON; sync * "JSpecView:..." sends commands to JSpecView
  • new feature: (JSpecView) accepts commands using public syncScript(script)
  • bug fix: GAMESS-US reader error reading NBOs
  • bug fix: print [2, 3, 4].mul([3,4,5]) fails
  • bug fix: missing ANISOU records cause file-read error in PDB files
  • bug fix: JCAMP-DX reading by JSpecView for tiered BLOCK files

New in Jmol 12.2.16 (Feb 22, 2012)

  • bug fix: GAMESS-US reader error reading NBOs
  • bug fix: first attempt to fix macromolecular ellipsoids -- PDB ANISOU records
  • bug fix: print [2, 3, 4].mul([3,4,5]) fails

New in Jmol 12.3.15 PreRelease (Feb 13, 2012)

  • new feature: JCAMP-DX file reading
  • reading of ##$MODELS and ##$PEAK_LINKS (see http://chemapps.stolaf.edu/jmol/docs/examples-12/jspecview)
  • new feature: context menu Spectra submenu
  • new feature: JSpecView integration into Jmol application
  • if model/peak-enhanced JDX file is read, clicking on an atom or switching
  • to an IR vibration or MS fragment displays the appropriately highlighted spectrum/fragment
  • bug fix: SLAB unit cell not showing all lines
  • bug fix: CRYSTAL reader needs to change to MOLECULAR when X(ANGSTROMS) found (fullerene slab)
  • new feature: model ID "..."
  • can be file-specific using "filename#..."
  • used for correlating non-Jmol synced applets
  • new feature: sync ~ 'Select: xxx'
  • xxx can include file="xxx" model="xxx" atoms="xxx" select="xxx" script="xxx"
  • file and model combined as model ID "file#model"
  • will automatically load the file if the given file#model ID is not found
  • atoms = list of atom numbers separated by commas: 1,2,3 --> @1 or @2 or @3
  • select is any valid selection such as THR or 1-30
  • automatically adds "visible &" to atoms or select
  • requires sync ON
  • new feature: NFF neutral file format reader (http://paulbourke.net/dataformats/nff/nff1.html)
  • for electron microscopy data exported from IMOD
  • new feature: preliminary JCAMP-DX file reader, where is present
  • new feature: when picking struts or delete bond or measure, distance shows as per usual measurement
  • bug fix: Popup Menu item hbond calculate should not require PDB

New in Jmol 12.2.15 (Feb 13, 2012)

  • bug fix: SLAB unit cell not showing all lines
  • bug fix: CRYSTAL reader needs to change to MOLECULAR when X(ANGSTROMS) found (fullerene slab)
  • bug fix: Popup Menu item hbond calculate should not require PDB

New in Jmol 12.2.14 (Jan 31, 2012)

  • bug fix: state after frame RANGE or frame 0 not saved properly (state saves "frame all" instead of "frame 0")
  • bug fix: frame n does not work properly after load APPEND
  • bug fix: measurement units may appear as full word "nanometers" instead of "nm"
  • bug fix: user bindings do not access _atomPicked
  • -- solution is to add _ATOM _BOND _POINT _OBJECT to user binding actions

New in Jmol 12.2.13 (Jan 24, 2012)

  • bug fix: user bindings do not access _atomPicked
  • -- solution is to add _ATOM _BOND _POINT to user binding actions
  • bug fix: getProperty("bondinfo",[{13}]) gets info for atom 13 instead of bond 13
  • bug fix: bind xxx _select does not work in conjunction with bind yyy _atomPicking
  • bug fix: {*}.atomno and related expressions broken
  • bug fix: isosurface offset does not change boundbox or zoom/center points

New in Jmol 12.3.13 PreRelease (Jan 24, 2012)

  • bug fix: user bindings do not access _atomPicked
  • -- solution is to add _ATOM _BOND _POINT to user binding actions
  • bug fix: getProperty("bondinfo",[{13}]) gets info for atom 13 instead of bond 13
  • bug fix: isosurface offset does not change boundbox or zoom/center points new feature: isosurface SCALE extends to volume file readers
  • new feature: zoom $isosurface1 0 -- scales to match isosurface boundbox
  • note to Bob: jpe needs update of img/blank.js js/top_buttons.js htm1/quickvs.js,qv_msgs.js molview/JmolAppletSigned.jar

New in Jmol 12.3.12 Prerelease (Jan 15, 2012)

  • bug fix: symmetry popup submenu not enabled
  • bug fix: show spacegroup not working
  • bug fix: lcaocartoon for allene central carbon py incorrect
  • bug fix: antialiasdisplay (and image writing) not compatible with scaleAngstromsPerInch
  • bug fix: last group of protein cartoon will not display if it is not helix and not sheet
  • bug fix: getproperty MENU does not work
  • bug fix: PDB reader of multiple-bond files with duplicated bonds does not ignore duplicate

New in Jmol 12.2.12 (Jan 15, 2012)

  • bug fix: show spacegroup not working
  • bug fix: lcaocartoon for allene central carbon py incorrect
  • bug fix: antialiasdisplay (and image writing) not compatible with scaleAngstromsPerInch
  • bug fix: cannot write JPG images
  • bug fix: last group of protein cartoon will not display if it is not helix and not sheet

New in Jmol 12.3.11 Prerelease (Jan 11, 2012)

  • new feature: plot ramachandran -- now those points .phi and psi return values
  • load 1crn.pdb;plot ramachandran;print {2.1}.psi
  • new feature: LOAD .... filter "reverseModels"
  • does just that
  • for IRC calculation transition state -> minimum reversal
  • new feature: measures "2:%VALUE %UNITS//xx"
  • where xx is a specified unit such as nm or Angstroms
  • overrides set measurementUnits
  • fixes state problem when units or labels are changed after measurements are made
  • operates on selected measurements only (or all, if no measurements are selected)
  • bug fix: frame 0 during animation can cause exception
  • bug fix: changes in defaultDistanceLabel not always preserved in state correctly
  • bug fix: parameters can be set to invalid values using xxx = ... instead of set xxx ...
  • bug fix: (Application) proper Edit...Preferences dialog action

New in Jmol 12.2.11 (Jan 3, 2012)

  • bug fix: changes in defaultDistanceLabel not always preserved in state correctly
  • bug fix: parameters can be set to invalid values using xxx = ... instead of set xxx ...
  • bug fix: (Application) proper Edit...Preferences dialog action

New in Jmol 12.2.10 (Dec 22, 2011)

  • bug fix: script @{x} fails
  • bug fix: lcaoCartoon dual color p orbitals giving white for one lobe
  • bug fix: after "ZAP; LOAD append" show orientation will have incorrect zyz script
  • bug fix: function call with @x or @1 in parameters fails
  • bug fix: H5T should not be used as a lead atom ever, because of set showHydrogens FALSE
  • bug fix: adding H atoms to mol2 file faulty

New in Jmol 12.3.10 Prerelease (Dec 22, 2011)

  • new feature: _animTimeSec
  • new feature: Application -- press and hold animation next/prev button to continuously run animation
  • new feature: write PDB adds CONECT records
  • for all multiple bonding and all HETATM bonds
  • uses CONECT i j j to indicate multiple bonding
  • new feature: compare {from} {to} FRAME:
  • aligns frames automatically
  • particularly nice for IRC calculation animations
  • for example: compare {file=2} {1.1} FRAME
  • can be followed by quaternion, atom, or SMILES options
  • for example: compare {file=2} {1.1} FRAME ATOMS @1 @5 @2 @8 @3 @9(all of file 2 atoms moved) file 2 atoms 1,2,3 aligned with file 1.1 atoms 5,8,9)
  • if {to} is a subset of {from}, then FRAME is unnecessary, and if ATOMS is included, then just the list of alignment atoms is necessary. For example:
  • compare {*} {1.1}
  • compare {*} {1.1} atoms @1 @2 @3
  • bug fix: script @{x} fails
  • bug fix: Molecular Playground should allow for set allowGestures OFF to disallow swipe
  • bug fix: lcaoCartoon dual color p orbitals giving white for one lobe
  • new feature: set echo myecho SCALE 0.3 -- for image scaling
  • bug fix: after "ZAP; LOAD append" show orientation will have incorrect zyz script
  • bug fix: function call with @x or @1 in parameters fails
  • bug fix: PNGJ reading remote fails
  • bug fix: H5T should not be used as a lead atom ever, because of set showHydrogens FALSE
  • bug fix: adding H atoms to mol2 file faulty
  • bug fix: load xxx.png;write PNGJ xxx.png (to same file as loaded) fails

New in Jmol 12.3.9 Prerelease (Dec 13, 2011)

  • new feature:
  • FRAME DELAY x.y -- specific delay (in seconds) in animation at a given frame -- applies to all currently in-frame models
  • bug fix: set isKiosk should:
  • (a) not be reversible
  • (b) not allow file saves other than logging
  • (c) not allow prompt dialogs
  • (d) not allow console or popup menu or ScriptEditor
  • bug fix: background colors saved to state can be off very slightly
  • bug fix: draw PLANE with three vertices problems after save -- four-atom planes, not three
  • bug fix: x = file("?") fails on Cancel
  • bug fix: delay not allowed within try{...}

New in Jmol 12.2.9 (Dec 12, 2011)

  • bug fix - set isKiosk should:
  • (a) not be reversible
  • (b) not allow file saves other than logging
  • (c) not allow prompt dialogs
  • (d) not allow console or popup menu or ScriptEditor
  • bug fix: background colors saved to state can be off very slightly
  • bug fix: draw PLANE with three vertices problems after save -- four-atom planes, not three
  • bug fix: x = file("?") fails on Cancel
  • bug fix: delay not allowed within try{...}

New in Jmol 12.3.8 Prerelease (Dec 5, 2011)

  • new feature: MolecularPlayground -- remote status and remote control
  • set topic, subtopic, delay from a web page
  • set banner and image for website from Jmol
  • new feature: load("http://.....?POST?_PNG_") or load("http://....?POST?_PNGJ_")
  • sends PNG or PNGJ image to server
  • return value is whatever server is set up to send
  • used by MolecularPlayground at St. Olaf to send current state to web server
  • new feature: polyhedra FULLYLIT -- useful for zeolites along with COLLAPSED
  • new feature: ZMATRIX upgraded to allow all forms of Gaussian input
  • bug fix: set picking DRAW does not work on polygon sets
  • bug fix: set picking DRAW does not report position change
  • bug fix: MPJmolApp (Molecular Playground) problems when navigation is on
  • bug fix: CifReader (molecular type, with GEOM_BOND records) adds
  • extra atoms when embedded in JMOL or PNGJ file or part load FILES command
  • bug fix: PdbReader -- crystallographic non-PDB files not checking special positions

New in Jmol 12.2.8 (Dec 5, 2011)

  • bug fix: set picking DRAW does not work on polygon sets
  • bug fix: set picking DRAW does not report position change
  • bug fix: CifReader (molecular type, with GEOM_BOND records) adds
  • extra atoms when embedded in JMOL or PNGJ file or part load FILES command
  • bug fix: PdbReader -- crystallographic non-PDB files not checking special positions

New in Jmol 12.3.7 Prerelease (Nov 29, 2011)

  • bug fix: show orientation shows incorrect zyz format if reset uses file-based orientation matrix (smol, Sygress)
  • bug fix: isosurface plane xy map mep
  • code: MPJmolApp work
  • bug fix: user variables should not be rest by INITIALIZE in an spt file
  • new feature: "Write PNG+JMOL" added to application and signed applet menu
  • code: dispensing with InputStream in favor of BufferedInputStream
  • new feature: write PNGJ
  • -- creates a PNG file with appended JMOL (zip) data containing
  • all necessary files, MANIFEST, and script file.
  • -- viewable in directories as an "icon" and readable by image readers
  • -- draggable back into Jmol and readable using LOAD
  • -- PNG file includes:
  • -- iTXt field "Jmol Type\0PNGJxxxxxxxxx+yyyyyyyyy"
  • where xxxxxxxxx is a pointer to the ZIP data
  • yyyyyyyyy is the number of ZIP data bytes
  • -- iTXt field "Software\0Jmol 12.3.7 2011-10-11 15:30"
  • -- iTXt field "Creation Time\0Tue, 24 Nov 2011 19:56:10 -0600"
  • -- yyyyyyyyy bytes of .JMOL zip data
  • -- show FILE "xxx.PNG" will show list of contained files.
  • -- show state FILE "xxx.PNG" will extract state
  • -- show FILE "xxx.PNG|1crn.pdb" for example will extract file
  • bug fix: x3d/vrml outputting unnecessary spheres
  • -- bond caps within opaque atoms removed (not precisely correct to do that)
  • bug fix: minimization broken
  • bug fix: contact still not quite right -- setting default to +0.0 instead of +0.25
  • new feature: simple Z-Matrix reader
  • -- invoked by ZMATRIX:: or file starting with #ZMATRIX
  • -- lines starting with # are comments, which can contain jmolscript:
  • -- blank lines are ignored
  • ZMATRIX -- methane
  • H 1 1.089000
  • H 1 1.089000 2 109.4710
  • H 1 1.089000 2 109.4710 3 120.0000
  • H 1 1.089000 2 109.4710 3 -120.0000
  • -- allows bond order specification
  • ZMATRIX -- CO2
  • O 1 1.3000 2
  • O 1 1.3000 2 180 2
  • -- any position number may be replaced by a unique atom name, with number:
  • ZMATRIX -- CO2
  • O1 C1 1.3000 2
  • O2 C1 1.3000 O1 180 2
  • -- allows for dummy atoms Xn, allowing for positioning:
  • ZMATRIX -- CO2
  • X2 X1 1.0
  • C1 X1 1.0 X2 90
  • O1 C1 1.3000 X2 90 X1 0 2
  • O2 C1 1.3000 O1 180 X2 0 2
  • -- negative distance indicates that the second angle is a normal angle, not a dihedral
  • ZMATRIX -- NH3 (using simple angles only)
  • H1 N1 1.0
  • H2 N1 1.0 H1 107
  • H3 N1 -1.0 H1 107 H2 107
  • -- negative distance and one negative angle reverses the chirality
  • ZMATRIX -- NH3 (using simple angles only; reversed chirality)
  • H1 N1 1.0
  • H2 N1 1.0 H1 107
  • H3 N1 -1.0 H1 -107 H2 107
  • -- symbolics may be used -- they may be listed first or last
  • ZMATRIX
  • dist 1.0
  • angle 107
  • H1 N1 dist
  • H2 N1 dist H1 angle
  • H3 N1 -dist H1 angle H2 angle
  • -- If #ZMATRIX is not the start of the file, MOPAC style is assumed.
  • The first two lines will be considered to be comments and ignored:
  • AM1
  • Ethane
  • C 1 r21
  • H 2 r32 1 a321
  • H 2 r32 1 a321 3 d4213
  • H 2 r32 1 a321 3 -d4213
  • H 1 r32 2 a321 3 60.
  • H 1 r32 2 a321 3 180.
  • H 1 r32 2 a321 3 d300
  • r21 1.5
  • r32 1.1
  • a321 109.5
  • d4213 120.0
  • d300 300.0

New in Jmol 12.2.7 (Nov 29, 2011)

  • bug fix: show orientation shows incorrect zyz format if reset uses file-based orientation matrix (smol, Sygress)
  • bug fix: isosurface plane xy map mep
  • bug fix: user variables should not be rest by INITIALIZE in an spt file
  • bug fix: x3d/vrml outputting unnecessary spheres
  • -- bond caps within opaque atoms removed (not precisely correct to do that)
  • bug fix: minimization broken
  • bug fix: contact command hbond/clash cutoff not sensitive to H-O/N vs O/N-O/N
  • -- set to -1.2 for H-N/O, -1.0 for N/O-N/O
  • bug fix: contact command default probe radius should be 0.0 except for VDW (0.25)

New in Jmol 12.3.6 Prerelease (Nov 20, 2011)

  • new feature: load files "xxx.tlsout" "xxxx.pdb"
  • -- loads REFMAC-style TLS data into xxxx.pdb
  • new feature: contact SASURFACE
  • -- ignores solvent (as does CAP)
  • bug fix: contact command hbond/clash cutoff not sensitive to H-O/N vs O/N-O/N
  • -- set to -1.2 for H-N/O, -1.0 for N/O-N/O
  • bug fix: contact command default probe radius should be 0.0 except for VDW (0.25)
  • bug fix: minimize constraint CLEAR broken
  • bug fix: constraints not reported in show minimization
  • bug fix: set measures off broken
  • bug fix: contact color density broken
  • bug fix: contact volume report not correct for color density
  • bug fix: MO HOMO not set properly when using LUMO = "lowest E > 0" (GAMESS-US reader)
  • bug fix: zSlab settings not stored properly in parameters; should have default zSlab = 50

New in Jmol 12.2.6 (Nov 20, 2011)

  • bug fix: minimize constraint CLEAR broken
  • bug fix: constraints not reported in show minimization
  • bug fix: set measures off broken
  • bug fix: contact color density broken
  • bug fix: contact volume report not correct for color density
  • bug fix: MO HOMO not set properly when using LUMO = "lowest E > 0" (GAMESS-US reader)
  • bug fix: zSlab settings not stored properly in parameters; should have default zSlab = 50

New in Jmol 12.3.5 Prerelease (Nov 15, 2011)

  • new feature: color isosurface PHASE color1 color2
  • -- allows post-isosurface creation coloring by phase (atomicOrbitals)
  • bug fix: isosurface scale 0.5 plane... broken if no atoms present
  • bug fix: isosurface color density broken
  • bug fix: set PdbAddHydrogens does not transfer C atomSymmetry to H atoms
  • bug fix: contact() function not working when typed from console
  • bug fix: set axesOrientationRasmol not working properly (since 11.5.51)
  • code: org.jmol.modelsetbio.BioModel localizes more bio-only code into modelsetbio package
  • code: removal of org.jmol.modelset.Polymer
  • code: refactoring and organizing RepaintManager and ShapeManager

New in Jmol 12.2.5 (Nov 15, 2011)

  • bug fix: isosurface scale 0.5 plane... broken if no atoms present
  • bug fix: isosurface color density broken
  • bug fix: set PdbAddHydrogens does not transfer C atomSymmetry to H atoms
  • bug fix: contact() function not working when typed from console
  • bug fix: set axesOrientationRasmol not working properly (since 11.5.51)
  • bug fix: frame x.y - y.z not working

New in Jmol 12.3.4 Prerelease (Nov 8, 2011)

  • bug fix: frame x.y - y.z not working
  • bug fix: with antialiasDisplay, dragMolecule goes 1/2 speed of cursor
  • bug fix: nucleic acid residues with HO5' may render last group strangely (since 12.0.RC16, 6/6/2010)
  • bug fix: workaround for weird Mac Point3i(Point3i pt) class initializer bug
  • bug fix: array.bin(low,high,binSize) not documented and can cause exception
  • bug fix: MO readers can fail if inappropriate filter "TLS" is given
  • bug fix: PDB TLS error reading TLS data missing "NUMBER OF COMPONENTS" line

New in Jmol 12.2.4 (Nov 5, 2011)

  • bug fix: with antialiasDisplay, dragMolecule goes 1/2 speed of cursor
  • bug fix: nucleic acid residues with HO5' may render last group strangely (since 12.0.RC16, 6/6/2010)
  • bug fix: workaround for weird Mac Point3i(Point3i pt) class initializer bug
  • bug fix: MO readers can fail if inappropriate filter "TLS" is given
  • bug fix: array.bin(low,high,binSize) not documented and can cause exception

New in Jmol 12.2.3 (Oct 31, 2011)

  • bug fix: CRYSTAL reader not properly setting model properties
  • bug fix: userFunction(x,@y) should operate as per all math
  • parens - value of variable pointed to by y
  • x = myfunc(x, @y) same action as just myfunc(x, @y)
  • bug fix: userFunction x @y
  • no parens - should operate as value of x and value of y
  • @ is unnecessary but allowed
  • bug fix: reading of JVXL files for color density fails to color properly
  • bug fix: .... vdw 100.0% --- should be OK with float there, even if it rounds.
  • bug fix: load append twice can cause zap to be in wrong place in state file
  • bug fix: for (x IN {*}) ... makes x a bitset and leads to array[1] for x.atomName
  • bug fix: for (x IN {*}.bonds) does not work

New in Jmol 12.3.3 Prerelease (Oct 31, 2011)

  • new feature:
  • ellipsoid SET 1; ellipsoid SET 2;
  • TLS ellipsoids are dual
  • TLS-S is SET 1; TLS-T is SET 2
  • after issuing this command, further size or color commands affect only that set
  • needs verification by Ethan Merrit
  • new feature: load xxx.pdb filter "TLS"
  • loads TLS data # new feature: atom property property_tlsGroup
  • new feature: MolecularPlayground now accepts messages to the banner: message banner: xxxxxxx
  • new feature: MolecularPlayground fully functional.
  • This application (MPJmolApp) is part of a three-part suite
  • that runs on a Mac mini involving:
  • "Hub" [name] for overall control (Mac app; not open source yet) MPKinectDriver for obtaining motion events (Mac app; not open source yet) MPJmolApp for displaying the results (source here)
  • The Hub and MPJmolApp communicate over local port 31416, sending
  • JSON messages back and forth. (See note in org.jmol.app.jsonkiosk.JsonNioService.java)
  • For demonstrations of the installation at St. Olaf College,
  • see the following YouTube videos:
  • http://www.youtube.com/watch?v=iQRkuku8ry0
  • http://www.youtube.com/watch?v=XCRrRZe1j6g
  • http://www.youtube.com/watch?v=FTTIVWGtFD0
  • For details relating to the original Molecular Playground
  • installation at U. Mass.-Amherst, see
  • http://molecularPlayground.org
  • Note that all of the functionality of the original MP are
  • present in MPJmolApp
  • new feature: MolecularPLayground can now ignore all Hub requests for
  • commands and content changes, thus allowing its own configuration
  • script to drive the presentation instead of the Hub's. So the Hub
  • can be used simply as an interface to the Kinect driver. This just allows a simpler development interface
  • a simple three-column Excel file can
  • be used to drive a presentation. (see org.jmol.molecularplayground.biophysics.xlsx)
  • MPJmolApp looks for the file MpJmolAppConfig.spt
  • This file can override MPJmolApp's default parameters: # NIOContentPath # default: System.getProperty("user.dir").replace('\\', '/') # + "/Content-Cache/%ID%/%ID%.json"
  • ignored if NIOcontentDisabled ends up true (see below) NIOterminatorMessage
  • default: "MP_DONE" # NIObannerEnabled
  • default: true # NIOcontentScript
  • default: (not present, setting NIOcontentDisabled=false)
  • NIOcontentDisabled
  • default: true if NIOcontentScript is present; false if not
  • NIOmotionDisabled
  • default: false
  • The script in MpJmolAppConfig.spt is run, along with whatever
  • default settings are generated by the above checks.
  • Parameters are set by querying the Viewer for those Jmol variables.
  • If NIOcontentDisabled is true, then all JSON messages from the Hub
  • of types "content", "command", and "banner" are ignored. It is still important that the running script send "MP_DONE" messages periodically (within every 6 minutes) so that the Hub knows that MPJmolApp is still
  • alive and does not try to restart it. If NIOmotionDisabled is true, then all JSON messages from the Hub # of types "move", "sync", and "touch" are ignored.
  • These are checked every time a JSON command is received, so the running script can specifically turn off motion detection if that or content detection if that is desired.
  • Note that MPJmolApp has a full console and menu that are available
  • on the operator's screen, (which is just mirrored to the projector).
  • This allows for parameter setting and adjustments on the fly.
  • new feature: show NMR
  • predicted NMR spectrum
  • uses http://www.nmrdb.org/predictor?smiles=xxxx
  • requires NCI SMILES due to bug at nmrdb not allowing "."
  • bug fix: CRYSTAL reader not properly setting model properties
  • bug fix: userFunction(x,@y) should operate as per all math
  • parens - value of variable pointed to by y
  • x = myfunc(x, @y) same action as just myfunc(x, @y)
  • bug fix: userFunction x @y
  • no parens - should operate as value of x and value of y
  • @ is unnecessary but allowed
  • bug fix: set echo "myecho" [10 10%] not working
  • bug fix: apiPlatform not correctly accessed in JpegEncoder
  • bug fix: reading of JVXL files for color density fails to color properly
  • bug fix: .... vdw 100.0% --- should be OK with float there, even if it rounds. code: refactored for Molecular Playground and Jmol Android
  • several System.out. messages present.
  • code: refactoring adapter XML readers

New in Jmol 12.2.2 (Oct 17, 2011)

  • bug fix: POV-Ray export of cartoons broken
  • bug fix: script javascript:xxxx() broken

New in Jmol 12.2.1 (Oct 14, 2011)

  • bug fix: SMILES comparison when the number of stereocenters is not the same is wrong
  • new feature: compare("XXX","XXXX","ISOMER") comparison now includes "AMBIGUOUS STEREOCHEMISTRY!"
  • code: popup/modelkit refactoring to isolate awt/Swing references
  • bug fix: connection deletion removes all measurements
  • bug fix: H2,H3 connected to terminal N of protein not backbone
  • bug fix: select PROTEIN selects non-PDB atoms
  • bug fix: Molden reader does not read "Sym=X" (missing space after '=')
  • bug fix: Molden reader does not read angstrom units
  • bug fix: color isosurface {atomset} does not work if isosurface has not already been mapped.
  • bug fix: PDB reader not reading Rasmol-style files with multiple bonding
  • CONECT 1 2 2
  • CONECT 1 2
  • CONECT 1 2
  • means for Rasmol double bond between atoms 1 and 2
  • bug fix: Molden file reader error with [5D] flag before [GTO]

New in Jmol 12.3.1 Prerelease (Oct 12, 2011)

  • bug fix: H2,H3 connected to terminal N of protein not backbone
  • bug fix: select PROTEIN selects non-PDB atoms
  • new feature: CASTEP reader (take 2)
  • reads Mulliken files by default, Hirshfield with filter "CHARGE=HIRSH"
  • reads spins into {*}.property_spin. label is %[property_spin]
  • reads Born charge tensors as atom ellipsoids
  • bug fix: Molden reader does not read "Sym=X" (missing space after '=')
  • bug fix: Molden reader does not read angstrom units
  • bug fix: color isosurface {atomset} does not work if isosurface has not already been mapped.
  • bug fix: PDB reader not reading Rasmol-style files with multiple bonding
  • CONNECT 1 2 2
  • CONNECT 1 2
  • CONNECT 1 2
  • means for Rasmol double bond between atoms 1 and 2
  • code: experimenting with fragmentation of applet core classes into _1b, _1c, _1d, _1e, _1f

New in Jmol 12.2.0 (Oct 4, 2011)

  • bug fix: MO overlaying orbitals
  • bug fix: PDB reader not reading Rasmol-style files with multiple bonding
  • CONECT 1 2 2 means for Rasmol double bond between atoms 1 and 2
  • 224 new features
  • summary of feature changes between Jmol 12.0 and 12.2:
  • FEATURE CHANGE: "ligand" definition changed to!(protein,nucleic,water,UREA)"
  • instead of "hetero and not solvent"
  • FEATURE CHANGE: default zShadePower set to 3
  • FEATURE CHANGE: undocumented a[13] = 3 (where a is a matrix, for a[1][3]) removed
  • 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: JmolSmilesApplet method (smiles1)
  • new feature: JmolSmilesApplet method getRelationship(smiles1, smiles2)
  • new feature: The Jmol application can now communicate via socketswith other Jmol applications or specialized servers.
  • The SYNC command has been expanded to make this very easy: sync -nnnn starts a server on local port nnnn accepting only local connectionssync nnnn "background white" (from another app, generally) would execute thatcommand on the app acting as a server You can also do this from one app frame to another, because they are independentinstances of Jmol.
  • Jmol can provide server service to other apps using: sync -3000[start other app, connecting on 3000]sync 3000 ..... Because once the server is started and another app has connected,Jmol will send messages to that other app, not itself. To test the service within one application, just create the server and sendcommands to itself using a negative port number: sync -3000;sync -3000 'Mouse: rotateZBy 30'
  • Note that in this context the "server" is the one getting commands from the "client"But the server can also send commands to the client provided the client has given theappropriate handshake: {"magic":"JmolApp","event":"out"} Sent from Jmol (via outSocket): {"magic" : "JmolApp", "role" : "out"} (socket initialization for messages TO jmol){"magic" : "JmolApp", "role" : "in"} (socket initialization for messages FROM jmol){"type" : "script", "event" : "done"} (script completed) Sent to Jmol (via inSocket): {"type" : "banner", "visibility" : "ON" or "OFF" } (set banner for kiosk){"type" : "banner", "text" : bannerText } (set banner for kiosk){"type" : "command", "command" : command } (script command request){"type" : "content", "id" : id } (load content request){"type" : "move", "style" : (see below) } (mouse command request){"type" : "quit" } (shut down request){"type" : "sync", "sync" : (see below) } (sync command request){"type" : "touch", (a raw touch event)"eventType" : eventType,"touchID" : touchID,"iData" : idata,"time" : time,"x" : x, "y" : y, "z" : z } For details on the "touch" type, see org.jmol.viewer.ActionManagerMT::processEventContent is assumed to be in a location determined by the Jmol variablenioContentPath, with %ID% being replaced by some sort of ID number of tag provided bythe other half of the system. That file contains more JSON code: {"startup_script" : scriptFileName, "banner_text" : text }
  • An additional option "banner" : "off" turns off the title banner.The startup script must be in the same directory as the .json file, typically as a .spt file
  • Move/sync commands include: {"type" : "move", "style" : "rotate", "x" : deltaX, "y", deltaY }{"type" : "move", "style" : "translate", "x" : deltaX, "y", deltaY }{"type" : "move", "style" : "zoom", "scale" : scale } (1.0 = 100%){"type" : "sync", "sync" : syncText }
  • Note that all these moves utilize the Jmol sync functionality originally intended forapplets. So any valid sync command may be used with the "sync" style. These includeessentially all the actions that a user can make with a mouse, including thefollowing, where the notation represents a number of a given type. Theseevents interrupt any currently running script, just as with typical mouse actions. "centerAt "-- set {ptx,pty,ptz} at screen (x,y)"rotateMolecule ""rotateXYBy ""rotateZBy ""rotateZBy " (with center reset)"rotateArcBall ""spinXYBy "-- a "flick" gesture"translateXYBy ""zoomBy ""zoomByFactor ""zoomByFactor " (with center reset)
  • new feature: preliminary QuantumEspresso XML readernew feature: Jmol Application flags -k and -P-- -k kiosk mode: like applet, but with a banner across the top-- -P JSON NIO client mode over port -- for JSON NIO, use -J or -j to set nioContentPath and nioTerminatorMessageto the desired values. For example:Jmol -k -P 31461 -j "nioContentPath='./%ID%/%ID%.json';nioTerminatorMessage='SCRIPT_DONE'"
  • new feature: Jmol.js adds jmolSwitchToSignedApplet().This needed a new tag that is now inserted around the applet.
  • new feature: filter "_Xx" for filtering element Xxbug fix: MO SLAB n never implemented
  • bug fix: MOLDEN reader not reading spherical basis functions
  • bug fix: contact command not symmetricSet A should generally be the ligand. However, consider note:// check for O--H...N or O...H--N and not considering// hydrogens and still have a filter// a bit of asymmetry here: set A may or may not have H atoms added.// This is particularly important for aminesThe issue here is that we do not assume that hydrogens have beenadded to ligands. So we make some allowances there.
  • bug fix: SMILES [#6]-[#6] should not match bonds in benzene, only biphenyl
  • bug fix: in SMARTS matching of SMILES string, aromatic ring conditions were not matched
  • bug fix: null pointer exceptions when model with unit cell is appended to model without unit cell
  • bug fix: CIF reader not implemented with filter "CONF n"
  • bug fix: unit cell not turned off in state for PDB files loaded with biomolecule
  • bug fix: mo points 1000 brokenbug fix: xxx = {*}; xxx.property_x = 3 improperly parsed as a script commandbug fix: getproperty minimizationInfo returns JSON instead of readable string
  • bug fix: JaguarReader not reading D6 MOs properly code: all references to java.awt and javax.swing isolated toorg.jmol.awt, rg.jmol.export, and org.jmol.multitouchcode: refactored Jmol core Swing classes restricted toapplet, console, export, modelkit, multitouch, popupTODO: Question about what c=c should do. For now, changing that to NOT match C=C of benzene

New in Jmol 12.2 RC 7 (Sep 21, 2011)

  • bug fix: SMILES [#6A] and [#6a] should be distinct
  • bug fix: load SMILES should not allow 2D return
  • bug fix: load SMILES not saved properly in state
  • bug fix: set isosurfaceKey not displaying key for planar contour plot
  • bug fix: GAUSSIAN reader cannot read MOs when more than 1000 orbitals
  • new feature: CASTEP reader for .md and .geom trajectories
  • bug fix: atomic orbitals should be assigned 0 if |psi| < 1e-7
  • bug fix: load TRAJECTORY does not assign model names
  • new feature: load TRAJECTORY now loads vibrations as trajectories

New in Jmol 12.2 RC 6 (Sep 13, 2011)

  • bug fix: load PACKED SUPERCELL produces redundant atoms
  • new feature: transparent background PNG images with WRITE PNGT xxxx.png
  • -- set ANTIALIASEIMAGES false to avoid slight trim issue
  • -- use an unusual color, such as [x010101] for the background # new feature: preliminary CASTEP .phonon frequency file reader # -- preliminary only
  • -- reads q=0 and q#0 points
  • -- use load ... SUPERCELL to select out a specific q-point
  • -- for example: load c60.phonon {1 1 1} SUPERCELL {2 1 2}
  • will select for q = (0.5 0 0.5) # load c60.phonon -5 {1 1 1} SUPERCELL {2 1 2}
  • and only mode 5 for q = (0.5 0 0.5)
  • load c60.phonon -5 {2 2 2} SUPERCELL {-4 1 2}
  • eight supercells; mode 5 only for q=(-0.25 0 0.5)
  • new feature: unitcell {xxx yyy z} where z is negative fills entire (standard) xxx yyy space with unit cells of size z
  • bug fix: AtomSetChooser set up too late -- can override embedded jmolScript vibration/vector scale commands
  • bug fix: set naviationPeriodic while navigating should disallow unit cell and standard axes
  • bug fix: MO LIST broken
  • bug fix: linear combination of MOs broken in 12.1.49
  • new feature: forgotten feature: load "xxxx.xxx" [ list of models to load ]
  • -- for example: load "cyclohexane_movie.xyz" [ 1 6 11 26 ]
  • new feature: set minPixelSelRadius
  • bug fix: Crystal reader not handling CONV option properly
  • bug fix: CIF reader not reading isotopes such as D and T
  • new feature: CRYSTAL reader reads property files for tensor quantities
  • -- displayed as ELLIPSOID
  • -- note that scale is set using ELLIPSOID N where N is a percent; default 50; max 100
  • bug fix: load slab/polymer with PACKED does not work
  • new feature: unitcell {xxx yyy scale}
  • -- allows for display of a block of unit cells in 444 555 notation
  • -- cleared by unitcell {0 0 0}
  • feature change: contact full/trim returned to simpler original non-paired idea bug fix: imines SMILES may cause null pointer exception
  • bug fix: SOE added to carbohydrate list (L-sorbose in pyranose form; SOL is the open form, 3AI3.pdb) bug fix: setting DOTS off can cause null pointer exception
  • bug fix: saving state of contact broken
  • bug fix: contact SLAB n not working
  • bug fix: deleting of the first model in a set that has load APPEND will not produce the correct state
  • bug fix: deletion of models having atoms with dots can generate null pointer exception
  • bug fix: QuantumEspresso reader not reading ALAT/A_0 files correctly
  • bug fix: measurements, picking not allowed to FIXED atoms
  • bug fix: (contact) ligand nitrogens not protonated and become hbond acceptors
  • -- solution for now is to consider all N/O HETATM atoms "ambiguous"
  • new feature: UNDO/REDO
  • -- console-only commands same as buttons
  • -- full file reload (saving of full state)
  • bug fix: undocumented "redo" "undo" application-only commands changed to "redocmd" "undocmd"
  • new feature: undoMove/redoMove
  • -- script commands
  • -- act like CTRL-Z/(CTRL-SHIFT-Z or CTRL-Y)
  • -- just move atoms; no file loading (just atom positions saved) UNDOMOVE/UNDOMOVE 1
  • undo last movement
  • UNDOMOVE n
  • undo last n movements
  • UNDOMOVE 0/UNDOMOVE ALL
  • undo all movements
  • REDOMOVE/REDOMOVE 1
  • redo last movement
  • REDOMOVE n
  • redo last n movements
  • REDOMOVE 0/REDOMOVE ALL
  • redo all movements
  • UNDOMOVE -1
  • clear UNDO history
  • REDOMOVE -1
  • clear REDO history
  • REDOMOVE -2/UNDOMOVE -2
  • clear both histories

New in Jmol 12.2 RC 5 (Sep 13, 2011)

  • bug fix: "$phosphorus pentoxide" label %[shape] indicates AX4E not AX4 hybridization on phosphorus
  • new feature: set isosurfaceKey ON|OFF
  • -- creates a vertical hoverable key on the left
  • -- only the most recent and visible isosurface
  • -- is not exported
  • bug fix: show colorscheme "high" causes exception

New in Jmol 12.2 RC 4 (Sep 13, 2011)

  • bug fix: setting a timeout should reset the timer of a running timeout with the same ID
  • bug fix: contact translucent carries over to next contact command
  • bug fix: modelKit increase/decrease charge not working
  • bug fix: show SMILES|CHEMICAL NAME broken
  • bug fix: for(x in...) where x is not defined causes exception
  • bug fix: CONTINUE in switch within for or while loops infinitely
  • bug fix: zap; load append ... ignores the zap!
  • new feature: selection of surfaces in SurfaceTool

New in Jmol 12.2 RC 3 (Sep 13, 2011)

  • bug fix: color broken in 12.2.RC2
  • bug fix: isosurface pmesh INLINE broken
  • bug fix: 1jgq phosphorus-only default rendering disabled

New in Jmol 12.2 RC 2 (Sep 13, 2011)

  • FEATURE CHANGE: "ligand" definition changed to !(protein,nucleic,water,UREA)"
  • instead of "hetero and not solvent"
  • new feature: contact VDW shows clash-contacts with equal-volume
  • -- combination with CLASH gives bulls-eyes -- plane only
  • new feature: real-time docking with visual scoring test:
  • set pdbAddHydrogens
  • load caffeine.xyz;load append 1crn.pdb # frame *
  • select protein;wireframe only
  • select none
  • set picking dragMolecule
  • timeout "t1" -1000 "contact {selected} {!selected} color type"
  • bug fix: select deuterium, HOH, _1H, _H1 isotope business messed up
  • bug fix: timeouts not waiting for their own completion
  • bug fix: !quit not interrupting timeouts
  • bug fix: command line -M sparshui not working
  • bug fix: isosurface color density not picking up last yz points
  • bug fix: 12.2.RC1 doesn't allow for isosurface color XXX t.jvxl
  • bug fix: Old legacy Chime *.C for _C in non PDB files -- only when one model, and it is not a PDB file
  • new feature x = compare({1.1}, {2.1}, "MAP", {1.1}.find("smiles"))
  • -- MAP returns a set of correlations between set 1.1 and set 2.1 based on the given smiles string
  • -- format is an array of arrays of [i,j]
  • bug fix: setting VDW radius after creating isosurfaces or contacts should delete that
  • surface if set of atoms involved in surface intersects set of changed vdw radii bug fix: H-bond contact to water O categorized as clash
  • bug fix: MO for multi-model file does not save state properly
  • bug fix: GROMACS reader should not use sorbital group 3 name SOL for water -- changed to WAT
  • bug fix: SOL considered solvent, but is sorbitol; SOL added to carbohydrate list instead
  • code: better-protected Binary Sorted Tree Forest invalidation
  • code: enum class for Structure # code: enum class for Vdw and RadiusData
  • code: enum class for file load state # code: enum class for color palettes code: enum class for stereoMode # code: enum class for animationMode code: enum class for quantum shells -- less than ideal!
  • code: enum class for draw
  • code: enum class for Callbacks
  • -- NOTE: THIS AFFECTS ALL EMBEDDED APPLICATIONS
  • -- WITH CALLBACKS (in a good and simple way!) # code: enum class for axes modes

New in Jmol 12.2 RC 1 (Sep 13, 2011)

  • new feature: Surface Tool now does capping. Surface Tool layout rearrangement.
  • new feature; CONTACT command -- generates contact surfaces
  • CONTACT {setA} {setB} [contact options] [contact type] [display option] [display type] [color options]
  • where we have:
  • {setA} the only required parameter, the set of atoms around which to show contacts
  • {setB} the surrounding set (default: "all other atoms in this model")
  • [contact options]
  • within # resolution # +/-x.x #
  • intermolecular
  • intramolecular
  • parameters [cutoff,....] # [contact type]
  • hbond
  • clash
  • vdw
  • nci
  • [display options]
  • slab ....
  • minset
  • [display type]
  • full
  • trim
  • plane
  • connect
  • cap
  • surface
  • [color options]
  • color
  • (color) DENSITY
  • color TYPE
  • --examples
  • contact {ligand}
  • contact {ligand} color type
  • contact {:A} {:B}
  • contact {2001:A} NCI
  • new feature: set VDW JMOL --- resets any user-set vdw radii
  • new feature: set VDW PROBE --- sets VDW radii as follows
  • as per Word, et al, J. Mol. Biol. (1999) 285, 1711-1733
  • {_H}.vdw = 1.0;
  • {_H and connected(_C) and not connected(within(smiles,'[r6]'))}.vdw = 1.17; {_C}.vdw = 1.75; {_C and connected(3) and connected(_O)}.vdw = 1.65; {_N}.vdw = 1.55; {_O}.vdw = 1.4; # {_P}.vdw = 1.8;
  • {_S}.vdw = 1.8;
  • new feature: zoom 0 default for
  • bug fix: H atom attachment fixed at 1.1 Angstroms, which is fine for C, but
  • a bit high for O,N (1.0) and low for third row (1.3)
  • bug fix: isosurface parameters @x does not work even when x is an array new feature: ISOSURFACE Kinemage file reader (for contact/clash dots) -- colors are set from the kin file
  • parameters [cutoff, valueMin, valueMax, pointType]
  • -- valueMin -- minimum value to display
  • -- valueMax -- maxiumum value to display
  • color.equals("greentint") ? 4f H-bond # : color.equals("blue") ? 0.35f wide contact : color.equals("sky") ? 0.25f almost wide contact : color.equals("sea") ? 0.15f close contact # : color.equals("green") ? 0.0f contact # : color.equals("yellowtint") ? -0.1f small overlap: color.equals("yellow") ? -0.2f small overlap # : color.equals("orange") ? -0.3f small overlap : color.equals("red") ? -0.4f almost bad overlap : -0.5f); bad overlap
  • -- pointType:
  • 0 all points
  • 1 'M' {McMc contacts}
  • 2 'S' {ScSc contacts}
  • 3 'P' {McSc contacts}
  • 4 'O' {Hets contacts}
  • -- dot size controllable via "set dotscale"
  • -- example: # # isosurface 2bxaH-multi.kin
  • all overlaps
  • isosurface parameters [0 -1 -0.1] 2bxaH-multi.kin
  • just non-H-bond overlaps
  • isosurface slab within 3.0 {2001:A}; display group contact(2001:A); zoom {displayed} 0
  • bug fix: for(y in x) when x is an array can give odd results when y[i] is then used
  • bug fix: ++ipt not working
  • new feature: slab/cap for MO # new feature: contact() function
  • -- selects atoms with VDW overlap
  • -- examples: display group contact(2001:A)
  • groups involving contacts at vdw 100%
  • select contact(110, 2001:A)
  • just the atoms in contact at vdw 110%
  • print contact(0.4, {2001:A})
  • vdw + 0.4
  • print contact(0.4, {2001:A and _O}, {_N})
  • specific cross-interactions
  • bug fix: zap of model with measurements causes exception
  • bug fix: DATA "append @xxx" fails
  • bug fix: MOL-2D files loaded then saved to PNG do not reload hydrogen atoms
  • new feature: getProperty ligandInfo
  • -- treatment of ligands as individually covalently bonded units
  • INDEPENDENTLY of how they are bonded to other atoms such as proteins # -- delivers a Hashtable
  • "ligands" ArrayList
  • "reslist" "2001-2003:A/1.1" # "atoms" ({....})
  • "groupNames" "NAG-NAM-NAG"
  • new feature: Surface Tool GUI -- just slicing so far and does all surfaces rather then selected.
  • Many angle units (degree, radians, gradians, fraction of circle, factors of pi -- pmesh and isosurface slicing
  • -- adjustments to generalize what can be sliced.
  • new feature: select within(x.x, VDW, aaaa)
  • -- selects atoms that have overlapping VDW surfaces with set aaaa
  • -- if x.x is present, BOTH interacting atom radii are adjusted:
  • -- if x.x > 10, then this is assumed to be a percent, such as 110%, 100%, 90%
  • -- if x.x will now turn isosurface opaque first
  • -- isosurface slab translucent without a color ---> will now take on current color of isosurface rather than white
  • -- color isosurface translucent of translucent-slabbed isosurface will remove ALL slabbing
  • bug fix: WebExport not getting Jmol Icon for title bar.
  • bug fix: PDB reader may read bfactors off by 0.01
  • bug fix: NWChem reader without input deck but with frequencies fails to load bug fix: 12.1.51 breaks isosurface... colorscheme...
  • bug fix: 12.1.51 breaks mo reading from Chem3D XML, which was not working anyway, but now is. # bug fix: isosurface slab -@xxxx... will negate variable xxxx if it is a plane # bug fix: contact {setA} {setB} should not allow overall of setA and setB unless NCI.
  • bug fix: contact FULL set to minimum resolution 10 (pairwise)
  • bug fix: isosurface intersection .... function "..." ignores function and just does "a-b"
  • bug fix: SUBSET command not resetting properly
  • code: super-fast "micro-isosurface" merging for CONTACT. Wow!
  • -- set pdbAddHydrogens; load =2bxa; contact {:A} {:A}
  • -- merges 2341 microisosurfaces in 325 ms on BH laptop!
  • code: fast pointilist atomic orbitals.

New in Jmol 12.1.51 Prerelease (Jul 21, 2011)

  • bug fix: try {} does not pass VAR variables into its context.
  • bug fix: PovRAY starting with antialiasDisplay does not work properly.
  • bug fix: isosurface ORBITAL slightly off in probability -- at the cost of speed
  • uses abs(PSI) not PSI^2 for probability -- this is not quite right
  • adding option SQUARED to use PSI^2 instead -- but this may take a LONG time to process
  • bug fix: catch(err) not setting variable "err"
  • bug fix: select within(@n,...) does not work (distance implied)
  • bug fix: probability "pointilist" atomic orbitals (isosurface ORBITAL 3 2 1 points 10000) does not predict max value close enough
  • bug fix: important to temporarily set pdbAddHydrogens OFF for state being read without "set pdbAddHydrogens" command ("pdbNoHydrogens in htParams)
  • bug fix: isosurface mapping of properties will not be smoothed well due to "fix" in 12.1.50
  • bug fix: writing state for isosurfaces that span multiple frames will fail to display isosurface when reloaded
  • bug fix: no slabbing for atomic orbitals; not saving phase color for atomic orbitals
  • new feature: isosurface slab TRANLSUCENT 0.6 red x=3
  • translucent slabbing
  • JVXL, PovRay, state -- done
  • TODO: isosurface vdw map mep; isosurface slab none slab translucent 0.6 within range 0 -0.05
  • TODO: load =1hiv
  • select protein
  • color yellow
  • wireframe only
  • contact resolution 8 {[1zk]} {![1zk]} cap
  • contact slab translucent 0.1 red within range -100 0
  • bug fix: CIF file reading may miss molecules in highly angled triclinic systems.
  • bug fix: over 2047 colors can overrun colix storage
  • TODO: probably should make those integers so this does not happen.
  • new feature: with slab ON, the right-side zooming runs the slabbing plane, same as (ALT_CTRL_SHIFT_LEFT)
  • bug fix: CML files with atoms starting with both aNN and aNN_ will not bond correctly
  • new feature: contact CAP (for Art Olson)
  • new feature: isosurface ... COLORSCHEME (or just COLOR) TO n
  • new feature: color isosurface TO n
  • for example, isosurface molecular map property atomno colorScheme red to white
  • optional n defaults to 35 distinct colors
  • bug fix: polyhedra on/off does not work.
  • new feature: drag/drop into application offers resize option (# preferredWidthHeight in state script)
  • new feature: plane({three-atom atomset})
  • new feature: "@" for "atomno="
  • both in Jmol math and atom expressions
  • select @42 or @52
  • print @42.xyz
  • @42.xyz = {1,2,3}
  • new feature: {atomset}.x?
  • creates an associative arraay of atom properties with names starting with "x"
  • print @1.? lists ALL atom properties
  • print {atomno < 3}.? creates an associative array of arrays
  • for example:
  • $ load caffeine.xyz;print @1.atom?
  • atomID:0
  • atomIndex:0
  • atomName:H1
  • atomType:H1
  • atomX:-3.380413
  • atomY:-1.1272367
  • atomZ:0.5733036
  • atomno:1
  • $ show @{{atomno < 3}.atomn?}
  • { "atomName":["H1","N2"], "atomno":[1,2] }
  • new feature: set measurementUnits VDW
  • percent VDW (in relation to sum of two VDW radii)
  • new feature: select/display/hide [ADD|REMOVE] ...
  • must be first parameter
  • applies appropriate logic:
  • "select ADD" means "select selected or"
  • "display REMOVE" means "display displayed and not"
  • new feature: select/display/hide GROUP
  • applies within(group,...) to the expression
  • similar to the PyMOL "byres" option
  • must be first parameter, unless ADD|REMOVE present, then must be second parameter
  • examples:
  • display add group @22
  • select remove group picked
  • new feature PICKED variable
  • accumulates recently picked atoms into a set
  • cleared using "SET PICKING"
  • may be set/cleared by user
  • new feature: select within(VDW, aaaa)
  • selects atoms that have overlapping VDW surfaces with set aaaa
  • using "VDW_nnn" where nnn is a percent uses that VDW surface
  • new feature: measure {aaaa} {bbbb} vdw nnn%
  • intermolecular by default
  • adjustable size
  • new feature: measure INTRAMOLECULAR ....
  • only measure intramolecular distances
  • new feature: measure INTERMOLECULAR ....
  • only measure intermolecular distances
  • new feature: set ligandLoadFormat
  • new feature: set pdbAddHydrogens
  • for file loading
  • adds 3 H to terminal N of chains.
  • adds hydrogens to ALL groups, including HET groups
  • unlike PDB2PQR, then, ligands are properly shown
  • also adds all multiple bonds to PDB files
  • for altlocs you should use load option FILTER "CONF 1" (or some other specific configuration)
  • atom numbers are appended to maximum number in file
  • new feature: CIF reader for Ligand CIF files (e.g. http://www.rcsb.org/pdb/files/ligand/AMU.cif)
  • new feature: calculate HYDROGEN now works for standard amino acids and nucleic acids
  • adds "GROUP" option to connect -- puts new atoms in group of previous
  • saves connection in state with negative first atom -- indicating that we need to assign the group
  • new feature: CONTACT {xxx} TRIM
  • new feature: CONTACT {xxx} MISC, and redefinition of HYDROPHOBIC
  • new feature: CONTACT {xxx} VDW
  • just maps a VDW isosurface with distances to another VDW isosurface
  • new feature: LOAD command reports header/title for PDB files
  • specifically when scriptLevel = 0 (typed entry)
  • new feature: isosurface SLAB OFF -- for SLAB n, this turns that slabbing off.
  • new feature: isosurface FUNCTIONXY = "x * y" and isosurface FUNCTIONXYZ = "x * x + y + z"
  • default is from -10 to 10 every 0.25 Angstroms
  • new feature: CONTACT command (Erik Wyatt/Bob Hanson 6/22/2011)
  • creates an object of a variety of forms that
  • indicates nonbonding interactions
  • can be a planar disk perpendicular to the interaction,
  • or a cigar-shaped connector
  • HBOND (just between O and/or N)
  • HYDROPHOBIC (not between O and/or N)
  • percent of van der Waals distance
  • works by doing a sum or difference of two complementary
  • van der Waals surfaces (PLANAR) or by showing the
  • intersection of the two surfaces (FULL) or by doing an NCI
  • (noncovalent interaction) PROMOLECULAR calculation.
  • DENSITY x.x (spot size) option does rough volume rendering.
  • contact
  • parameters
  • required:
  • {setA}
  • optional:
  • ID aaaa (if present, must be the very FIRST parameter
  • ON/OFF/DELETE/LIST (if present must be the only parameter other than ID
  • {setB}
  • DENSITY x.x
  • COLOR DENSITY
  • IGNORE {ignoreSet}
  • DISTANCE x.x
  • PARAMETERS [....]
  • FULL|PLANAR|CONNECT|NCI|ISOSURFACE
  • HYDROPHOBIC|HBOND
  • INTRAMOLECULAR|INTERMOLECULAR
  • nnn%
  • COLOR ...
  • TRANSLUCENT/OPAQUE/MESH/NOMESH, etc... (must be last parameters)
  • new feature: show LIGHTING
  • bug fix: set defaultVDW user not working
  • bug fix: _smilesString variable not being cleared when a PDB file is loaded
  • bug fix: isosurface VDW mapping onto plane now has somewhat different coloration,
  • and properly slabs to the VDW radius. This is just a SLAB option that can
  • be removed like all others using isosurface SLAB NONE
  • TODO: contours from saved JVXL planar isosurfaces does not seem to be correct.
  • bug fix: WebMO reader fails to read HOMO/LUMO business.
  • bug fix: AMU added (NAM-NAG sequences)
  • bug fix: NDG added (epimer of NAG)
  • bug fix: definition of CARBOHYDRATE was updated:
  • [A2G],[NGA],[SIA],[SLB],[LBT] added (GalNAc, NeuNAc, lactose)
  • [ASF],[NAM] removed, they are not carbohydrates
  • a few existing ones are deprecated by PDB; they are left for compatibility
  • but are now listed as such (maybe remove them in future).
  • bug fix: This obscure fix: http://jmol.svn.sourceforge.net/viewvc/jmol/trunk/Jmol/src/org/jmol/adapter/readers/cifpdb/PdbReader.java?r1=13502&r2=13525
  • broke Jmol reading of the Epcot hemoglobin file. Only relevant to sequential or trajectory PDB files that do not have MODEL statements.
  • So then any version starting with 12.0.RC_24 (7/8/2010) through now (7/2/2011) will read the files
  • correctly -- not missing the first atom -- but that messes up earlier scripts. Unfortunately the Epcot business
  • (Touch-A-Molecule) was written using 12.9.23 (1/24/2010), so that is affected.
  • This fix only affects states written prior to 12.0.RC_1 and just makes it so that they display correctly (though missing that one atom)
  • when they involve PDB trajectories of file without MODEL records separating models. Pretty sure this is just that one file.
  • bug fix: contact fULL followed by contact HBOND can cause exception
  • bug fix: set fontScaling does not scale offset with font
  • bug fix: application Help menu item no long pushed right.
  • bug fix: @{} (empty Jmol math braces) can call exception
  • bug fix: pdbAddHydrogens should not add H of CO2H, SO4H, PO3H2
  • bug fix: PDB reader may misread X in GLX/ASX as xenon
  • bug fix: error message clarifications: web export not clear about not finding Jmol.js
  • jmolApplet.jar.
  • bug fix: export to web was looking for JmolApplet0.jar when jmoljarpath = "."
  • bug fix: plane(r, theta, phi) script function was measuring phi from -Y not +X.
  • bug fix: Bad Jmol.js
  • bug fix: draw pointgroup fixed to first model
  • code: better CONTACT MISC algorithm
  • code: refactored ModelLoader and org.jmol.modelsetbio.Resolver
  • moves all PDBaddHydrogen business to modelsetbio
  • makes class ModelLoader only temporarily instantiated
  • code: much more efficient plane creation and mapping
  • code: work on isosurface, JVXL, plane mapping
  • code: Viewer passes stateScriptVersionInt on to file readers

New in Jmol 12.0.48 (Jul 21, 2011)

  • bug fix: try {} does not pass VAR variables into its context.
  • bug fix: catch(err) not setting variable "err"
  • bug fix: CML files with atoms starting with both aNN and aNN_ will not bond correctly
  • bug fix: set fontScaling does not scale offset with font
  • bug fix: application Help menu item no long pushed right

New in Jmol 12.0.47 (Jul 5, 2011)

  • bug fix: definition of CARBOHYDRATE was updated:
  • [A2G],[NGA],[SIA],[SLB],[LBT],[NDG],[AMU] added (GalNAc, NeuNAc, lactose, GlcNAc, MurNAc)
  • [ASF],[NAM] removed, they are no longer carbohydrates
  • a few existing ones are deprecated by PDB; they are left for compatibility but are now listed as such (maybe remove them in future).
  • bug fix: Bad Jmol.js
  • bug fix: draw pointgroup fixed to first model

New in Jmol 12.0.46 (Jul 4, 2011)

  • bug fix: _smilesString variable not being cleared when a PDB file is loaded
  • bug fix: WebMO reader fails to read HOMO/LUMO business.
  • bug fix: throwing script parsing error on correct "isosurface slab within [4 elements
  • representing the slab box]" (was losing last "]").
  • bug fix: (application) Jmol console not receiving echo messages
  • bug fix: UFF full listing (set loglevel 6;minimize steps 0;show minimization) missing n and cosNphi0 in torsions
  • bug fix: PQR reader mistaking " HD3" as deuterium

New in Jmol 12.1.50 Prerelease (Jun 20, 2011)

  • new feature: .count and .count(x)
  • .count equivalent to .size -- length of array, string, or atom/bond set
  • .count() operating on an array gives an array of [value, count] pairs
  • .count(x) gives the number of "x" in the array or string
  • new feature: tab completion on $... or first word after DRAW or ISOSURFACE
  • new feature: JVXL files now save and return color and colorscheme information as well as rending (mesh, fill, front/back/fullylit)
  • new feature: isosurface origin {...} steps {...} points {...} allows specific origin, steps, and counts (x, y, z axes assumed) for an isosurface that is not from a CUBE file.
  • allows matching other data or fine-tuning a calculation
  • new feature: isosurface origin {...} steps {...} points {...} FUNCTIONXY "function of x, y"
  • new feature: isosurface origin {...} steps {...} points {...} FUNCTIONXYX "function of x, y, z"
  • simple rendering of functions based on an origin, steps, and counts origin, steps, counts are all required.
  • new feature: isosurface INTERSECTION {atomset1}
  • produces a nice plot of noncovalent interaction regions between atomset1 and nearby atoms.
  • generates an isosurface that is the result of applying a function, to two VDW data sets.
  • full command: isosurface INTERSECTION {atomset1} {atomset2} function "XXX" VDW 100%
  • The Jmol function will be of the form: function fname(a, b) { return XXX }
  • isosurface INTERSECTION {ligand} {protein} function "a-b" VDW 100%
  • isosurface slab within range -100 0
  • default:
  • "within(5.0, atomset1) and not within(molecule,atomset1)"
  • function a-b
  • "VDW 100%"
  • "slab within range -100 0"
  • new feature: color isosurface {atom expression}
  • specific to surface types (vdw, molecular, sasurface)
  • similar to PyMOL command "set surface_color, (color), (selection)"
  • allows painting of specific atom-related isosurface areas specific colors
  • new feature: super-fast isosurface MAP PROPERTY when isosurfacePropertySmoothing = false
  • new feature: within(distance, $surfaceID)
  • new feature: isosurface slab [point array]
  • new feature: set defaultLabelPDB "%m%r" -- for set picking LABEL (typically labeling groups)
  • new feature: set defaultLabelXYZ "%a" for set picking LABEL (typically labeling atoms)
  • new feature: reversible isosurface SLAB
  • isosurface slab x=2 slab -x=2 sphere 5.0
  • isosurface slab y=2
  • any number of slabs either in the instruction or after it
  • isosurface slab NONE removes slabs
  • any number of CAP as well, but those must be in the statement that creates the isosurface, not in a later statement, and they may not work as expected, as they are quite minimal
  • new feature: isosurface parameters [0 1] NCI "density.cube" (discrete SCF NCI with intramolecular option)
  • new feature: isosurface parameters [0 2] NCI "density.cube" (discrete SCF NCI with intermolecular option)
  • new feature: isosurface parameters [0 -1] NCI "grad.cube" MAP "dens.cube" (intramolecular filtering of NCIPLOT cubes)
  • new feature: isosurface parameters [0 -2] NCI "grad.cube" MAP "dens.cube" (intermolecular filtering of NCIPLOT cubes)
  • new feature: plane(r, theta, phi)
  • spherical coordinates
  • plane through a point distance r from the origin perpendicular to the vector: R[z,theta]R[x,phi]{0 0 1}
  • angles in degrees
  • bug fix: for (Var x in y){ {x}.xxxx = ...} does not work properly
  • bug fix: for (Var x in y){...} did not work unless y is enclosed in { }
  • bug fix: (application) Jmol console not receiving echo messages
  • bug fix: UFF full listing (set loglevel 6;minimize steps 0;show minimization) missing n and cosNphi0 in torsions
  • bug fix: isosurface SLAB not saved in JVXL; (now as vertex data only) note: {*}.find("MF") was not documented (Jmol 12.0)
  • bug fix: isosurface slab within 5.0 {3} -- should be ALL those atoms, not just center as opposed to the CENTER using isosurface slab within 5.0 @{{3}.xyz}
  • bug fix: PQR reader allowing < 0.9 radius for H
  • bug fix: PQR reader mistaking " HD3" as deuterium
  • bug fix: pointilist isosurfaces do not respond to "color isosurface red"
  • bug fix: isosurface select {x} only VDW MAP select {!x} VDW
  • now allows mapping of a VDW (or SA, not molecular) surface with values that are the exact minimum distance of that point to atoms of another set. This can directly pinpoint contact regions
  • bug fix: throwing script parsing error on correct "isosurface slab within [4 elements representing the slab box]" (was losing last "]").
  • code: Renderers made entirely independent
  • unimplemented: slice command provides for simple two sided slicing of isosurfaces
  • syntax: slice angleXY anglefromZ position thickness
  • all numerical parameters must be decimals.
  • angleXY-angle in XY plane (decimal in radians) anglefromZ- angle from Z axis (decimal in radians) these angles specify the direction vector perpendicular to the slice.
  • position - 0-100 (% in decimal) specifies the position along the vector as a percent of the boundbox diagonal. 50% is origin.
  • thickness - slice thickness as a percentage of the boundbox diagonal (0-100 in decimal format).
  • slice left on - creates a transparent plane at the left of the slice.
  • slice right on - creates the right plane
  • slice right|left off - turns them off.
  • implemented: isosurface slab [several options, see above] does all of the above except left/right transparent planes, which I think could be implemented differently.

New in Jmol 12.1.49 Prerelease (Jun 10, 2011)

  • new feature: set zSlab {atom expression or point}; set zShade ON
  • sets the front of the shading to be at a position in space
  • very nice for ligands!
  • FEATURE CHANGE: default zShadePower set to 3
  • bug fix: MarchingCubes not reading last plane of data
  • code: isosurface NCI (promolecular) reads progressively
  • new feature: isosurface NCI (noncovalent interactions)
  • NCIPLOT promolecule calculation for reduced density.
  • Plots reduced density mapped with ABS(rho)*SIGN(lambda2) where lambda2 is the middle eigenvalue of the Hessian matrix of promolecular electron density. Innovates a discrete SCF option not available in NCIPLOT itself.
  • default is "promolecular" approximation
  • isosurface NCI
  • DISCRETE SCF -- starting with standard CUBEGEN file
  • isosurface NCI "dens.cube"
  • DISCRETE SCF -- starting with NCIPLOT's xx-nci-dens.cube file
  • isosurface parameters [0 0 0 0 0.01] NCI "dens.cube"
  • Extended to all volume file formats, including ABPS, CUBE, Jaguar, MRC, OMAP, CCP4, XPLOR
  • Isosurface parameters [cutoff, p1, p2, p3, p4] NCI ...
  • -- p1 = 0(all, default), 1(intramolecular), 2(intermolecular)
  • -- p2 = rhoPlot (cutoff used to remove covalent density, default 0.07 for promolecular, 0.05 for SCF)
  • -- p3 = rhoParam (fraction of total rho that defines intramolecular, default 0.95)
  • -- p4 = dataScaling (default 1, but set to 0.01 to read back in NCIPLOT -dens.cube file)
  • new feature: quaternion() with no parameters gives "current molecular quaternion" -- same as quaternion(script("show rotation"))
  • bug fix: POVRAY export of mapped surfaces fails
  • new feature: isosurface PARAMETERS [cutoff, p1, p2, p3...]
  • -- allows passing parameters to an isosurface generator
  • -- if parameters are 0, then some default value is used instead
  • bug fix: isosurface cavity algorithm error makes cavity too large
  • bug fix: 12.1.48 feature MO/ORBITAL POINTS delivers twice the number of desired points
  • bug fix: (not fixed in 12.0) set picking label requires picking of ATOM, not its label.
  • bug fix: load "xxxx" filter "biomolecule 1" broken
  • bug fix: font labels 16 bold does not work (i.e. missing face)
  • new feature: color atoms property VECTORSCALE
  • new feature: isosurface slab n

New in Jmol 12.0.45 (Jun 10, 2011)

  • bug fix: isosurface cavity algorithm error makes cavity too large # bug fix: font labels 16 bold does not work (i.e. missing face)

New in Jmol 12.0.44 (May 31, 2011)

  • bug fix: set appendNew false; load =1q0y; load APPEND =1crn causes exception
  • bug fix: lcaoCartoon does not get hidden when atom deleted
  • bug fix: isosurface SELECT should also set model index
  • bug fix: isosurface mesh incompatible with fullylit and frontonly
  • bug fix: navigate broken
  • bug fix: modelKit dragMinimizeAtom broken in 12.0.43
  • bug fix: dragMinimize should select all non-fixed atoms if there are fixed atoms
  • bug fix: write @{"xxxx"} fails
  • bug fix: isosurface ... map VDW -- mapping not saved in state
  • bug fix: CRYSTAL reader does not read vibrations for atoms with two-character symbols
  • bug fix: third oxygen atom in 5'-terminal phosphate was not assigned to backbone (e.g. 4tna.pdb)
  • bug fix: cartoons with hermite level do not reposition for atom position changes or trajectories
  • bug fix: isosurface plane x=-1 (with no spaces) not accepted
  • bug fix: x = write("VRML") should give VRML contents and not write to disk
  • bug fix: defined @ variables not indicating changes when models are deleted
  • bug fix: calculate structure RAMACHANDRAN broken in 12.0.18
  • bug fix: update in Jmol.js: Java version detection got broken in Mac Firefox 4.0.1 (part of browser compatibility test)

New in Jmol 12.1.48 Prerelease (May 31, 2011)

  • new feature: atomMovedCallback parameter: BitSet of atoms moved
  • new feature: appletReadyCallback parameters: htmlName, TRUE/FALSE
  • fired ONCE upon applet ready, once upon applet destroyed
  • new feature: load spacegroup "" loads data with current file's space group
  • new feature: load unitcell "" loads data with current file's unit cell and offset
  • set appendNew false
  • LOAD DATA "append"
  • testing
  • Na 0.5 0 0.5
  • end "append" {1 1 1} spacegroup "P4/mmm" unitcell ""
  • new feature: draw ARROW [ATOM {aa} | BOND {bb} {cc}] [ATOM {aa} | BOND {bb} {cc}]
  • allows easy creation of curved mechanistic arrows from atoms to bonds, bonds to atoms, atoms to atoms, or bonds to bonds.
  • when atoms are moved, these arrows follow the atoms.
  • new feature: isosurface CONNECT {xxx}
  • connects an isosurface to an atom (only the first in the set) so that if that atom is moved, then entire isosurface is moved.
  • STATE ISSUE: From the state, all isosurfaces are created AFTER atoms are moved, so an isosurface such as a molecular surface will not be recreated properly from the state
  • new feature: show state FILE "filename" --- show embedded state from file (for example, an image)
  • new feature: MO POINTS / AO POINTS mapping onto a plane for (var i = -5;i < 5;i += 0.2) {isosurface color range -1.0 1.0 plane x= @i map atomicorbital 4 3 1 points 1000;refresh}
  • bug fix: set appendNew false; load =1q0y; load APPEND =1crn causes exception
  • bug fix: lcaoCartoon does not get hidden when atom deleted
  • bug fix: isosurface mesh incompatible with fullylit and frontonly
  • bug fix: isosurface SELECT should also set model index
  • bug fix: navigate broken
  • bug fix: modelKit dragMinimizeAtom broken in 12.0.43
  • bug fix: dragMinimize should select all non-fixed atoms if there are fixed atoms
  • bug fix: write @{"xxxx"} fails
  • bug fix: xmlns designations for jvxl and cml added to JVXL file creation
  • bug fix: isosurface ... map VDW -- mapping not saved in state
  • bug fix: CRYSTAL reader does not read vibrations for atoms with two-character symbols
  • bug fix: cartoons with hermite level do not reposition for atom position changes or trajectories
  • bug fix: isosurface plane x=-1 (with no spaces) not accepted
  • bug fix: x = write("VRML") should give VRML contents and not write to disk
  • bug fix: third oxygen atom in 5'-terminal phosphate was not assigned to backbone (e.g. 4tna.pdb)

New in Jmol 12.1.47 Prerelease (May 16, 2011)

  • new feature: MO POINTS npts seed -- displays MOs as pointilist objects
  • load c6h6.smol
  • mo points 5000
  • mo homo
  • mo points 3000 13 # optional random number seed reproduces previous results
  • new feature: isosurface atomicOrbital n l m [zeff] [ POINTS npts seed]
  • allows Monte Carlo type orbital display, as for http://stolaf.edu/people/hansonr/origami/WIN/orbital1.zip
  • (see http://stolaf.edu/people/hansonr/orbital), e.g.:
  • isosurface phase atomicOrbital 3 2 1 POINTS 5000
  • optional random number seed reproduces previous results
  • new feature: contoured planes and 3D objects can be remapped and recontoured using ISOSURFACE MAP
  • new feature: set dotScale applies to isosurface points in pointilist objects
  • new feature: SCALE parameter implemented for atomic orbitals.
  • bug fix: remapping of a contoured isosurface fails
  • bug fix: user-defined @ atom sets should be saved in state
  • bug fix: defined @ atom sets not indicating changes when models are deleted
  • bug fix: parameter setting of Jmol integer parameters with float values may not set variables
  • example: set dotScale 3.0 does set that variable, but there is no effect. (not fixed in 12.0)

New in Jmol 12.1.46 Prerelease (May 16, 2011)

  • bug fix: no ALT-x menu action in application
  • new feature: set partialDots -- partial bonds rendered with dots rather than dashes
  • new feature: UNDO/REDO commands -- for atom movement or modelkit actions only
  • UNDO/UNDO 1 # undo last movement
  • UNDO n # undo last n movements
  • UNDO 0|ALL # undo all movements
  • REDO/REDO 1 # redo last movement
  • REDO n # redo last n movements
  • REDO 0|ALL # redo all movements
  • UNDO -1 # clear UNDO history
  • REDO -1 # clear REDO history
  • REDO -2/UNDO -2 # clear both histories
  • bug fix: undocumented "redo" "undo" application-only commands changed to "redocmd" "undocmd"
  • bug fix: FIX command not working properly
  • bug fix: CTRL-SHIFT-Z not working for "redo"
  • bug fix: select within(chain, atomno=xxx) will not select all desired atoms
  • if the chain is spread out over multiple regions of the file (1gzx)
  • note: For dragging and rotating atoms, chains, and molecules
  • there are several parameters that govern the process
  • because there are several different ways of going about it.
  • You can specify a set of atoms to FIX in place and not allow movement: FIX
  • You can specify whether or not to allow rotation of atoms when dragging: set allowRotateSelected
  • You can specify to move preselected atoms only, and you can specify the atoms
  • either with SELECT commands using set picking dragSelected
  • or by clicking on them (using set picking SELECT...)
  • set dragSelected (12.0)
  • Allows dragging of selected atoms but, by itself, no rotation.
  • pressing ALT shows selected atoms that will be moved
  • ALT-SHIFT-LEFT moves, CTRL-Z undos, CTRL-SHIFT-Z or CTRL-Y redos
  • along with set picking SELECT x
  • where x is one of: atom, group, chain, molecule, polymer, structure, model
  • You can also use set picking extendedSelect for Rasmol-style picking, where
  • you get one group at a time only; the default is to toggle selections on and off
  • set dragSelected; set allowRotateSelected (12.0)
  • AllowRotateSelected by itself does nothing, but with set dragSelected
  • also allows rotation.
  • Rotations, though allowed, are carried out on FULL MOLECULES ONLY.
  • pressing ALT shows selected atoms that will be moved
  • ALT-LEFT rotates, ALT-SHIFT-LEFT moves, CTRL-Z undos, CTRL-SHIFT-Z or CTRL-Y redos
  • set allowMoveAtoms TRUE (12.2)
  • A setting that enables/disables dragSelected and allowRotateSelected
  • and also allows rotation of atoms within molecules.
  • pressing ALT shows selected atoms that will be moved
  • ALT-LEFT rotates, ALT-SHIFT-LEFT moves, CTRL-Z undos, CTRL-SHIFT-Z or CTRL-Y redos
  • set allowMoveAtoms FALSE (12.2)
  • turns off dragSelected, allowRotateSelected, and itself, forcing selected rotations
  • to act on complete molecules
  • set picking dragSelected (12.2, new)
  • Based on those currently selected atoms, simple access to drag/rotate:
  • LEFT (on those atoms) rotates, SHIFT-LEFT (on those atoms) moves,
  • CTRL-Z undos, CTRL-SHIFT-Z or CTRL-Y redos
  • bug fix: undo (CTRL-Z) and redo (CTRL-Y) not implemented for dragSelected
  • bug fix: set dragselected may not turn off transient selection halos
  • new feature: set PICKING dragSelected
  • like dragMolecule; must be over an atom (any atom)
  • use SHIFT to rotate selected atoms
  • bug fix: molecules incorrectly assigned for covalently attached cofactors, such as HEM (1gzx)
  • What about hydrogen bonding?
  • bug fix: set picking dragMolecule then use of SHIFT after rotate COMPARE will result in unwanted translation

New in Jmol 12.0.43 (May 13, 2011)

  • bug fix: undocumented "redo" "undo" application-only commands changed to "redocmd" "undocmd"
  • bug fix: transcient halos not always transient for dragSelected
  • bug fix: FIX command not working properly
  • bug fix: select within(chain, atomno=xxx) will not select all desired atoms if the chain is spread out over multiple regions of the file (1gzx)
  • bug fix: set dragselected may not turn off transient selection halos
  • bug fix: undo (CTRL-Z) and redo (CTRL-SHIFT-Z/CTRL-Y) not implemented for dragSelected
  • bug fix: molecules incorrectly assigned for covalently attached cofactors, such as HEM (1gzx)
  • bug fix: set picking dragMolecule then use of SHIFT after rotate COMPARE will result in unwanted translation

New in Jmol 12.1.45 Prerelease (May 6, 2011)

  • new feature: NBO second-order data saved in modata:
  • Var x = getProperty("auxiliaryInfo.models[2].moData.secondOrderData")
  • show x # >> x = [[69.0,115.0,1.2800001,0.044],[69.0,134.0,0.67,0.026],...[mo1, mo2, E(2), f(i,j),...]
  • where mo1 and mo2 are indexes into the MO list (Note that they are floats, not integers.)
  • and E(2) and f(i,j) are the E(2) value calculated by genNBO.
  • bug fix: quaternion N frame off slightly due to bisection error.
  • -- also affects Rasmol hydrogen bond calculation
  • bug fix: select a will not select P-only DNA adenosines (1jgq)
  • bug fix: select A and select a may be different for P-only DNA strands (1jgq)
  • bug fix: help needs to add version to http call
  • bug fix: properties of type float[][] not saved as ScriptVariable lists
  • bug fix: AIMS reader upgrade to include atom/atom_frac line mix
  • bug fix: PSI3 reader for WebMO
  • bug fix: NWChem reader skips vibration info; set to skip only translation/rotation models
  • bug fix: data connect can cause null pointer exception if data statement has white-space-only lines

New in Jmol 12.0.42 (May 6, 2011)

  • bug fix: quaternion N frame off slightly due to bisection error. -- also affects Rasmol hydrogen bond calculation
  • bug fix: select a will not select P-only DNA adenosines (1jgq)
  • bug fix: select A and select a may be different for P-only DNA strands (1jgq)
  • bug fix: properties of type float[][] not saved as ScriptVariable lists
  • bug fix: AIMS reader upgrade to include atom/atom_frac line mix
  • bug fix: PSI3 reader for WebMO
  • bug fix: data connect can cause null pointer exception if data statement has white-space-only lines

New in Jmol 12.1.44 Prerelease (Apr 30, 2011)

  • bug fix: MOs broken in 12.1.43
  • bug fix: drawpicking fails for drawn polyhedra. (turned off for now)

New in Jmol 12.1.43 Prerelease (Apr 30, 2011)

  • new feature: show chemical name
  • new feature: show chemical InChI
  • new feature: show chemical InChIKey
  • new feature: set echo ID "xxxx"
  • new feature: show drawing (2D line drawing, from NIH)
  • new feature: isosurfaces can be remapped.
  • isosurface molecular map property temperature
  • isosurface map property partialcharge
  • isosurface vdw
  • isosurface map mep
  • bug fix: { echo testing } causes compiler error
  • bug fix: { echo "testing" } causes compiler error
  • bug fix: cannot access site_xxx definitions created by PDB file read
  • bug fix: echo myecho ... after echo ALL still does ALL
  • bug fix: cube file reader (load command) does not convert z coordinates to Angstroms.
  • bug fix: isosurface CAVITY cannot be mapped
  • bug fix: isosurface CAVITY broken
  • bug fix: application load menu unnecessarily creates new frame and loses current script processing
  • code: setEcho rewrite

New in Jmol 12.0.41 (Apr 27, 2011)

  • bug fix: { echo testing } causes compiler error
  • bug fix: { echo "testing" } causes compiler error
  • bug fix: cannot access site_xxx definitions created by PDB file read
  • bug fix: echo myecho ... after echo ALL still does ALL
  • bug fix: isosurface CAVITY cannot be mapped
  • bug fix: PDB load filter mix of (CONF or BIOMOLECULE) and chain filter such as *:A will include additional chains ("C", "O", "N", "S", etc.)
  • bug fix: application load menu unnecessarily creates new frame and loses current script processing

New in Jmol 12.0.40 (Apr 8, 2011)

  • bug fix - set picking identifyBond not implemented
  • bug fix - leaving modelKitMode does not leave bondPickingMode "identifyBond"

New in Jmol 12.1.42 Prerelease (Apr 8, 2011)

  • code: Swing class instantiation failure caught
  • bug fix - set picking identifyBond not implemented
  • bug fix - leaving modelKitMode does not leave bondPickingMode "ident"
  • new feature: for (var x in [....]) {...}
  • -- array option

New in Jmol 12.1.41 Prerelease (Apr 8, 2011)

  • new feature: for (var x in {...}) {...}
  • -- for example: # for (x in {selected}) { print x }
  • new feature: x = {*}.mass.sum (and .max, .min, etc.)
  • -- note, like other atom properties, {*}.mass by itself is an AVERAGE of masses of all atoms
  • -- accounts for isotopes, but otherwise just uses average masses. Source: John Moore/Jon Holmes, J. Chem. Educ.
  • new feature: x = plane(, , true)
  • bug fix: for(_x...) not disallowed
  • bug fix: Spartan .smol files: default for charges is now ESPCHARGES (what SpartanStudent reports), not MULLIKEN
  • -- filter "MULLIKEN" now reads those charges
  • bug fix: {*}.resno, .atomno, etc. where the property is an integer returns sum, not average
  • bug fix: closing a prompt dialog with ESCAPE can cause crash; should return "null"
  • bug fix: conflicting (Edit) selectMenu removed
  • -- can't have two menus with exactly the same name, or language will only update one
  • bug fix: miscalculating distances for atom exclusion in CifReader molecular option
  • bug fix: image creation does not lock out mouse or system refreshes
  • bug fix: select {*} (color=...) fails (specifically math functions doubling as atom properties)
  • bug fix: cross-applet script output from print script("show ...", "B") not working
  • bug fix: synchronize command broken
  • bug fix: "string"%-n right-side truncation one character short # code: MouseManager14, ActionManager simplifications

New in Jmol 12.1.40 Prerelease (Apr 8, 2011)

  • new feature: frame title @someArray
  • -- for example: x = getproperty("modelinfo.models.energy")
  • y = x.sub(x.min).mul(2625.5)
  • relative energies, in kJ
  • frame *;frame title @y
  • write butane.xyzvib
  • write simple multimodel xyz file
  • bug fix: within(xxx, ) will fail
  • bug fix: Crystal09 reader upgrade
  • bug fix: VASP outcar atom naming error
  • bug fix: adaptation for improperly CONECTed PDB files such as 1W7R
  • bug fix: select *y defaults to select {*}(y) instead of select {:y}
  • bug fix: cml bug fix for bonds not applied to symmetry
  • bug fix: newer cml format for crystal information
  • bug fix: vibration ON not saved in state
  • bug fix: not reading MOPAC 6, 7, or 2009 files

New in Jmol 12.0.39 (Mar 29, 2011)

  • bug fix: menu labels incorrect in 12.0.38

New in Jmol 12.1.41 Prerelease (Mar 27, 2011)

  • new feature: for (var x in {...}) {...}
  • for example:
  • for (x in {selected}) { print x }
  • new feature: x = {*}.mass.sum (and .max, .min, etc.)
  • note, like other atom properties, {*}.mass by itself is an AVERAGE of masses of all atoms
  • accounts for isotopes, but otherwise just uses average masses. Source: John Moore/Jon Holmes, J. Chem. Educ.
  • new feature: x = plane(, , true)
  • bug fix: for(_x...) not disallowed
  • bug fix: Spartan .smol files: default for charges is now ESPCHARGES (what SpartanStudent reports), not MULLIKEN
  • filter "MULLIKEN" now reads those charges # bug fix: {*}.resno, .atomno, etc. where the property is an integer returns sum, not average
  • bug fix: closing a prompt dialog with ESCAPE can cause crash; should return "null" # bug fix: conflicting (Edit) selectMenu removed
  • can't have two menus with exactly the same name, or language will only update one
  • bug fix: miscalculating distances for atom exclusion in CifReader molecular option
  • bug fix: image creation does not lock out mouse or system refreshes
  • bug fix: select {*} (color=...) fails (specifically math functions doubling as atom properties)
  • bug fix: cross-applet script output from print script("show ...", "B") not working
  • bug fix: synchronize command broken
  • bug fix: "string"%-n right-side truncation one character short # code: MouseManager14, ActionManager simplifications

New in Jmol 12.0.38 (Mar 27, 2011)

  • bug fix: for(_x...) not disallowed
  • bug fix: Spartan .smol files: default for charges is now ESPCHARGES (what SpartanStudent reports), not MULLIKEN
  • filter "MULLIKEN" now reads those charges
  • bug fix: {*}.resno, .atomno, etc. where the property is an integer returns sum, not average
  • bug fix: closing a prompt dialog with ESCAPE can cause crash; should return "null"
  • bug fix: conflicting (Edit) selectMenu removed
  • can't have two menus with exactly the same name, or language will only update one
  • bug fix: image creation does not lock out mouse or system refreshes
  • bug fix: select {*} (color=...) fails (specifically math functions doubling as atom properties)
  • bug fix: cross-applet script output from print script("show ...", "B") not working bug fix: synchronize command broken # bug fix: "string"%-n right-side truncation one character short # code: MouseManager14, ActionManager simplifications

New in Jmol 12.1.40 Prerelease (Mar 19, 2011)

  • new feature: frame title @someArray
  • for example: x = getproperty("modelinfo.models.energy")
  • y = x.sub(x.min).mul(2625.5) # relative energies, in kJ
  • frame *;frame title @y # write butane.xyzvib
  • write simple multimodel xyz file # bug fix: within(xxx, ) will fail
  • bug fix: Crystal09 reader upgrade
  • bug fix: VASP outcar atom naming error
  • bug fix: adaptation for improperly CONECTed PDB files such as 1W7R
  • bug fix: select *y defaults to select {*}(y) instead of select {:y}
  • bug fix: cml bug fix for bonds not applied to symmetry
  • bug fix: newer cml format for crystal information
  • bug fix: vibration ON not saved in state
  • bug fix: not reading MOPAC 6, 7, or 2009 files

New in Jmol 12.0.37 (Mar 19, 2011)

  • bug fix: within(xxx, ) will fail
  • bug fix: Crystal09 reader upgrade
  • bug fix: adaptation for improperly CONECTed PDB files such as 1W7R
  • bug fix: select *y defaults to select {*}(y) instead of select {:y}
  • bug fix: newer cml format for crystal information
  • bug fix: vibration ON not saved in state
  • bug fix: not reading MOPAC 6, 7, or 2009 files

New in Jmol 12.1.39 Prerelease (Mar 14, 2011)

  • bug fix: write of stereo image only shows one half of dual display
  • bug fix: application does not update menus properly
  • new feature: load MENU -- if user-defined menu label is "null" then that menu item is removed for example: labelName | null or labelMenu | null # new feature: write COORD XYZVIB filename
  • writes multimodel xyz file, with vibrational frequencies if present
  • bug fix: Jaguar reader not reading vibrations correctly
  • new feature draw ARROW..... BARB
  • fish-hook "radical" arrows
  • included in POVRAY exporter only
  • bug fix: write JMOL (instead of write xxx.jmol) not implemented
  • bug fix: Jaguar reader not reading vibrations correctly

New in Jmol 12.0.36 (Mar 14, 2011)

  • 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

New in Jmol 12.1.38 Prerelease (Mar 9, 2011)

  • 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

New in Jmol 12.0.35 (Mar 9, 2011)

  • bug fix: Jaguar reader not reading vibrations correctly
  • bug fix: load of model when animation is on may cause animation NEXT to fail new feature: (fixing property smoothing) 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: draw LIST broken
  • 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

New in Jmol 12.1.37 Prerelease (Feb 28, 2011)

  • 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)

New in Jmol 12.0.34 (Feb 28, 2011)

  • 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
  • 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
  • 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

New in Jmol 12.0.27 (Jan 13, 2011)

  • 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

New in Jmol 12.0.26 (Jan 4, 2011)

  • bug fix: load ... filter "BIOMOLECULE 1" ... broken in 12.0.19
  • bug fix: write xxx.jmol can fail if the same file is used twice in two different contexts
  • bug fix: obj/pmesh file reading problems
  • bug fix: failure to create atomicOrbital does not clear that isosurface
  • bug fix: popup menu does not show load {1 1 1} options correctly
  • 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.1.27)
  • bug fix: undocumented $isosurface1[3] fixed
  • code: parameterExpression cleanup
  • bug fix: set echo myecho [x y] after set echo myecho {3 3 3} does not work
  • bug fix: isosurface set 0 does not display all sets

New in Jmol 12.1.25 Prerelease (Dec 9, 2010)

  • 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

New in Jmol 12.0.2 (Jul 31, 2010)

  • bug fix: draw arrows are being FIXED in state
  • 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

New in Jmol 12.0.1 (Jul 31, 2010)

  • bug fix: isosurface slab for polymer/slab symmetry

New in Jmol 12.0 RC29 (Jul 31, 2010)

  • bug fix: VRML/X3D ellipsoids
  • code: IDTF/VRML/X3D writing of ellipsoid arcs and fill made more efficient
  • bug fix: .....@{"text" ...} not read as exprssion
  • bug fix: hover OFF not turning off bond hover

New in Jmol 12.0 RC28 (Jul 31, 2010)

  • bug fix: Jmol Model Kit broken :{
  • bug fix: PROMPT command need not require @{...}
  • bug fix: a = {} needs to default to ({}) (empty bitset)
  • bug fix: alternative select @b[a]
  • bug fix: allowance for b["test"][1][3]

New in Jmol 12.0 RC27 (Jul 31, 2010)

  • new feature: prompt(label,data,asButtons)
  • x = prompt("testing") # just shows an OK box
  • x = prompt("testing","defaultInput") # returns user input or "null"
  • x = prompt("testing","yes|no|cancel", true) # returns "yes" "no" or "cancel"
  • x = prompt("testing",["yes","no","cancel") # returns 1, 2, or 3
  • new feature: associative arrays:
  • b = {"test" : 34, "test2" : 45}
  • b["test"] = 35
  • b["test3"] =[2, 3, 4, 5]
  • print b["test"]
  • show b
  • b = { "test3":[2, 3, 4, 5],"test2":45,"test":35 }
  • b -= "test3"
  • show b
  • b = { "test2":45,"test":35 }
  • bug fix: SELECT logic error with ! in front of a chain specification
  • such as * and ! 56:B%1. This was tranlating to
  • and ! 56 and :B and %1
  • but then ! has higher precidence then and, so
  • this was "* and (! 56) and :B and %1" instead of
  • "* and ! (56 and :B and %1"
  • solution is to add a very high-precidence AND
  • that trumps NOT. Discovered by Paul Pillot.
  • new feature: fux, fuy, fuz, fuxyz, and set fractionalRelative
  • bug fix: dots 150%
  • new feature: failed file loading with try/catch is caught
  • new feature: try/catch:
  • load quartz.cif
  • refresh
  • var x = 1
  • print "outside, x = " + x
  • while(true) { # has its own local variables
  • print " inside while, x = " + x
  • x = 2
  • print " setting x = " + x
  • try{ # has its own local variables
  • print " inside try, x = " + x
  • var x = 3
  • print " setting x = " + x
  • print "TEST1"
  • load "adfkjd" # will be caught
  • catch(e) { # has its own local variables
  • print " inside catch, x = " + x
  • var x = 4
  • print " setting x = " + x
  • prompt @e
  • break # from WHILE
  • print " after catch, x = " + x
  • x = 5
  • print " setting x = " + x
  • print "out"
  • break;
  • print "way out"
  • print "outside, x = " + x
  • bug fix: inconsistent unitcell coordinate operations
  • {1 1 1/2} should be absolute
  • {...}.fxyz should be absolute
  • select cell=555 should be absolute
  • {...}.uxyz should be relative to current UNITCELL
  • .... hkl {h k l} should be relative current UNITCELL
  • select UNITCELL should be relative current UNITCELL
  • draw intersection UNITCELL... should be relative current UNITCELL
  • bug fix: RC15 connect DELETE may malfunction when two sets of atoms intersect
  • bug fix: minor isosurface tweaks -- triangles, gridlines, hover, click
  • bug fix: hover OFF -- should not prevent hoverCallback
  • bug fix: x = {*:} causes error
  • new feature: SWITCH/CASE
  • more like JavaScript than Java
  • like JavaScript, doesn't need constants
  • like JavaScript, evaluations can be made in the cases
  • really just a simpler form of IF/ELSEIF/ELSE
  • expressions are evaluated only as necessary from the top down
  • DEFAULT may appear anywhere.
  • switch(x) {
  • case 0:
  • case 1:
  • spacefill only
  • break;
  • default:
  • case 2:
  • wireframe only
  • break;
  • case 3:
  • wireframe only;wireframe reset;spacefill reset
  • break;

New in Jmol 12.0 RC26 (Jul 31, 2010)

  • bug fix: pause/resume cause multiple unnecessary refreshes
  • bug fix: pause/resume can fail if user enters a script command error
  • bug fix: deleted atoms and atoms not in subset might be included in certain operations
  • such as coloring, {..}.select = ..., and more
  • bug fix: "halos ON" should always default to "just larger than current spacefill size" and
  • adjust size with spacefill size in that case
  • new feature: PROMPT command with 0 or 1 arguments
  • new feature in JmolColorPicker.js--jmolColorPickerBox now accepts object inplace of script
  • to allow execution of another function rather than a Jmol Script (much like Jmol.js
  • functions).
  • completion of refactoring of JmolColorPicker.js (and corresponding changes in Widgets.java).
  • code: IDTF,VRML,X3D export all simplified camera calculations
  • TODO: Still have not discovered how to install the right light for a model
  • new feature: JMOL IN PDF FILES :)
  • new feature: write t.idtf ---> t.itdf and t.idtf.tex
  • In order to create U3D files, we start with IDTF, which is an ASCII-based format
  • The sequence is:
  • JMOL: write t.idtf
  • SHELL: idtfconverter.exe -input t.idtf -output t.u3d
  • SHELL: pdfLatex t.idtf.tex t.pdf
  • (not sure about that last syntax -- I'm using the GUI MikTex TeXworks interface
  • to load the t.idtf.tex file and run it.
  • In general, users will not need t.idtf.tex, because they will want to integrate
  • the model into some other document, but this file serves as a template and model
  • should they need that, and it is excellent for testing purposes
  • bug fix: nucleic acid rendering for VRML and IDTF/U3D missing bases and connectors
  • bug fix: polyhedra rendering can end up with reversed normals
  • bug fix: wireframe 0 rendering too small in VRML and IDTF/U3D

New in Jmol 12.0 RC25 (Jul 31, 2010)

  • new feature: isosurface MAP MEP ... VARIABLE x applies variable data to MEP mapping
  • new feature: "load =xxxx AS ." "." means "into the default directory; same name"
  • bug fix: "large molecule" PDB files need stars for unconnected atoms
  • new feature: load =xxxx defaults to read pdb.gz; load =xxxx.pdb reads .pdb file
  • bug fix: Jmol could not read its own CML output
  • bug fix: %5.-5i overflow off by one digit in precision
  • new feature: SMILES /nostereo/ /noaromatic/, not just SMARTS
  • bug fix: TestSmiles incorrectly assigning bonds in ...[C@H]1...
  • bug fix: write PDB not correctly justifying atom names
  • new feature: auxiliaryInfo.compndSource for PDB files
  • bug fix: console cleared at end of script with set debugScript
  • bug fix: load $CCCC or =xxxx AS file.name not working without quotes
  • bug fix: polyhedra miscalculation in VRML and IDTF export
  • bug fix: multiple-model data statement with ~~~ broken
  • new feature: data "model..." and data "append..." command
  • deprecated and merged with load command:
  • load data "model xyz".....end "model xyz" ...
  • allows full parameterization of data loading
  • new feature: clickCallback adds parameter mode:
  • // for status messages:
  • public final static int DRAGGED = 1;
  • public final static int CLICKED = 2;
  • public final static int WHEELED = 3;
  • public final static int PRESSED = 4;
  • public final static int RELEASED = 5;
  • new feature: loadStructCallback adds parameters previousCurrentModelNumberDotted and lastLoadedModelNumberDotted
  • new feature: spartan loader adds filter "noMo" but that isn't particularly useful, probably.
  • bug fix: isosurface color density not quite getting desired points plotted
  • bug fix: do nothing after widget checkbox click if no instances (fixes array out of bounds).
  • bug fix: loading using append with appendNew false may not make bonds
  • bug fix: SMARTS searching of "or" type primitive nested groups fails
  • new feature: 3D-SEARCH /noStereo/ flag
  • bug fix: SMARTS searching with || and measures can fail
  • new feature: plot PROPERTIES propertyX propertyY [propertyZ] [[min {x y z}] [max {x y z}]]
  • added min/max allows for truncation of data
  • new feature: applet console also reports version in title
  • bug fix: STATE button in console problem in that in some browsers, you cannot clip from
  • new feature: data model can accept filter=xxx, as in data "model filter=2D" ...
  • bug fix: It was a mistake to comment out set defaultLoadFilter in the state
  • as this is needed for inline string state saving.
  • bug fix: {xxx}.trace = {xxxx}.property_xxxx.all not working
  • bug fix: connect...auto also creates HBONDS
  • new feature: preliminary write ... http://....

New in Jmol 12.0 RC24 (Jul 10, 2010)

  • bug fix: write("COORDS","PDB") and other cases -- can't recognized upper-case first parameter
  • bug fix: x = write("PDB") when the file is not a PDB file crashes Jmol
  • new feature: within("SMILES"...) REMOVED
  • new feature: within("SMARTS"...) REMOVED
  • bug fix: SMILES string self comparison could give wrong stereochemistry
  • bug fix: PDB files without MODEL command can lose first atom
  • new feature: set dotScale
  • new feature: show SMILES
  • new feature: set defaultLoadFilter works with JavaScript loadInline()
  • bug fix: SMILES not showing stereochemistry involving H
  • bug fix: "...".find("SMARTS", "/noaromatic/...") not working
  • bug fix: much speedier mapProperty when all three properties are numeric
  • bug fix: 3D-SMARTS search combining variable number of atoms [$(...)m-n] and distance
  • check (.d:min-max)...(.d) fails
  • bug fix: load FILES does not properly set full path name to files.
  • bug fix: ramachandran R plot not writing extra straightness measure properly
  • bug fix: javascript command broken
  • bug fix: "file 0; mo homo; file 1; animation on" does not generate MO animation
  • bug fix: Spartan smol reader skips first ("output") section.

New in Jmol 12.0 RC23 (Jul 7, 2010)

  • feature change: quaternionFrame 'A' now 'B'
  • bug fix: documented quaternionFrame 'Q' returned (though not useful)
  • bug fix: readers might shift center of mass (normalize)
  • when CIF file models are loaded without a unit cell indication.
  • now set to not do that. You wouldn't notice it particularly unless you
  • later turned on the unit cell and noticed that the atoms were off
  • or you know the file data coordinates and notice that picked atoms have
  • different ones.
  • new feature: eta/theta atom properties -- nucleic acid conformation
  • Carlos M. Duarte, Leven M. Wadley, and Anna Marie Pyle
  • RNA structure comparison, motif search and discovery using a reduced
  • representation of RNA conformational space
  • Nucleic Acids Research, 2003, Vol. 31, No. 16 4755-4761
  • eta (C4_i-1 - P_i - C4_i - P_i+1)
  • theta (P_i - C4_i - P_i+1 - C4_i+1)
  • new feature: PLOT PROPERTY propertyX propertyY (optional propertyZ)
  • makes a graph for the currently selected atom set
  • also equivalent for quaternion and ramachandran commands, but preferred for:
  • plot quaternion...
  • plot ramachandran...
  • deprecated: quaternion, ramachandran
  • new feature: mapProperty {atomSetFrom}.property1 {atomSetTo}.property2 (optional propertyKey)
  • Allows mapping of property data from one set of atoms to another
  • based on a key such as atomno or resno (default atomno).
  • Property2 must be "settable".
  • also mapProperty SELECTED {atomSet} key
  • same as mapProperty {selected}.selected {atomSet}.selected key
  • For example, creating a quaternion map, then mapping that data
  • with straightness, and then selecting a very specific subset of
  • the quaternion data and using that selection to select data
  • in the original model:
  • load 3cc2.pdb
  • calculate straightness
  • set quaternionframe 'B'
  • quaternion r difference
  • display {rna}
  • mapProperty {1.1 and *.P}.straightness {2.1 and rna}.property_x resno
  • select 2.1 and rna; color property_x;spacefill 0.1
  • select 2.1 and rna and within(2.0,{1.7700001 -0.49 2.62})
  • mapProperty selected {1.1 and *.P}
  • new feature: quaternionFrame "B" for nucleic C4'/P/C4'
  • feature change: quaternionFrame "C" for nucleic acids now
  • set as per:
  • Sarver M, Zirbel CL, Stombaugh J, Mokdad A, Leontis NB.
  • FR3D: finding local and composite recurrent structural motifs in RNA 3D structures.
  • J. Math. Biol. (2006) 215-252
  • new feature: print {selected}.find("SEQUENCE")
  • returns 1-letter sequence for selected atoms
  • new feature: print {selected}.find("SEQUENCE", true)
  • returns 1-letter sequence for selected atoms, with cross-links:
  • load 1crn.pdb
  • show sequence
  • Model 1
  • Chain A:
  • [THR]1 [THR]2 [CYS]3 [CYS]4 [PRO]5
  • [SER]6 [ILE]7 [VAL]8 [ALA]9 [ARG]10
  • [SER]11 [ASN]12 [PHE]13 [ASN]14 [VAL]15
  • [CYS]16 [ARG]17 [LEU]18 [PRO]19 [GLY]20
  • [THR]21 [PRO]22 [GLU]23 [ALA]24 [ILE]25
  • [CYS]26 [ALA]27 [THR]28 [TYR]29 [THR]30
  • [GLY]31 [CYS]32 [ILE]33 [ILE]34 [ILE]35
  • [PRO]36 [GLY]37 [ALA]38 [THR]39 [CYS]40
  • [PRO]41 [GLY]42 [ASP]43 [TYR]44 [ALA]45
  • [ASN]46
  • print {*}.find("sequence")
  • //* chain A protein 1 *// ~p~TTCCPSIVARSNFNVCRLPGTPEAICATYTGCIIIPGATCPGDYAN //* 46 *//
  • print {*}.find("sequence", true)
  • //* chain A protein 1 *// ~p~TTC:1C:2PSIVARSNFNVC:3RLPGTPEAIC:3ATYTGC:2IIIPGA
  • TC:1PGDYAN //* 46 *//
  • bug fix: state save for quaternion/ramachandran data frames fails
  • bug fix: Spartan reader not reading MOs when there is only one atom (AOs, that is)
  • bug fix: bioSMARTS search including first group
  • bug fix: MOReader (Gaussian, GAMESS) fix for NBO cartesian D/F orbitals
  • bug fix: atom deletion can result in array length error
  • bug fix: Application rubber-band selection mode not allows atom pick to be selection toggle

New in Jmol 12.0 RC22 (Jul 2, 2010)

  • bug fix: bioSMILES "~C:1.~G:1" fails
  • new feature: axes center {x y z}
  • new feature: data "connect_atoms" (for state with large number of connections)
  • new feature: set picking measure sequence
  • bug fix: rotate symop not functional for some symops
  • bug fix: phosphorus-only polymer quaternions not operational
  • bug fix: 3D-SMARTS multiple nesting
  • new feature: 3D-SMARTS [$(...)n]
  • new feature: 3D-SMARTS [$(...)nMin-nMax]
  • new feature: 3D-SMARTS pattern1 || pattern2
  • new feature: data "property_atom.xxxx" can be used like "property_xxxx" but xxxx must be a
  • settable atom property, which it will set.
  • bug fix: 11.6.RC15 introduced {*}.property_x same as {*}.x. But that is
  • not documented, and those are supposed to be different. The proper way to do this is:
  • data "property_x"
  • ...
  • end "property_x"
  • {*}.partialcharge = data("property_x")

New in Jmol 12.0 RC21 (Jun 27, 2010)

  • new feature: set cartoonBaseEdges
  • displays nucleic acid bases as triangles
  • Red:sugar edge, Green:Watson-Crick edge, Blue:Hoogsteen edge
  • see Nasalean L, Strombaugh J, Zirbel CL, and Leontis NB in
  • Non-Protein Coding RNAs, Nils G. Walter, Sarah A. Woodson, Robert T. Batey, Eds.
  • Chapter 1, p 6.
  • http://books.google.com/books?hl=en&lr=&id=se5JVEqO11AC&oi=fnd&pg=PR11&dq=Non-Protein+Coding+RNAs&ots=3uTkn7m3DA&sig=6LzQREmSdSoZ6yNrQ15zjYREFNE#v=onepage&q&f=false
  • bug fix: NOS (inosine) not given 1-letter code I
  • bug fix: quaternion({atom expression}) returning array
  • new feature: (undocumented) quaternion({atom expression}, nMax)
  • returns array of values.
  • bug fix: state preserved for modelkitmode
  • new feature: bioSEQUENCE () indicates "not cross-linked": select search("~r~C()~")
  • new feature: bioSEQUENCE subsets ~p~, ~n~, ~r~, ~d~
  • new feature: bioSEQUENCE wildcards N (same as * for ~n~, ~r~, or ~d~)
  • R (same as [A,G] for ~n~, ~r~, or ~d~)
  • Y (same as [C,T,U] for ~n~, ~r~, or ~d~)
  • bug fix: acceptance of curly " from Microsoft Word text clipping in scripts
  • bug fix: lcaocartoon cap broken
  • bug fix: isosurface boundbox not read from state
  • bug fix: translucent isosurface colorscheme saved but not read from state
  • new feature: modelkit mode invert ring stereochemistry
  • bug fix: application select-atoms toolbar button nonfunctional
  • new feature: set picking symmetry (undocumented)

New in Jmol 12.0 RC20 (Jun 20, 2010)

  • false alarm: error in CIF file reader doubles atoms -- nevermind -- file actually HAS overlapping atoms!
  • bug fix: JVXL XML reader error with "/>" in data attribute
  • bug fix: select within(5.0, {0 0 0}) nonfunctional
  • bug fix: MO fix for df order in model sets containing NBO and non-NBO orbitals
  • bug fix: font MEASUREMENTS ...
  • bug fix: QChem reader MO fix
  • bug fix: G orbital skipping
  • bug fix: WebExport creates directories in directories
  • bug fix: SMARTS C(CCCCN1)1 fix.
  • bug fix: removing rule that a SMILES string cannot end with a branch.
  • bug fix: log "NOW" changed to log "$NOW$"
  • bug fix: log "$CLEAR$" clears the log file
  • bug fix: syntax "else { [eol]" not functional

New in Jmol 12.0 RC19 (Jun 17, 2010)

  • bug fix: QChem reader MO fix
  • bug fix: MO using cartesian instead of spherical D orbitals.
  • bug fix: modelKitMode replacing atoms with H
  • bug fix: bioSMARTS X:Y problem
  • bug fix: set logLevel (with no arguments)/show logLevel
  • bug fix: alas, MEP mapping has been in Bohr, not Angstroms. Values are actually 1.89x prev. calculation
  • default range set to -0.1 to 0.1 for MEP and MLP.
  • new feature: atomic lipophilicity mapping (MLP) and generalized MEP:
  • isosurface sasurface map MLP|MEP [function type (integer 0 to 3)] [resource fileName]
  • isosurface sasurface map MLP|MEP [function type (integer 0 to 3)] [property_xxxx]
  • isosurface sasurface map MLP|MEP [function type (integer 0 to 3)] [property propertyName]
  • The defaults are:
  • isosurface sasurface map MEP 0 property partialCharge
  • isosurface sasurface map MLP 3 "http://jmol.svn.sourceforge.net/viewvc/jmol/trunk/Jmol/src/org/jmol/quantum/atomicLipophilicity.txt"
  • Implemented here is a flexible way of mapping atomic potential data onto
  • a surface. Given a set of atoms, we assign numbers to the atoms from:
  • a) a resource in this package and based on atom names, or
  • b) a table of data read from a file and based on atom names, or
  • c) an array of properties assigned to the atoms.
  • In addition, once those potentials are assigned, we can apply a variety
  • of functions of distance:
  • (0) Coulomb's law distance function (same as rasmol potential distance function)
  • (1) f * e^(-d/2)
  • Gaillard, P., Carrupt, P.A., Testa, B. and Boudon, A., J.Comput.Aided Mol.Des. 8, 83-96 (1994)
  • (2) f/(1 + d)
  • Audry, E.; Dubost, J. P.; Colleter, J. C.; Dallet, P. A new approach to structure-activity relations: the "molecular lipophilicity potential". Eur. J. Med. Chem. 1986, 21, 71-72.
  • (3) f * e^(-d)
  • Fauchere, J. L.; Quarendon, P.; Kaetterer, L. Estimating and representing hydrophobicity potential. J. Mol. Graphics 1988, 6, 203-206.
  • from http://www.life.illinois.edu/crofts/bc1_in_chime/chime_talk/chimescript2.html
  • The difference between MEP and MLP is simply the defaults for resource and function:
  • a) the default resource is property partialCharge for MEP and atomicLipophilicity.txt for MLP
  • b) the default function is Coulomb for MEP and Fauchere for MLP
  • bug fix: make WebExport Widgets compatible with IE6 through 8
  • bug fix: isosurface vdw map ... not working
  • new feature: preliminary molecular lipophilic potential.
  • isosurface vdw map MLP
  • new feature: bioSMARTS indicates all cross-linking for carbohydrates
  • bug fix: name conflicts in WebExport Widgets js files.
  • bug fix: table now wide enough for colorpicker popup in WebExport.
  • bug fix: angstroms measurement unit not showing up as proper A symbol.
  • new feature: measure search("Ocnc")
  • or measure search "Ocnc"
  • operates on previously selected atoms
  • bug fix: application -- set modelkitmode does not feedback to buttons
  • SMILES/SMARTS options summary:
  • examples:
  • selecting atoms using SMARTS:
  • select search("CC") // selects ALL matching atoms using SMARTS notation
  • select search("CC", 1.1) // same as above, but within model 1.1
  • assigning variables based on SMARTS:
  • x = {1.1}.find("CC") // assigns a single bitset to all matching atoms
  • x = {1.1}.find("CC", true) // same as above, but returns an array of pattern matches
  • n = {1.1}.find("CC", true).length // counts the number of matches
  • SMILES string comparison and searching:
  • x = "CC(C)CC".find("smiles","CCC(C)C") // smiles matching -- returns an array of length=1
  • x = "CC(C)CC".find("smarts","CCCC") // returns a bitset containing all atoms
  • x = "CC(C)CC".find("smarts","CCCC", true) // returns an array of bitsets containing the pattern
  • generating SMILES and bioSMILES strings:
  • x = {1.1}.find("SMILES") // get the SMILES string for the model 1.1
  • x = {1.1}.find("SMILES", true) // get the bioSMILES string for the model 1.1
  • use select search(...) to do SMARTS substructure searching
  • use the find function to assign variables.
  • use TRUE with the find function to retrieve and count matches
  • use find(..).length to count the number of matches
  • use find to get the SMILES or bioSMILES string for a structure
  • deprecated/unnecessary:
  • select substructure("..") // same as select smarts(...
  • select within(smarts...) // same as select smarts(...
  • select within(smiles...) // same as select smiles(..., but not recommended
  • x = within("smarts", "CC") // same as {*}.find("CC")
  • x = within("smiles", "CC") // same as {*}.find("smiles", "CC")
  • bug fix: SMILES errors should be reported but not cause script failure
  • bug fix: select within("smarts","Cn",all,atomno=19) does not properly
  • restrict set to only those patterns that include atomno=19
  • bug fix: select substructure(...) now synonymous with select SMARTS(), not select SMILES()
  • as would be expected for substructure searches.
  • bug fix: modelkit connection doesn't modify bonds automatically
  • new feature: assign CONNECT {a} {b}
  • does a simple connection, but then,
  • like assign atom and assign bond, fixes hydrogens

New in Jmol 12.0 RC18 (Jun 10, 2010)

  • bug fix: set drawPicking/drawHover inconsistent regarding isosurfaces
  • bug fix: exiting modelkitmode does not reset picking/hover settings
  • new feature: SMILES/SMARTS C^C and C^^C or C!^C (SMARTS) -- atropisomer (dihedral angle) check
  • new feature; SMILES and/or BIOSMILES with /double bond/ stereochemistry
  • new feature: {*}.find("SMILES", asBioSmiles), with asBioSmiles default FAlSE
  • so simply {*}.find("SMILES") gives STANDARD SMILES (noncanonical)
  • bug fix: WebExport now defaults to loading split applet
  • when pages are running from server.
  • new feature: SMILES reading proposed [C@]=C
  • bug fix: SmilesGenerator double bonds
  • new feature:
  • Widgets in WebExport
  • Spin on/off checkbox
  • Open Console button
  • Background Color Picker
  • Stereo Viewing Mode Control
  • Animation Control

New in Jmol 12.0 RC17 (Jun 6, 2010)

  • bug fix: RC16 probably has chirality errors.
  • bug fix: square planar SP3 chirality inverted
  • new feature: BIOSMARTS
  • new feature: BIOSMILES format.

New in Jmol 12.0 RC16 (Jun 5, 2010)

  • TODO -- BIOSMARTS ~ clean up with regular smarts added
  • new feature: print {*}.find("smiles") creates BIOSMARTS for structure -- bio only.
  • new feature: BIOSMARTS can search strings and includes base-pairing.
  • - print "~CAAGAG".find("smarts","~AGA")
  • - print "~C(G)A(T)G",find("smarts","~A(T)")
  • new feature: BIOSMARTS initial "~" indicates 1-character sequence search
  • - just 1-letter codes
  • - "+" bonding implied
  • select smarts("~AT[Y,C]")
  • new feature: BIOSMARTS [.] --> [*.*]
  • new feature: BIOSMARTS [ALA.*,O] and [*.0] (lead atom -- P, CA, O)
  • new feature: BIOSMARTS -- [RES.ATOM]+[RES.ATOM] etc.
  • select smarts("[ALA.*]+{[PRO.*]}") # select all prolines that are after alanine
  • select smarts("[ALA.*]+{[PRO.C]}") # select all proline carbonyl carbons that are after alanine
  • bug fix: "backbone" included asp/glu carboxyl groups (RC3)
  • bug fix: hyperchem reader does not require FIRST line to start with "mol 1"
  • code: JmolMolecule class
  • feature change: set rocketBarrels also removes arrow heads for sheets (rockets only, not cartoons)
  • new feature: print "CC".find("SMILES"/"SMARTS","MF") -- molecular formula for SMILES/SMARTS string
  • bug fix: rocketBarrels not fully smooth barrels.
  • new feature: SMARTS update -- adds full bond logic:
  • select search("C=,-;!@C") -- C-C double or single bonds (C=,-C) that are also(;) non-ring(!@)

New in Jmol 12.0 RC15 (May 29, 2010)

  • new feature Jmol reads SMILES --> 3D from http://cheminfo.informatics.indiana.edu/rest/thread/d3.py/SMILES
  • see http://cheminfo.wikispaces.com/smi23d
  • new feature: load SMILES "smilesstring"
  • new feature: load $smilesString
  • code: file reading clean-up in Viewer
  • bug fix: 12.0.RC6 (4/17) inadvertantly left in "false &&" in if statement in atom iterator broke:
  • polyhedra 2.0, geosurface, dots, and slows isosurface molecular more than 2-fold
  • new feature: FIX command takes argument like display or select. But ensures no atoms of this
  • set will be moved or dragged anywhere accidentally.
  • bug fix: isosurface selecting 2nd model while two are displayed produces no surface
  • new feature: set picking dragMinimizeMolecule (docking)
  • Using the model kit, you can load two models and then
  • use "drag and minimize molecule (docking) to move a model around and
  • watch how it responds to its fixed environment (within 5.0 A). If you have a ligand and a receptor,
  • if you move the ligand, it will minimize; if you move the receptor, it will minimize.
  • You can undo any change using CTRL-Z and redo it with CTRL-Y.
  • code: BitSetUtil.setBit()
  • bug fix: within() with the all-molecules flag was not working.
  • bug fix: isosurace PMESH inline not working
  • new feature: allowModelKit
  • new feature: modelkitmode expanded; "all frames" icon added in application
  • bug fix: improper/incomplete deletion of atoms
  • NOTE: Jmol 11.9 should not be considered ready for atom deletion
  • code: refactoring for proper deleted atoms processing
  • code: circle-drawing simplified; better highlight; POV-Ray halos fixed
  • new feature: assign ATOM {atom} "Symbol or Pl or Mi"
  • changes the type of {atom} to the given symbol or changes the charge up (Pl) or down (Mi) by one
  • adjusts valence with hydrogens as necessary
  • for example: assign ATOM {atomno=3} "C"
  • new feature: assign ATOM {atom} "type" {x y z}
  • creates a new atom at {x y z} of the given type, connected to {atom}
  • new feature: assign BOND {bond} "2"
  • modifies the bond and fixes valences at the two ends using hydrogen atoms
  • bug fix: synchronized (function) does not allow mouse-based function calling
  • TODO: Model Kit icons for atom/bond menus, rings, rotation
  • new feature: set picking assignAtom_+/- changed to assignAtom_Plus/Minus
  • new feature: set picking assignBond_+/- changed to assignBond_Plus/Minus
  • new feature: set modelkitMode
  • establishes three context menus -- atom, bond, and modelkit
  • allows extensive and easy modification of structures
  • TRIAL CHANGE: JmolApplet.jar and JmolAppletSigned.jar do not contain translations
  • for translations, use JmolApplet0.jar and JmolAppletSigned0.jar
  • this saves almost 30% in file size. Otherwise all the translations for
  • all languages are included in every download to every browser.
  • Point being that one should not use JmolApplet.jar or JmolAppletSigned.jar
  • in "production" mode -- they are just too big!
  • bug fix: after deleting atoms, connections can be found to deleted atoms

New in Jmol 12.0 RC14 (May 25, 2010)

  • bug fix: draw xx* delete -- does not recognize xx* as wild
  • bug fix: restore coord does not recalculate shapes
  • new feature: set highlight {atom set} or set highlight OFF
  • new feature: set picking assignAtom_Xx where Xx is an element
  • assigns the picked atom to that element and
  • bonds nearby atoms if present to form rings
  • new feature: set picking assignAtom_+ # increments charge
  • new feature: set picking assignAtom_- # decrements charge
  • all three adjust valence accordingly using hydrogen atoms
  • new feature: set bondPicking -- independent of atom picking
  • new feature: set picking assignBond_+ # increments bonding
  • new feature: set picking assignBond_- # decrements bonding
  • new feature: set picking assignBond_0|1|2|3 # sets bonding
  • all three adjust valence accordingly using hydrogen atoms
  • new feature: CTRL-V will load file in clipboard or fail gracefully
  • new feature: CTRL-Z single undo of deletion/modification actions
  • new feature: set picking invertStereo
  • bug fix: minimization after atom deletion

New in Jmol 12.0 RC13 (May 23, 2010)

  • new feature: application title changes with animation frame change
  • new feature: file system directory clip file name(s), then CTRL-V into Jmol --> loads files
  • bug fix: Crystal reader broken
  • bug fix: AtomSetChooser not producing heirarchy of models
  • bug fix: within(BASEPAIR) incorrect logic check
  • code: ActionManagerMT and associated interfaces moved to org.jmol.multitouch
  • bug fix: smiles, mac problem with latest pre-release build
  • new feature: set picking dragMinimize -- drags and minimizes all atoms in the molecule containing the picked atom
  • new feature: set picking dragAtom -- drags the atom picked to a new location
  • code: TransformManager removing pointT
  • bug fix: dragSelected could be off by 1 pixel
  • bug fix: working on the 1.5/1.4 problem -- all unnecessary 1.5 coding switched back to 1.4 format
  • including String.contains; parallel processing Executor class isolated from Viewer
  • bug fix: select within(SMILES,@x) not working
  • code: adding org/jmol/smiles/package.html
  • bug fix: About Jmol HTML does not change language

New in Jmol 12.0 RC12 (May 18, 2010)

  • bug fix: set measurements 0.05 not saved in state
  • bug fix: SMILES business not working outside of first frame
  • new feature: m = compare({2.1},{1.1} [,"SMARTS" (default)|"SMILES"],"smartsString..." [,"stddev"])
  • does a MATCH of atoms, then a compare
  • new feature:
  • compare {2.1} {1.1} "[OH]ccOC" translate rotate
  • SMARTS implied, but keyword SMILES or SMARTS can be used as well:
  • correlates and moves model 2.1 to best fit for 1.1 based
  • on the mapping of atoms from the SMARTS string

New in Jmol 12.0 RC11 (May 17, 2010)

  • new feature: load @x where x is an array of filenames
  • bug fix: @x not allowed in strictly STRING context such as select search(@x)
  • bug fix: 12.0.RC3 breaks select *.O1
  • new feature: 3D-Search "d" -- non-hydrogen connections
  • new feature: 3D-SEARCH $XXX="SMARTS-code"; .... [$XXX] ...
  • select search(' \
  • $Aro1="[a&!$(aC)]" (i.e. aromatic not attached to aliphatic carbon); \
  • CarbonylO="O"; \
  • {[$CarbonylO]}[$Aro1] \
  • ')
  • new feature: 3D-SEARCH allows white space
  • bug fix: state involving JME files not properly loaded
  • bug fix: load FILTER not saved in state when not involving a lattice
  • bug fix: "axesScale" saved in state as "axisScale"
  • bug fix: messageStyleChime needs #xxx reports
  • bug fix: restrict cell={2 2 2} position depends upon current unit cell
  • refactoring with JmolNode, JmolEdge, and Elements
  • new feature: JmolSmilesApplet.jar -- just checks SMILES strings
  • new feature: "xxxx".find("smiles","yyyy") will match ALL types of stereochemistry,
  • including cis/trans -- for example, all of these return "1":
  • print "O[C@](F)(Cl)I".find("smiles","O[C@](F)(Cl)I")
  • print "O[C@](F)(Cl)I".find("smiles","[C@](O)(F)(Cl)I")
  • print "O[C@](F)(Cl)I".find("smiles","[C@@](O)(Cl)(F)I")
  • print "OC(Cl)=[C@]=C(C)F".find("smiles","OC(Cl)=[C@AL1]=C(C)F")
  • print "OC(Cl)=[C@]=C(C)F".find("smiles","OC(Cl)=[C@AL2]=C(F)C")
  • print "F[Po@SP1](Cl)(Br)I".find("smiles","F[Po@SP1](Cl)(Br)I")
  • print "F[Po@SP1](Cl)(Br)I".find("smiles","F[Po@SP2](Br)(Cl)I")
  • print "S[As@@](F)(Cl)(Br)C#O".find("smiles","S[As@@](F)(Cl)(Br)C#O")
  • print "S[As@@](F)(Cl)(Br)C#O".find("smiles","O#C[As@](F)(Cl)(Br)S")
  • print "S[Co@@](F)(Cl)(Br)(I)C#O".find("smiles","S[Co@@](F)(Cl)(Br)(I)C#O")
  • print "S[Co@@](F)(Cl)(Br)(I)C#O".find("smiles","O#C[Co@](F)(Cl)(Br)(I)S")
  • print "F/C=C/F".find("smiles","F/C=C/F")
  • print "F/C=C/F".find("smiles","F\\C=C\\F")
  • print "C(/F)(Cl)=C/F".find("smiles","C(/Cl)(F)=C\\F")
  • print "C(/F)(Cl)=C/F".find("smiles","C(\\F)=C(/Cl)F")
  • bug fix: JME load can place H in wrong side if SP2 is detected
  • bug fix: atom.bonds may be null
  • new feature: { } in search string selects only that subset of atoms within the braces
  • new feature: smarts() function changed to search()
  • new feature: full implementation of 3D-SEARCH
  • code: org.jmol.smiles.SmilesAromatic.java
  • new feature: select search("searchString", {selectedAtoms})
  • allows determining aromatic rings that are connected to metals

New in Jmol 12.0 RC10 (May 7, 2010)

  • bug fix: isosurface sigma x.x not properly implemented
  • "sigma 3.0" means "3.0 times the cutoff associated with sigma = 1.0"
  • this to be consistent with the Aztex viewer sliders that set the value of
  • 1.0 to be "1.0 sigma" and then scale based on that.
  • new feature: "3D-SMARTS" -- smarts("a") assigns aromatic based on 3D geometry --
  • flat ring of 3-7 atoms with all substituents directly in plane
  • true, not the official designation, but far more practical than checking bonds
  • will pick out rings in HIS, TYR, TRP, nucleic acid bases, etc.
  • new feature: full set of allenic, tetrahedral, square planar, trigonal pyramidal,
  • and octahedral smiles/smarts/substructure stereochemistry
  • tested against all structures described at
  • http://www.daylight.com/dayhtml/doc/theory/theory.smiles.html#RTFToC24
  • new feature: smiles/smarts/substructure adds allene stereochemistry:
  • select smarts("C(Cl)(C)=[C@@]=C(F)[H]")
  • new feature: smiles/smarts/substructure adds double bond stereochemistry:
  • select smarts("C(O)/C=C/([CH2])C")
  • new feature: "smarts" does not include attached hydrogens in match
  • new feature: smiles/smarts/substructure with tetrahedral chirality
  • select smarts("C[C@@]([C]=O)([CH])[CH2]")
  • code: Smiles refactoring and efficiencies
  • note: I realize that smarts and smiles is a can of worms, particularly in
  • relation to aromaticity. Ignoring that for now.
  • new feature: {atomSet}.find(["SMARTS",]"smartsString"[,isAll])
  • new feature: {atomSet}.find("SMILES","smilesString"[,isAll])
  • new feature: "smilesString".find("SMARTS","smartsString" [, isAll])
  • new feature: select smarts("smartsString")
  • smarts does not do implied H atoms, making it much easier to
  • use for pattern matching, which it was made for.
  • new feature: select smiles("smilesString") alias for substructure(..)
  • more specific and relevant -- SMILES strings are supposed to
  • be for full molecules, not substructure searching
  • new feature: JME data saved in variable "jmeString" for later generation of 2D data
  • new feature: "smilesString".find("SMILES","smilesString" [, isAll (FALSE)] )
  • bug fix: SMILES parser not properly checking explicit double bond check
  • new feature: SMILES matching expanded to aromatic types
  • bug fix: Spartan reader (compound document) misread# code: frequency reading standardized -- using auxiliaryInfo.modelProperties more effectively
  • code: note that then getProperty modelInfo will return constraints, energies, and vibrational frequency info
  • CHANGED FEATURE: set loadDefaultOrientation retired (Sygress/CAChe and Spartan files only) in favor of FILTER "noOrient"
  • note that this will change the default orientation for these files to be the one last
  • saved in the actual .spartan or .csf file.
  • bug fix: undocumented obscure reference to nonstandard Hall symbols disregarded in readers
  • new feature: isosurface "=nnnn" automatically loads Uppsala Electron Density Server data
  • new feature: edsUrlCutoff, edsUrlFormat sets method of getting cutoff and file from electron density server
  • String edsURLFormat = "http://eds.bmc.uu.se/eds/dfs/%LC13/%LCFILE/%LCFILE.omap";
  • String edsURLCutoff = "load('http://eds.bmc.uu.se/eds/dfs/%LC13/%LCFILE/%LCFILE.sfdat').lines.find('MAP_SIGMA').split(' ')[2]";
  • LCFILE is file.toLowerCase(); LC13 is file.substring(1,3).toLowerCase()
  • bug fix: state should not be saving loadFormat, edsLoadFormat, or edsLoadCutoff
  • bug fix: isosurface LATTICE option not generating copies for export
  • code: all exporters may write files directly (was just POVRAY)

New in Jmol 12.0 RC9 (Apr 30, 2010)

  • bug fix: mo parameters not restored properly from state
  • application: File menu "Output Console" changed to just "Console"
  • code: support for Java 1.0, 1.1, 1.2, 1.4 dropped (MouseManagers and JmolPopup, Graphics3D)
  • bug fix: parallel:
  • ScriptEvaluator: Given function object holds state, it can not be
  • called from two threads at the same time. So, runFunction is wrapped in synchronized(function).
  • ParallelProcessor: Is modified to use lock object vs this as this is used in ScriptEvaluator.
  • Viewer: Change to Executor factory to use different thread executor,
  • thus avoiding deadlock if parallel functions call parallel functions and
  • allows parallel processes to be eligible to run.
  • new feature: script level iteration max increased to 20 (still just an arbitrary number)
  • new feature: "boundingBox" alias for "boundBox", also "boundingBoxColor" and "showBoundingBox"
  • new feature: reading mol file stereochemistry bond types 1 and 6
  • bug fix: fix for write POVRAY "xxx" not writing file for signed applet
  • new feature: wait cursor for file loading and isosurface creation
  • bug fix: CSF reader upgrade
  • bug fix: stereochemistry addtion for JME skipping some wedges
  • bug fix: writing MOL files with aromatic bonds fails
  • bug fix: It is possible for PDB files (1tmv) to include non-crystallographic
  • symmetry operations. These operations do not fit the standard model of
  • Jones-Faithful operator syntax. (The symmetry in this case is a spiral)
  • In that case, the list of symmetry operations may be truncated, and though
  • all the atoms are in the correct positions, "select symop=49" might not work.
  • bug fix: PDB biomolecule reading misses a set if the first is not "x,y,z"
  • code: Java 1.5 required. (this has been the actual case for some time)
  • code: UFF Calcution tweak: // added b.type "C_2+" for cations 12.0.RC9
  • bug fix: UFF calculation fails to recognize C+ and C-
  • bug fix: POV-Ray exporter should not store file path in .ini file
  • code: unitcell cleanup
  • bug fix: boundbox {1/2 1/2 1/2} {1/2 1/2 1/2} not working
  • new feature: CRYSTAL reader orients unit cell
  • code: general capability to orient unit cell
  • new feature: isosurface lattice {a b c}
  • can be applied AFTER the fact -- it is just a rendering method
  • best carried out with PACKED unit cells
  • bug fix: major upgrade for state preservation of isosurface
  • no longer ;# xxxxx
  • command in state reflects variable insertion
  • sign colors not having desired effect

New in Jmol 12.0 RC8 (Apr 26, 2010)

  • code: modelsetbio efficiencies
  • new feature: axes labels "a" "b" "c" "-a" "-b" "-c" -- extended to 6 from 3
  • bug fix: axes, boundbox, unitcell tick labels did not start properly for format ["%0.2f", ...]
  • bug fix: unitcell ticks should allow fractional coordinates; "scale HKL" not implemented
  • code: removal of "simple" atom option for polyhedra
  • bug fix: polyhedra collapsed incorrect shading calculation
  • bug fix: ParallelProcessor upgrade
  • bug fix: sigma option for isosurface 1/sigma?
  • new feature: isosurface "=nnnn" automatically loads Uppsala Electron Density Server data
  • new feature: edsLoadCutoff, edsLoadFormat sets method of getting cutoff and file from electron density server
  • String edsLoadFormat = "http://eds.bmc.uu.se/eds/dfs/in/%LCFILE%LCFILE.omap";
  • String edsLoadCutoff = "load('http://eds.bmc.uu.se/eds/dfs/in/%LCFILE/%LCFILE.sfdat').lines.find('MAP_SIGMA').split(' ')[2]";
  • bug fix: binary document reader may not read full set of bytes in byte array when using http:

New in Jmol 12.0 RC7 (Apr 23, 2010)

  • bug fix: unicode characters in filenames
  • bug fix: isosurface broken in 12.0.RC6
  • new feature: drag-and-drop defaults for map files and PDB files
  • bug fix: VRML exporter fails to remove duplicate spheres if not same color
  • bug fix: states not saving correct path to isosurface files
  • new feature: spacefill, halos, stars -x.y is "ONLY" as for other shapes
  • bug fix: _atomPicked not updated for centering or other non-identify actions
  • new feature: model numbers can be given as "2.1" in quotes
  • bug fix for parallel processing and isosurface

New in Jmol 12.0 RC6 (Apr 23, 2010)

  • new feature: MO MODEL x.y .... specifies which model to use
  • code: atom iterators made thread safe and optimized a bit
  • code: parallel processor in place; working;
  • tested on dual core multiple processor Mac
  • result -- 8 sec --> 4 sec for the two molecular surfaces
  • example PARALLEL code: see http://chemapps.stolaf.edu/jmol/docs/examples-11/data/multiProcessTest.spt
  • parallel makeIsos{
  • process{isosurface s1 molecular}
  • process{isosurface s2 molecular; color isosurface green}
  • load 1crn.pdb
  • t = now()
  • makeIsos
  • print now() - t
  • parallel: 4 s, not parallel: 8 s MacBook Pro/Windows, two processors
  • print "------------------------"
  • parallel showMOs(i,j) {
  • process{mo model 1.1 @i}
  • process{mo model 2.1 @j}
  • load files "C6H6.smol" "C6H6.smol"
  • showMOs(22,23)
  • frame *;
  • code: ShapeManager created; all shape[] references out of ModelSet
  • code: preliminary PARALLEL {.... PROCESS {....} ....}
  • code: Normix3D refactoring
  • bug fix: set measureAllModels not working properly
  • bug fix: isosurface renderer subtle improvement for almost-degenerate-vertex triangles
  • new feature: set monitorEnergy -- preliminary idea only
  • bug fix: UFF carbonyl out-of-plane calculation coding error does not minimize carbonyl groups correctly

New in Jmol 12.0 RC5 (Apr 15, 2010)

  • new feature: multiple file drag and drop into application and signed applet
  • new feature: minimize SILENT
  • new feature: JME file loading uses minimize silent addhydrogens
  • new feature: drag and drop into signed applet
  • new feature: drag and drop from link, state-image for MSIE and Mozilla
  • new feature: load INLINE "......jme data...."

New in Jmol 11.7.43 (Jun 22, 2009)

  • bug fix: /** comment ending line can cause odd error
  • bug fix: set xxxx n where n is an integer fails.
  • bug fix: GAMESS reader not properly assigning MOs
  • code: better .stddev calculation
  • new feature: a = [] note that a+=2 then produces [2] -- "a+=" similar to JavaScript a.push(2)
  • bug fix: a="test";a[1] = "b" not working
  • bug fix: {atomExpression}.min, .max
  • new feature: merging of label() and format() functions -- same in all respects.

New in Jmol 11.7.40 (Jun 10, 2009)

  • bug fix: setting commandOptions "" in Viewer.setAppletContext()
  • {atomno=3}.radius += 0.1
  • bug fix: in certain APPEND cases, binary space partitioning forest initialization is not complete
  • bug fix: minimization not trapping error on viewer going null
  • new feature: set useMinimizationThread T/F nec. to be FALSE when running minimizations in scripts that require values
  • code: compiler refactoring and efficiencies;
  • code: compiler continued development of advanced scripting syntax.
  • new feature:
  • Jmol scripting now supports ++, --, +=, -=, *=, /=, =, |=, &=
  • i++
  • ++i
  • i += 3
  • and basically all the standard flow syntax of Java and JavaScript:
  • for (i = 1; i

New in Jmol 11.7.39 (Jun 2, 2009)

  • bug fix: biomolecules for new PDB format
  • new feature: consistent set of atom properties now accessible via:
  • select {xxxx = whatever}
  • rather than the more cumbersome:
  • select {*} (_x.xxxx = "whatever")

New in Jmol 11.7.38 (May 25, 2009)

  • new feature: load OCCUPANCY ... int [0 to 255]
  • new feature: load PARTIALCHARGE ... float ~[-3.4 x 10^38 to 3.4 x 10^38]
  • new feature: load TEMPERATURE ... float [-327.68 to 327.67], with 0.01 precision (stored as short)
  • new feature: loadAtomDataTolerance, with default 0.01 Angstroms

New in Jmol 11.7.37 (May 23, 2009)

  • new feature: load VIBRATION "filename" n .......
  • --all features of the load command, but only loads the vibrational information
  • --applies {within(loadAtomDataTolerance,xyzcoord)}.vxyz = vibcoord, so to all unit cells
  • --optional n is just as for any load -- optional nth model
  • --operates on previously selected atoms only
  • --allows embedded jmolscript, just as for any load
  • --sets _vibrationName from file's atom set collection name
  • new feature: loadAtomDataTolerance (see above)
  • bug fix: load {n n n} not saved in state
  • new feature: load {a b -c} packs a x b x c cells
  • new feature: select within(-0.1, {1/2 1/2 1/2}) -- negative distance within selects atoms based on unitcell coordinates
  • new feature: select within(-0.1, atomno=3) -- negative distance within selects atoms based on unitcell coordinates of all atoms involved
  • new feature: select within(-0.1, true, atomno=3) -- negative distance within model selects atoms based on unitcell coordinates
  • new feature: select ux|uy|uz < x.x -- selection based on unit coordinates
  • new feature: {x y z}.fxyz -- returns fractional from cartesian
  • new feature: {x y z}.uxyz -- returns unitcell from cartesian
  • new feature: {x y z}.ux, .uy, .uz similar to .fx, .fy, .fz
  • new feature: {x y z}.xyz -- returns cartesian from fractional
  • note that .x .y .z does NOT do this conversion. If that is
  • intended, you need to use {x y z}.xyz.x
  • if multiple models are visible, then all these just return as through there were no unit cell.
  • new feature: {atomExpression}.uxyz, .ux, .uy, .uz -- unit cell coordinate
  • The value depends upon the setting of unitcell offset. For example, if we have unitcell 444
  • then {x}.uxyz will be in the range {-1,-1,-1/1} (inclusive) to {0,0,0/1} (exclusive)
  • Note that uxyz is not settable, but fxyz is, so one could, for example,
  • pack a unit cell using:
  • unitcell 555
  • n = {*}.size
  • for (var a = 1; a < n; a = a + 1)
  • {atomno=a}.fxyz = {atomno=a}.uxyz
  • end for
  • bug fix: {atomExpression}.fxyz does not return factional value, just 0.0

New in Jmol 11.7.33 (Apr 21, 2009)

  • bug fix: minimization callback does not report dE
  • bug fix: minimization does not interrupt or stop in applet
  • bug fix: rotate quaternion with NaN values not ignored
  • bug fix: applet console not closed when web page destroyed
  • bug fix: load file:///xxx.xxx (file:/// with file in root path) causes unrecoverable exception
  • bug fix: signed applet JmolAppletSigned0.jar does not include minimizer in internal jar index
  • bug fix: rotate -x n rotates wrong direction
  • new feature: load xxxx FILTER "NBOcharges" loads NBO charges instead of Mulliken
  • note: for NBOs you still need FILTER "NBO" so with charges that would be FILTER "NBO;NBOcharges"
  • bug fix: Jaguar reader vibrations not correct
  • bug fix: autoBond option in Preference menu was not writing to properties file in $HOME/.jmol
  • new feature: preliminary NBO support for Gaussian and QChem needs checking
  • code: subclassing Gaussian, QChem, NWChem, Gamess, Jaguar, Psi readers all into MOReader class

New in Jmol 11.6.17 (Feb 24, 2009)

  • bug fix: Spartan reader reads MOs improperly when only a partials set of MOs is included in the file
  • bug fix: Some Spartan files not reading: Compound Document not properly finding root directory block

New in Jmol 11.6.4 (Feb 3, 2009)

  • bug fix: @~xxx({xxxx}) compiler bug
  • bug fix: structure helix ({xx:yy}) compiler bug
  • bug fix: user menu write povray/vrml/maya missing quotation marks in command

New in Jmol 11.4.3 (Oct 10, 2008)

  • bug fix: modelLoader was assigning too much array space for chains
  • bug fix: rocket positions after translateselected

New in Jmol 11.4 RC1 (Jan 4, 2008)

  • bug fix: quaternion for nucleic acids
  • code: inefficiencies in Quaternion code
  • bug fix: wing vectors for biopolymers not containing O improperly drawn for sheets and, in the case of set traceAlpha TRUE (the default), helixes
  • bug fix: translateSelected/rotateSelected does not move cartoons
  • bug fix: tainted occupancy not saved in state
  • bug fix: biopolymers have wrong wing vectors (from 11.3.62)
  • bug fix: restore of state does not reset user-defined atom properties
  • code: refactoring Atom and AtomCollection