___date=$Date: 2012-09-09 00:32:53 +0200 (dim., 09 sept. 2012) $ ___fullJmolProperties=is src/org/jmol/viewer/Jmol.properties # NOTE: This is not the development trunk, this is the release branch. # No new features should be added, just bug fixes for 13.0. # Developers: to add a description of changes you have made, # add it on a line below the "___version=..." line. # Don't use ___ in your text, as that is the key for stripping out # the information saved in the JAR version of this file. ___version=13.0.4 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 version=13.0.3 bug fix: CUBE reader reading atom Z numbers as partial charge ============================================================================= version=13.0.2 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 ============================================================================= version=13.0.1 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 ":" ============================================================================= version=13.0.RC7_dev bug fix: isosurface CAVITY not saved in state ============================================================================= version=13.0.RC6 bug fix: isosurface CAVITY not saved in state 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 ============================================================================= version=13.0.RC5 bug fix: broke trajectories in 13.0.RC4 ============================================================================= version=13.0.RC4 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 ============================================================================= version=13.0.RC3 new feature: automatic PNGJ file caching for immensely faster loading 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 ============================================================================= version=13.0.RC2 bug fix: isosurface molecular producing artifacts bug fix: isosurface select {...} molecular not excluding all other atoms for troughs new feature: Gaussian log reading of Natural Transition Orbitals new feature: isosurface MOVE [[...matrix4f...]] moves/rotates an isosurface (for the state) bug fix: isosurface moved by atom connection not saved correctly in state bug fix: isosurface SET n not read properly from JVXL file. ant fix: changing the way Jmol.properties is handled vis-a-vis # and underscores bug fix: isosurface SOLVENT producing artifacts --- needed minimum resolution bug fix: isosurface with selected set not delivering just those vertices for within distance calc bug fix: isosurface CONNECT in documentation but never implemented bug fix: isosurface SET n not saved in state or JVXL file. bug fix: Gaussian reader fails for 2-digit basis orbital names such as "12XX" bug fix: PNGJ creation not handling same-file or same-name issues. bug fix: isosurface SOLVENT producing cavity-like artifacts bug fix: SCENE writing with toggle (pause scene 2 ... pause scene 2) in error bug fix: SCENE min spt script needs wrapping by pathForAllFiles 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 ============================================================================= version=13.0.RC1 -- 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/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 image 400 400 PNGJ "http://....." POSTs JMOL or IMAGE or structure to a server as application/octet-stream ============================================================================= version=12.3.33 (13.0.RC1) new feature: full JSpecView support for NMR -- integration, peak listing, measurements -- printing with peak measurements new feature: measure(a b "minArray") -- measures minimum distance from atom set a to atom set b atom by atom -- return array with number of elements corresponding to the number of selected atoms -- for example: {1.1}.property_distTo12 = measure({1.1}, {1.2} "minArray"); color property_distTo12 new feature: {x}.property_d = [....] -- allows for [....] to have length of the number of atoms in {x} in which case the values are assigned on a 1:1 basis new feature: PDB reader reads gromacs-created "pdb_wide_format" files and also automatically reads PQR based on gromacs REMARK bug fix: select within(1.0, withinallmodels, 1.1) and 1.2 causes exception bug fix: script xxx(yyy).spt broken ============================================================================= version=12.3.32 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 ============================================================================= version=12.3.31 bug fix: isosurface plane ... within ... map ... fails bug fix: write broken in 12.3.30 ============================================================================= version=12.3.30 new feature: atom properties sx, sy, sz, and sxyz -- screen coordinates new feature: app flag -r restricts file access -- like -R, but allows reading of ".spt" files new feature: load("http://.....?POST?_PNGJBIN_") -- accompanies load("http://....?POST?_PNG_") and load("http://....?POST?_PNGJ_") -- sends PNGJ image to server as byte array instead of as application/octet-stream instead of Base64-encoded string and application/x-www-form-urlencoded -- return value is whatever server is set up to send new feature: select within(distance, $drawID) bug fix: isosurface plane... map property temperature not working bug fix: PNG files written by Jmol from 12.3.7 - 12.3.29 have incorrect checksum. Browsers do not seem to care, but Java does when loading a background image in Jmol! bug fix: background image NONE fails bug fix: if(...) statement (no braces) broken in 12.3.21 ============================================================================= version=12.3.29 new feature: (JmolCore.js/JmolApplet.js/JmolCD.js/JmolApi.js) -- changes "useChemDoodleOnly" to "disableJmol" in preparation for non-ChemDoodle plug-ins similar to JmolCD.js -- allows for default values for Info -- adds Info.src -- similar to src in an tag -- turned into LOAD "xxx.png" -- more efficient coding 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 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 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/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 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 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 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 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 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 ============================================================================= version=12.3.6 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 ============================================================================= 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 new feature: compare("XXX","XXXX","ISOMER") comparison now includes "AMBIGUOUS STEREOCHEMISTRY!" 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: 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 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 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 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: 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 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