May 25th, 2012· bug fix: draw pointgroup scale x.x -- changing x.x does not revise point group
· bug fix: reading of JVXL-version 1 (nonXML) files does not display colors
· bug fix: translate y 10 works, but translate Y 10 does not
May 25th, 2012· new feature: [menu] vibration [*,/] 2
· new feature: XSF isosurface reader
· new feature: load CENTROID (only complete molecules having cenroid in unit cell)
· bug fix: write PNGJ broken in 12.3.26
· bug fix: 12.3.26 breaks Jmol/JspecView connection
· bug fix: draw pointgroup scale x.x -- changing x.x does not revise point group
· bug fix: reading of JVXL-version 1 (nonXML) files does not display colors
· bug fix: translate y 10 works, but translate Y 10 does not
May 23rd, 2012· bug fix: select 1.0 fails
· bug fix: COMPARE broken
· bug fix: nested SMARTS strings can give incorrect response
· checkmm.spt
· checkmm("FOVRAJ")
· select search("/aromaticstrict aromaticdouble/$([#7v3][#6]([#7D3v3&!$([#7][O])])=[#7v4])")
· show selected
· was returning 1 atom, but should be 0
· bug fix: measurementUnits = "au" does not work
May 23rd, 2012· bug fix: select 1.0 fails
· bug fix: COMPARE broken
· bug fix: Writing file into .jmol file after reading it from another results in the whole
· zip file being copied into the new .jmol file.
· new feature: Jmol SMARTS searching can include full Jmol selection syntax within
an atom primitive using the "atomType" option and "select:":
· load caffeine.xyz
· print {*}.find('{c}$(select _N and connected(2, _C))') new feature: model ID "xxx" (or frame ID....)
· -- sets the model's ID to "xxx"
· -- can be used to switch to that model using model "xxx"
· -- can be targeted file-specifically using "filename#xxx"
· -- if two models have the same ID and no filename is given, then the first model found becomes the current model
· -- used for correlating non-Jmol synced applets
· new feature: script "t.spt"(...variables...)
· -- quotes are optional if file name does not include " " or "(" # -- "script" is optional if file name is quoted or ends with ".spt"
· -- allows passing variables to a script much like a function call
· -- variables will be in VAR named "_arguments" within that script (like JavaScript)
· -- _arguments, like all arrays in Jmol, is 1-based, 0-terminated (unlike JavaScript)
· -- _arguments is unsettable by the user
· -- for standard script functions, _arguments will be []
· -- for example, if test.spt is simply "show _arguments", then
· load $caffeine
· test.spt({*}, {*}.xyz ,35, [1,2,3,4])
will output:
· _arguments = [({0:23}),{-0.086670786 -0.02787502 5.6667876E-4},35,[1,2,3,4]]
· new feature: set forcefield "UFF" or "MMFF"
· -- default is MMFF
· -- automatically switches to UFF if atom types cannot be set
· -- minimizationCallback reports actual force field used
· new feature: set energyUnits kJ|kcal
· new feature: set DOTSCALE (default 1) also allows isosurface/mo mesh scaling
· new feature: antialiased display and image creation uses larger mesh scaling for cleaner look
· code: adding empirical rules to MMFF94 calculation checkmm.spt;checkAllEnergies
· checking calculated energies for 761 models
· 1 COMKAQ E= -7.3250003 Eref= -7.6177 diff= 0.2926998
· 2 DUVHUX10 E= 64.759995 Eref= 64.082855 diff= 0.6771393
· 3 FORJIF E= 35.978 Eref= 35.833878 diff= 0.14412308
· 4 JADLIJ E= 25.104 Eref= 24.7038 diff= 0.4001999
· 5 PHOSLA10 E= 111.232994 Eref= 112.07078 diff= 0.8377838
· 6 PHOSLB10 E= -93.479004 Eref= -92.64081 diff= 0.8381958
· for 761 atoms, 6 have energy differences outside the range -0.1 to 0.1
· with a standard deviation of 0.05309403
· bug fix: nested SMARTS strings can give incorrect response
· load data "mol"
· C:/jmol-dev/bobtest/t6.mol
· __Jmol-12_05191218593D 1 1.00000 0.00000 0
· Jmol version 12.3.26 2012-05-19 18:34 EXTRACT: ({0 3 4})
· 3 2 0 0 0 0 1 V2000
· 2.89480 4.81990 0.01710 N 0 0 0 0 0 0
· 3.52580 2.75730 -0.17290 N 0 0 0 0 0 0
· 3.94370 4.03730 -0.25710 C 0 0 0 0 0 0
· 1 3 2 0 0 0 # 2 3 1 0 0 0
· M END
· end "mol"
· select search("$([#7][#6]([#7&!$([#7][O])])=[#7])")
· show selected
· was returning 1 atom, but should be 0 (because there are only two N atoms!)
· bug fix: measurementUnits = "au" does not work
May 17th, 2012· bug fix: compare {22-31} {7-16} subset {*.ca} should work without ATOMSET next
· bug fix: compare {22-31} {7-16} should work, using {spine} as default
· bug fix: isosurface molecular for certain flat models will fail to cap H atoms
· bug fix: dipole command fails after model kit changes
May 17th, 2012· new feature: MMFF94 single point energy calculation and minimization
· set forcefield "MMFF"
· checkmm.spt # checkmm "AMHTAR01";minimize energy
· AMHTAR01 Initial E = 66.180 kcal/mol
· should be 66.18011
· checkmm "ARGIND11";minimize energy
· ARGIND11 Initial E = -207.436 kcal/mol
· should be -207.43598
· validation complete. The following 13 structures (of 761) do not validate to within 0.1 kcal/mol
· COMKAQ E= -7.3250003 Eref= -7.6177 diff= 0.2926998
· MMFF94 ignores 1 of 5-membered ring torsions for a 1-oxo-2-oxa-bicyclo[3.2.0]heptane
· MMFF94_bmin.log: WARNING - Conformational Energies May Not Be Accurate 2 DUVHUX10 E= 64.759995 Eref= 64.082855 diff= 0.6771393
· MMFF94 ignores 5-membered ring issue for S-S-containing ring MMFF94_bmin.log: WARNING - Conformational Energies May Not Be Accurate 3 FORJIF E= 35.978 Eref= 35.833878 diff= 0.14412308
· MMFF94 uses some sort of undocumented empirical rule used for 1 torsion not found in tables
· MMFF94_bmin.log: WARNING - Conformational Energies May Not Be Accurate 4 JADLIJ E= 25.104 Eref= 24.7038 diff= 0.4001999
· ignores 5-membered ring for S (note, however, this is not the case in BODKOU)
· MMFF94_bmin.log: WARNING - Conformational Energies May Not Be Accurate 5 KEPKIZ E= 61.127 Eref= 61.816277 diff= 0.68927765
· MMFF94 requires empirical rule parameters
· MMFF94_bmin.log: WARNING - Conformational Energies May Not Be Accurate 6 PHOSLA10 E= 111.232994 Eref= 112.07078 diff= 0.8377838
· MMFF94 ignores all 5-membered ring torsions in ring with P
· (note, however, this is not the case in CUVGAB)
· MMFF94_bmin.log: WARNING - Conformational Energies May Not Be Accurate 7 PHOSLB10 E= -93.479004 Eref= -92.64081 diff= 0.8381958
· MMFF94 ignores all 5-membered ring torsions in ring with P
· (note, however, this is not the case in CUVGAB)
· MMFF94_bmin.log: WARNING - Conformational Energies May Not Be Accurate empirical-rule-requiring models: (all are nonaromatic heterocycles)
· 8 ERULE_01 E= -22.582 Eref= -21.515108 diff= 1.0668926 # 9 ERULE_02 E= 29.407999 Eref= 29.799572 diff= 0.39157295
· 10 ERULE_03 E= -3.326 Eref= -2.9351802 diff= 0.3908198
· 11 ERULE_04 E= -2.572 Eref= -2.31007 diff= 0.26193
· 12 ERULE_07 E= 2.873 Eref= 3.16775 diff= 0.29474998
· 13 ERULE_08 E= 33.734 Eref= 34.41382 diff= 0.6798172
· bug fix: compare {22-31} {7-16} subset {*.ca} should work without ATOMSET next
· bug fix: compare {22-31} {7-16} should work, using {spine} as default
· bug fix: isosurface molecular for certain flat models will fail to cap H atoms bug fix: calculate partial charge fails after model kit changes (because Bond[] bonds field not cleaned # bug fix: dipole command fails after model kit changes
· code: refactoring of minimize for generalization
May 9th, 2012· new feature: SMARTS search for atom type using quotes: ["37"]-["58"]
· new feature: SMARTS option /aromaticdouble/ allows distinguishing between aromatic single and double bonds
· new feature; SMARTS option /aromaticstrict/ checks 6-electron rule for aromatics
· new feature: CALCULATE partialCharge does MMFF94 charge calculation
· -- all atom types validated
· -- charge values validated to +- 0.001001 over the 761-atom dative validation set
· new feature: isosurface CACHE
· -- creates a JVXL version of the surface (possibly outside of Jmol, but that's not implemented yet)
· -- saved by write JMOL as a JVXL file "isosurface_ID"
· (where ID is the original isosurface ID) within the JMOL zip collection
· -- Warning! not saved using write SPT
· ***ALWAYS*** use write JMOL or write PNGJ after using the CACHE option, not write SPT
· -- invoked by isosurface file "cache://isosurface_ID"
· -- cleared by reset CACHE
· -- allows rapid recreation of an isosurface across file loads
· -- possibly limited to a subset of surface types
· -- not fully tested
· new feature: write ... "http://....."
· -- POSTs JMOL or IMAGE or structure or whatever to a server as application/octet-stream
· -- to be used in Proteopedia for saving a fully self-contained state
· new feature: load filter "CENTER" -- centers models on the first model as they are loaded
· new feature: load filter "NAME=..." -- loads only those models with a name that contains ...
· new feature: calculate partialcharge
· -- works on currently selected set of atoms
· -- uses MMFF94 charge calculation (unverified; most certainly not quite correct)
· -- preliminary only; working on validation
· bug fix: x = {"c1": 3}; if(x["c1"]) should return TRUE
· code: Simple way to assign MMFF94 atom types and partial charges
· -- N,S-containing compounds not validated; CHO-containing compounds partially validated
· bug fix: MOL2 reader assuming PDB for non-PDB format files (such as MMFF94-dative.mol2)
· bug fix: label %W not working properly for non-PDB files
· bug fix: write MOL does not save partial-single bond as type 8 ("ANY")
· bug fix: set echo IMAGE fails (since 12.3.20)
· code: (applet) JmolCore.js free of need for JSON
May 9th, 2012· bug fix: MOL2 reader not recognizing "am" bond type as single
· bug fix: x = {"c1": 3}; if(x["c1"]) should return TRUE
· bug fix: MOL2 reader assuming PDB for non-PDB format files (such as MMFF94-dative.mol2)
· bug fix: label %W not working properly for non-PDB files
· bug fix: write MOL does not save partial-single bond as type 8 ("ANY")
April 25th, 2012· new feature: (applet) new interface for Jmol as an HTML object as well as full support on all platforms
· using a ChemDoodle fall-back option for Java/Applet-challenged platforms (iPad,iPhone,Android)
· Note that Jmol.js is no longer required, but not all of the features of Jmol.js are in place yet
· allows Jmol applets to be created on a page with more flexibility and extendability
· possibly using infrastructure of ChemDoodle for multiplatform doodlable structures
required/optional libraries (preferably in the following order):
· jQuery.min.js -- required for ChemDoodle or any server-based options gl-matrix-min.js -- required for ChemDoodle option
· mousewheel.js -- required for ChemDoodle option
· ChemDoodleWeb.js -- required for ChemDoodle option
· JmolCore.js -- required
· JmolApplet.js -- required
· JmolCD.js -- required for ChemDoodle option
· JmolApi.js -- required
· Allows Jmol-like objects to be displayed on Java-challenged (iPad/iPhone)
· or applet-challenged (Android/iPhone) platforms, with automatic switching to whatever is appropriate. You can specify "ChemDoodle-only", "Jmol-only", "Image-only"
· or some combination of those -- and of course, you are free to rewrite the logic below!
· Allows ChemDoodle-like 3D and 3D-faked 2D canvases that can load files via a privately hosted
· server that delivers raw data files rather than specialized JSON mol data. Access to iChemLabs server is not required for simple file-reading operations and
· database access. PubChem and image services are provided by a server-side PHP program
· running JmolData.jar with flags -iR (at St. Olaf College).
· For your installation, you should consider putting JmolData.jar and jmolcd.php
· on your own server. Nothing more than these two files is needed on the server.
· The NCI and RCSB databases are accessed via direct AJAX if available (xhr2).
· new feature: PubChem search for name (which can be a CAS number), cid, or SMILES using ":"
· from pubChemFormat = "http://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/%FILE/SDF?record_type=3d";
· (many thanks to Evan Bolton and Paul Thiessen (NIH) for their assistance on this.
· load :name:tylenol
· or load :tylenol
· load :cas:103-90-2
· or load :103-90-2
· load :cid:1983
· or load :1983
· load :smiles:C/C=C/C
· bug fix: callback functions for modular calls: applet0.readCallback(....)
· bug fix: Molden reader problems reading frequencies
· bug fix: VASP reader with {n n n} and vibration vectors problem
· bug fix: in 2bat, SIA was considered part of the carbohydrate chain because we were not checking bonding
April 25th, 2012· bug fix: callback functions for modular calls: applet0.readCallback(....)
· bug fix: Molden reader problems reading frequencies
· bug fix: VASP reader with {n n n} and vibration vectors problem
· bug fix: in 2bat, SIA was considered part of the carbohydrate chain because we were not checking bonding
April 17th, 2012· bug fix: "connect;" command in states saved prior to 11.9.24 and then read by versions after that
· The order in which Jmol created bonds changed in 11.9.24. Due to this, Jmol must check for the
· version number of Jmol used to create a state, and if it was before this point, it must
· apply "legacy" autobonding methods. Unfortunately, if that state from pre-11.9.24 versions
· contains the "connect;" command, which it would if someone used the CONNECT command by itself
· to regenerate all bonds in a model PRIOR to saving the state (Proteopedia does this), then
· those scripts will be misread in versions 11.9.24-12.2.21/12.3.21.
· bug fix: antialiasDisplay does not show drag-box properly
· bug fix: SMARTS syntax [${xxx}n] and [${xxx}m-n] changed to [$n{xxx}] and [$m-n{xxx}]
· to avoid conflict with specifying isotope
April 9th, 2012· bug fix: PDB reader # and state scripts created with 12.1.51-12.2.20 and 12.3.0-12.3.20
· state scripts prior to those versions with multiple models
· and also select BOND commands will read the bond indexes incorrectly
· and, in addition, will assign proper CONECT links only to the last model
· bug fix: if (....)
· comment fails
· bug fix: Molden reader hack for bad Molden files with ** instead of atom number in [GTO]
· note: Headless operation with image creation works perfectly using JmolData.jar java -Djava.awt.headless=true -Xmx512m -jar "JmolData.jar" -J "load $tylenol;write image 1000 1000 t.jpg"
· see also: http://leshazlewood.com/2009/08/26/linux-javaawtheadless-and-the-display-environment-variable/
· bug fix: headless creation of JPG fails
· bug fix: spin .... 30 takes 30 to be number of degrees, not rate
April 9th, 2012· new feature: app flag -R restricts file access -- no local file reading; no writing, no logging
· // disables WRITE, LOAD file:/, set logFile
· // command line -g and -w options ARE available for final writing of image
· // for use with headless operation
· new feature: app flag -T headless timeout delay for "exitJmol" note: Headless operation with image creation works perfectly using JmolData.jar
· java -Djava.awt.headless=true -Xmx512m -jar "JmolData.jar" -RJ "load $tylenol;" -g1000x1000 -wJPG:t.jpg
· see also: http://leshazlewood.com/2009/08/26/linux-javaawtheadless-and-the-display-environment-variable/
· // determined by GraphicsEnvironment.isHeadless()
· // from java -Djava.awt.headless=true
· // disables command threading
· // disables DELAY, TIMEOUT, PAUSE, LOOP, GOTO, SPIN , ANIMATION ON
· // turns SPIN into just ROTATE
· new feature: JSpecView JCamp-MOL files can reference model="$xxxx" -- model retrieved from NCI
· bug fix: PDB reader
· and state scripts created with 12.1.51-12.2.20 and 12.3.0-12.3.20
· state scripts prior to those versions with multiple models
· and also select BOND commands will read the bond indexes incorrectly
· and, in addition, will assign proper CONECT links only to the last model
· bug fix: if (....)
· comment fails
· bug fix: Molden reader hack for bad Molden files with ** instead of atom number in [GTO]
· bug fix: headless creation of JPG fails # bug fix: spin .... 30 takes 30 to be number of degrees, not rate
April 2nd, 2012· bug fix: set dragSelected disallows popup menu
· new feature: select baseModel for JSpecView
· new feature; model {atomset} -- model of first atom in this set
· bug fix: MOPAC (PUBLIC DOMAIN) output reader can fail on reading vibrations
· bug fix: Spartan 10 archives have .gz and .carc files. This fix adds .gz reading; work-around is that Spartan 10 allows saving of Archive without carc compression, which is a proprietary format. From Wavefunction: "If you want all files to use the "text" version, you can go to the Options->Preferences->X-Platform pane and make sure "Use Binary Archive" is unchecked."
· bug fix: rotateSelected of models that have had dots at one point retrieved from a state file fails
· code: refactored org.jmol.g3d.[Normix3d,Shade3D] --> org.jmol.util.[Normix, Shader]
· code: refactored org.jmol.geodesic.Geodesic --> org.jmol.util.Geodesic
· bug fix: Jmol defaults not being loaded with startup option -n (no display)
· bug fix: UIManager.setLookAndFeel UIManager.getCrossPlatformLookAndFeelClassName()
· failed for non-graphics system, and even though it is an exception, it isn't trapped by try/catch.
· bug fix: point() function does not accept 3x1 array
· bug fix: show x where x is a matrix does not have ',' before tabs, so it can't be clipped directly back into Jmol
· code: better coding for quaternions
April 2nd, 2012· bug fix: set dragSelected disallows popup menu
· bug fix: MOPAC (PUBLIC DOMAIN) output reader can fail on reading vibrations
· bug fix: Spartan 10 archives have .gz and .carc files. This fix adds .gz reading; work-around is that Spartan 10 allows saving of Archive without carc compression, which is a proprietary format. From Wavefunction:"If you want all files to use the "text" version, you can go to the Options->Preferences->X-Platform pane and make sure "Use Binary Archive" is unchecked."
· bug fix: rotateSelected of models that have had dots at one point retrieved from a state file fails
· bug fix: Jmol defaults not being loaded with startup option -n (no display)
· bug fix: UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName() failed for non-graphics system, and even though it is an exception, it isn't trapped by try/catch.
· bug fix: point() function does not accept 3x1 array
· bug fix: show x where x is a matrix does not have ',' before tabs, so it can't be clipped directly back into Jmol
March 19th, 2012· bug fix: allow for alternating list/hash entry; for example: print getproperty("jspecview","##TITLE")["items"][1]["spectra"][1]["id"] instead of: print ((getproperty("jspecview","##TITLE")["items"][1])["spectra"][1])["id"]
· new feature: JSpecView reads and displays 2D spectra very quickly -- all tested JCamp-DX 6.0 files readable. -- JSpecView 2.0.10176
· bug fix: GaussianReader not reading "Natural Orbitals" section from B3LYP 6-31g sp gfprint pop(full,NO)
· bug fix: Jmol support for ZIP collection of JDX files read properly
· bug fix: support for file reading with BOM UTF-8, UTF-16, or UTF-32
· bug fix: script processor not recognizing UTF-8 Binary Order Mark at start of script
· bug fix: (undocumented) POLYHEDRA {...} to {...} with COLOR or TRANSLUCENT fails
· bug fix: POLYHEDRA command or COLOR POLYHEDRA can change selection
· bug fix: PDB reader doesn't recognize 16 LINK records at start of file
· bug fix: script xxxx(xxx)xxx/xx.xxx fails at "(" due to revision 16201 2011-10-02
March 19th, 2012· bug fix: allow for alternating list/hash entry; for example: print getproperty("jspecview","##TITLE")["items"][1]["spectra"][1]["id"] instead of: print ((getproperty("jspecview","##TITLE")["items"][1])["spectra"][1])["id"]
· bug fix: GaussianReader not reading "Natural Orbitals" section from B3LYP 6-31g sp gfprint pop(full,NO)
· bug fix: support for file reading with BOM UTF-8, UTF-16, or UTF-32
· bug fix: script processor not recognizing UTF-8 Binary Order Mark at start of script
· bug fix: (undocumented) POLYHEDRA {...} to {...} with COLOR or TRANSLUCENT fails
· bug fix: POLYHEDRA command or COLOR POLYHEDRA can change selection
· bug fix: PDB reader doesn't recognize 16 LINK records at start of file
· bug fix: script xxxx(xxx)xxx/xx.xxx fails at "(" due to revision 16201 2011-10-02
March 6th, 2012· new feature: (JspecView 2.0.10033) new script commands (indicated with *)
· UNKNOWN("?"),
· APPLETID("APPLETID"),
· APPLETREADYCALLBACKFUNCTIONNAME("APPLETREADYCALLBACKFUNCTIONNAME"),
· AUTOINTEGRATE("AUTOINTEGRATE", "TF"),
· BACKGROUNDCOLOR("BACKGROUNDCOLOR", "C"),
· *CLOSE("CLOSE", "spectrumId or fileName or ALL"),
· COMPOUNDMENUON("COMPOUNDMENUON", "TF"),
· COORDCALLBACKFUNCTIONNAME("COORDCALLBACKFUNCTIONNAME"),
· COORDINATESCOLOR("COORDINATESCOLOR", "C"),
· COORDINATESON("COORDINATESON", "TF"),
· *DEBUG("DEBUG", "TF"),
· DISPLAYFONTNAME("DISPLAYFONTNAME", "fontName"),
· ENABLEZOOM("ENABLEZOOM", "TF"),
· ENDINDEX("ENDINDEX"),
· *EXPORT("EXPORT", "[JPG,PNG,XY,...] \"filename\""),
· GETSOLUTIONCOLOR("GETSOLUTIONCOLOR", ""),
· GRIDCOLOR("GRIDCOLOR", "C"),
· GRIDON("GRIDON", "TF"),
· *INTEGRATE("INTEGRATE", ""),
· INTEGRALPLOTCOLOR("INTEGRALPLOTCOLOR"),
· INTEGRATIONRATIOS("INTEGRATIONRATIOS"),
· INTERFACE("INTERFACE"),
· *IRMODE("IRMODE", "A or T or ?"),
· *LABEL("LABEL", "x y [color and/or \"text\"]"),
· *LOAD("LOAD", "[APPEND] \"fileName\""),
· MENUON("MENUON"),
· OBSCURE("OBSCURE"),
· *OVERLAY("OVERLAY", "spectrumID, spectrumID, ..."),
· PEAKCALLBACKFUNCTIONNAME("PEAKCALLBACKFUNCTIONNAME"),
· PLOTAREACOLOR("PLOTAREACOLOR", "C"),
· PLOTCOLOR("PLOTCOLOR", "C"),
· PLOTCOLORS("PLOTCOLORS"),
· REVERSEPLOT("REVERSEPLOT", "TF"),
· SCALECOLOR("SCALECOLOR", "C"),
· SPECTRUM("SPECTRUM", "spectrumID"),
· SPECTRUMNUMBER("SPECTRUMNUMBER"),
· STARTINDEX("STARTINDEX"),
· SYNCCALLBACKFUNCTIONNAME("SYNCCALLBACKFUNCTIONNAME"),
· SYNCID("SYNCID"),
· TITLEBOLDON("TITLEBOLDON", "TF"),
· TITLECOLOR("TITLECOLOR", "C"),
· TITLEFONTNAME("TITLEFONTNAME", "fontName"),
· UNITSCOLOR("UNITSCOLOR", "C"),
· VERSION("VERSION"),
· XSCALEON("XSCALEON", "TF"),
· XUNITSON("XUNITSON", "TF"),
· YSCALEON("YSCALEON", "TF"),
· YUNITSON("YUNITSON", "TF"),
· *ZOOM("ZOOM", "OUT or x1,x2");
· new feature: allows simpler color scheme definition
· color property occupancy "myscheme=red green blue"
· Var x = ["red","green","blue"]; color property occupancy @{"myscheme=" + x}
· bug fix: JCampDX reader resolving should allow spaces before "##TITLE"
· bug fix: jvxl issue when color PHASE and translucent
· upon reading JVXL doesn't handle translucency right
· upon writing SPT doesn't preserve colors
· bug fix: user variable lower case "x" not cleared by "X = none"
· bug fix: draw HELIX fails for residue numbers < 0
· code: better Enum structure using name()
March 6th, 2012· bug fix: jvxl issue when color PHASE and translucent
· upon reading JVXL doesn't handle translucency right
· upon writing SPT doesn't preserve colors
· bug fix: user variable lower case "x" not cleared by "X = none"
· bug fix: draw HELIX fails for residue numbers < 0
February 22nd, 2012· new feature: (application) SYNC ON; sync * "JSpecView:..." sends commands to JSpecView
· new feature: (JSpecView) accepts commands using public syncScript(script)
· bug fix: GAMESS-US reader error reading NBOs
· bug fix: print [2, 3, 4].mul([3,4,5]) fails
· bug fix: missing ANISOU records cause file-read error in PDB files
· bug fix: JCAMP-DX reading by JSpecView for tiered BLOCK files
February 22nd, 2012· bug fix: GAMESS-US reader error reading NBOs
· bug fix: first attempt to fix macromolecular ellipsoids -- PDB ANISOU records
· bug fix: print [2, 3, 4].mul([3,4,5]) fails
February 13th, 2012· new feature: JCAMP-DX file reading
· reading of ##$MODELS and ##$PEAK_LINKS (see http://chemapps.stolaf.edu/jmol/docs/examples-12/jspecview)
· new feature: context menu Spectra submenu
· new feature: JSpecView integration into Jmol application
· if model/peak-enhanced JDX file is read, clicking on an atom or switching
· to an IR vibration or MS fragment displays the appropriately highlighted spectrum/fragment
· bug fix: SLAB unit cell not showing all lines
· bug fix: CRYSTAL reader needs to change to MOLECULAR when X(ANGSTROMS) found (fullerene slab)
· new feature: model ID "..."
· can be file-specific using "filename#..."
· used for correlating non-Jmol synced applets
· new feature: sync ~ 'Select: xxx'
· xxx can include file="xxx" model="xxx" atoms="xxx" select="xxx" script="xxx"
· file and model combined as model ID "file#model"
· will automatically load the file if the given file#model ID is not found
· atoms = list of atom numbers separated by commas: 1,2,3 --> @1 or @2 or @3
· select is any valid selection such as THR or 1-30
· automatically adds "visible &" to atoms or select
· requires sync ON
· new feature: NFF neutral file format reader (http://paulbourke.net/dataformats/nff/nff1.html)
· for electron microscopy data exported from IMOD
· new feature: preliminary JCAMP-DX file reader, where is present
· new feature: when picking struts or delete bond or measure, distance shows as per usual measurement
· bug fix: Popup Menu item hbond calculate should not require PDB
February 13th, 2012· bug fix: SLAB unit cell not showing all lines
· bug fix: CRYSTAL reader needs to change to MOLECULAR when X(ANGSTROMS) found (fullerene slab)
· bug fix: Popup Menu item hbond calculate should not require PDB
January 31st, 2012· bug fix: state after frame RANGE or frame 0 not saved properly (state saves "frame all" instead of "frame 0")
· bug fix: frame n does not work properly after load APPEND
· bug fix: measurement units may appear as full word "nanometers" instead of "nm"
· bug fix: user bindings do not access _atomPicked
· -- solution is to add _ATOM _BOND _POINT _OBJECT to user binding actions
January 24th, 2012· bug fix: user bindings do not access _atomPicked
· -- solution is to add _ATOM _BOND _POINT to user binding actions
· bug fix: getProperty("bondinfo",[{13}]) gets info for atom 13 instead of bond 13
· bug fix: bind xxx _select does not work in conjunction with bind yyy _atomPicking
· bug fix: {*}.atomno and related expressions broken
· bug fix: isosurface offset does not change boundbox or zoom/center points
January 24th, 2012· bug fix: user bindings do not access _atomPicked
· -- solution is to add _ATOM _BOND _POINT to user binding actions
· bug fix: getProperty("bondinfo",[{13}]) gets info for atom 13 instead of bond 13
· bug fix: isosurface offset does not change boundbox or zoom/center points new feature: isosurface SCALE extends to volume file readers
· new feature: zoom $isosurface1 0 -- scales to match isosurface boundbox
· note to Bob: jpe needs update of img/blank.js js/top_buttons.js htm1/quickvs.js,qv_msgs.js molview/JmolAppletSigned.jar
January 15th, 2012· bug fix: symmetry popup submenu not enabled
· bug fix: show spacegroup not working
· bug fix: lcaocartoon for allene central carbon py incorrect
· bug fix: antialiasdisplay (and image writing) not compatible with scaleAngstromsPerInch
· bug fix: last group of protein cartoon will not display if it is not helix and not sheet
· bug fix: getproperty MENU does not work
· bug fix: PDB reader of multiple-bond files with duplicated bonds does not ignore duplicate
January 15th, 2012· bug fix: show spacegroup not working
· bug fix: lcaocartoon for allene central carbon py incorrect
· bug fix: antialiasdisplay (and image writing) not compatible with scaleAngstromsPerInch
· bug fix: cannot write JPG images
· bug fix: last group of protein cartoon will not display if it is not helix and not sheet
January 11th, 2012· new feature: plot ramachandran -- now those points .phi and psi return values
· load 1crn.pdb;plot ramachandran;print {2.1}.psi
· new feature: LOAD .... filter "reverseModels"
· does just that
· for IRC calculation transition state -> minimum reversal
· new feature: measures "2:%VALUE %UNITS//xx"
· where xx is a specified unit such as nm or Angstroms
· overrides set measurementUnits
· fixes state problem when units or labels are changed after measurements are made
· operates on selected measurements only (or all, if no measurements are selected)
· bug fix: frame 0 during animation can cause exception
· bug fix: changes in defaultDistanceLabel not always preserved in state correctly
· bug fix: parameters can be set to invalid values using xxx = ... instead of set xxx ...
· bug fix: (Application) proper Edit...Preferences dialog action
January 3rd, 2012· bug fix: changes in defaultDistanceLabel not always preserved in state correctly
· bug fix: parameters can be set to invalid values using xxx = ... instead of set xxx ...
· bug fix: (Application) proper Edit...Preferences dialog action
December 22nd, 2011· bug fix: script @{x} fails
· bug fix: lcaoCartoon dual color p orbitals giving white for one lobe
· bug fix: after "ZAP; LOAD append" show orientation will have incorrect zyz script
· bug fix: function call with @x or @1 in parameters fails
· bug fix: H5T should not be used as a lead atom ever, because of set showHydrogens FALSE
· bug fix: adding H atoms to mol2 file faulty
December 22nd, 2011· new feature: _animTimeSec
· new feature: Application -- press and hold animation next/prev button to continuously run animation
· new feature: write PDB adds CONECT records
· for all multiple bonding and all HETATM bonds
· uses CONECT i j j to indicate multiple bonding
new feature: compare {from} {to} FRAME:
· aligns frames automatically
· particularly nice for IRC calculation animations
· for example: compare {file=2} {1.1} FRAME
· can be followed by quaternion, atom, or SMILES options
· for example: compare {file=2} {1.1} FRAME ATOMS @1 @5 @2 @8 @3 @9(all of file 2 atoms moved) file 2 atoms 1,2,3 aligned with file 1.1 atoms 5,8,9)
if {to} is a subset of {from}, then FRAME is unnecessary, and if ATOMS is included, then just the list of alignment atoms is necessary. For example:
· compare {*} {1.1}
· compare {*} {1.1} atoms @1 @2 @3
· bug fix: script @{x} fails
· bug fix: Molecular Playground should allow for set allowGestures OFF to disallow swipe
· bug fix: lcaoCartoon dual color p orbitals giving white for one lobe
· new feature: set echo myecho SCALE 0.3 -- for image scaling
· bug fix: after "ZAP; LOAD append" show orientation will have incorrect zyz script
· bug fix: function call with @x or @1 in parameters fails
· bug fix: PNGJ reading remote fails
· bug fix: H5T should not be used as a lead atom ever, because of set showHydrogens FALSE
· bug fix: adding H atoms to mol2 file faulty
· bug fix: load xxx.png;write PNGJ xxx.png (to same file as loaded) fails
December 13th, 2011new 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{...}
December 12th, 2011bug 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{...}
December 5th, 2011· new feature: MolecularPlayground -- remote status and remote control
· set topic, subtopic, delay from a web page
· set banner and image for website from Jmol
· new feature: load("http://.....?POST?_PNG_") or load("http://....?POST?_PNGJ_")
· sends PNG or PNGJ image to server
· return value is whatever server is set up to send
· used by MolecularPlayground at St. Olaf to send current state to web server
· new feature: polyhedra FULLYLIT -- useful for zeolites along with COLLAPSED
· new feature: ZMATRIX upgraded to allow all forms of Gaussian input
· bug fix: set picking DRAW does not work on polygon sets
· bug fix: set picking DRAW does not report position change
· bug fix: MPJmolApp (Molecular Playground) problems when navigation is on
· bug fix: CifReader (molecular type, with GEOM_BOND records) adds
· extra atoms when embedded in JMOL or PNGJ file or part load FILES command
· bug fix: PdbReader -- crystallographic non-PDB files not checking special positions
December 5th, 2011· bug fix: set picking DRAW does not work on polygon sets
· bug fix: set picking DRAW does not report position change
· bug fix: CifReader (molecular type, with GEOM_BOND records) adds
· extra atoms when embedded in JMOL or PNGJ file or part load FILES command
· bug fix: PdbReader -- crystallographic non-PDB files not checking special positions
November 29th, 2011· bug fix: show orientation shows incorrect zyz format if reset uses file-based orientation matrix (smol, Sygress)
· bug fix: isosurface plane xy map mep
· code: MPJmolApp work
· bug fix: user variables should not be rest by INITIALIZE in an spt file
· new feature: "Write PNG+JMOL" added to application and signed applet menu
· code: dispensing with InputStream in favor of BufferedInputStream
· new feature: write PNGJ
· -- creates a PNG file with appended JMOL (zip) data containing
· all necessary files, MANIFEST, and script file.
· -- viewable in directories as an "icon" and readable by image readers
· -- draggable back into Jmol and readable using LOAD
-- PNG file includes:
· -- iTXt field "Jmol Type\0PNGJxxxxxxxxx+yyyyyyyyy"
· where xxxxxxxxx is a pointer to the ZIP data
· yyyyyyyyy is the number of ZIP data bytes
· -- iTXt field "Software\0Jmol 12.3.7 2011-10-11 15:30"
· -- iTXt field "Creation Time\0Tue, 24 Nov 2011 19:56:10 -0600"
· -- yyyyyyyyy bytes of .JMOL zip data
· -- show FILE "xxx.PNG" will show list of contained files.
· -- show state FILE "xxx.PNG" will extract state
· -- show FILE "xxx.PNG|1crn.pdb" for example will extract file
· bug fix: x3d/vrml outputting unnecessary spheres
· -- bond caps within opaque atoms removed (not precisely correct to do that)
· bug fix: minimization broken
· bug fix: contact still not quite right -- setting default to +0.0 instead of +0.25
· new feature: simple Z-Matrix reader
· -- invoked by ZMATRIX:: or file starting with #ZMATRIX
-- lines starting with # are comments, which can contain jmolscript:
· -- blank lines are ignored
· ZMATRIX -- methane
· 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
November 29th, 2011· bug fix: show orientation shows incorrect zyz format if reset uses file-based orientation matrix (smol, Sygress)
· bug fix: isosurface plane xy map mep
· bug fix: user variables should not be rest by INITIALIZE in an spt file
· bug fix: x3d/vrml outputting unnecessary spheres
· -- bond caps within opaque atoms removed (not precisely correct to do that)
· bug fix: minimization broken
· bug fix: contact command hbond/clash cutoff not sensitive to H-O/N vs O/N-O/N
· -- set to -1.2 for H-N/O, -1.0 for N/O-N/O
· bug fix: contact command default probe radius should be 0.0 except for VDW (0.25)
November 20th, 2011· new feature: load files "xxx.tlsout" "xxxx.pdb"
· -- loads REFMAC-style TLS data into xxxx.pdb
· new feature: contact SASURFACE
· -- ignores solvent (as does CAP)
· bug fix: contact command hbond/clash cutoff not sensitive to H-O/N vs O/N-O/N
· -- set to -1.2 for H-N/O, -1.0 for N/O-N/O
· bug fix: contact command default probe radius should be 0.0 except for VDW (0.25)
· bug fix: minimize constraint CLEAR broken
· bug fix: constraints not reported in show minimization
· bug fix: set measures off broken
· bug fix: contact color density broken
· bug fix: contact volume report not correct for color density
· bug fix: MO HOMO not set properly when using LUMO = "lowest E > 0" (GAMESS-US reader)
· bug fix: zSlab settings not stored properly in parameters; should have default zSlab = 50
November 20th, 2011· bug fix: minimize constraint CLEAR broken
· bug fix: constraints not reported in show minimization
· bug fix: set measures off broken
· bug fix: contact color density broken
· bug fix: contact volume report not correct for color density
· bug fix: MO HOMO not set properly when using LUMO = "lowest E > 0" (GAMESS-US reader)
· bug fix: zSlab settings not stored properly in parameters; should have default zSlab = 50
November 15th, 2011· new feature: color isosurface PHASE color1 color2
· -- allows post-isosurface creation coloring by phase (atomicOrbitals)
· bug fix: isosurface scale 0.5 plane... broken if no atoms present
· bug fix: isosurface color density broken
· bug fix: set PdbAddHydrogens does not transfer C atomSymmetry to H atoms
· bug fix: contact() function not working when typed from console
· bug fix: set axesOrientationRasmol not working properly (since 11.5.51)
· code: org.jmol.modelsetbio.BioModel localizes more bio-only code into modelsetbio package
· code: removal of org.jmol.modelset.Polymer
· code: refactoring and organizing RepaintManager and ShapeManager
November 15th, 2011· bug fix: isosurface scale 0.5 plane... broken if no atoms present
· bug fix: isosurface color density broken
· bug fix: set PdbAddHydrogens does not transfer C atomSymmetry to H atoms
· bug fix: contact() function not working when typed from console
· bug fix: set axesOrientationRasmol not working properly (since 11.5.51)
· bug fix: frame x.y - y.z not working
November 8th, 2011· bug fix: frame x.y - y.z not working
· bug fix: with antialiasDisplay, dragMolecule goes 1/2 speed of cursor
· bug fix: nucleic acid residues with HO5' may render last group strangely (since 12.0.RC16, 6/6/2010)
· bug fix: workaround for weird Mac Point3i(Point3i pt) class initializer bug
· bug fix: array.bin(low,high,binSize) not documented and can cause exception
· bug fix: MO readers can fail if inappropriate filter "TLS" is given
· bug fix: PDB TLS error reading TLS data missing "NUMBER OF COMPONENTS" line
November 5th, 2011· bug fix: with antialiasDisplay, dragMolecule goes 1/2 speed of cursor
· bug fix: nucleic acid residues with HO5' may render last group strangely (since 12.0.RC16, 6/6/2010)
· bug fix: workaround for weird Mac Point3i(Point3i pt) class initializer bug
· bug fix: MO readers can fail if inappropriate filter "TLS" is given
· bug fix: array.bin(low,high,binSize) not documented and can cause exception
October 31st, 2011· bug fix: CRYSTAL reader not properly setting model properties
· bug fix: userFunction(x,@y) should operate as per all math
· parens - value of variable pointed to by y
· x = myfunc(x, @y) same action as just myfunc(x, @y)
· bug fix: userFunction x @y
· no parens - should operate as value of x and value of y
· @ is unnecessary but allowed
· bug fix: reading of JVXL files for color density fails to color properly
· bug fix: .... vdw 100.0% --- should be OK with float there, even if it rounds.
· bug fix: load append twice can cause zap to be in wrong place in state file
· bug fix: for (x IN {*}) ... makes x a bitset and leads to array[1] for x.atomName
· bug fix: for (x IN {*}.bonds) does not work
October 31st, 2011new 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
October 17th, 2011· bug fix: POV-Ray export of cartoons broken
· bug fix: script javascript:xxxx() broken
October 14th, 2011· bug fix: SMILES comparison when the number of stereocenters is not the same is wrong
· new feature: compare("XXX","XXXX","ISOMER") comparison now includes "AMBIGUOUS STEREOCHEMISTRY!"
· code: popup/modelkit refactoring to isolate awt/Swing references
· bug fix: connection deletion removes all measurements
· bug fix: H2,H3 connected to terminal N of protein not backbone
· bug fix: select PROTEIN selects non-PDB atoms
· bug fix: Molden reader does not read "Sym=X" (missing space after '=')
· bug fix: Molden reader does not read angstrom units
· bug fix: color isosurface {atomset} does not work if isosurface has not already been mapped.
· bug fix: PDB reader not reading Rasmol-style files with multiple bonding
· CONECT 1 2 2
· or
· CONECT 1 2
· CONECT 1 2
· means for Rasmol double bond between atoms 1 and 2
· bug fix: Molden file reader error with [5D] flag before [GTO]
October 12th, 2011· bug fix: H2,H3 connected to terminal N of protein not backbone
· bug fix: select PROTEIN selects non-PDB atoms
· new feature: CASTEP reader (take 2)
· reads Mulliken files by default, Hirshfield with filter "CHARGE=HIRSH"
· reads spins into {*}.property_spin. label is %[property_spin]
· reads Born charge tensors as atom ellipsoids
· bug fix: Molden reader does not read "Sym=X" (missing space after '=')
· bug fix: Molden reader does not read angstrom units
· bug fix: color isosurface {atomset} does not work if isosurface has not already been mapped.
· bug fix: PDB reader not reading Rasmol-style files with multiple bonding
· CONNECT 1 2 2
· or
· CONNECT 1 2
· CONNECT 1 2
· means for Rasmol double bond between atoms 1 and 2
· code: experimenting with fragmentation of applet core classes into _1b, _1c, _1d, _1e, _1f
October 4th, 2011· bug fix: MO overlaying orbitals
· bug fix: PDB reader not reading Rasmol-style files with multiple bonding
· CONECT 1 2 2 means for Rasmol double bond between atoms 1 and 2
· 224 new features
summary of feature changes between Jmol 12.0 and 12.2:
· FEATURE CHANGE: "ligand" definition changed to!(protein,nucleic,water,UREA)"
· instead of "hetero and not solvent"
· FEATURE CHANGE: default zShadePower set to 3
· FEATURE CHANGE: undocumented a[13] = 3 (where a is a matrix, for a[1][3]) removed
· FEATURE CHANGE: DSSP default for "calculate structure"-- old way is now "calculate structure RAMACHANDRAN"
· FEATURE CHANGE: DSSP default for LOAD of PDB file with no header.
· in previous versions, Jmol used a ramachandran-angle-based calculation for secondary structure determination when a PDB file had no HELIX or SHEET records.It just seems reasonable to use the industry-standard DSSP method instead.
· new feature: JmolSmilesApplet method (smiles1)
· new feature: JmolSmilesApplet method getRelationship(smiles1, smiles2)
· new feature: The Jmol application can now communicate via socketswith other Jmol applications or specialized servers.
· The SYNC command has been expanded to make this very easy: sync -nnnn starts a server on local port nnnn accepting only local connectionssync nnnn "background white" (from another app, generally) would execute thatcommand on the app acting as a server You can also do this from one app frame to another, because they are independentinstances of Jmol.
· Jmol can provide server service to other apps using: sync -3000[start other app, connecting on 3000]sync 3000 ..... Because once the server is started and another app has connected,Jmol will send messages to that other app, not itself. To test the service within one application, just create the server and sendcommands to itself using a negative port number: sync -3000;sync -3000 'Mouse: rotateZBy 30'
· Note that in this context the "server" is the one getting commands from the "client"But the server can also send commands to the client provided the client has given theappropriate handshake: {"magic":"JmolApp","event":"out"} Sent from Jmol (via outSocket): {"magic" : "JmolApp", "role" : "out"} (socket initialization for messages TO jmol){"magic" : "JmolApp", "role" : "in"} (socket initialization for messages FROM jmol){"type" : "script", "event" : "done"} (script completed) Sent to Jmol (via inSocket): {"type" : "banner", "visibility" : "ON" or "OFF" } (set banner for kiosk){"type" : "banner", "text" : bannerText } (set banner for kiosk){"type" : "command", "command" : command } (script command request){"type" : "content", "id" : id } (load content request){"type" : "move", "style" : (see below) } (mouse command request){"type" : "quit" } (shut down request){"type" : "sync", "sync" : (see below) } (sync command request){"type" : "touch", (a raw touch event)"eventType" : eventType,"touchID" : touchID,"iData" : idata,"time" : time,"x" : x, "y" : y, "z" : z } For details on the "touch" type, see org.jmol.viewer.ActionManagerMT::processEventContent is assumed to be in a location determined by the Jmol variablenioContentPath, with %ID% being replaced by some sort of ID number of tag provided bythe other half of the system. That file contains more JSON code: {"startup_script" : scriptFileName, "banner_text" : text }
· An additional option "banner" : "off" turns off the title banner.The startup script must be in the same directory as the .json file, typically as a .spt file
· Move/sync commands include: {"type" : "move", "style" : "rotate", "x" : deltaX, "y", deltaY }{"type" : "move", "style" : "translate", "x" : deltaX, "y", deltaY }{"type" : "move", "style" : "zoom", "scale" : scale } (1.0 = 100%){"type" : "sync", "sync" : syncText }
· Note that all these moves utilize the Jmol sync functionality originally intended forapplets. So any valid sync command may be used with the "sync" style. These includeessentially all the actions that a user can make with a mouse, including thefollowing, where the notation represents a number of a given type. Theseevents interrupt any currently running script, just as with typical mouse actions. "centerAt "-- set {ptx,pty,ptz} at screen (x,y)"rotateMolecule ""rotateXYBy ""rotateZBy ""rotateZBy " (with center reset)"rotateArcBall ""spinXYBy "-- a "flick" gesture"translateXYBy ""zoomBy ""zoomByFactor ""zoomByFactor " (with center reset)
· new feature: preliminary QuantumEspresso XML readernew feature: Jmol Application flags -k and -P-- -k kiosk mode: like applet, but with a banner across the top-- -P JSON NIO client mode over port -- for JSON NIO, use -J or -j to set nioContentPath and nioTerminatorMessageto the desired values. For example:Jmol -k -P 31461 -j "nioContentPath='./%ID%/%ID%.json';nioTerminatorMessage='SCRIPT_DONE'"
· new feature: Jmol.js adds jmolSwitchToSignedApplet().This needed a new tag that is now inserted around the applet.
· new feature: filter "_Xx" for filtering element Xxbug fix: MO SLAB n never implemented
· bug fix: MOLDEN reader not reading spherical basis functions
· bug fix: contact command not symmetricSet A should generally be the ligand. However, consider note:// check for O--H...N or O...H--N and not considering// hydrogens and still have a filter// a bit of asymmetry here: set A may or may not have H atoms added.// This is particularly important for aminesThe issue here is that we do not assume that hydrogens have beenadded to ligands. So we make some allowances there.
· bug fix: SMILES [#6]-[#6] should not match bonds in benzene, only biphenyl
· bug fix: in SMARTS matching of SMILES string, aromatic ring conditions were not matched
· bug fix: null pointer exceptions when model with unit cell is appended to model without unit cell
· bug fix: CIF reader not implemented with filter "CONF n"
· bug fix: unit cell not turned off in state for PDB files loaded with biomolecule
· bug fix: mo points 1000 brokenbug fix: xxx = {*}; xxx.property_x = 3 improperly parsed as a script commandbug fix: getproperty minimizationInfo returns JSON instead of readable string
· bug fix: JaguarReader not reading D6 MOs properly code: all references to java.awt and javax.swing isolated toorg.jmol.awt, rg.jmol.export, and org.jmol.multitouchcode: refactored Jmol core Swing classes restricted toapplet, console, export, modelkit, multitouch, popupTODO: Question about what c=c should do. For now, changing that to NOT match C=C of benzene
September 21st, 2011· bug fix: SMILES [#6A] and [#6a] should be distinct
· bug fix: load SMILES should not allow 2D return
· bug fix: load SMILES not saved properly in state
· bug fix: set isosurfaceKey not displaying key for planar contour plot
· bug fix: GAUSSIAN reader cannot read MOs when more than 1000 orbitals
· new feature: CASTEP reader for .md and .geom trajectories
· bug fix: atomic orbitals should be assigned 0 if |psi| < 1e-7
· bug fix: load TRAJECTORY does not assign model names
· new feature: load TRAJECTORY now loads vibrations as trajectories
September 13th, 2011· bug fix: load PACKED SUPERCELL produces redundant atoms
· new feature: transparent background PNG images with WRITE PNGT xxxx.png
· -- set ANTIALIASEIMAGES false to avoid slight trim issue
· -- use an unusual color, such as [x010101] for the background # new feature: preliminary CASTEP .phonon frequency file reader # -- preliminary only
· -- reads q=0 and q#0 points
· -- use load ... SUPERCELL to select out a specific q-point
· -- for example: load c60.phonon {1 1 1} SUPERCELL {2 1 2}
· will select for q = (0.5 0 0.5) # load c60.phonon -5 {1 1 1} SUPERCELL {2 1 2}
· and only mode 5 for q = (0.5 0 0.5)
· load c60.phonon -5 {2 2 2} SUPERCELL {-4 1 2}
· eight supercells; mode 5 only for q=(-0.25 0 0.5)
· new feature: unitcell {xxx yyy z} where z is negative fills entire (standard) xxx yyy space with unit cells of size z
· bug fix: AtomSetChooser set up too late -- can override embedded jmolScript vibration/vector scale commands
· bug fix: set naviationPeriodic while navigating should disallow unit cell and standard axes
· bug fix: MO LIST broken
· bug fix: linear combination of MOs broken in 12.1.49
· new feature: forgotten feature: load "xxxx.xxx" [ list of models to load ]
· -- for example: load "cyclohexane_movie.xyz" [ 1 6 11 26 ]
· new feature: set minPixelSelRadius
· bug fix: Crystal reader not handling CONV option properly
· bug fix: CIF reader not reading isotopes such as D and T
· new feature: CRYSTAL reader reads property files for tensor quantities
· -- displayed as ELLIPSOID
· -- note that scale is set using ELLIPSOID N where N is a percent; default 50; max 100
· bug fix: load slab/polymer with PACKED does not work
· new feature: unitcell {xxx yyy scale}
· -- allows for display of a block of unit cells in 444 555 notation
· -- cleared by unitcell {0 0 0}
· feature change: contact full/trim returned to simpler original non-paired idea bug fix: imines SMILES may cause null pointer exception
· bug fix: SOE added to carbohydrate list (L-sorbose in pyranose form; SOL is the open form, 3AI3.pdb) bug fix: setting DOTS off can cause null pointer exception
· bug fix: saving state of contact broken
· bug fix: contact SLAB n not working
· bug fix: deleting of the first model in a set that has load APPEND will not produce the correct state
· bug fix: deletion of models having atoms with dots can generate null pointer exception
· bug fix: QuantumEspresso reader not reading ALAT/A_0 files correctly
· bug fix: measurements, picking not allowed to FIXED atoms
· bug fix: (contact) ligand nitrogens not protonated and become hbond acceptors
· -- solution for now is to consider all N/O HETATM atoms "ambiguous"
· new feature: UNDO/REDO
· -- console-only commands same as buttons
· -- full file reload (saving of full state)
· bug fix: undocumented "redo" "undo" application-only commands changed to "redocmd" "undocmd"
· new feature: undoMove/redoMove
· -- script commands
· -- act like CTRL-Z/(CTRL-SHIFT-Z or CTRL-Y)
· -- just move atoms; no file loading (just atom positions saved) UNDOMOVE/UNDOMOVE 1
· undo last movement
· UNDOMOVE n
· undo last n movements
· UNDOMOVE 0/UNDOMOVE ALL
· undo all movements
· REDOMOVE/REDOMOVE 1
· redo last movement
· REDOMOVE n
· redo last n movements
· REDOMOVE 0/REDOMOVE ALL
· redo all movements
· UNDOMOVE -1
· clear UNDO history
· REDOMOVE -1
· clear REDO history
· REDOMOVE -2/UNDOMOVE -2
· clear both histories
September 13th, 2011· bug fix: "$phosphorus pentoxide" label %[shape] indicates AX4E not AX4 hybridization on phosphorus
· new feature: set isosurfaceKey ON|OFF
· -- creates a vertical hoverable key on the left
· -- only the most recent and visible isosurface
· -- is not exported
· bug fix: show colorscheme "high" causes exception
September 13th, 2011· bug fix: setting a timeout should reset the timer of a running timeout with the same ID
· bug fix: contact translucent carries over to next contact command
· bug fix: modelKit increase/decrease charge not working
· bug fix: show SMILES|CHEMICAL NAME broken
· bug fix: for(x in...) where x is not defined causes exception
· bug fix: CONTINUE in switch within for or while loops infinitely
· bug fix: zap; load append ... ignores the zap!
· new feature: selection of surfaces in SurfaceTool
September 13th, 2011· bug fix: color broken in 12.2.RC2
· bug fix: isosurface pmesh INLINE broken
· bug fix: 1jgq phosphorus-only default rendering disabled
September 13th, 2011· FEATURE CHANGE: "ligand" definition changed to !(protein,nucleic,water,UREA)"
· instead of "hetero and not solvent"
· new feature: contact VDW shows clash-contacts with equal-volume
· -- combination with CLASH gives bulls-eyes -- plane only
new feature: real-time docking with visual scoring test:
· set pdbAddHydrogens
· load caffeine.xyz;load append 1crn.pdb # frame *
· select protein;wireframe only
· select none
· set picking dragMolecule
· timeout "t1" -1000 "contact {selected} {!selected} color type"
· bug fix: select deuterium, HOH, _1H, _H1 isotope business messed up
· bug fix: timeouts not waiting for their own completion
· bug fix: !quit not interrupting timeouts
· bug fix: command line -M sparshui not working
· bug fix: isosurface color density not picking up last yz points
· bug fix: 12.2.RC1 doesn't allow for isosurface color XXX t.jvxl
· bug fix: Old legacy Chime *.C for _C in non PDB files -- only when one model, and it is not a PDB file
· new feature x = compare({1.1}, {2.1}, "MAP", {1.1}.find("smiles"))
· -- MAP returns a set of correlations between set 1.1 and set 2.1 based on the given smiles string
· -- format is an array of arrays of [i,j]
· bug fix: setting VDW radius after creating isosurfaces or contacts should delete that
· surface if set of atoms involved in surface intersects set of changed vdw radii bug fix: H-bond contact to water O categorized as clash
· bug fix: MO for multi-model file does not save state properly
· bug fix: GROMACS reader should not use sorbital group 3 name SOL for water -- changed to WAT
· bug fix: SOL considered solvent, but is sorbitol; SOL added to carbohydrate list instead
· code: better-protected Binary Sorted Tree Forest invalidation
· code: enum class for Structure # code: enum class for Vdw and RadiusData
· code: enum class for file load state # code: enum class for color palettes code: enum class for stereoMode # code: enum class for animationMode code: enum class for quantum shells -- less than ideal!
· code: enum class for draw
· code: enum class for Callbacks
· -- NOTE: THIS AFFECTS ALL EMBEDDED APPLICATIONS
· -- WITH CALLBACKS (in a good and simple way!) # code: enum class for axes modes
September 13th, 2011· new feature: Surface Tool now does capping. Surface Tool layout rearrangement.
· new feature; CONTACT command -- generates contact surfaces
· CONTACT {setA} {setB} [contact options] [contact type] [display option] [display type] [color options]
where we have:
· {setA} the only required parameter, the set of atoms around which to show contacts
· {setB} the surrounding set (default: "all other atoms in this model")
· [contact options]
· within # resolution # +/-x.x #
· intermolecular
· intramolecular
· parameters [cutoff,....] # [contact type]
· hbond
· clash
· vdw
· nci
· [display options]
· slab ....
· minset
· [display type]
· full
· trim
· plane
· connect
· cap
· surface
· [color options]
· color
· (color) DENSITY
· color TYPE
· --examples
· contact {ligand}
· contact {ligand} color type
· contact {:A} {:B}
· contact {2001:A} NCI
· new feature: set VDW JMOL --- resets any user-set vdw radii
· new feature: set VDW PROBE --- sets VDW radii as follows
· as per Word, et al, J. Mol. Biol. (1999) 285, 1711-1733
· {_H}.vdw = 1.0;
· {_H and connected(_C) and not connected(within(smiles,'[r6]'))}.vdw = 1.17; {_C}.vdw = 1.75; {_C and connected(3) and connected(_O)}.vdw = 1.65; {_N}.vdw = 1.55; {_O}.vdw = 1.4; # {_P}.vdw = 1.8;
· {_S}.vdw = 1.8;
· new feature: zoom 0 default for
· bug fix: H atom attachment fixed at 1.1 Angstroms, which is fine for C, but
· a bit high for O,N (1.0) and low for third row (1.3)
· bug fix: isosurface parameters @x does not work even when x is an array new feature: ISOSURFACE Kinemage file reader (for contact/clash dots) -- colors are set from the kin file
· parameters [cutoff, valueMin, valueMax, pointType]
· -- valueMin -- minimum value to display
· -- valueMax -- maxiumum value to display
· color.equals("greentint") ? 4f H-bond # : color.equals("blue") ? 0.35f wide contact : color.equals("sky") ? 0.25f almost wide contact : color.equals("sea") ? 0.15f close contact # : color.equals("green") ? 0.0f contact # : color.equals("yellowtint") ? -0.1f small overlap: color.equals("yellow") ? -0.2f small overlap # : color.equals("orange") ? -0.3f small overlap : color.equals("red") ? -0.4f almost bad overlap : -0.5f); bad overlap
-- pointType:
· 0 all points
· 1 'M' {McMc contacts}
· 2 'S' {ScSc contacts}
· 3 'P' {McSc contacts}
· 4 'O' {Hets contacts}
· -- dot size controllable via "set dotscale"
· -- example: # # isosurface 2bxaH-multi.kin
· all overlaps
· isosurface parameters [0 -1 -0.1] 2bxaH-multi.kin
· just non-H-bond overlaps
· isosurface slab within 3.0 {2001:A}; display group contact(2001:A); zoom {displayed} 0
· bug fix: for(y in x) when x is an array can give odd results when y[i] is then used
· bug fix: ++ipt not working
· new feature: slab/cap for MO # new feature: contact() function
· -- selects atoms with VDW overlap
· -- examples: display group contact(2001:A)
· groups involving contacts at vdw 100%
· select contact(110, 2001:A)
· just the atoms in contact at vdw 110%
· print contact(0.4, {2001:A})
· vdw + 0.4
· print contact(0.4, {2001:A and _O}, {_N})
· specific cross-interactions
· bug fix: zap of model with measurements causes exception
· bug fix: DATA "append @xxx" fails
· bug fix: MOL-2D files loaded then saved to PNG do not reload hydrogen atoms
· new feature: getProperty ligandInfo
· -- treatment of ligands as individually covalently bonded units
· INDEPENDENTLY of how they are bonded to other atoms such as proteins # -- delivers a Hashtable
· "ligands" ArrayList
· "reslist" "2001-2003:A/1.1" # "atoms" ({....})
· "groupNames" "NAG-NAM-NAG"
· new feature: Surface Tool GUI -- just slicing so far and does all surfaces rather then selected.
· Many angle units (degree, radians, gradians, fraction of circle, factors of pi -- pmesh and isosurface slicing
· -- adjustments to generalize what can be sliced.
· new feature: select within(x.x, VDW, aaaa)
· -- selects atoms that have overlapping VDW surfaces with set aaaa
-- if x.x is present, BOTH interacting atom radii are adjusted:
· -- if x.x > 10, then this is assumed to be a percent, such as 110%, 100%, 90%
· -- if x.x will now turn isosurface opaque first
· -- isosurface slab translucent without a color ---> will now take on current color of isosurface rather than white
· -- color isosurface translucent of translucent-slabbed isosurface will remove ALL slabbing
· bug fix: WebExport not getting Jmol Icon for title bar.
· bug fix: PDB reader may read bfactors off by 0.01
· bug fix: NWChem reader without input deck but with frequencies fails to load bug fix: 12.1.51 breaks isosurface... colorscheme...
· bug fix: 12.1.51 breaks mo reading from Chem3D XML, which was not working anyway, but now is. # bug fix: isosurface slab -@xxxx... will negate variable xxxx if it is a plane # bug fix: contact {setA} {setB} should not allow overall of setA and setB unless NCI.
· bug fix: contact FULL set to minimum resolution 10 (pairwise)
· bug fix: isosurface intersection .... function "..." ignores function and just does "a-b"
· bug fix: SUBSET command not resetting properly
· code: super-fast "micro-isosurface" merging for CONTACT. Wow!
· -- set pdbAddHydrogens; load =2bxa; contact {:A} {:A}
· -- merges 2341 microisosurfaces in 325 ms on BH laptop!
· code: fast pointilist atomic orbitals.
July 21st, 2011· bug fix: try {} does not pass VAR variables into its context.
· bug fix: PovRAY starting with antialiasDisplay does not work properly.
· bug fix: isosurface ORBITAL slightly off in probability -- at the cost of speed
· uses abs(PSI) not PSI^2 for probability -- this is not quite right
· adding option SQUARED to use PSI^2 instead -- but this may take a LONG time to process
· bug fix: catch(err) not setting variable "err"
· bug fix: select within(@n,...) does not work (distance implied)
· bug fix: probability "pointilist" atomic orbitals (isosurface ORBITAL 3 2 1 points 10000) does not predict max value close enough
· bug fix: important to temporarily set pdbAddHydrogens OFF for state being read without "set pdbAddHydrogens" command ("pdbNoHydrogens in htParams)
· bug fix: isosurface mapping of properties will not be smoothed well due to "fix" in 12.1.50
· bug fix: writing state for isosurfaces that span multiple frames will fail to display isosurface when reloaded
· bug fix: no slabbing for atomic orbitals; not saving phase color for atomic orbitals
· new feature: isosurface slab TRANLSUCENT 0.6 red x=3
· translucent slabbing
· JVXL, PovRay, state -- done
· TODO: isosurface vdw map mep; isosurface slab none slab translucent 0.6 within range 0 -0.05
· TODO: load =1hiv
· select protein
· color yellow
· wireframe only
· contact resolution 8 {[1zk]} {![1zk]} cap
· contact slab translucent 0.1 red within range -100 0
· bug fix: CIF file reading may miss molecules in highly angled triclinic systems.
· bug fix: over 2047 colors can overrun colix storage
· TODO: probably should make those integers so this does not happen.
· new feature: with slab ON, the right-side zooming runs the slabbing plane, same as (ALT_CTRL_SHIFT_LEFT)
· bug fix: CML files with atoms starting with both aNN and aNN_ will not bond correctly
· new feature: contact CAP (for Art Olson)
· new feature: isosurface ... COLORSCHEME (or just COLOR) TO n
· new feature: color isosurface TO n
· for example, isosurface molecular map property atomno colorScheme red to white
· optional n defaults to 35 distinct colors
· bug fix: polyhedra on/off does not work.
· new feature: drag/drop into application offers resize option (# preferredWidthHeight in state script)
· new feature: plane({three-atom atomset})
· new feature: "@" for "atomno="
· both in Jmol math and atom expressions
· select @42 or @52
· print @42.xyz
· @42.xyz = {1,2,3}
· new feature: {atomset}.x?
· creates an associative arraay of atom properties with names starting with "x"
· print @1.? lists ALL atom properties
· print {atomno < 3}.? creates an associative array of arrays
for example:
· $ load caffeine.xyz;print @1.atom?
· atomID:0
· atomIndex:0
· atomName:H1
· atomType:H1
· atomX:-3.380413
· atomY:-1.1272367
· atomZ:0.5733036
· atomno:1
· $ show @{{atomno < 3}.atomn?}
· { "atomName":["H1","N2"], "atomno":[1,2] }
· new feature: set measurementUnits VDW
· percent VDW (in relation to sum of two VDW radii)
· new feature: select/display/hide [ADD|REMOVE] ...
· must be first parameter
applies appropriate logic:
· "select ADD" means "select selected or"
· "display REMOVE" means "display displayed and not"
· new feature: select/display/hide GROUP
· applies within(group,...) to the expression
· similar to the PyMOL "byres" option
· must be first parameter, unless ADD|REMOVE present, then must be second parameter
examples:
· display add group @22
· select remove group picked
· new feature PICKED variable
· accumulates recently picked atoms into a set
· cleared using "SET PICKING"
· may be set/cleared by user
· new feature: select within(VDW, aaaa)
· selects atoms that have overlapping VDW surfaces with set aaaa
· using "VDW_nnn" where nnn is a percent uses that VDW surface
· new feature: measure {aaaa} {bbbb} vdw nnn%
· intermolecular by default
· adjustable size
· new feature: measure INTRAMOLECULAR ....
· only measure intramolecular distances
· new feature: measure INTERMOLECULAR ....
· only measure intermolecular distances
· new feature: set ligandLoadFormat
· new feature: set pdbAddHydrogens
· for file loading
· adds 3 H to terminal N of chains.
· adds hydrogens to ALL groups, including HET groups
· unlike PDB2PQR, then, ligands are properly shown
· also adds all multiple bonds to PDB files
· for altlocs you should use load option FILTER "CONF 1" (or some other specific configuration)
· atom numbers are appended to maximum number in file
· new feature: CIF reader for Ligand CIF files (e.g. http://www.rcsb.org/pdb/files/ligand/AMU.cif)
· new feature: calculate HYDROGEN now works for standard amino acids and nucleic acids
· adds "GROUP" option to connect -- puts new atoms in group of previous
· saves connection in state with negative first atom -- indicating that we need to assign the group
· new feature: CONTACT {xxx} TRIM
· new feature: CONTACT {xxx} MISC, and redefinition of HYDROPHOBIC
· new feature: CONTACT {xxx} VDW
· just maps a VDW isosurface with distances to another VDW isosurface
· new feature: LOAD command reports header/title for PDB files
· specifically when scriptLevel = 0 (typed entry)
· new feature: isosurface SLAB OFF -- for SLAB n, this turns that slabbing off.
· new feature: isosurface FUNCTIONXY = "x * y" and isosurface FUNCTIONXYZ = "x * x + y + z"
· default is from -10 to 10 every 0.25 Angstroms
· new feature: CONTACT command (Erik Wyatt/Bob Hanson 6/22/2011)
· creates an object of a variety of forms that
· indicates nonbonding interactions
· can be a planar disk perpendicular to the interaction,
· or a cigar-shaped connector
· HBOND (just between O and/or N)
· HYDROPHOBIC (not between O and/or N)
· percent of van der Waals distance
· works by doing a sum or difference of two complementary
· van der Waals surfaces (PLANAR) or by showing the
· intersection of the two surfaces (FULL) or by doing an NCI
· (noncovalent interaction) PROMOLECULAR calculation.
· DENSITY x.x (spot size) option does rough volume rendering.
· contact
· parameters
required:
· {setA}
optional:
· ID aaaa (if present, must be the very FIRST parameter
· ON/OFF/DELETE/LIST (if present must be the only parameter other than ID
· {setB}
· DENSITY x.x
· COLOR DENSITY
· IGNORE {ignoreSet}
· DISTANCE x.x
· PARAMETERS [....]
· FULL|PLANAR|CONNECT|NCI|ISOSURFACE
· HYDROPHOBIC|HBOND
· INTRAMOLECULAR|INTERMOLECULAR
· nnn%
· COLOR ...
· TRANSLUCENT/OPAQUE/MESH/NOMESH, etc... (must be last parameters)
· new feature: show LIGHTING
· bug fix: set defaultVDW user not working
· bug fix: _smilesString variable not being cleared when a PDB file is loaded
· bug fix: isosurface VDW mapping onto plane now has somewhat different coloration,
· and properly slabs to the VDW radius. This is just a SLAB option that can
· be removed like all others using isosurface SLAB NONE
· TODO: contours from saved JVXL planar isosurfaces does not seem to be correct.
· bug fix: WebMO reader fails to read HOMO/LUMO business.
· bug fix: AMU added (NAM-NAG sequences)
· bug fix: NDG added (epimer of NAG)
bug fix: definition of CARBOHYDRATE was updated:
· [A2G],[NGA],[SIA],[SLB],[LBT] added (GalNAc, NeuNAc, lactose)
· [ASF],[NAM] removed, they are not carbohydrates
· a few existing ones are deprecated by PDB; they are left for compatibility
· but are now listed as such (maybe remove them in future).
· bug fix: This obscure fix: http://jmol.svn.sourceforge.net/viewvc/jmol/trunk/Jmol/src/org/jmol/adapter/readers/cifpdb/PdbReader.java?r1=13502&r2=13525
· broke Jmol reading of the Epcot hemoglobin file. Only relevant to sequential or trajectory PDB files that do not have MODEL statements.
· So then any version starting with 12.0.RC_24 (7/8/2010) through now (7/2/2011) will read the files
· correctly -- not missing the first atom -- but that messes up earlier scripts. Unfortunately the Epcot business
· (Touch-A-Molecule) was written using 12.9.23 (1/24/2010), so that is affected.
· This fix only affects states written prior to 12.0.RC_1 and just makes it so that they display correctly (though missing that one atom)
· when they involve PDB trajectories of file without MODEL records separating models. Pretty sure this is just that one file.
· bug fix: contact fULL followed by contact HBOND can cause exception
· bug fix: set fontScaling does not scale offset with font
· bug fix: application Help menu item no long pushed right.
· bug fix: @{} (empty Jmol math braces) can call exception
· bug fix: pdbAddHydrogens should not add H of CO2H, SO4H, PO3H2
· bug fix: PDB reader may misread X in GLX/ASX as xenon
· bug fix: error message clarifications: web export not clear about not finding Jmol.js
· jmolApplet.jar.
· bug fix: export to web was looking for JmolApplet0.jar when jmoljarpath = "."
· bug fix: plane(r, theta, phi) script function was measuring phi from -Y not +X.
· bug fix: Bad Jmol.js
· bug fix: draw pointgroup fixed to first model
· code: better CONTACT MISC algorithm
· code: refactored ModelLoader and org.jmol.modelsetbio.Resolver
· moves all PDBaddHydrogen business to modelsetbio
· makes class ModelLoader only temporarily instantiated
· code: much more efficient plane creation and mapping
· code: work on isosurface, JVXL, plane mapping
· code: Viewer passes stateScriptVersionInt on to file readers
July 21st, 2011· bug fix: try {} does not pass VAR variables into its context.
· bug fix: catch(err) not setting variable "err"
· bug fix: CML files with atoms starting with both aNN and aNN_ will not bond correctly
· bug fix: set fontScaling does not scale offset with font
· bug fix: application Help menu item no long pushed right
July 5th, 2011bug fix: definition of CARBOHYDRATE was updated:
· [A2G],[NGA],[SIA],[SLB],[LBT],[NDG],[AMU] added (GalNAc, NeuNAc, lactose, GlcNAc, MurNAc)
· [ASF],[NAM] removed, they are no longer carbohydrates
· a few existing ones are deprecated by PDB; they are left for compatibility but are now listed as such (maybe remove them in future).
· bug fix: Bad Jmol.js
· bug fix: draw pointgroup fixed to first model
July 4th, 2011· bug fix: _smilesString variable not being cleared when a PDB file is loaded
· bug fix: WebMO reader fails to read HOMO/LUMO business.
· bug fix: throwing script parsing error on correct "isosurface slab within [4 elements
· representing the slab box]" (was losing last "]").
· bug fix: (application) Jmol console not receiving echo messages
· bug fix: UFF full listing (set loglevel 6;minimize steps 0;show minimization) missing n and cosNphi0 in torsions
· bug fix: PQR reader mistaking " HD3" as deuterium
June 20th, 2011· new feature: .count and .count(x)
· .count equivalent to .size -- length of array, string, or atom/bond set
· .count() operating on an array gives an array of [value, count] pairs
· .count(x) gives the number of "x" in the array or string
· new feature: tab completion on $... or first word after DRAW or ISOSURFACE
· new feature: JVXL files now save and return color and colorscheme information as well as rending (mesh, fill, front/back/fullylit)
· new feature: isosurface origin {...} steps {...} points {...} allows specific origin, steps, and counts (x, y, z axes assumed) for an isosurface that is not from a CUBE file.
· allows matching other data or fine-tuning a calculation
· new feature: isosurface origin {...} steps {...} points {...} FUNCTIONXY "function of x, y"
· new feature: isosurface origin {...} steps {...} points {...} FUNCTIONXYX "function of x, y, z"
· simple rendering of functions based on an origin, steps, and counts origin, steps, counts are all required.
· new feature: isosurface INTERSECTION {atomset1}
· produces a nice plot of noncovalent interaction regions between atomset1 and nearby atoms.
· generates an isosurface that is the result of applying a function, to two VDW data sets.
· full command: isosurface INTERSECTION {atomset1} {atomset2} function "XXX" VDW 100%
· The Jmol function will be of the form: function fname(a, b) { return XXX }
· isosurface INTERSECTION {ligand} {protein} function "a-b" VDW 100%
· isosurface slab within range -100 0
default:
· "within(5.0, atomset1) and not within(molecule,atomset1)"
· function a-b
· "VDW 100%"
· "slab within range -100 0"
· new feature: color isosurface {atom expression}
· specific to surface types (vdw, molecular, sasurface)
· similar to PyMOL command "set surface_color, (color), (selection)"
· allows painting of specific atom-related isosurface areas specific colors
· new feature: super-fast isosurface MAP PROPERTY when isosurfacePropertySmoothing = false
· new feature: within(distance, $surfaceID)
· new feature: isosurface slab [point array]
· new feature: set defaultLabelPDB "%m%r" -- for set picking LABEL (typically labeling groups)
· new feature: set defaultLabelXYZ "%a" for set picking LABEL (typically labeling atoms)
· new feature: reversible isosurface SLAB
· isosurface slab x=2 slab -x=2 sphere 5.0
· isosurface slab y=2
· any number of slabs either in the instruction or after it
· isosurface slab NONE removes slabs
· any number of CAP as well, but those must be in the statement that creates the isosurface, not in a later statement, and they may not work as expected, as they are quite minimal
· new feature: isosurface parameters [0 1] NCI "density.cube" (discrete SCF NCI with intramolecular option)
· new feature: isosurface parameters [0 2] NCI "density.cube" (discrete SCF NCI with intermolecular option)
· new feature: isosurface parameters [0 -1] NCI "grad.cube" MAP "dens.cube" (intramolecular filtering of NCIPLOT cubes)
· new feature: isosurface parameters [0 -2] NCI "grad.cube" MAP "dens.cube" (intermolecular filtering of NCIPLOT cubes)
· new feature: plane(r, theta, phi)
· spherical coordinates
· plane through a point distance r from the origin perpendicular to the vector: R[z,theta]R[x,phi]{0 0 1}
· angles in degrees
· bug fix: for (Var x in y){ {x}.xxxx = ...} does not work properly
· bug fix: for (Var x in y){...} did not work unless y is enclosed in { }
· bug fix: (application) Jmol console not receiving echo messages
· bug fix: UFF full listing (set loglevel 6;minimize steps 0;show minimization) missing n and cosNphi0 in torsions
· bug fix: isosurface SLAB not saved in JVXL; (now as vertex data only) note: {*}.find("MF") was not documented (Jmol 12.0)
· bug fix: isosurface slab within 5.0 {3} -- should be ALL those atoms, not just center as opposed to the CENTER using isosurface slab within 5.0 @{{3}.xyz}
· bug fix: PQR reader allowing < 0.9 radius for H
· bug fix: PQR reader mistaking " HD3" as deuterium
· bug fix: pointilist isosurfaces do not respond to "color isosurface red"
· bug fix: isosurface select {x} only VDW MAP select {!x} VDW
· now allows mapping of a VDW (or SA, not molecular) surface with values that are the exact minimum distance of that point to atoms of another set. This can directly pinpoint contact regions
· bug fix: throwing script parsing error on correct "isosurface slab within [4 elements representing the slab box]" (was losing last "]").
· code: Renderers made entirely independent
· unimplemented: slice command provides for simple two sided slicing of isosurfaces
· syntax: slice angleXY anglefromZ position thickness
· all numerical parameters must be decimals.
· angleXY-angle in XY plane (decimal in radians) anglefromZ- angle from Z axis (decimal in radians) these angles specify the direction vector perpendicular to the slice.
· position - 0-100 (% in decimal) specifies the position along the vector as a percent of the boundbox diagonal. 50% is origin.
· thickness - slice thickness as a percentage of the boundbox diagonal (0-100 in decimal format).
· slice left on - creates a transparent plane at the left of the slice.
· slice right on - creates the right plane
· slice right|left off - turns them off.
· implemented: isosurface slab [several options, see above] does all of the above except left/right transparent planes, which I think could be implemented differently.
June 10th, 2011· new feature: set zSlab {atom expression or point}; set zShade ON
· sets the front of the shading to be at a position in space
· very nice for ligands!
· FEATURE CHANGE: default zShadePower set to 3
· bug fix: MarchingCubes not reading last plane of data
· code: isosurface NCI (promolecular) reads progressively
· new feature: isosurface NCI (noncovalent interactions)
· NCIPLOT promolecule calculation for reduced density.
· Plots reduced density mapped with ABS(rho)*SIGN(lambda2) where lambda2 is the middle eigenvalue of the Hessian matrix of promolecular electron density. Innovates a discrete SCF option not available in NCIPLOT itself.
· default is "promolecular" approximation
· isosurface NCI
· DISCRETE SCF -- starting with standard CUBEGEN file
· isosurface NCI "dens.cube"
· DISCRETE SCF -- starting with NCIPLOT's xx-nci-dens.cube file
· isosurface parameters [0 0 0 0 0.01] NCI "dens.cube"
· Extended to all volume file formats, including ABPS, CUBE, Jaguar, MRC, OMAP, CCP4, XPLOR
· Isosurface parameters [cutoff, p1, p2, p3, p4] NCI ...
· -- p1 = 0(all, default), 1(intramolecular), 2(intermolecular)
· -- p2 = rhoPlot (cutoff used to remove covalent density, default 0.07 for promolecular, 0.05 for SCF)
· -- p3 = rhoParam (fraction of total rho that defines intramolecular, default 0.95)
· -- p4 = dataScaling (default 1, but set to 0.01 to read back in NCIPLOT -dens.cube file)
· new feature: quaternion() with no parameters gives "current molecular quaternion" -- same as quaternion(script("show rotation"))
· bug fix: POVRAY export of mapped surfaces fails
· new feature: isosurface PARAMETERS [cutoff, p1, p2, p3...]
· -- allows passing parameters to an isosurface generator
· -- if parameters are 0, then some default value is used instead
· bug fix: isosurface cavity algorithm error makes cavity too large
· bug fix: 12.1.48 feature MO/ORBITAL POINTS delivers twice the number of desired points
· bug fix: (not fixed in 12.0) set picking label requires picking of ATOM, not its label.
· bug fix: load "xxxx" filter "biomolecule 1" broken
· bug fix: font labels 16 bold does not work (i.e. missing face)
· new feature: color atoms property VECTORSCALE
· new feature: isosurface slab n
June 10th, 2011· bug fix: isosurface cavity algorithm error makes cavity too large # bug fix: font labels 16 bold does not work (i.e. missing face)
May 31st, 2011· bug fix: set appendNew false; load =1q0y; load APPEND =1crn causes exception
· bug fix: lcaoCartoon does not get hidden when atom deleted
· bug fix: isosurface SELECT should also set model index
· bug fix: isosurface mesh incompatible with fullylit and frontonly
· bug fix: navigate broken
· bug fix: modelKit dragMinimizeAtom broken in 12.0.43
· bug fix: dragMinimize should select all non-fixed atoms if there are fixed atoms
· bug fix: write @{"xxxx"} fails
· bug fix: isosurface ... map VDW -- mapping not saved in state
· bug fix: CRYSTAL reader does not read vibrations for atoms with two-character symbols
· bug fix: third oxygen atom in 5'-terminal phosphate was not assigned to backbone (e.g. 4tna.pdb)
· bug fix: cartoons with hermite level do not reposition for atom position changes or trajectories
· bug fix: isosurface plane x=-1 (with no spaces) not accepted
· bug fix: x = write("VRML") should give VRML contents and not write to disk
· bug fix: defined @ variables not indicating changes when models are deleted
· bug fix: calculate structure RAMACHANDRAN broken in 12.0.18
· bug fix: update in Jmol.js: Java version detection got broken in Mac Firefox 4.0.1 (part of browser compatibility test)
May 31st, 2011· new feature: atomMovedCallback parameter: BitSet of atoms moved
· new feature: appletReadyCallback parameters: htmlName, TRUE/FALSE
· fired ONCE upon applet ready, once upon applet destroyed
· new feature: load spacegroup "" loads data with current file's space group
· new feature: load unitcell "" loads data with current file's unit cell and offset
· set appendNew false
· LOAD DATA "append"
· 1
· testing
· Na 0.5 0 0.5
· end "append" {1 1 1} spacegroup "P4/mmm" unitcell ""
· new feature: draw ARROW [ATOM {aa} | BOND {bb} {cc}] [ATOM {aa} | BOND {bb} {cc}]
· allows easy creation of curved mechanistic arrows from atoms to bonds, bonds to atoms, atoms to atoms, or bonds to bonds.
· when atoms are moved, these arrows follow the atoms.
· new feature: isosurface CONNECT {xxx}
· connects an isosurface to an atom (only the first in the set) so that if that atom is moved, then entire isosurface is moved.
· STATE ISSUE: From the state, all isosurfaces are created AFTER atoms are moved, so an isosurface such as a molecular surface will not be recreated properly from the state
· new feature: show state FILE "filename" --- show embedded state from file (for example, an image)
· new feature: MO POINTS / AO POINTS mapping onto a plane for (var i = -5;i < 5;i += 0.2) {isosurface color range -1.0 1.0 plane x= @i map atomicorbital 4 3 1 points 1000;refresh}
· bug fix: set appendNew false; load =1q0y; load APPEND =1crn causes exception
· bug fix: lcaoCartoon does not get hidden when atom deleted
· bug fix: isosurface mesh incompatible with fullylit and frontonly
· bug fix: isosurface SELECT should also set model index
· bug fix: navigate broken
· bug fix: modelKit dragMinimizeAtom broken in 12.0.43
· bug fix: dragMinimize should select all non-fixed atoms if there are fixed atoms
· bug fix: write @{"xxxx"} fails
· bug fix: xmlns designations for jvxl and cml added to JVXL file creation
· bug fix: isosurface ... map VDW -- mapping not saved in state
· bug fix: CRYSTAL reader does not read vibrations for atoms with two-character symbols
· bug fix: cartoons with hermite level do not reposition for atom position changes or trajectories
· bug fix: isosurface plane x=-1 (with no spaces) not accepted
· bug fix: x = write("VRML") should give VRML contents and not write to disk
· bug fix: third oxygen atom in 5'-terminal phosphate was not assigned to backbone (e.g. 4tna.pdb)
May 16th, 2011· new feature: MO POINTS npts seed -- displays MOs as pointilist objects
· load c6h6.smol
· mo points 5000
· mo homo
· mo points 3000 13 # optional random number seed reproduces previous results
· new feature: isosurface atomicOrbital n l m [zeff] [ POINTS npts seed]
· allows Monte Carlo type orbital display, as for http://stolaf.edu/people/hansonr/origami/WIN/orbital1.zip
(see http://stolaf.edu/people/hansonr/orbital), e.g.:
· isosurface phase atomicOrbital 3 2 1 POINTS 5000
· optional random number seed reproduces previous results
· new feature: contoured planes and 3D objects can be remapped and recontoured using ISOSURFACE MAP
· new feature: set dotScale applies to isosurface points in pointilist objects
· new feature: SCALE parameter implemented for atomic orbitals.
· bug fix: remapping of a contoured isosurface fails
· bug fix: user-defined @ atom sets should be saved in state
· bug fix: defined @ atom sets not indicating changes when models are deleted
· bug fix: parameter setting of Jmol integer parameters with float values may not set variables
· example: set dotScale 3.0 does set that variable, but there is no effect. (not fixed in 12.0)
May 16th, 2011· bug fix: no ALT-x menu action in application
· new feature: set partialDots -- partial bonds rendered with dots rather than dashes
· new feature: UNDO/REDO commands -- for atom movement or modelkit actions only
· UNDO/UNDO 1 # undo last movement
· UNDO n # undo last n movements
· UNDO 0|ALL # undo all movements
· REDO/REDO 1 # redo last movement
· REDO n # redo last n movements
· REDO 0|ALL # redo all movements
· UNDO -1 # clear UNDO history
· REDO -1 # clear REDO history
· REDO -2/UNDO -2 # clear both histories
· bug fix: undocumented "redo" "undo" application-only commands changed to "redocmd" "undocmd"
· bug fix: FIX command not working properly
· bug fix: CTRL-SHIFT-Z not working for "redo"
· bug fix: select within(chain, atomno=xxx) will not select all desired atoms
· if the chain is spread out over multiple regions of the file (1gzx)
· note: For dragging and rotating atoms, chains, and molecules
· there are several parameters that govern the process
· because there are several different ways of going about it.
· You can specify a set of atoms to FIX in place and not allow movement: FIX
· You can specify whether or not to allow rotation of atoms when dragging: set allowRotateSelected
· You can specify to move preselected atoms only, and you can specify the atoms
· either with SELECT commands using set picking dragSelected
· or by clicking on them (using set picking SELECT...)
· set dragSelected (12.0)
· Allows dragging of selected atoms but, by itself, no rotation.
· pressing ALT shows selected atoms that will be moved
· ALT-SHIFT-LEFT moves, CTRL-Z undos, CTRL-SHIFT-Z or CTRL-Y redos
· along with set picking SELECT x
· where x is one of: atom, group, chain, molecule, polymer, structure, model
· You can also use set picking extendedSelect for Rasmol-style picking, where
· you get one group at a time only; the default is to toggle selections on and off
· set dragSelected; set allowRotateSelected (12.0)
· AllowRotateSelected by itself does nothing, but with set dragSelected
· also allows rotation.
· Rotations, though allowed, are carried out on FULL MOLECULES ONLY.
· pressing ALT shows selected atoms that will be moved
· ALT-LEFT rotates, ALT-SHIFT-LEFT moves, CTRL-Z undos, CTRL-SHIFT-Z or CTRL-Y redos
· set allowMoveAtoms TRUE (12.2)
· A setting that enables/disables dragSelected and allowRotateSelected
· and also allows rotation of atoms within molecules.
· pressing ALT shows selected atoms that will be moved
· ALT-LEFT rotates, ALT-SHIFT-LEFT moves, CTRL-Z undos, CTRL-SHIFT-Z or CTRL-Y redos
· set allowMoveAtoms FALSE (12.2)
· turns off dragSelected, allowRotateSelected, and itself, forcing selected rotations
· to act on complete molecules
· set picking dragSelected (12.2, new)
Based on those currently selected atoms, simple access to drag/rotate:
· LEFT (on those atoms) rotates, SHIFT-LEFT (on those atoms) moves,
· CTRL-Z undos, CTRL-SHIFT-Z or CTRL-Y redos
· bug fix: undo (CTRL-Z) and redo (CTRL-Y) not implemented for dragSelected
· bug fix: set dragselected may not turn off transient selection halos
· new feature: set PICKING dragSelected
· like dragMolecule; must be over an atom (any atom)
· use SHIFT to rotate selected atoms
· bug fix: molecules incorrectly assigned for covalently attached cofactors, such as HEM (1gzx)
· What about hydrogen bonding?
· bug fix: set picking dragMolecule then use of SHIFT after rotate COMPARE will result in unwanted translation
May 13th, 2011· bug fix: undocumented "redo" "undo" application-only commands changed to "redocmd" "undocmd"
· bug fix: transcient halos not always transient for dragSelected
· bug fix: FIX command not working properly
· bug fix: select within(chain, atomno=xxx) will not select all desired atoms if the chain is spread out over multiple regions of the file (1gzx)
· bug fix: set dragselected may not turn off transient selection halos
· bug fix: undo (CTRL-Z) and redo (CTRL-SHIFT-Z/CTRL-Y) not implemented for dragSelected
· bug fix: molecules incorrectly assigned for covalently attached cofactors, such as HEM (1gzx)
· bug fix: set picking dragMolecule then use of SHIFT after rotate COMPARE will result in unwanted translation
May 6th, 2011new feature: NBO second-order data saved in modata:
· Var x = getProperty("auxiliaryInfo.models[2].moData.secondOrderData")
· show x # >> x = [[69.0,115.0,1.2800001,0.044],[69.0,134.0,0.67,0.026],...[mo1, mo2, E(2), f(i,j),...]
· where mo1 and mo2 are indexes into the MO list (Note that they are floats, not integers.)
· and E(2) and f(i,j) are the E(2) value calculated by genNBO.
· bug fix: quaternion N frame off slightly due to bisection error.
· -- also affects Rasmol hydrogen bond calculation
· bug fix: select a will not select P-only DNA adenosines (1jgq)
· bug fix: select A and select a may be different for P-only DNA strands (1jgq)
· bug fix: help needs to add version to http call
· bug fix: properties of type float[][] not saved as ScriptVariable lists
· bug fix: AIMS reader upgrade to include atom/atom_frac line mix
· bug fix: PSI3 reader for WebMO
· bug fix: NWChem reader skips vibration info; set to skip only translation/rotation models
· bug fix: data connect can cause null pointer exception if data statement has white-space-only lines
May 6th, 2011· bug fix: quaternion N frame off slightly due to bisection error. -- also affects Rasmol hydrogen bond calculation
· bug fix: select a will not select P-only DNA adenosines (1jgq)
· bug fix: select A and select a may be different for P-only DNA strands (1jgq)
· bug fix: properties of type float[][] not saved as ScriptVariable lists
· bug fix: AIMS reader upgrade to include atom/atom_frac line mix
· bug fix: PSI3 reader for WebMO
· bug fix: data connect can cause null pointer exception if data statement has white-space-only lines
April 30th, 2011· bug fix: MOs broken in 12.1.43
· bug fix: drawpicking fails for drawn polyhedra. (turned off for now)
April 30th, 2011· new feature: show chemical name
· new feature: show chemical InChI
· new feature: show chemical InChIKey
· new feature: set echo ID "xxxx"
· new feature: show drawing (2D line drawing, from NIH)
· new feature: isosurfaces can be remapped.
· isosurface molecular map property temperature
· isosurface map property partialcharge
· isosurface vdw
· isosurface map mep
· bug fix: { echo testing } causes compiler error
· bug fix: { echo "testing" } causes compiler error
· bug fix: cannot access site_xxx definitions created by PDB file read
· bug fix: echo myecho ... after echo ALL still does ALL
· bug fix: cube file reader (load command) does not convert z coordinates to Angstroms.
· bug fix: isosurface CAVITY cannot be mapped
· bug fix: isosurface CAVITY broken
· bug fix: application load menu unnecessarily creates new frame and loses current script processing
· code: setEcho rewrite
April 27th, 2011· bug fix: { echo testing } causes compiler error
· bug fix: { echo "testing" } causes compiler error
· bug fix: cannot access site_xxx definitions created by PDB file read
· bug fix: echo myecho ... after echo ALL still does ALL
· bug fix: isosurface CAVITY cannot be mapped
· bug fix: PDB load filter mix of (CONF or BIOMOLECULE) and chain filter such as *:A will include additional chains ("C", "O", "N", "S", etc.)
· bug fix: application load menu unnecessarily creates new frame and loses current script processing
April 8th, 2011· bug fix - set picking identifyBond not implemented
· bug fix - leaving modelKitMode does not leave bondPickingMode "identifyBond"
April 8th, 2011· code: Swing class instantiation failure caught
· bug fix - set picking identifyBond not implemented
· bug fix - leaving modelKitMode does not leave bondPickingMode "ident"
· new feature: for (var x in [....]) {...}
· -- array option
April 8th, 2011· new feature: for (var x in {...}) {...}
· -- for example: # for (x in {selected}) { print x }
· new feature: x = {*}.mass.sum (and .max, .min, etc.)
· -- note, like other atom properties, {*}.mass by itself is an AVERAGE of masses of all atoms
· -- accounts for isotopes, but otherwise just uses average masses. Source: John Moore/Jon Holmes, J. Chem. Educ.
· new feature: x = plane(, , true)
· bug fix: for(_x...) not disallowed
· bug fix: Spartan .smol files: default for charges is now ESPCHARGES (what SpartanStudent reports), not MULLIKEN
· -- filter "MULLIKEN" now reads those charges
· bug fix: {*}.resno, .atomno, etc. where the property is an integer returns sum, not average
· bug fix: closing a prompt dialog with ESCAPE can cause crash; should return "null"
· bug fix: conflicting (Edit) selectMenu removed
· -- can't have two menus with exactly the same name, or language will only update one
· bug fix: miscalculating distances for atom exclusion in CifReader molecular option
· bug fix: image creation does not lock out mouse or system refreshes
· bug fix: select {*} (color=...) fails (specifically math functions doubling as atom properties)
· bug fix: cross-applet script output from print script("show ...", "B") not working
· bug fix: synchronize command broken
· bug fix: "string"%-n right-side truncation one character short # code: MouseManager14, ActionManager simplifications
April 8th, 2011· new feature: frame title @someArray
· -- for example: x = getproperty("modelinfo.models.energy")
· y = x.sub(x.min).mul(2625.5)
· relative energies, in kJ
· frame *;frame title @y
· write butane.xyzvib
· write simple multimodel xyz file
· bug fix: within(xxx, ) will fail
· bug fix: Crystal09 reader upgrade
· bug fix: VASP outcar atom naming error
· bug fix: adaptation for improperly CONECTed PDB files such as 1W7R
· bug fix: select *y defaults to select {*}(y) instead of select {:y}
· bug fix: cml bug fix for bonds not applied to symmetry
· bug fix: newer cml format for crystal information
· bug fix: vibration ON not saved in state
· bug fix: not reading MOPAC 6, 7, or 2009 files
March 29th, 2011· bug fix: menu labels incorrect in 12.0.38
March 27th, 2011· new feature: for (var x in {...}) {...}
for example:
· for (x in {selected}) { print x }
· new feature: x = {*}.mass.sum (and .max, .min, etc.)
· note, like other atom properties, {*}.mass by itself is an AVERAGE of masses of all atoms
· accounts for isotopes, but otherwise just uses average masses. Source: John Moore/Jon Holmes, J. Chem. Educ.
· new feature: x = plane(, , true)
· bug fix: for(_x...) not disallowed
· bug fix: Spartan .smol files: default for charges is now ESPCHARGES (what SpartanStudent reports), not MULLIKEN
· filter "MULLIKEN" now reads those charges # bug fix: {*}.resno, .atomno, etc. where the property is an integer returns sum, not average
· bug fix: closing a prompt dialog with ESCAPE can cause crash; should return "null" # bug fix: conflicting (Edit) selectMenu removed
· can't have two menus with exactly the same name, or language will only update one
· bug fix: miscalculating distances for atom exclusion in CifReader molecular option
· bug fix: image creation does not lock out mouse or system refreshes
· bug fix: select {*} (color=...) fails (specifically math functions doubling as atom properties)
· bug fix: cross-applet script output from print script("show ...", "B") not working
· bug fix: synchronize command broken
· bug fix: "string"%-n right-side truncation one character short # code: MouseManager14, ActionManager simplifications
March 27th, 2011· bug fix: for(_x...) not disallowed
· bug fix: Spartan .smol files: default for charges is now ESPCHARGES (what SpartanStudent reports), not MULLIKEN
· filter "MULLIKEN" now reads those charges
· bug fix: {*}.resno, .atomno, etc. where the property is an integer returns sum, not average
· bug fix: closing a prompt dialog with ESCAPE can cause crash; should return "null"
· bug fix: conflicting (Edit) selectMenu removed
· can't have two menus with exactly the same name, or language will only update one
· bug fix: image creation does not lock out mouse or system refreshes
· bug fix: select {*} (color=...) fails (specifically math functions doubling as atom properties)
· bug fix: cross-applet script output from print script("show ...", "B") not working bug fix: synchronize command broken # bug fix: "string"%-n right-side truncation one character short # code: MouseManager14, ActionManager simplifications
March 19th, 2011· new feature: frame title @someArray
· for example: x = getproperty("modelinfo.models.energy")
· y = x.sub(x.min).mul(2625.5) # relative energies, in kJ
· frame *;frame title @y # write butane.xyzvib
· write simple multimodel xyz file # bug fix: within(xxx, ) will fail
· bug fix: Crystal09 reader upgrade
· bug fix: VASP outcar atom naming error
· bug fix: adaptation for improperly CONECTed PDB files such as 1W7R
· bug fix: select *y defaults to select {*}(y) instead of select {:y}
· bug fix: cml bug fix for bonds not applied to symmetry
· bug fix: newer cml format for crystal information
· bug fix: vibration ON not saved in state
· bug fix: not reading MOPAC 6, 7, or 2009 files
March 19th, 2011· bug fix: within(xxx, ) will fail
· bug fix: Crystal09 reader upgrade
· bug fix: adaptation for improperly CONECTed PDB files such as 1W7R
· bug fix: select *y defaults to select {*}(y) instead of select {:y}
· bug fix: newer cml format for crystal information
· bug fix: vibration ON not saved in state
· bug fix: not reading MOPAC 6, 7, or 2009 files
March 14th, 2011· bug fix: write of stereo image only shows one half of dual display
· bug fix: application does not update menus properly
· new feature: load MENU -- if user-defined menu label is "null" then that menu item is removed for example: labelName | null or labelMenu | null # new feature: write COORD XYZVIB filename
· writes multimodel xyz file, with vibrational frequencies if present
· bug fix: Jaguar reader not reading vibrations correctly
· new feature draw ARROW..... BARB
· fish-hook "radical" arrows
· included in POVRAY exporter only
· bug fix: write JMOL (instead of write xxx.jmol) not implemented
· bug fix: Jaguar reader not reading vibrations correctly
March 14th, 2011· new feature: preliminary DCD file format reader
· load trajectory "c:/temp/t.pdb" coord "c:/temp/t.dcd"
· code: binary model file reading capability added
· bug fix: set bondPicking deletes bond
· new feature: Molden reader filter options VIBONLY, OPTONLY, NOOPT, NOVIB
· bug fix: Molden reader does not read optimizations
· bug fix: Molden reader nonfunctional
· code: JPEG encoder stores state in APP1 (FFE1) tag set instead of comment field
· bug fix: Spartan reader fails when no MO calculation
· bug fix: Spartan MO d6/f10 reader problems
· bug fix: QuantumEspresso reader first-model not read as Cartesian coordinates
· new feature: mo -n -- switches phase of orbital
· code: MOCalculation streamlined
· bug fix: load ? broken in 12.1.34
· bug fix: getProperty by itself does not return SORTED list of properties
March 9th, 2011bug fix: load of model when animation is on may cause animation NEXT to fail new feature: isosurface... map property x WITHIN x.y :
· allows a maximum distance to be defined; speeds up calculation
· defaults to 5.0 when set isosurfacePropertySmoothing FALSE
· bug fix: isosurface VDW can ignore H2O
· bug fix: load FILES incorrectly autobonds CONECTed atoms
· bug fix: (signed applet only) write FRAMES multiple calls to file dialog
· bug fix: draw/show pointGroup not correct when {0 0 0} is not center of model bug fix: draw pointGroup deletes all draw objects, not just of this model's point group
· bug fix: multimodel show pointGroup does not reset when frame is changed
March 9th, 2011· bug fix: Jaguar reader not reading vibrations correctly
· bug fix: load of model when animation is on may cause animation NEXT to fail new feature: (fixing property smoothing) isosurface... map property x WITHIN x.y
· allows a maximum distance to be defined; speeds up calculation
· defaults to 5.0 when set isosurfacePropertySmoothing FALSE
· bug fix: isosurface VDW can ignore H2O
· bug fix: load FILES incorrectly autobonds CONECTed atoms
· bug fix: draw LIST broken
· bug fix: (signed applet only) write FRAMES multiple calls to file dialog
· bug fix: draw/show pointGroup not correct when {0 0 0} is not center of model bug fix: draw pointGroup deletes all draw objects, not just of this model's point group
· bug fix: multimodel show pointGroup does not reset when frame is changed
February 28th, 2011· new feature: you can put element numbers in place of element symbols in XYZ files, and you can have a sixth column that is radius e.g. elemno x y z charge radius or (for just the radius with no charge) elemno x y z - radius note that charge can be formal (integer) or partial (decimal)
February 28th, 2011· bug fix: set PICKING OFF nonfunctional
· bug fix: unnecessary moveto commands in state
· bug fix: CTRL-SHIFT-LEFT on Macintosh must be pressed with LEFT first. go figure... (Old, old problem fixed)
· -- problem was that CTRL-SHIFT-LEFT-DRAG specifically was delivered as CTRL-SHIFT-MOVE
· -- specifically relates to changing the slab after slab ON
· bug fix: isosurface for trajectory not working
· bug fix: Var x in function x() not recognized
· bug fix: Var data followed by data++ causes syntax error
· bug fix: isosurface .... map select {...} not saved properly in state
· bug fix: MO HOMO should select highest non-negative value if no occupancy info
· bug fix: Spartan reader not reporting HOMO
· bug fix: load xxxx.top should default to xxxx.trj for coord files
January 13th, 2011· code: System.out.println comments out
· new feature: isosurface molecular FULL
· new feature: isosurface solvent [optionalRadius default:1.2] FULL
· very fast solvent excluded surface
· FULL option does reduced-surface analysis,
· uses Marching Cubes to create the surface
· very close fit to MSMS; slightly smaller area and volume
· replaces work from 12.1.24
· use isosurface SET 1 generally
· irrelevant inner surface removed due to negative volume.
· TODO: test for this with cavities
· bug fix: isosurface sets not sorted by number of vertices
· new feature: isosurface MSMS xxxx.vert
· creates isosurface from MSMS output files
· implies xxxx.face is also present in the same directory as xxxx.vert.
· if only .vert are present, only dots will be generated
· bug fix: failure to create atomicOrbital does not clear that isosurface
· new feature: QuantumEspresso reader
· bug fix: popup menu does not show load {1 1 1} options correctly
· new feature: GULP reader
· bug fix: draw intersection/polygon without vertices does not clear existing object
· bug fix: isosurface slab for plane not working
· bug fix: space before [ not recognized as significant when following $xxx or {...}
· new feature: isosurface/draw .length (also added to 12.0.26)
· bug fix: undocumented $isosurface1[3] fixed
· bug fix: isosurface set 0 does not display all sets
January 4th, 2011· bug fix: load ... filter "BIOMOLECULE 1" ... broken in 12.0.19
· bug fix: write xxx.jmol can fail if the same file is used twice in two different contexts
· bug fix: obj/pmesh file reading problems
· bug fix: failure to create atomicOrbital does not clear that isosurface
· bug fix: popup menu does not show load {1 1 1} options correctly
· bug fix: draw intersection/polygon without vertices does not clear existing object
· bug fix: isosurface slab for plane not working
· bug fix: space before [ not recognized as significant when following $xxx or {...}
· new feature: isosurface/draw .length (also added to 12.1.27)
· bug fix: undocumented $isosurface1[3] fixed
· code: parameterExpression cleanup
· bug fix: set echo myecho [x y] after set echo myecho {3 3 3} does not work
· bug fix: isosurface set 0 does not display all sets
December 9th, 2010· Bug fix: failure to read properly data "connect_atoms" from state when struts or hbonds turned OFF
· bug fix: 12.1.16-24 fail to write state properly -- saved settings not saved
· bug fix: CIF reader does not recognize -1 for _atom_site_disorder_group
new feature: default for loading of CIF files with GEOM_BOND records is to load them:
· as full molecules (symop=1 or connected to such (or within autobonding range of such)
· without unit cell
· Cartesian coordinates
· similar to the way CCDC Mercury loads these files
· attaches H atoms and otherwise respects GEOM_BOND designations explicitly
new feature: CIF load FILTER "MOLECULAR":
· does molecular load even when no GEOM_BOND records
· defaults to {1 1 1}
· new feature: pop-up menu includes load "" FILTER "MOLECULAR" option (under SYMMETRY...)
· bug fix: VaspOutcarReader misreads file with line containing "Therefore set LREAL=.FALSE. in the INCAR file"
· code: rename VaspReader VaspOutcarReader
July 31st, 2010· bug fix: draw arrows are being FIXED in state
· bug fix: try/catch in functions not implemented correctly
· bug fix: SMILES nested $(...) broken
· bug fix: binary pmesh reader broken
· bug fix: better coding for isosurface file typer
· bug fix: print write("ramachandran")
· bug fix: reading background images from PNG images within zip files
· bug fix: write xxxx.jmol zip sets cannot be read
· bug fix: binary surface readers map and ccp4 can misread file type
· bug fix: isosurface "=xxx" missing check for isSyntaxCheck
July 31st, 2010· bug fix: isosurface slab for polymer/slab symmetry
July 31st, 2010· bug fix: VRML/X3D ellipsoids
· code: IDTF/VRML/X3D writing of ellipsoid arcs and fill made more efficient
· bug fix: .....@{"text" ...} not read as exprssion
· bug fix: hover OFF not turning off bond hover
July 31st, 2010· bug fix: Jmol Model Kit broken :{
· bug fix: PROMPT command need not require @{...}
· bug fix: a = {} needs to default to ({}) (empty bitset)
· bug fix: alternative select @b[a]
· bug fix: allowance for b["test"][1][3]
July 31st, 2010· new feature: prompt(label,data,asButtons)
· x = prompt("testing") # just shows an OK box
· x = prompt("testing","defaultInput") # returns user input or "null"
· x = prompt("testing","yes|no|cancel", true) # returns "yes" "no" or "cancel"
· x = prompt("testing",["yes","no","cancel") # returns 1, 2, or 3
new feature: associative arrays:
· b = {"test" : 34, "test2" : 45}
· b["test"] = 35
· b["test3"] =[2, 3, 4, 5]
· print b["test"]
· 35
· show b
· b = { "test3":[2, 3, 4, 5],"test2":45,"test":35 }
· b -= "test3"
· show b
· b = { "test2":45,"test":35 }
· bug fix: SELECT logic error with ! in front of a chain specification
· such as * and ! 56:B%1. This was tranlating to
· and ! 56 and :B and %1
· but then ! has higher precidence then and, so
· this was "* and (! 56) and :B and %1" instead of
· "* and ! (56 and :B and %1"
· solution is to add a very high-precidence AND
· that trumps NOT. Discovered by Paul Pillot.
· new feature: fux, fuy, fuz, fuxyz, and set fractionalRelative
· bug fix: dots 150%
· new feature: failed file loading with try/catch is caught
new feature: try/catch:
· load quartz.cif
· refresh
· var x = 1
· print "outside, x = " + x
· while(true) { # has its own local variables
· print " inside while, x = " + x
· x = 2
· print " setting x = " + x
· try{ # has its own local variables
· print " inside try, x = " + x
· var x = 3
· print " setting x = " + x
· print "TEST1"
· load "adfkjd" # will be caught
· }
· catch(e) { # has its own local variables
· print " inside catch, x = " + x
· var x = 4
· print " setting x = " + x
· prompt @e
· break # from WHILE
· }
· print " after catch, x = " + x
· x = 5
· print " setting x = " + x
· print "out"
· break;
· }
· print "way out"
· print "outside, x = " + x
· bug fix: inconsistent unitcell coordinate operations
· {1 1 1/2} should be absolute
· {...}.fxyz should be absolute
· select cell=555 should be absolute
· {...}.uxyz should be relative to current UNITCELL
· .... hkl {h k l} should be relative current UNITCELL
· select UNITCELL should be relative current UNITCELL
· draw intersection UNITCELL... should be relative current UNITCELL
· bug fix: RC15 connect DELETE may malfunction when two sets of atoms intersect
· bug fix: minor isosurface tweaks -- triangles, gridlines, hover, click
· bug fix: hover OFF -- should not prevent hoverCallback
· bug fix: x = {*:} causes error
· new feature: SWITCH/CASE
· more like JavaScript than Java
· like JavaScript, doesn't need constants
· like JavaScript, evaluations can be made in the cases
· really just a simpler form of IF/ELSEIF/ELSE
· expressions are evaluated only as necessary from the top down
· DEFAULT may appear anywhere.
· switch(x) {
case 0:
case 1:
· spacefill only
· break;
default:
case 2:
· wireframe only
· break;
case 3:
· wireframe only;wireframe reset;spacefill reset
· break;
· }
July 31st, 2010· bug fix: pause/resume cause multiple unnecessary refreshes
· bug fix: pause/resume can fail if user enters a script command error
· bug fix: deleted atoms and atoms not in subset might be included in certain operations
· such as coloring, {..}.select = ..., and more
· bug fix: "halos ON" should always default to "just larger than current spacefill size" and
· adjust size with spacefill size in that case
· new feature: PROMPT command with 0 or 1 arguments
· new feature in JmolColorPicker.js--jmolColorPickerBox now accepts object inplace of script
· to allow execution of another function rather than a Jmol Script (much like Jmol.js
· functions).
· completion of refactoring of JmolColorPicker.js (and corresponding changes in Widgets.java).
· code: IDTF,VRML,X3D export all simplified camera calculations
· TODO: Still have not discovered how to install the right light for a model
· new feature: JMOL IN PDF FILES :)
· new feature: write t.idtf ---> t.itdf and t.idtf.tex
· In order to create U3D files, we start with IDTF, which is an ASCII-based format
The sequence is:
· JMOL: write t.idtf
· SHELL: idtfconverter.exe -input t.idtf -output t.u3d
· SHELL: pdfLatex t.idtf.tex t.pdf
· (not sure about that last syntax -- I'm using the GUI MikTex TeXworks interface
· to load the t.idtf.tex file and run it.
· In general, users will not need t.idtf.tex, because they will want to integrate
· the model into some other document, but this file serves as a template and model
· should they need that, and it is excellent for testing purposes
· bug fix: nucleic acid rendering for VRML and IDTF/U3D missing bases and connectors
· bug fix: polyhedra rendering can end up with reversed normals
· bug fix: wireframe 0 rendering too small in VRML and IDTF/U3D
July 31st, 2010· new feature: isosurface MAP MEP ... VARIABLE x applies variable data to MEP mapping
· new feature: "load =xxxx AS ." "." means "into the default directory; same name"
· bug fix: "large molecule" PDB files need stars for unconnected atoms
· new feature: load =xxxx defaults to read pdb.gz; load =xxxx.pdb reads .pdb file
· bug fix: Jmol could not read its own CML output
· bug fix: %5.-5i overflow off by one digit in precision
· new feature: SMILES /nostereo/ /noaromatic/, not just SMARTS
· bug fix: TestSmiles incorrectly assigning bonds in ...[C@H]1...
· bug fix: write PDB not correctly justifying atom names
· new feature: auxiliaryInfo.compndSource for PDB files
· bug fix: console cleared at end of script with set debugScript
· bug fix: load $CCCC or =xxxx AS file.name not working without quotes
· bug fix: polyhedra miscalculation in VRML and IDTF export
· bug fix: multiple-model data statement with ~~~ broken
· new feature: data "model..." and data "append..." command
deprecated and merged with load command:
· load data "model xyz".....end "model xyz" ...
· allows full parameterization of data loading
new feature: clickCallback adds parameter mode:
// for status messages:
· public final static int DRAGGED = 1;
· public final static int CLICKED = 2;
· public final static int WHEELED = 3;
· public final static int PRESSED = 4;
· public final static int RELEASED = 5;
· new feature: loadStructCallback adds parameters previousCurrentModelNumberDotted and lastLoadedModelNumberDotted
· new feature: spartan loader adds filter "noMo" but that isn't particularly useful, probably.
· bug fix: isosurface color density not quite getting desired points plotted
· bug fix: do nothing after widget checkbox click if no instances (fixes array out of bounds).
· bug fix: loading using append with appendNew false may not make bonds
· bug fix: SMARTS searching of "or" type primitive nested groups fails
· new feature: 3D-SEARCH /noStereo/ flag
· bug fix: SMARTS searching with || and measures can fail
· new feature: plot PROPERTIES propertyX propertyY [propertyZ] [[min {x y z}] [max {x y z}]]
· added min/max allows for truncation of data
· new feature: applet console also reports version in title
· bug fix: STATE button in console problem in that in some browsers, you cannot clip from
· new feature: data model can accept filter=xxx, as in data "model filter=2D" ...
· bug fix: It was a mistake to comment out set defaultLoadFilter in the state
· as this is needed for inline string state saving.
· bug fix: {xxx}.trace = {xxxx}.property_xxxx.all not working
· bug fix: connect...auto also creates HBONDS
· new feature: preliminary write ... http://....
July 10th, 2010· bug fix: write("COORDS","PDB") and other cases -- can't recognized upper-case first parameter
· bug fix: x = write("PDB") when the file is not a PDB file crashes Jmol
· new feature: within("SMILES"...) REMOVED
· new feature: within("SMARTS"...) REMOVED
· bug fix: SMILES string self comparison could give wrong stereochemistry
· bug fix: PDB files without MODEL command can lose first atom
· new feature: set dotScale
· new feature: show SMILES
· new feature: set defaultLoadFilter works with JavaScript loadInline()
· bug fix: SMILES not showing stereochemistry involving H
· bug fix: "...".find("SMARTS", "/noaromatic/...") not working
· bug fix: much speedier mapProperty when all three properties are numeric
· bug fix: 3D-SMARTS search combining variable number of atoms [$(...)m-n] and distance
· check (.d:min-max)...(.d) fails
· bug fix: load FILES does not properly set full path name to files.
· bug fix: ramachandran R plot not writing extra straightness measure properly
· bug fix: javascript command broken
· bug fix: "file 0; mo homo; file 1; animation on" does not generate MO animation
· bug fix: Spartan smol reader skips first ("output") section.
July 7th, 2010· feature change: quaternionFrame 'A' now 'B'
· bug fix: documented quaternionFrame 'Q' returned (though not useful)
· bug fix: readers might shift center of mass (normalize)
· when CIF file models are loaded without a unit cell indication.
· now set to not do that. You wouldn't notice it particularly unless you
· later turned on the unit cell and noticed that the atoms were off
· or you know the file data coordinates and notice that picked atoms have
· different ones.
· new feature: eta/theta atom properties -- nucleic acid conformation
· Carlos M. Duarte, Leven M. Wadley, and Anna Marie Pyle
· RNA structure comparison, motif search and discovery using a reduced
· representation of RNA conformational space
· Nucleic Acids Research, 2003, Vol. 31, No. 16 4755-4761
· eta (C4_i-1 - P_i - C4_i - P_i+1)
· theta (P_i - C4_i - P_i+1 - C4_i+1)
· new feature: PLOT PROPERTY propertyX propertyY (optional propertyZ)
· makes a graph for the currently selected atom set
also equivalent for quaternion and ramachandran commands, but preferred for:
· plot quaternion...
· plot ramachandran...
· deprecated: quaternion, ramachandran
· new feature: mapProperty {atomSetFrom}.property1 {atomSetTo}.property2 (optional propertyKey)
· Allows mapping of property data from one set of atoms to another
· based on a key such as atomno or resno (default atomno).
· Property2 must be "settable".
· also mapProperty SELECTED {atomSet} key
· same as mapProperty {selected}.selected {atomSet}.selected key
· For example, creating a quaternion map, then mapping that data
· with straightness, and then selecting a very specific subset of
· the quaternion data and using that selection to select data
in the original model:
· load 3cc2.pdb
· calculate straightness
· set quaternionframe 'B'
· quaternion r difference
· display {rna}
· mapProperty {1.1 and *.P}.straightness {2.1 and rna}.property_x resno
· select 2.1 and rna; color property_x;spacefill 0.1
· select 2.1 and rna and within(2.0,{1.7700001 -0.49 2.62})
· mapProperty selected {1.1 and *.P}
· new feature: quaternionFrame "B" for nucleic C4'/P/C4'
· feature change: quaternionFrame "C" for nucleic acids now
set as per:
· Sarver M, Zirbel CL, Stombaugh J, Mokdad A, Leontis NB.
· FR3D: finding local and composite recurrent structural motifs in RNA 3D structures.
· J. Math. Biol. (2006) 215-252
· new feature: print {selected}.find("SEQUENCE")
· returns 1-letter sequence for selected atoms
· new feature: print {selected}.find("SEQUENCE", true)
returns 1-letter sequence for selected atoms, with cross-links:
· load 1crn.pdb
· show sequence
· Model 1
Chain A:
· [THR]1 [THR]2 [CYS]3 [CYS]4 [PRO]5
· [SER]6 [ILE]7 [VAL]8 [ALA]9 [ARG]10
· [SER]11 [ASN]12 [PHE]13 [ASN]14 [VAL]15
· [CYS]16 [ARG]17 [LEU]18 [PRO]19 [GLY]20
· [THR]21 [PRO]22 [GLU]23 [ALA]24 [ILE]25
· [CYS]26 [ALA]27 [THR]28 [TYR]29 [THR]30
· [GLY]31 [CYS]32 [ILE]33 [ILE]34 [ILE]35
· [PRO]36 [GLY]37 [ALA]38 [THR]39 [CYS]40
· [PRO]41 [GLY]42 [ASP]43 [TYR]44 [ALA]45
· [ASN]46
· print {*}.find("sequence")
· //* chain A protein 1 *// ~p~TTCCPSIVARSNFNVCRLPGTPEAICATYTGCIIIPGATCPGDYAN //* 46 *//
· print {*}.find("sequence", true)
· //* chain A protein 1 *// ~p~TTC:1C:2PSIVARSNFNVC:3RLPGTPEAIC:3ATYTGC:2IIIPGA
· TC:1PGDYAN //* 46 *//
· bug fix: state save for quaternion/ramachandran data frames fails
· bug fix: Spartan reader not reading MOs when there is only one atom (AOs, that is)
· bug fix: bioSMARTS search including first group
· bug fix: MOReader (Gaussian, GAMESS) fix for NBO cartesian D/F orbitals
· bug fix: atom deletion can result in array length error
· bug fix: Application rubber-band selection mode not allows atom pick to be selection toggle
July 2nd, 2010· bug fix: bioSMILES "~C:1.~G:1" fails
· new feature: axes center {x y z}
· new feature: data "connect_atoms" (for state with large number of connections)
· new feature: set picking measure sequence
· bug fix: rotate symop not functional for some symops
· bug fix: phosphorus-only polymer quaternions not operational
· bug fix: 3D-SMARTS multiple nesting
· new feature: 3D-SMARTS [$(...)n]
· new feature: 3D-SMARTS [$(...)nMin-nMax]
· new feature: 3D-SMARTS pattern1 || pattern2
· new feature: data "property_atom.xxxx" can be used like "property_xxxx" but xxxx must be a
· settable atom property, which it will set.
· bug fix: 11.6.RC15 introduced {*}.property_x same as {*}.x. But that is
not documented, and those are supposed to be different. The proper way to do this is:
· data "property_x"
· ...
· end "property_x"
· {*}.partialcharge = data("property_x")
June 27th, 2010· new feature: set cartoonBaseEdges
· displays nucleic acid bases as triangles
· Red:sugar edge, Green:Watson-Crick edge, Blue:Hoogsteen edge
· see Nasalean L, Strombaugh J, Zirbel CL, and Leontis NB in
· Non-Protein Coding RNAs, Nils G. Walter, Sarah A. Woodson, Robert T. Batey, Eds.
· Chapter 1, p 6.
· http://books.google.com/books?hl=en&lr=&id=se5JVEqO11AC&oi=fnd&pg=PR11&dq=Non-Protein+Coding+RNAs&ots=3uTkn7m3DA&sig=6LzQREmSdSoZ6yNrQ15zjYREFNE#v=onepage&q&f=false
· bug fix: NOS (inosine) not given 1-letter code I
· bug fix: quaternion({atom expression}) returning array
· new feature: (undocumented) quaternion({atom expression}, nMax)
· returns array of values.
· bug fix: state preserved for modelkitmode
· new feature: bioSEQUENCE () indicates "not cross-linked": select search("~r~C()~")
· new feature: bioSEQUENCE subsets ~p~, ~n~, ~r~, ~d~
· new feature: bioSEQUENCE wildcards N (same as * for ~n~, ~r~, or ~d~)
· R (same as [A,G] for ~n~, ~r~, or ~d~)
· Y (same as [C,T,U] for ~n~, ~r~, or ~d~)
· bug fix: acceptance of curly " from Microsoft Word text clipping in scripts
· bug fix: lcaocartoon cap broken
· bug fix: isosurface boundbox not read from state
· bug fix: translucent isosurface colorscheme saved but not read from state
· new feature: modelkit mode invert ring stereochemistry
· bug fix: application select-atoms toolbar button nonfunctional
· new feature: set picking symmetry (undocumented)
June 20th, 2010· false alarm: error in CIF file reader doubles atoms -- nevermind -- file actually HAS overlapping atoms!
· bug fix: JVXL XML reader error with "/>" in data attribute
· bug fix: select within(5.0, {0 0 0}) nonfunctional
· bug fix: MO fix for df order in model sets containing NBO and non-NBO orbitals
· bug fix: font MEASUREMENTS ...
· bug fix: QChem reader MO fix
· bug fix: G orbital skipping
· bug fix: WebExport creates directories in directories
· bug fix: SMARTS C(CCCCN1)1 fix.
· bug fix: removing rule that a SMILES string cannot end with a branch.
· bug fix: log "NOW" changed to log "$NOW$"
· bug fix: log "$CLEAR$" clears the log file
· bug fix: syntax "else { [eol]" not functional
June 17th, 2010· bug fix: QChem reader MO fix
· bug fix: MO using cartesian instead of spherical D orbitals.
· bug fix: modelKitMode replacing atoms with H
· bug fix: bioSMARTS X:Y problem
· bug fix: set logLevel (with no arguments)/show logLevel
· bug fix: alas, MEP mapping has been in Bohr, not Angstroms. Values are actually 1.89x prev. calculation
· default range set to -0.1 to 0.1 for MEP and MLP.
new feature: atomic lipophilicity mapping (MLP) and generalized MEP:
· isosurface sasurface map MLP|MEP [function type (integer 0 to 3)] [resource fileName]
· isosurface sasurface map MLP|MEP [function type (integer 0 to 3)] [property_xxxx]
· isosurface sasurface map MLP|MEP [function type (integer 0 to 3)] [property propertyName]
The defaults are:
· isosurface sasurface map MEP 0 property partialCharge
· isosurface sasurface map MLP 3 "http://jmol.svn.sourceforge.net/viewvc/jmol/trunk/Jmol/src/org/jmol/quantum/atomicLipophilicity.txt"
· Implemented here is a flexible way of mapping atomic potential data onto
a surface. Given a set of atoms, we assign numbers to the atoms from:
· a) a resource in this package and based on atom names, or
· b) a table of data read from a file and based on atom names, or
· c) an array of properties assigned to the atoms.
· In addition, once those potentials are assigned, we can apply a variety
of functions of distance:
· (0) Coulomb's law distance function (same as rasmol potential distance function)
· (1) f * e^(-d/2)
· Gaillard, P., Carrupt, P.A., Testa, B. and Boudon, A., J.Comput.Aided Mol.Des. 8, 83-96 (1994)
· (2) f/(1 + d)
· Audry, E.; Dubost, J. P.; Colleter, J. C.; Dallet, P. A new approach to structure-activity relations: the "molecular lipophilicity potential". Eur. J. Med. Chem. 1986, 21, 71-72.
· (3) f * e^(-d)
· Fauchere, J. L.; Quarendon, P.; Kaetterer, L. Estimating and representing hydrophobicity potential. J. Mol. Graphics 1988, 6, 203-206.
· from http://www.life.illinois.edu/crofts/bc1_in_chime/chime_talk/chimescript2.html
The difference between MEP and MLP is simply the defaults for resource and function:
· a) the default resource is property partialCharge for MEP and atomicLipophilicity.txt for MLP
· b) the default function is Coulomb for MEP and Fauchere for MLP
· bug fix: make WebExport Widgets compatible with IE6 through 8
· bug fix: isosurface vdw map ... not working
· new feature: preliminary molecular lipophilic potential.
· isosurface vdw map MLP
· new feature: bioSMARTS indicates all cross-linking for carbohydrates
· bug fix: name conflicts in WebExport Widgets js files.
· bug fix: table now wide enough for colorpicker popup in WebExport.
· bug fix: angstroms measurement unit not showing up as proper A symbol.
· new feature: measure search("Ocnc")
· or measure search "Ocnc"
· operates on previously selected atoms
· bug fix: application -- set modelkitmode does not feedback to buttons
SMILES/SMARTS options summary:
examples:
selecting atoms using SMARTS:
· select search("CC") // selects ALL matching atoms using SMARTS notation
· select search("CC", 1.1) // same as above, but within model 1.1
assigning variables based on SMARTS:
· x = {1.1}.find("CC") // assigns a single bitset to all matching atoms
· x = {1.1}.find("CC", true) // same as above, but returns an array of pattern matches
· n = {1.1}.find("CC", true).length // counts the number of matches
SMILES string comparison and searching:
· x = "CC(C)CC".find("smiles","CCC(C)C") // smiles matching -- returns an array of length=1
· x = "CC(C)CC".find("smarts","CCCC") // returns a bitset containing all atoms
· x = "CC(C)CC".find("smarts","CCCC", true) // returns an array of bitsets containing the pattern
generating SMILES and bioSMILES strings:
· x = {1.1}.find("SMILES") // get the SMILES string for the model 1.1
· x = {1.1}.find("SMILES", true) // get the bioSMILES string for the model 1.1
· use select search(...) to do SMARTS substructure searching
· use the find function to assign variables.
· use TRUE with the find function to retrieve and count matches
· use find(..).length to count the number of matches
· use find to get the SMILES or bioSMILES string for a structure
deprecated/unnecessary:
· select substructure("..") // same as select smarts(...
· select within(smarts...) // same as select smarts(...
· select within(smiles...) // same as select smiles(..., but not recommended
· x = within("smarts", "CC") // same as {*}.find("CC")
· x = within("smiles", "CC") // same as {*}.find("smiles", "CC")
· bug fix: SMILES errors should be reported but not cause script failure
· bug fix: select within("smarts","Cn",all,atomno=19) does not properly
· restrict set to only those patterns that include atomno=19
· bug fix: select substructure(...) now synonymous with select SMARTS(), not select SMILES()
· as would be expected for substructure searches.
· bug fix: modelkit connection doesn't modify bonds automatically
· new feature: assign CONNECT {a} {b}
· does a simple connection, but then,
· like assign atom and assign bond, fixes hydrogens
June 10th, 2010· bug fix: set drawPicking/drawHover inconsistent regarding isosurfaces
· bug fix: exiting modelkitmode does not reset picking/hover settings
· new feature: SMILES/SMARTS C^C and C^^C or C!^C (SMARTS) -- atropisomer (dihedral angle) check
· new feature; SMILES and/or BIOSMILES with /double bond/ stereochemistry
· new feature: {*}.find("SMILES", asBioSmiles), with asBioSmiles default FAlSE
· so simply {*}.find("SMILES") gives STANDARD SMILES (noncanonical)
· bug fix: WebExport now defaults to loading split applet
· when pages are running from server.
· new feature: SMILES reading proposed [C@]=C
· bug fix: SmilesGenerator double bonds
new feature:
· Widgets in WebExport
· Spin on/off checkbox
· Open Console button
· Background Color Picker
· Stereo Viewing Mode Control
· Animation Control
June 6th, 2010· bug fix: RC16 probably has chirality errors.
· bug fix: square planar SP3 chirality inverted
· new feature: BIOSMARTS
· new feature: BIOSMILES format.
June 5th, 2010· TODO -- BIOSMARTS ~ clean up with regular smarts added
· new feature: print {*}.find("smiles") creates BIOSMARTS for structure -- bio only.
· new feature: BIOSMARTS can search strings and includes base-pairing.
· - print "~CAAGAG".find("smarts","~AGA")
· - print "~C(G)A(T)G",find("smarts","~A(T)")
· new feature: BIOSMARTS initial "~" indicates 1-character sequence search
· - just 1-letter codes
· - "+" bonding implied
· select smarts("~AT[Y,C]")
· new feature: BIOSMARTS [.] --> [*.*]
· new feature: BIOSMARTS [ALA.*,O] and [*.0] (lead atom -- P, CA, O)
· new feature: BIOSMARTS -- [RES.ATOM]+[RES.ATOM] etc.
· select smarts("[ALA.*]+{[PRO.*]}") # select all prolines that are after alanine
· select smarts("[ALA.*]+{[PRO.C]}") # select all proline carbonyl carbons that are after alanine
· bug fix: "backbone" included asp/glu carboxyl groups (RC3)
· bug fix: hyperchem reader does not require FIRST line to start with "mol 1"
· code: JmolMolecule class
· feature change: set rocketBarrels also removes arrow heads for sheets (rockets only, not cartoons)
· new feature: print "CC".find("SMILES"/"SMARTS","MF") -- molecular formula for SMILES/SMARTS string
· bug fix: rocketBarrels not fully smooth barrels.
new feature: SMARTS update -- adds full bond logic:
· select search("C=,-;!@C") -- C-C double or single bonds (C=,-C) that are also(;) non-ring(!@)
May 29th, 2010· new feature Jmol reads SMILES --> 3D from http://cheminfo.informatics.indiana.edu/rest/thread/d3.py/SMILES
· see http://cheminfo.wikispaces.com/smi23d
· new feature: load SMILES "smilesstring"
· new feature: load $smilesString
· code: file reading clean-up in Viewer
bug fix: 12.0.RC6 (4/17) inadvertantly left in "false &&" in if statement in atom iterator broke:
· polyhedra 2.0, geosurface, dots, and slows isosurface molecular more than 2-fold
· new feature: FIX command takes argument like display or select. But ensures no atoms of this
· set will be moved or dragged anywhere accidentally.
· bug fix: isosurface selecting 2nd model while two are displayed produces no surface
· new feature: set picking dragMinimizeMolecule (docking)
· Using the model kit, you can load two models and then
· use "drag and minimize molecule (docking) to move a model around and
· watch how it responds to its fixed environment (within 5.0 A). If you have a ligand and a receptor,
· if you move the ligand, it will minimize; if you move the receptor, it will minimize.
· You can undo any change using CTRL-Z and redo it with CTRL-Y.
· code: BitSetUtil.setBit()
· bug fix: within() with the all-molecules flag was not working.
· bug fix: isosurace PMESH inline not working
· new feature: allowModelKit
· new feature: modelkitmode expanded; "all frames" icon added in application
· bug fix: improper/incomplete deletion of atoms
· NOTE: Jmol 11.9 should not be considered ready for atom deletion
· code: refactoring for proper deleted atoms processing
· code: circle-drawing simplified; better highlight; POV-Ray halos fixed
· new feature: assign ATOM {atom} "Symbol or Pl or Mi"
· changes the type of {atom} to the given symbol or changes the charge up (Pl) or down (Mi) by one
· adjusts valence with hydrogens as necessary
· for example: assign ATOM {atomno=3} "C"
· new feature: assign ATOM {atom} "type" {x y z}
· creates a new atom at {x y z} of the given type, connected to {atom}
· new feature: assign BOND {bond} "2"
· modifies the bond and fixes valences at the two ends using hydrogen atoms
· bug fix: synchronized (function) does not allow mouse-based function calling
· TODO: Model Kit icons for atom/bond menus, rings, rotation
· new feature: set picking assignAtom_+/- changed to assignAtom_Plus/Minus
· new feature: set picking assignBond_+/- changed to assignBond_Plus/Minus
· new feature: set modelkitMode
· establishes three context menus -- atom, bond, and modelkit
· allows extensive and easy modification of structures
· TRIAL CHANGE: JmolApplet.jar and JmolAppletSigned.jar do not contain translations
· for translations, use JmolApplet0.jar and JmolAppletSigned0.jar
· this saves almost 30% in file size. Otherwise all the translations for
· all languages are included in every download to every browser.
· Point being that one should not use JmolApplet.jar or JmolAppletSigned.jar
· in "production" mode -- they are just too big!
· bug fix: after deleting atoms, connections can be found to deleted atoms
May 25th, 2010· bug fix: draw xx* delete -- does not recognize xx* as wild
· bug fix: restore coord does not recalculate shapes
· new feature: set highlight {atom set} or set highlight OFF
· new feature: set picking assignAtom_Xx where Xx is an element
· assigns the picked atom to that element and
· bonds nearby atoms if present to form rings
· new feature: set picking assignAtom_+ # increments charge
· new feature: set picking assignAtom_- # decrements charge
· all three adjust valence accordingly using hydrogen atoms
· new feature: set bondPicking -- independent of atom picking
· new feature: set picking assignBond_+ # increments bonding
· new feature: set picking assignBond_- # decrements bonding
· new feature: set picking assignBond_0|1|2|3 # sets bonding
· all three adjust valence accordingly using hydrogen atoms
· new feature: CTRL-V will load file in clipboard or fail gracefully
· new feature: CTRL-Z single undo of deletion/modification actions
· new feature: set picking invertStereo
· bug fix: minimization after atom deletion
May 23rd, 2010· new feature: application title changes with animation frame change
· new feature: file system directory clip file name(s), then CTRL-V into Jmol --> loads files
· bug fix: Crystal reader broken
· bug fix: AtomSetChooser not producing heirarchy of models
· bug fix: within(BASEPAIR) incorrect logic check
· code: ActionManagerMT and associated interfaces moved to org.jmol.multitouch
· bug fix: smiles, mac problem with latest pre-release build
· new feature: set picking dragMinimize -- drags and minimizes all atoms in the molecule containing the picked atom
· new feature: set picking dragAtom -- drags the atom picked to a new location
· code: TransformManager removing pointT
· bug fix: dragSelected could be off by 1 pixel
· bug fix: working on the 1.5/1.4 problem -- all unnecessary 1.5 coding switched back to 1.4 format
· including String.contains; parallel processing Executor class isolated from Viewer
· bug fix: select within(SMILES,@x) not working
· code: adding org/jmol/smiles/package.html
· bug fix: About Jmol HTML does not change language
May 18th, 2010· bug fix: set measurements 0.05 not saved in state
· bug fix: SMILES business not working outside of first frame
· new feature: m = compare({2.1},{1.1} [,"SMARTS" (default)|"SMILES"],"smartsString..." [,"stddev"])
· does a MATCH of atoms, then a compare
new feature:
· compare {2.1} {1.1} "[OH]ccOC" translate rotate
SMARTS implied, but keyword SMILES or SMARTS can be used as well:
· correlates and moves model 2.1 to best fit for 1.1 based
· on the mapping of atoms from the SMARTS string
May 17th, 2010· new feature: load @x where x is an array of filenames
· bug fix: @x not allowed in strictly STRING context such as select search(@x)
· bug fix: 12.0.RC3 breaks select *.O1
· new feature: 3D-Search "d" -- non-hydrogen connections
· new feature: 3D-SEARCH $XXX="SMARTS-code"; .... [$XXX] ...
· select search(' \
· $Aro1="[a&!$(aC)]" (i.e. aromatic not attached to aliphatic carbon); \
· CarbonylO="O"; \
· {[$CarbonylO]}[$Aro1] \
· ')
· new feature: 3D-SEARCH allows white space
· bug fix: state involving JME files not properly loaded
· bug fix: load FILTER not saved in state when not involving a lattice
· bug fix: "axesScale" saved in state as "axisScale"
· bug fix: messageStyleChime needs #xxx reports
· bug fix: restrict cell={2 2 2} position depends upon current unit cell
· refactoring with JmolNode, JmolEdge, and Elements
· new feature: JmolSmilesApplet.jar -- just checks SMILES strings
· new feature: "xxxx".find("smiles","yyyy") will match ALL types of stereochemistry,
including cis/trans -- for example, all of these return "1":
· print "O[C@](F)(Cl)I".find("smiles","O[C@](F)(Cl)I")
· print "O[C@](F)(Cl)I".find("smiles","[C@](O)(F)(Cl)I")
· print "O[C@](F)(Cl)I".find("smiles","[C@@](O)(Cl)(F)I")
· print "OC(Cl)=[C@]=C(C)F".find("smiles","OC(Cl)=[C@AL1]=C(C)F")
· print "OC(Cl)=[C@]=C(C)F".find("smiles","OC(Cl)=[C@AL2]=C(F)C")
· print "F[Po@SP1](Cl)(Br)I".find("smiles","F[Po@SP1](Cl)(Br)I")
· print "F[Po@SP1](Cl)(Br)I".find("smiles","F[Po@SP2](Br)(Cl)I")
· print "S[As@@](F)(Cl)(Br)C#O".find("smiles","S[As@@](F)(Cl)(Br)C#O")
· print "S[As@@](F)(Cl)(Br)C#O".find("smiles","O#C[As@](F)(Cl)(Br)S")
· print "S[Co@@](F)(Cl)(Br)(I)C#O".find("smiles","S[Co@@](F)(Cl)(Br)(I)C#O")
· print "S[Co@@](F)(Cl)(Br)(I)C#O".find("smiles","O#C[Co@](F)(Cl)(Br)(I)S")
· print "F/C=C/F".find("smiles","F/C=C/F")
· print "F/C=C/F".find("smiles","F\\C=C\\F")
· print "C(/F)(Cl)=C/F".find("smiles","C(/Cl)(F)=C\\F")
· print "C(/F)(Cl)=C/F".find("smiles","C(\\F)=C(/Cl)F")
· bug fix: JME load can place H in wrong side if SP2 is detected
· bug fix: atom.bonds may be null
· new feature: { } in search string selects only that subset of atoms within the braces
· new feature: smarts() function changed to search()
· new feature: full implementation of 3D-SEARCH
· code: org.jmol.smiles.SmilesAromatic.java
· new feature: select search("searchString", {selectedAtoms})
· allows determining aromatic rings that are connected to metals
May 7th, 2010· bug fix: isosurface sigma x.x not properly implemented
· "sigma 3.0" means "3.0 times the cutoff associated with sigma = 1.0"
· this to be consistent with the Aztex viewer sliders that set the value of
· 1.0 to be "1.0 sigma" and then scale based on that.
· new feature: "3D-SMARTS" -- smarts("a") assigns aromatic based on 3D geometry --
· flat ring of 3-7 atoms with all substituents directly in plane
· true, not the official designation, but far more practical than checking bonds
· will pick out rings in HIS, TYR, TRP, nucleic acid bases, etc.
· new feature: full set of allenic, tetrahedral, square planar, trigonal pyramidal,
· and octahedral smiles/smarts/substructure stereochemistry
· tested against all structures described at
· http://www.daylight.com/dayhtml/doc/theory/theory.smiles.html#RTFToC24
new feature: smiles/smarts/substructure adds allene stereochemistry:
· select smarts("C(Cl)(C)=[C@@]=C(F)[H]")
new feature: smiles/smarts/substructure adds double bond stereochemistry:
· select smarts("C(O)/C=C/([CH2])C")
· new feature: "smarts" does not include attached hydrogens in match
· new feature: smiles/smarts/substructure with tetrahedral chirality
· select smarts("C[C@@]([C]=O)([CH])[CH2]")
· code: Smiles refactoring and efficiencies
· note: I realize that smarts and smiles is a can of worms, particularly in
· relation to aromaticity. Ignoring that for now.
· new feature: {atomSet}.find(["SMARTS",]"smartsString"[,isAll])
· new feature: {atomSet}.find("SMILES","smilesString"[,isAll])
· new feature: "smilesString".find("SMARTS","smartsString" [, isAll])
· new feature: select smarts("smartsString")
· smarts does not do implied H atoms, making it much easier to
· use for pattern matching, which it was made for.
· new feature: select smiles("smilesString") alias for substructure(..)
· more specific and relevant -- SMILES strings are supposed to
· be for full molecules, not substructure searching
· new feature: JME data saved in variable "jmeString" for later generation of 2D data
· new feature: "smilesString".find("SMILES","smilesString" [, isAll (FALSE)] )
· bug fix: SMILES parser not properly checking explicit double bond check
· new feature: SMILES matching expanded to aromatic types
· bug fix: Spartan reader (compound document) misread# code: frequency reading standardized -- using auxiliaryInfo.modelProperties more effectively
· code: note that then getProperty modelInfo will return constraints, energies, and vibrational frequency info
· CHANGED FEATURE: set loadDefaultOrientation retired (Sygress/CAChe and Spartan files only) in favor of FILTER "noOrient"
· note that this will change the default orientation for these files to be the one last
· saved in the actual .spartan or .csf file.
· bug fix: undocumented obscure reference to nonstandard Hall symbols disregarded in readers
· new feature: isosurface "=nnnn" automatically loads Uppsala Electron Density Server data
· new feature: edsUrlCutoff, edsUrlFormat sets method of getting cutoff and file from electron density server
· String edsURLFormat = "http://eds.bmc.uu.se/eds/dfs/%LC13/%LCFILE/%LCFILE.omap";
· String edsURLCutoff = "load('http://eds.bmc.uu.se/eds/dfs/%LC13/%LCFILE/%LCFILE.sfdat').lines.find('MAP_SIGMA').split(' ')[2]";
· LCFILE is file.toLowerCase(); LC13 is file.substring(1,3).toLowerCase()
· bug fix: state should not be saving loadFormat, edsLoadFormat, or edsLoadCutoff
· bug fix: isosurface LATTICE option not generating copies for export
· code: all exporters may write files directly (was just POVRAY)
April 30th, 2010· bug fix: mo parameters not restored properly from state
· application: File menu "Output Console" changed to just "Console"
· code: support for Java 1.0, 1.1, 1.2, 1.4 dropped (MouseManagers and JmolPopup, Graphics3D)
bug fix: parallel:
· ScriptEvaluator: Given function object holds state, it can not be
· called from two threads at the same time. So, runFunction is wrapped in synchronized(function).
· ParallelProcessor: Is modified to use lock object vs this as this is used in ScriptEvaluator.
· Viewer: Change to Executor factory to use different thread executor,
· thus avoiding deadlock if parallel functions call parallel functions and
· allows parallel processes to be eligible to run.
· new feature: script level iteration max increased to 20 (still just an arbitrary number)
· new feature: "boundingBox" alias for "boundBox", also "boundingBoxColor" and "showBoundingBox"
· new feature: reading mol file stereochemistry bond types 1 and 6
· bug fix: fix for write POVRAY "xxx" not writing file for signed applet
· new feature: wait cursor for file loading and isosurface creation
· bug fix: CSF reader upgrade
· bug fix: stereochemistry addtion for JME skipping some wedges
· bug fix: writing MOL files with aromatic bonds fails
· bug fix: It is possible for PDB files (1tmv) to include non-crystallographic
· symmetry operations. These operations do not fit the standard model of
· Jones-Faithful operator syntax. (The symmetry in this case is a spiral)
· In that case, the list of symmetry operations may be truncated, and though
· all the atoms are in the correct positions, "select symop=49" might not work.
· bug fix: PDB biomolecule reading misses a set if the first is not "x,y,z"
· code: Java 1.5 required. (this has been the actual case for some time)
· code: UFF Calcution tweak: // added b.type "C_2+" for cations 12.0.RC9
· bug fix: UFF calculation fails to recognize C+ and C-
· bug fix: POV-Ray exporter should not store file path in .ini file
· code: unitcell cleanup
· bug fix: boundbox {1/2 1/2 1/2} {1/2 1/2 1/2} not working
· new feature: CRYSTAL reader orients unit cell
· code: general capability to orient unit cell
· new feature: isosurface lattice {a b c}
· can be applied AFTER the fact -- it is just a rendering method
· best carried out with PACKED unit cells
· bug fix: major upgrade for state preservation of isosurface
· no longer ;# xxxxx
· command in state reflects variable insertion
· sign colors not having desired effect
April 26th, 2010· code: modelsetbio efficiencies
· new feature: axes labels "a" "b" "c" "-a" "-b" "-c" -- extended to 6 from 3
· bug fix: axes, boundbox, unitcell tick labels did not start properly for format ["%0.2f", ...]
· bug fix: unitcell ticks should allow fractional coordinates; "scale HKL" not implemented
· code: removal of "simple" atom option for polyhedra
· bug fix: polyhedra collapsed incorrect shading calculation
· bug fix: ParallelProcessor upgrade
· bug fix: sigma option for isosurface 1/sigma?
· new feature: isosurface "=nnnn" automatically loads Uppsala Electron Density Server data
· new feature: edsLoadCutoff, edsLoadFormat sets method of getting cutoff and file from electron density server
· String edsLoadFormat = "http://eds.bmc.uu.se/eds/dfs/in/%LCFILE%LCFILE.omap";
· String edsLoadCutoff = "load('http://eds.bmc.uu.se/eds/dfs/in/%LCFILE/%LCFILE.sfdat').lines.find('MAP_SIGMA').split(' ')[2]";
bug fix: binary document reader may not read full set of bytes in byte array when using http:
April 23rd, 2010· bug fix: unicode characters in filenames
· bug fix: isosurface broken in 12.0.RC6
· new feature: drag-and-drop defaults for map files and PDB files
· bug fix: VRML exporter fails to remove duplicate spheres if not same color
· bug fix: states not saving correct path to isosurface files
· new feature: spacefill, halos, stars -x.y is "ONLY" as for other shapes
· bug fix: _atomPicked not updated for centering or other non-identify actions
· new feature: model numbers can be given as "2.1" in quotes
· bug fix for parallel processing and isosurface
April 23rd, 2010· new feature: MO MODEL x.y .... specifies which model to use
· code: atom iterators made thread safe and optimized a bit
· code: parallel processor in place; working;
· tested on dual core multiple processor Mac
· result -- 8 sec --> 4 sec for the two molecular surfaces
· example PARALLEL code: see http://chemapps.stolaf.edu/jmol/docs/examples-11/data/multiProcessTest.spt
· parallel makeIsos{
· process{isosurface s1 molecular}
· process{isosurface s2 molecular; color isosurface green}
· }
· load 1crn.pdb
· t = now()
· makeIsos
· print now() - t
· parallel: 4 s, not parallel: 8 s MacBook Pro/Windows, two processors
· print "------------------------"
· parallel showMOs(i,j) {
· process{mo model 1.1 @i}
· process{mo model 2.1 @j}
· }
· load files "C6H6.smol" "C6H6.smol"
· showMOs(22,23)
· frame *;
· code: ShapeManager created; all shape[] references out of ModelSet
· code: preliminary PARALLEL {.... PROCESS {....} ....}
· code: Normix3D refactoring
· bug fix: set measureAllModels not working properly
· bug fix: isosurface renderer subtle improvement for almost-degenerate-vertex triangles
· new feature: set monitorEnergy -- preliminary idea only
· bug fix: UFF carbonyl out-of-plane calculation coding error does not minimize carbonyl groups correctly
April 15th, 2010· new feature: multiple file drag and drop into application and signed applet
· new feature: minimize SILENT
· new feature: JME file loading uses minimize silent addhydrogens
· new feature: drag and drop into signed applet
· new feature: drag and drop from link, state-image for MSIE and Mozilla
· new feature: load INLINE "......jme data...."
June 22nd, 2009· bug fix: /** comment ending line can cause odd error
· bug fix: set xxxx n where n is an integer fails.
· bug fix: GAMESS reader not properly assigning MOs
· code: better .stddev calculation
· new feature: a = [] note that a+=2 then produces [2] -- "a+=" similar to JavaScript a.push(2)
· bug fix: a="test";a[1] = "b" not working
· bug fix: {atomExpression}.min, .max
· new feature: merging of label() and format() functions -- same in all respects.
June 10th, 2009· bug fix: setting commandOptions "" in Viewer.setAppletContext()
· {atomno=3}.radius += 0.1
· bug fix: in certain APPEND cases, binary space partitioning forest initialization is not complete
· bug fix: minimization not trapping error on viewer going null
· new feature: set useMinimizationThread T/F nec. to be FALSE when running minimizations in scripts that require values
· code: compiler refactoring and efficiencies;
· code: compiler continued development of advanced scripting syntax.
new feature:
· Jmol scripting now supports ++, --, +=, -=, *=, /=, =, |=, &=
· i++
· ++i
· i += 3
and basically all the standard flow syntax of Java and JavaScript:
· for (i = 1; i
June 2nd, 2009· bug fix: biomolecules for new PDB format
new feature: consistent set of atom properties now accessible via:
· select {xxxx = whatever}
rather than the more cumbersome:
· select {*} (_x.xxxx = "whatever")
May 25th, 2009· new feature: load OCCUPANCY ... int [0 to 255]
· new feature: load PARTIALCHARGE ... float ~[-3.4 x 10^38 to 3.4 x 10^38]
· new feature: load TEMPERATURE ... float [-327.68 to 327.67], with 0.01 precision (stored as short)
· new feature: loadAtomDataTolerance, with default 0.01 Angstroms
May 23rd, 2009· new feature: load VIBRATION "filename" n .......
· --all features of the load command, but only loads the vibrational information
· --applies {within(loadAtomDataTolerance,xyzcoord)}.vxyz = vibcoord, so to all unit cells
· --optional n is just as for any load -- optional nth model
· --operates on previously selected atoms only
· --allows embedded jmolscript, just as for any load
· --sets _vibrationName from file's atom set collection name
· new feature: loadAtomDataTolerance (see above)
· bug fix: load {n n n} not saved in state
· new feature: load {a b -c} packs a x b x c cells
· new feature: select within(-0.1, {1/2 1/2 1/2}) -- negative distance within selects atoms based on unitcell coordinates
· new feature: select within(-0.1, atomno=3) -- negative distance within selects atoms based on unitcell coordinates of all atoms involved
· new feature: select within(-0.1, true, atomno=3) -- negative distance within model selects atoms based on unitcell coordinates
· new feature: select ux|uy|uz < x.x -- selection based on unit coordinates
· new feature: {x y z}.fxyz -- returns fractional from cartesian
· new feature: {x y z}.uxyz -- returns unitcell from cartesian
· new feature: {x y z}.ux, .uy, .uz similar to .fx, .fy, .fz
· new feature: {x y z}.xyz -- returns cartesian from fractional
· note that .x .y .z does NOT do this conversion. If that is
· intended, you need to use {x y z}.xyz.x
· if multiple models are visible, then all these just return as through there were no unit cell.
· new feature: {atomExpression}.uxyz, .ux, .uy, .uz -- unit cell coordinate
· The value depends upon the setting of unitcell offset. For example, if we have unitcell 444
· then {x}.uxyz will be in the range {-1,-1,-1/1} (inclusive) to {0,0,0/1} (exclusive)
· Note that uxyz is not settable, but fxyz is, so one could, for example,
pack a unit cell using:
· unitcell 555
· n = {*}.size
· for (var a = 1; a < n; a = a + 1)
· {atomno=a}.fxyz = {atomno=a}.uxyz
· end for
· bug fix: {atomExpression}.fxyz does not return factional value, just 0.0
April 21st, 2009· bug fix: minimization callback does not report dE
· bug fix: minimization does not interrupt or stop in applet
· bug fix: rotate quaternion with NaN values not ignored
· bug fix: applet console not closed when web page destroyed
· bug fix: load file:///xxx.xxx (file:/// with file in root path) causes unrecoverable exception
· bug fix: signed applet JmolAppletSigned0.jar does not include minimizer in internal jar index
· bug fix: rotate -x n rotates wrong direction
· new feature: load xxxx FILTER "NBOcharges" loads NBO charges instead of Mulliken
· note: for NBOs you still need FILTER "NBO" so with charges that would be FILTER "NBO;NBOcharges"
· bug fix: Jaguar reader vibrations not correct
· bug fix: autoBond option in Preference menu was not writing to properties file in $HOME/.jmol
· new feature: preliminary NBO support for Gaussian and QChem needs checking
· code: subclassing Gaussian, QChem, NWChem, Gamess, Jaguar, Psi readers all into MOReader class
February 24th, 2009· bug fix: Spartan reader reads MOs improperly when only a partials set of MOs is included in the file
· bug fix: Some Spartan files not reading: Compound Document not properly finding root directory block
February 3rd, 2009· bug fix: @~xxx({xxxx}) compiler bug
· bug fix: structure helix ({xx:yy}) compiler bug
· bug fix: user menu write povray/vrml/maya missing quotation marks in command
October 10th, 2008· bug fix: modelLoader was assigning too much array space for chains
· bug fix: rocket positions after translateselected
January 4th, 2008· bug fix: quaternion for nucleic acids
· code: inefficiencies in Quaternion code
· bug fix: wing vectors for biopolymers not containing O improperly drawn for sheets and, in the case of set traceAlpha TRUE (the default), helixes
· bug fix: translateSelected/rotateSelected does not move cartoons
· bug fix: tainted occupancy not saved in state
· bug fix: biopolymers have wrong wing vectors (from 11.3.62)
· bug fix: restore of state does not reset user-defined atom properties
· code: refactoring Atom and AtomCollection