# Developers: to add a description of changes you have made,
# add it on a line starting with # below the "version=..." line
date=$Date: 2012-06-10 13:57:20 -0500 (Sun, 10 Jun 2012) $
version=12.3.29
# 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.
# bug fix: Jmol 12.3.28 breaks writing JMOL/PNGJ files
# -- Jmol 12.3.28 release DELETED
# bug fix: modelkit mode creating atoms after load "@x" fails
# bug fix: script javascript:xxxx() broken for Jmol object javascript
# bug fix: JmolCore.js fix for getPropertyAsArray
# bug fix: draw arrows not adjustable using set picking draw
# bug fix: Exception for select within(molecule,...) when atoms have been deleted
# =============================================================================
#version=12.3.28
# DELETED 6/10/2012 due to breaking of JMOL/PNGJ format
# 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 one or more atoms within or on the face of the unit cell
# -- may not preserve # of atoms of unit cell
# -- reverts to simple PACKED if this is a single-molecule solid (such as diamond)
# 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.
# =============================================================================
#version=12.3.27
# new feature: [menu] vibration [*,/] 2
# new feature: XSF isosurface reader
# new feature: load CENTROID
# -- only complete molecules having centroid in unit cell
# -- preserves # of atoms of 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
# =============================================================================
#version=12.3.26
# 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: 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
# 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.
#
# =============================================================================
#version=12.3.25
# 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
#
# 1 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 (fixed in 123.3.26 by correcting angle calc)
# 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
# =============================================================================
#version=12.3.24
# 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
# =============================================================================
#version=12.3.23
# 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
# =============================================================================
#version=12.3.22
# new feature: Jmol extensions to ChemDoodle allow display of Jmol, ChemDoodle-equivalent (simple model only),
# or just an image with server-side JmolData.jar support.
#
# JmolCD.js -- Jmol ChemDoodle extension author: Bob Hanson, hansonr@stolaf.edu 4/16/2012
#
# requires ChemDoodleWeb.js and ChemDoodleWeb-libs.js
# prior to JmolCD.js
#
# allows Jmol applets to be created on a page with more flexibility and extendability
# using much of the infrastructure of ChemDoodle.
#
# 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 2D and 3D 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. Database and image services are provided by a server-side PHP program
# running JmolData.jar with flags -iR.
#
# In this case, the NCI and RCSB databases are accessed via a St. Olaf College server,
# but 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.
#
# new feature: write CD (simple ChemDoodle JSON format -- atoms and bonds only)
# For example: java -jar JmolData.jar -iRJ "load $tylenol;print write('cd')"
# generates: {"mol":{"a":[{"x":0.20549999,"y":0.8303,"z":0.3823},{"x":0.6906,"y":-1.4656999,"z":-0.14220001},{"x":1.5485,"y":1.1359,"z":0.2829},{"x":2.0332,"y":-1.1585,"z":-0.24180001},{"x":-3.9799001,"y":-0.1617,"z":0.1295},{"l":"H","x":4.2731,"y":0.35680005,"z":0.7047},{"l":"H","x":-1.8655999,"y":-1.6522,"z":0.6012},{"x":-0.2273,"y":-0.4718,"z":0.17},{"x":2.4650002,"y":0.1425,"z":-0.029099999},{"l":"O","x":-2.1741998,"y":1.1759001,"z":-0.59169996},{"l":"O","x":3.7872,"y":0.4441,"z":-0.1268},{"x":-2.5170999,"y":0.1262,"z":-0.089999996},{"l":"N","x":-1.5898,"y":-0.78279996,"z":0.2712},{"l":"H","x":-0.50740004,"y":1.6029,"z":0.6296},{"l":"H","x":0.35450003,"y":-2.4786,"z":-0.3079},{"l":"H","x":1.8853,"y":2.1487997,"z":0.4477},{"l":"H","x":2.7472,"y":-1.9314001,"z":-0.485},{"l":"H","x":-4.3884,"y":-0.65880007,"z":-0.7504},{"l":"H","x":-4.0964003,"y":-0.8086,"z":0.9991},{"l":"H","x":-4.513,"y":0.7739,"z":0.2986}],"b":[{"b":8,"e":10},{"b":9,"e":11,"o":2},{"b":7,"e":12},{"b":11,"e":12},{"b":0,"e":7,"o":2},{"b":1,"e":7},{"b":0,"e":2},{"b":2,"e":8,"o":2},{"b":3,"e":8},{"b":1,"e":3,"o":2},{"b":4,"e":11},{"b":5,"e":10},{"b":6,"e":12},{"b":0,"e":13},{"b":1,"e":14},{"b":2,"e":15},{"b":3,"e":16},{"b":4,"e":17},{"b":4,"e":18},{"b":4,"e":19}]}}
# (this ended up NOT being used in the Jmol extension to ChemDoodle)
# new feature: (JmolData) -iR (silent, restricted) mode sends output from PRINT and ECHO commands to SYSOUT
# and also restricts the application to no local file read/writing
#
# 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
# =============================================================================
#version=12.3.21
# 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 <seconds> 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 <rate>, ANIMATION ON
# // turns SPIN <rate> <end> into just ROTATE <end>
# 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
# version=12.3.20 -- skipped
# =============================================================================
#version=12.3.19
# new feature: select baseModel for JSpecView
# new feature; model {atomset} -- model of first atom in this set
# 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
# 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
# =============================================================================
#version=12.3.18
# new feature: JSpecView reads and displays 2D spectra very quickly -- all
# tested JCamp-DX 6.0 files readable. -- JSpecView 2.0.10176
# 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: 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
# =============================================================================
#version=12.3.17
# 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()
# =============================================================================
#version=12.3.16
# 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
# =============================================================================
#version=12.3.15
# new feature: JCAMP-DX file reading
# -- reading of ##$MODELS and ##$PEAKS (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
# 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 <models></models> is present
# new feature: when picking struts or delete bond or measure, distance shows as per usual measurement
# 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
# =============================================================================
#version=12.3.14
# 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
# =============================================================================
#version=12.3.13
# new feature: isosurface SCALE extends to volume file readers
# new feature: zoom $isosurface1 0 -- scales to match isosurface boundbox
# 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
# note to Bob: jpe needs update of img/blank.js js/top_buttons.js htm1/quickvs.js,qv_msgs.js molview/JmolAppletSigned.jar
# =============================================================================
#version=12.3.12
# 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
# =============================================================================
#version=12.3.11
# 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
# =============================================================================
#version=12.3.10
# 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
# -- see http://chemapps.stolaf.edu/jmol/docs/examples-12/mp for more examples
# 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
# =============================================================================
#version=12.3.9
# 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{...}
# =============================================================================
#version=12.3.8
# new feature: MolecularPlayground -- remote status and remote control
# -- see for example http://chemapps.stolaf.edu/jmol/mpstatus.php
# -- 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
# http://www.gaussian.com/g_tech/g_ur/c_zmat.htm
# 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
# =============================================================================
#version=12.3.7
# 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
# C
# 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
# C
# 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
# C1
# O1 C1 1.3000 2
# O2 C1 1.3000 O1 180 2
#
# -- allows for dummy atoms Xn, allowing for positioning:
#
# #ZMATRIX -- CO2
# X1
# 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)
# N1
# 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)
# N1
# 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
#
# N1
# 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
# 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
# =============================================================================
#version=12.3.6
# new feature: load files "xxx.tlsout" "xxxx.pdb"
# -- loads REFMAC-style TLS data into xxxx.pdb
# new feature: contact SASURFACE <radius>
# -- 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
# =============================================================================
#version=12.3.5
# 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
# =============================================================================
#version=12.3.4
# 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
# =============================================================================
#version=12.3.3
# 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
# =============================================================================
#version=12.3.2
# bug fix: array.bin(low,high,binSize) not documented and can cause exception
# new feature: PQR write option
# 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 feature: show chemical XXXXX where XXXXX is any NCI Cactus information token:
# stdinchikey Standard InChIKey
# stdinchi Standard InChI
# smiles SMILES
# ficts FICTS Identifier
# ficus FICuS Identifier
# uuuuu uuuuu Identifier
# hashisy Cactvs HASHISY
# sdf SD File
# names Names
# iupac_name IUPAC Name
# cas CAS Registry Number(s)
# chemspider_id ChemSpider ID
# mw Molecular Weight
# formula Chemical Formula
# h_bond_donor_count Number of Hydrogen Bond Donors
# h_bond_acceptor_count Number of Hydrogen Bond Acceptors
# h_bond_center_count Number of Hydrogen Bond Acceptors and Donors
# rule_of_5_violation_count Number of Rule of 5 Violations
# rotor_count Number of Freely Rotatable Bonds
# effective_rotor_count Number of Effectively Rotatable Bonds
# ring_count Number of Rings
# ringsys_count Number of Ring Systems
# bug fix: POV-Ray export of cartoons broken
# bug fix: script javascript:xxxx() broken
# new feature: set vectorSymmetry -- displays vibration vectors as double-ended arrows.
# 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 -- can't imagine why...
# code: JmolModelKitInterface part of apiPlatform call
# code: JmolPromptInterface replaced with apiPlatform call
# =============================================================================
#version=12.3.1
# 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} <color> 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
# or
# CONECT 1 2
# CONECT 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
# version=12.3.0
# October 4, 2011