Jmol Changelog

New in version 14.2.4

October 9th, 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 in version 14.1.8 Beta (February 12th, 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 version 14.0.7 (January 21st, 2014)

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

New in version 14.0.5 (January 11th, 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 version 14.1.5 Beta (January 10th, 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 version 14.0.4 (January 7th, 2014)

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

New in version 14.0.2 (December 17th, 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 version 14.1.2 Beta (December 14th, 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 version 14.0.1 (December 6th, 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