Changes
Changes
Jmol.___JmolVersion="14.6.1_2016.07.11"
JmolVersion="14.6.0_2016.07.06"
bug fix: Jmol can crash on point group calculation for small polyhedra
JmolVersion="14.6.0_2016.06.30"
JmolVersion="14.6.0_2016.06.28"
bug fix: using an exporter (write VRML, eg) with cartoonsFancy will break rendering
after that
bug fix: after loading PNGJ data, using write FILE crashes Jmol
JmolVersion="14.6.0_2016.06.23"
bug fix: nn.? and nn.* are not processed properly as float nn.
For example: print (35 == 35.? "yes" : "no") cause script exception
JmolVersion="14.6.0_2016.06.22"
JmolVersion="14.6.0_2016.06.21"
JmolVersion="14.6.0_2016.06.14"
bug fix: reading of protein structure for a group that is not in a polymer causes
null pointer exception
JmolVersion="14.6.0_2016.05.26"
bug fix: set hermiteLevel -4 allows hermite during mouse move but not spinning
bug fix: polyhedron faces not generated correctly when postions are very close
together (still)
bug fix: polyhedron face areas not calculated correctly
JmolVersion="14.6.0_2016.05.24"
JmolVersion="14.6.0_2016.05.23"
JmolVersion="14.6.0_2016.05.17"
for release
$ load $biphenol
$ connect @{@7|@8} @{@1|@2} atropisomer
$ print {*}.find("SMARTS","c1(O)ccccc1^23-c2c(O)cccc2")
({0:13})
Explained below.
$ load $biphenol
$ connect @{@7|@8} @{@1|@2} atropisomer
$ getProperty bondinfo[7].type
bondinfo[7].type "atropisomer_23"
$ load $biphenol
$ connect @{@7|@8} @{@1|@2} atropisomer
$ print {*}.find("SMARTS","c1(O)cccc{c1^23-c2}c(O)cccc2")
({1 6})
Here the "^23-" refers to the two carbons with connected oxygen atoms, because
the second
bond listed for the carbon on the left is to the c1(O) atom, and the third bond
listed for
the carbon on the right is to the other c(O) atom. Note that bond numbering
includes the
implicit bond to the atom coming from the atom on its left, which for the second
carbon,
starts with the atropisomeric bond itself, at least in this case.
1*23 1*23
c1(O)ccccc1^23-c2c(O)cccc2
JmolVersion="14.5.4_2016.04.30"
JmolVersion="14.5.4_2016.04.25"
Jmol.jmolButton("jmolApplet0", [function()
{Jmol.loadFileFromDialog(jmolApplet0)}],"Open File")
bug fix: show spaceGroup can crash after load ... filter "biomolecule 1"
bug fix: load =1auy.cif {1 1 1} does not complete atoms in unit cell
for files with noncrystallographic symmetry operations (_struct_ncs...)
such as viral capsids
bug fix: load =1auy.cif {1 1 1} filter "BIOMOLECULE 1;*.ca" does not work
JmolVersion="14.5.4_2016.04.24"
new feature: show chemical xxx where xxx is one of the file types:
alc cdxml cerius charmm cif cml ctx gjf gromacs hyperchem jme
maestro mol mol2 sybyl2 mrv pdb sdf sdf3000 sln smiles xyz
bug fix: NCI switch to using /sdf for 3D rather than 2D, breaks jsv_predict2.html
-- requires converting mrv format to jme:
function getJMEHs() {
var x= show("chemical mrv")
var x2 = x.split('x2="')[2].split('"')[1].split(' ')
var y2 = x.split('y2="')[2].split('"')[1].split(' ')
var el = x.split('elementType="')[2].split('"')[1].split(' ')
var s = '' + {*}.size + ' ' + {*}.bonds.size + ' ' +
el.join(x2).join(y2).join(' ').replace('\n',' ')
var b = x.split("<bond ")
for (var i = 2; i <= b.length; i++) {
var bi = b[i]
var at = bi.split('atomRefs2="')[2].split('"')
[1].replace('a','')
var n = (bi.find('>W<') ? -1 : bi.find('>H<') ? -2 :
bi.split('order="')[2].split('"')[1])
s += ' ' + at + ' ' + n
}
return s
}
load $morphine
x = getJMEHs()
print x
JmolVersion="14.5.4_2016.04.23"
This change is for 14.5 only, not 14.4, which remains DSSP 1.0
JmolVersion="14.5.4_2016.04.22"
bug fix: on loading, crystallographic file reading fails when applying symmetry
bug fix: on loading, user-defined space groups using Hall symbol fails
bug fix: SHELX reader broken
JmolVersion="14.5.4_2016.04.21"
bug fix: CIF files with missing tags that Jmol needs fail to load at all.
(Not necessarily a bad thing, but it is not supposed to fail so
dramatically.)
bug fix: mmCIF/mmTF reader does not complete symmetry for biomolecules when there
is a lattice.
for example:
bug fix: mmCIF, PDB, and mmTF readers with lattice indicated does not show unit
cell
JmolVersion="14.5.4_2016.04.19"
*
* JmolData RCSB MMTF (macromolecular transmission format) file reader
*
* see https://github.com/rcsb/mmtf/blob/master/spec.md
*
* /full/ specification as of 2016.4.18 is implemented,including:
*
* reading atoms, bonds, and DSSR secondary structure
*
* load =1f88.mmtf
*
*
* reading space groups and unit cells, and using those as per other readers
*
* load =1crn.mmtf {1 1 1}
*
* reading bioassemblies (biomolecules) and applying those transformations
*
* load =1auy.mmtf FILTER "biomolecule 1;*.CA,*.P"
*
* reading biomolecules and lattices, and loading course-grained
*
* load =1auy.mmtf {2 2 1} filter "biomolecule 1;bychain";spacefill 30.0; color
property symop
*
*
bug fix: certain viral capsid CIF files will fail to load due to this line: XAU
'(X0)(1-10,21-25)' A,B,C
bug fix: DSSR selection includes too many atoms
bug fix: PSE reader broken in JmolData.jar; no issue with Jmol.jar or JSmol
bug fix: PSE reader for Pymol 1.7.5 files may not set some models visible
bug fix: PSE reader not processing (sele) and related selections
bug fix: SET nihResolverFormat does not work; using "=" does work.
(There should be no reason to set this; Jmol is automatically changing
those to "https".)
JmolVersion="14.5.4_2016.04.14"
bug fix: Jmol 14.5.4_2016.04.13 will fail to read PDB files from scripts
referencing http://www.rcsb.org/pdb/
-- does not affect http://www.rcsb.org/pdb/ligand
-- does not affect load =xxxx or load ==xxx
-- does not affect PNGJ files
-- only affects scripts that specifically reference that site (e.g. state scripts
created prior to 4/13/2016)
-- Note that this works because SELECT can find unit ids ("|1|E|DC|36||||") in any
string.
For example:
$ select "|1|E|DC|36||||"
19 atoms selected
JmolVersion="14.5.4_2016.04.13"
bug fix: models from PyMOL reader do not save atom colors in state when balls are
colored
new feature: "$isosurface1".getProperty("atoms")
-- returns atoms associated with this surface
-- for example, the atoms used to make a molecular surface
$ show symop/glide
$ show set/zoom
$ show state/draw
$ show file "test.xyz" /H
$ show file "/remark 900"
$ show variables/sym
FEATURE NOTE: Jmol now has a RELATIVELY COMPLETE set of analysis and visualization
tools for space group symmetry. All standard and magnetic space group operations
are covered. Features are concentrated in four command options and one function:
-- load any model while applying any actual or conceivable space group or subset
of a space group
-- tabulate all space group operations associated with that model
-- retrieve an associative array indicating all aspects of the operation,
including
point, rotation axis, plane, glide vector, lattice offset vector, and 4x4
matrix
-- visualize all aspects of an operation, including proper and improper
rotations
inversion centers, mirror planes, glide planes, translations, and magnetic
spin time reversal
-- apply any operation to any atom or any point in space
-- given any combination of two atoms or two points in space, determine and/or
depict the operation(s) that relate those to atoms or positions
JmolVersion="14.5.4_2016.04.11"
"draw" Returns the Jmol script illustrating this operation with DRAW
commands.
$ print symop(3,"draw")
draw ID draw_* delete
draw ID draw_frame1X diameter 0.15{5.5172 1.9683 2.7802}{6.5172 1.9683
2.7802} color red
...
$ print symop(3,"full")
-x,-y,-z(mx,my,mz) Ci: 0 0 0
"lattice" Returns the lattice type associated with the space group involving
this operation.
$ print symop(@3,@21,"list")
5 x+1/2,-y+1/2,-z+1/2(-mx,my,mz) 2-fold screw axis|
translation: 1/2 0 0|time-reversed
7 -x+1/2,y+1/2,z+1/2(-mx,my,mz) n-glide plane|translation: 0
1/2 1/2|time-reversed
Note that this string can be turned into a standard array using
.lines.split("\t",true):
$ print symop(@3,@21,"list").lines.split("\t",true)
[
5
x+1/2,-y+1/2,-z+1/2(-mx,my,mz)
2-fold screw axis|translation: 1/2 0 0|time-reversed
]
[
7
-x+1/2,y+1/2,z+1/2(-mx,my,mz)
n-glide plane|translation: 0 1/2 1/2|time-reversed
]
$ load =magndata/0.34
$ print symop(3,"array")
{
"inversionCenter" : {0.0 0.0 0.0}
"label" : "Ci: 0 0 0"
"matrix" :
[
[-1.0, 0.0, 0.0, 0.0]
[0.0, -1.0, 0.0, 0.0]
[0.0, 0.0, -1.0, 0.0]
[0.0, 0.0, 0.0, 1.0] ]
"timeReversal" : 1
"xyz" : "-x,-y,-z(mx,my,mz)"
"xyzOriginal" : "-x,-y,-z,m"
}
In addition, all possible keys of this array may be used as well for
outputType. These include:
Three of these that may be less than obvious are explained below:
-- selects lines from a space group report similar to the way show state/xxxx
works
-- example:
load =ams/quartz 1
show spacegroup/Class
1 x+2,y,z2(mx,my,mz) translation: 2 0 -2
5 -x,-y,-z(mx,my,mz) Ci: 0 0 0
11 x+2,-y,-z(-mx,my,mz) 2-fold screw axis|translation: 2 0 0|time-
reversed
15 -x,y,z2(-mx,my,mz) c-glide plane|translation: 0 0 -2|time-reversed
C2
C3
Ci
Cs
S6
detail
distanceTolerance
linearTolerance
nAtoms
nC2
nC3
nCi
nCn
nCs
nS6
nSn
nTotal
name
points
principalAxis
bug fix: qchem reader fails to switch to spherical D/F basis for second structure
bug fix: pointGroup secondary axis in yellow is too hard to see -- using "orange"
instead
JmolVersion="14.5.4_2016.04.05b"
bug fix: unitcell primitive for A,B,C-centered lattices rotated 90 degrees from
NRL standard (Michael Mehl, U.S. Naval Research Laboratory)
bug fix: polyhedra COLLAPSED do not have correct normal vectors
bug fix: assocArray.bin() should allow "TRUE" option
bug fix: =mp/24972 not working after switch to https
JmolVersion="14.5.4_2016.04.03"
bug fix: draw SCALE x.x symop has no effect; good to be able to scale down the
arrow
bug fix: draw symop can fail for second call
JmolVersion="14.5.4_2016.03.31"
JmolVersion="14.5.4_2016.03.29"
code: ru.po updated (Angel Herraez)
new feature: Polyhedra command allows for min and max radius
-- polyhedra 2.8 3.0 @3
bug fix: WRITE IMAGE with negative width or height should throw a Jmol
ScriptException
bug fix: draw ... [x y] does not position properly with antialias true
bug fix: allow AXES TYPE "" or non-recognized to be same as "abc"
bug fix: AXES TYPE "ab" should also be allowed when offset or center is set
bug fix: labels should not change size when creating images of
different size than screen when angstromsPerInch != 0.
bug fix: if...BREAK|CONTINUE in unbracketed context does not properly
place implicit END IF when TRUE clause is on next line
AND next statement after that is another IF command:
if (xxxx)
break;
if (yyyy)
zzzz;
becomes
if (xxxx) {
break;
if (yyyy) {
zzzz;
}
}
instead of
if (xxxx) {
break;
}
if (yyyy) {
zzzz;
}
JmolVersion="14.5.4_2016.03.25"
bug fix: JavaScript Jmol.evaluateVar() does not properly escape JSON strings
bug fix: SMILES generator broken in 03.23
JmolVersion="14.5.4_2016.03.24b"
bug fix: axes/unitcell/boundbox appear 10x too thick after recalling from state
-- broken in JmolVersion="14.5.4_2016.03.21"
bug fix: polyhedra fix for overlapping face triangles
bug fix: magnetic spin vector trail disappears when not vibrating
bug fix: magnetic spin vector trail does not reset if set vectorscale <n> where <n>
is less than current
JmolVersion="14.5.4_2016.03.24"
new feature: x.bin() method allows return of an array listing both the bound and
the count
-- example:
$ print {*}.bonds.length.all.bin(1,2,0.1,TRUE).format("json")
[ [ 1.0,10.0 ],[ 1.1,0.0 ],[ 1.2,0.0 ],[ 1.3,3.0 ],[ 1.4,2.0 ],
[ 1.5,1.0 ],[ 1.6,0.0 ],[ 1.7,0.0 ],[ 1.8,0.0 ],[ 1.9000001,0.0 ] ]
bug fix: saving a state after using LOAD "" (empty quotes)
after pasting data directly into the application creates an unreadable
state
JmolVersion="14.5.4_2016.03.22"
JmolVersion="14.5.4_2016.03.21"
new feature: expanded UNITCELL command to include PRIMITIVE option for any space
group
bug fix: OpenSMILES matcher not allowing non-chemist Hueckel 4+2 interpretation
bug fix: SMILES generator not adding "-" for biphenyl Ar-Ar bond
bug fix: set picking invertSTEREO does not work on open-ring systems
bug fix: dashed lines not visible in measurements, unit cells, and axes
JmolVersion="14.5.4_2016.03.14"
bug fix: Polyhedra with verticies that are also centers of polyhedra for atoms that
were visible
but are no longer visible do not update screen positions properly
JmolVersion="14.5.4_2016.03.13"
TODO: DOCUMENT-->>>
$ load $2-butanol
$ @2.property_atomclass=2
$ @3.property_atomclass=3
$ @5.property_atomclass=5
$ print {*}.find("smiles/open")
C[C@H:2]([OH:5])[CH2:3]C
C[C@H](O)CC
$ @2.property_atomclass=2
$ @3.property_atomclass=3
$ @5.property_atomclass=5
$ select *
15 atoms selected
$ select on search("/open/[:3]")
1 atoms selected
$ select on search("/open/[!:3]")
14 atoms selected
$ select on search("/open/[:0]")
12 atoms selected
$ select on search("/open/[!:0]")
3 atoms selected
$ select on search("/open/[!:3 & !:0]")
2 atoms selected
bug fix: SMILES should not be returned with comments for internal processing or
sending to PubChem or others
bug fix: SHOW chemical SMILES can be off because it was using the name, not the
SMILES string
-- sometimes - e.g. "menthol" - the name has no chirality, but the structure does
(of course).
bug fix: POLYHEDRA when selection halos are on, all have edges
bug fix: Tripos MOL2 reader does not read element symbols properly
bug fix: default write MOL file should not indicate aromatic bond types 6 and 7
-- corrects the fact that these bonds are reserved for queries
-- only affects cases where that bond type has been set (after calculate aromatic
or loading of ligand CIF files
JmolVersion="14.5.4_2016.03.08"
JmolVersion="14.5.3_2016.03.06"
JmolVersion="14.5.3_2016.03.05"
bug fix: SMILES SP square planar stereochemistry will report ENANTIOMERS rather
than DIASTEREOMERS
JmolVersion="14.5.3_2016.03.03b"
data_icosahedron
loop_
_atom_site_label
_atom_site_Cartn_x
_atom_site_Cartn_y
_atom_site_Cartn_z
C01 0.0000000000 0.0000000000 9.5105651630
C02 8.5065080835 0.0000000000 4.2532540418
C03 2.6286555606 8.0901699437 4.2532540418
C04 -6.8819096024 5.0000000000 4.2532540418
C05 -6.8819096024 -5.0000000000 4.2532540418
C06 2.6286555606 -8.0901699437 4.2532540418
C07 6.8819096024 5.0000000000 -4.2532540418
C08 -2.6286555606 8.0901699437 -4.2532540418
C09 -8.5065080835 0.0000000000 -4.2532540418
C10 -2.6286555606 -8.0901699437 -4.2532540418
C11 6.8819096024 -5.0000000000 -4.2532540418
C12 0.0000000000 0.0000000000 -9.5105651630
loop_
_geom_bond_atom_site_label_1
_geom_bond_atom_site_label_2
_ccdc_geom_bond_type
C01 C02 S
C01 C03 S
C01 C04 S
C01 C05 S
C01 C06 S
C02 C03 S
C03 C04 S
C04 C05 S
C05 C06 S
...etc...
JmolVersion="14.5.3_2016.03.03"
bug fix: after SET echo ALL, background echo ... changes text color, not background
color
JmolVersion="14.5.3_2016.03.02"
bug fix: JavaScript reference to j2s for working gif does not recognize
Info.j2sPath
JmolVersion="14.5.3_2016.02.28"
bug fix: cyclic peptides do not complete loop for cartoons, backbone, etc. (1SFI)
JmolVersion="14.5.3_2016.02.27"
JmolVersion="14.5.3_2016.02.17"
JmolVersion="14.5.2_2016.02.14"
bug fix: EBI assembly CIF files that are multi-model files will be by chain, not by
model.
-- result was that each chain became a new model
-- for example: see http://www.ebi.ac.uk/pdbe/static/entry/download/2lev-
assembly-1.cif.gz
JmolVersion="14.5.2_2016.02.09"
bug fix: SMARTS pattern [ALA.*] not working without biological polymer type
indication
bug fix: SMARTS pattern [r500] not working outside of MINIMIZE
JmolVersion="14.5.2_2016.02.06"
JmolVersion="14.5.2_2016.02.05"
bug fix: LOAD $benzene; SHOW smiles should give c1ccccc1 not c1=cc=cc=c1
JmolVersion="14.5.2_2016.02.04"
FEATURE NOTE: Prior to this version if the MO command was issued after use of
rotateSelected, the orbitals were calculated improperly, because the
basis functions always must be applied for the original file
coordinate
frame, not the rotated frame. In addition, if MOs were calculated
prior to
use of rotateSelected or translateSelected, then they would not
"track"
with the modified atom positions. So MOs and rotate/translateSelected
were completely incompatible. Jmol 14.4.2 fixes this issue. It should
be
possible now to produce correct MOs before or after use of
rotateSelected.
Note that ALL atoms in a specified model must be moved in order for
this
tracking of MOs to take place. This functionality was introduced in
14.4.1_2016.01.28, but that version (never released) does not
properly
check to see that ALL the atoms in a model have been involved in the
rotation.
bug fix: JVXL files saved from models that involve full model
rotate/translateSelected
do not get restored properly.
JmolVersion="14.5.2_2016.02.03"
bug fix: IboView/Molpro XML reader validated for multi-molecule XML files
-- to concatenate Molpro XML files, you must supply a new root tag as well as
remove all <?...?> directives.
-- DOS CMD file example:
copy /b %1 _temp
echo ^<OUTER^> > %2
type _temp | find /V "<?" >> %2
echo ^</OUTER^> >> %2
JmolVersion="14.5.1_2016.02.01"
JmolVersion="14.5.1_2016.01.28"
bug fix: MOs need to move with atoms and be restored from state properly
after use of ROTATESELECTED.
-- note that fix for 14.4 does not include state saving, as that would break
previous subversions
JmolVersion="14.5.1_2016.01.25"
bug fix: Spartan file reader not working properly after MacSpartan -> Spartan14
upgrade
JmolVersion="14.5.1_2016.01.16"
bug fix: mol, xyz readers not reporting model name like other readers
code: polyhedra, pointgroup, load =ams/, load "xxxx#_DOCACHE_" features from 14.5
added to 14.4
JmolVersion="14.5.1_2016.01.15"
bug fix: d = [start:1,end:10] fails due to reserved word "end" (also "select",
"case", "default", "if", "for", etc.)
bug fix: color "chain" (with quotes) should work, allowing for x="chain"; color @x
bug fix: inappropriate use of REGEX in ["a","b"].find("x")
bug fix: ".xxx" should be allowed as a math continuation:
JmolVersion="14.5.1_2016.01.09"
code: (JavaScript) refactoring to allow faster, cleaner load for biomodels
JmolVersion="14.5.1_2016.01.08"
bug fix: labels, echos, and measurements improperly shaded when z-shaded with
nonblack background
bug fix: rendering error when set zshade followed by set antialiasdisplay
JmolVersion="14.5.1_2016.01.06"
JmolVersion="14.5.1_2016.01.04"
bug fix: (JvxlReader) Jmol 12 mapped isosurface jvxl files do not show mapped color
bug fix: setting default label properties using select none;.... fails
bug fix: setting cartoons on for phosphorus-only polymers fails
bug fix: undocumented model-based draw [array of points] broken
-- points only
-- selects from visible frames (frame *, for example)
-- load cyclohexane_movie.xyz; frame *; draw @{{C5}.split().sub({1,0,0})
JmolVersion="14.5.1_2016.01.01"
JmolVersion="14.5.1_2015.12.23b"
bug fix: JavaScript error reporting uses alert() instead of just setting the error
message
bug fix: PyMOL 1.8 PSE files cannot be read because of missing settings
JmolVersion="14.5.1_2015.12.23"
JmolVersion="14.5.1_2015.12.21"
JmolVersion="14.5.1_2015.12.20"
JmolVersion="14.5.1_2015.12.14"
bug fix: JSmol (JSmolCore.js) check for MS Edge browser, which does not support
dataURI
JmolVersion="14.5.0_2015.12.13"
new feature: "#_DOCACHE_" suffix for file name loading tells Jmol to insert full
structure into any state
-- allows SPT files to preserve the original file (as in all PNGJ files)
-- for example:
load caffeine.xyz#_DOCACHE_
show state
...
function _setFileState() {
DATA "file_caffeine.xyz#_DOCACHE_"
24
new feature: load =ams loads data from American Mineralogist Crystal Structure
Database
-- many thanks given to Robert Downs and Alex Pires for enabling this
functionality.
-- fetches data from http://rruff.geo.arizona.edu/AMS
-- employs "#_DOCACHE_" flag because some of these data files may change after
database maintenance
-- three modes. Only the first, using _database_code_amcsd, is guaranteed to be
stable over time,
=ams/<nnnnnnn> (seven-digit database code) loads that specific structure based
on _database_code_amcsd
load =ams/0014673
show _modelfile
_modelfile = "http://rruff.geo.arizona.edu/AMS/viewJmol.php?
amcsd=14673&action=showcif#_DOCACHE_"
=ams/<nnnnn> (less than seven-digit id) loads that specific structure based on
sequential id code
load =ams/10000
show _modelfile
_modelfile = "http://rruff.geo.arizona.edu/AMS/viewJmol.php?
id=10000&action=showcif#_DOCACHE_"
=ams/<mineralName> loads all structures for a specified named mineral.
load =ams/diamond
show _modelfile
_modelfile = "http://rruff.geo.arizona.edu/AMS/viewJmol.php?
mineral=diamond&action=showcif#_DOCACHE_"
-- thus, all of the following are equivalent as of 12/13/2015:
load =ams/0008986
load =ams/10000
load =ams/srilankite 4
database maintenance.
-- also addded to Jmol 14.4.0, but left undocumented
background white
load $caffeine
function createElementKey() {
var y = 90
for (var e in {*}.element.pivot){
var c = {element=@e}.color
draw ID @{"d_"+ e} diameter 2 [90 @y %] color @c
set echo ID @{"e_" + e} [91 @{y-1} %]
echo @e
font echo 24 bold sansserif
color echo black
y -= 5
}
}
createElementKey
JmolVersion="14.5.0_2015.11.06"
bug fix: restoring bonds to a model having fewer bonds than the model for which
they were saved throws an exception
bug fix: CIF reader does not read incommensurately modulated magCIF files
bug fix: WRITE xxx.ZIP crashes Jmol
bug fix: POLYHEDRA ... {xxx} TO {yyy} not working
JmolVersion="14.5.0_2015.11.03"
bug fix: FOR without {} but with ";" after sole statement
followed immediately by second FOR improperly loops
for (var i from [1,5])
print i;
for (var i from [1,5])
print i
FEATURE CHANGE: (Application only for now) PDB default for =xxxx
-- changed to
"pdb", "http://ftp.wwpdb.org/pub/pdb/data/structures/divided/pdb/%c2%c3/pdb
%file.ent.gz"
-- will be complemented with file.ent for non-binary transfer, but that is not
implemented yet at RCSB
-- mmCIF counterpart not implemented yet.
-- not HTML5 because for that we need the option to remove .gz
new feature: set testflag3 TRUE gives random triangle effect to polyhedra
bug fix: bug fix: empty format crashes Jmol -- print "testing".format("")
bug fix: polyhedron volume will be incorrect if there is a
face triangle that has no edges visible (requires a six or more sided
face)
bug fix: nested if...{...if... } else {...} gives compiler syntax error:
if (i=1) {
print "i=1"
if (j=1)
print "j != 1"
} else { // } closes if (j=1) instead of if (i=1) {
print "i != 1"
}
JmolVersion="14.5.0_2015.10.29"
bug fix: after CALCULATE HYDROGENS TRUE and then deleting hydrogens, hydrogens are
not added to aromatic rings in PDB models
bug fix: reading saved state after adding hydrogen atoms results in infinite loop
JmolVersion="14.5.0_2015.10.28"
bug fix: XODYDATA file reader does not read bond info or formal charge // changes
in 14.4.0_2015.10.28
JmolVersion="14.5.0_2015.10.27"
JmolVersion="14.5.0_2015.10.24"
JmolVersion="14.5.0_2015.10.22"
bug fix: CIF parser fails to read CIF files containing only a single (non-loop)
_struct_ref_seq_dif.align_id
bug fix: WRITE .... AS does not properly allow for unquoted file name
JmolVersion="14.5.0_2015.10.21"
bug fix: write c:/temp..... AS PNGJ does not work without quotes that way; it
should
JmolVersion="14.5.0_2015.10.20"
new feature: polyhedra with arbitrary center and vertices, without atom center
-- for example:
polyhedra ID "myid" {0 0 0} TO [{1 0 0}, {0 1 0}, {0 0 1}, {-1 -1 -1}]
JmolVersion="14.5.0_2015.10.18"
faces = []
for (var i = 1; i <= nPlanes; i++) {
var f = ("$f" + i).getProperty("face")
faces.push(f)
}
polyhedra @1 to @{within(0.01, faces.join())} color white
bug fix: Polyhedra can have missing triangle for hexagonal faces
bug fix: calculate symmetry can break Jmol if unit cell has been changed
bug fix: DRAW POLYGON front/back nature of winding was reversed.
JmolVersion="14.5.0_2015.10.17"
bug fix: if (...) \n { .... not working (where brace is on next line)
bug fix: CIF reader will read empty second model for IUCr files with terminal
data_global block
bug fix: polyhedra bonds unitcell can cause error in HTML5
bug fix: nucleic backbone should include O atoms on P and C
bug fix: nucleic spine should not include C2'
bug fix: pmesh/isosurface RESOLUTION 0.0001 with plane can cause loss of some or
all of the plane
-- resolution 0.0001 creates just a minimum of triangles to construct the
plane.
bug fix: set testflag4;isosurface ... ; does not generate normals
bug fix: (Application) set refreshing false shows Jmol console in model frame (Java
bug??)
JmolVersion="14.5.0_2015.10.14"
JmolVersion="14.5.0_2015.10.13"
JmolVersion="14.4.0_2015.10.13"
JmolVersion="14.3.16_2015.10.13"
Java/JavaScript style:
function test () {
for (var i = 0; i < 5; i++)
if (i < 2)
print -i
}
VB style:
function test ()
for (var i = 0; i < 5; i++)
if (i < 2)
print -i
end if
end for
end function
JmolVersion="14.3.16_2015.10.12"
bug fix:
PARALLEL/PROCESS not working
bug fix:
SHOW DATA does not return model data
bug fix:
draw CURVE pt1 pt2 does not work
bug fix:
pmesh command cannot read files from zip files
because "binary" option is set, and FileManager is returning the wrong
input stream
UNITCELL @{unitcell("reciprocal")}
draw unitcell
UNITCELL RESET
JmolVersion="14.3.16_2015.10.09"
new feature: Gaussian log file reader reads spin density scalars as property_spin
JmolVersion="14.3.16_2015.10.06"
bug fix: MRC surface reader: new version of EMAN2 leaves out alpha,beta,gamma; does
not load properly
bug fix: for (a in {*}) with no VAR fails if a has already been defined as an
integer
JmolVersion="14.3.16_2015.10.04"
bug fix: changing bond order of X-H using set picking assignBond_2 generates error
messages and removes atoms
new feature: if, for, and while can all operate using no braces for single-line
bodies
-- similar to JavaScript and Java
-- examples:
if (i == 1)
print i
else
print 0
JmolVersion="14.3.16_2015.10.01"
JmolVersion="14.3.16_2015.10.01"
calculate hydrogens
connect aromatic modify
calculate aromatic
bug fix: connect aromatic should not touch H atoms or atoms with 4 or more covalent
bonds
bug fix: calculate hydrogen should consider backbone N sp2
bug fix: {backbone} should include attached H atoms
bug fix: calculate hydrogens should not place H atoms on water
JmolVersion="14.3.16_2015.09.29"
TODO: document------->>>>
JmolVersion="14.3.16_2015.09.28b"
JmolVersion="14.3.16_2015.09.28"
load sf6.smol
x= _M.moData.mos.select("energy,index where energy<0")
x.sort("energy").reverse
print x
{
"energy" : -0.67001194
"index" : 35
}
{
"energy" : -0.67001194
"index" : 34
}
{
"energy" : -0.67001194
"index" : 33
}
{
"energy" : -0.70143324
"index" : 32
}
...
{ "AA": { "b": 4 } }
Compare this to the following, where we are are checking for validity of abc
itself:
abc2 = [
[ A:[b:1], B:[b:2], C:[b:3, d:50], AA:[b:4] ],
[ A:[b:11], B:[b:22], C:[b:33, d:5050], AA:[b:40] ]
]
print abc2.select("A* wherein b>2").format("JSON")
load =1ehz/dssr
print _M.dssr.hbonds.select("distance where res_long like '*|C|72|*'")
{
"distance" : 2.832
}
{
"distance" : 2.879
}
{
"distance" : 2.838
}
2.832
2.879
2.838
2.8496666
JmolSQL
The original conception of JmolSQL was in the context of the getProperty() function
-- for example:
load $caffeine
print getProperty("atomInfo[SELECT atomno,coord WHERE shape LIKE 'trigonal
planar']")
Associative Arrays
When the top-level object is an associative array, .select() can be used to select
out subsets of that array, either as a single associative array or as an array of
values.
abc.select("...")
The simplest form of .select() returns a subset of abc. Wild cards can be
interspersed with additional keys, for example, "a*,b" or "*_id". In each such
case, the case-sensitive LIKE operation is used to match keys.
{ "A": { "b": 1 } }
abc = [ A:[b:1],B:[b:2],AA:[b:3, d:50] ]
print abc.select("A*").format("JSON")
load $caffeine
x = getProperty("atomInfo")
print x.count
24
print x[1]
xyz.select("...")
Creates the sublist of associative arrays having the selected subset of keys:
xyz = [ [a:1,b:11],[a:2,b:22],[a:3,b:33] ]
print xyz.select("b").format("JSON")
[ 11,22,33 ]
xyz = [ [a:1,b:11],[a:2,b:22],[a:3,b:33] ]
print xyz.select("(a,b)").format("JSON")
[ 11,1,22,2,33,3 ]
load $caffeine
print getProperty("atomInfo").select("(element)").pivot
{ "carbon" : 8 "hydrogen" : 10 "nitrogen" : 4 "oxygen" : 2 }
The assumption when using (keys) is that you want to know all these values,
but you don't care what order they are in (because that will not be predictable)
and you don't care about their exact context. An example is a list of bonds for
which we just want to know all the atoms involved, but the atoms are listed
under "atom1" and "atom2" in each bond array.
load =1ehz/dssr
select on @{_M.dssr.hbonds.select("(atom1_id,atom2_id)")}
Using WHERE
WHERE is used to select a subset of the elements of an array based on specific
key-value relationships.
xyz = [ [a:1,b:11],[a:2,b:22],[a:3,b:33] ]
print xyz.select("* where a<3 and b<20").format("JSON")
[ { "b": 11,"a": 1 } ]
load $caffeine
print getProperty("atomInfo").select("atomno,element WHERE shape LIKE 'trigonal
planar' ").format("JSON")
xyz = [ [a:1,b:11],[a:2,b:22],[a:3,b:33] ]
print xyz.select("(b) where a>1").format("JSON")
[ 22,33 ]
load $caffeine
print getProperty("atomInfo").select("(shape) WHERE shape").pivot
{ "bent" : 1 "tetrahedral" : 3 "trigonal planar" : 8 }
Note that "WHERE shape" here just excludes all cases where shape is the empty
string, since empty strings in Jmol evaluate as FALSE. (In this case that involves
hydrogen atoms.)
For example, finding all the hydrogen bonds created by DSSR for a given residue:
load =1ehz/dssr
x = _M.dssr.hbonds.select("(distance) where res_long like '*|A|C|72|*'");
print x.format("JSON")
print format("%5.3f",x.average)
[ 2.832,2.879,2.838 ] 2.850
Array "Drilling"
[ 11,22,33 ]
[ 1,5,8,10 ]
After taking a close look at this, I decided this was getting too cryptic. I think
this is much simpler. This long email message summarizes the JmolSQL business,
starting with Jmol 11.3.16_2015.09.28. See
http://chemapps.stolaf.edu/jmol/zip/jmol-14.3.16_2015.09.28.zip
JmolSQL
JmolSQL is a Jmol math syntax that is designed to query information related to
molecular structure. The idea is that associative arrays, with key/value pairs, and
especially arrays of associative arrays, are data, and those arrays themselves can
be thought of as a mini database. These sorts of data can be found in Jmol in the a
model's auxiliary info (variable _M), including validation data returned from LOAD
=xxxx/val (_M.validation), sequence domain data returned from LOAD =xxxx/dom
(_M.domains), and secondary structure information returned from LOAD =xxxx/dssr
(_M.dssr) or LOAD=xxxx/rna3d (_M.rna3d). In addition, the getProperty() function
returns a wide variety of data relating to model attributes, including
getProperty("atomInfo") and getProperty("bondInfo") among several others.
The original conception of JmolSQL was in the context of the getProperty() function
-- for example:
load $caffeine
print getProperty("atomInfo[SELECT atomno,coord WHERE shape LIKE 'trigonal
planar']")
{
"atomno" : 1
"coord" : {1.312 -1.0479 0.0025}
}
{
"atomno" : 3
"coord" : {1.7906001 0.20809999 9.999999E-4}
}
...
More recent development widens this use to any array data, and use of the .select()
function rather than getProperty() is recommended for general use. Thus,
alternatively we can use:
Associative Arrays
When the top-level object is an associative array, .select() can be used to select
out subsets of that array, either as a single associative array or as an array of
values.
abc.select("...")
The simplest form of .select() returns a subset of abc. Wild cards can be
interspersed with additional keys, for example, "a*,b" or "*_id". In each such
case, the case-sensitive LIKE operation is used to match keys.
{ "A": { "b": 1 } }
abc.select("(...)")
Using parentheses around the list of keys delivers a list of values of b for only
the the subset of xyz for which a=1:
load $caffeine
x = getProperty("atomInfo")
print x.count
24
print x[1]
{
"_ipt" : 0
"atomIndex" : 0
"atomno" : 1
"bondCount" : 3
"clickabilityFlags" : 48
"colix" : -32761
"color" : "[x3050f8]"
"coord" : {1.312 -1.0479 0.0025}
"element" : "nitrogen"
"elemno" : 7
"formalCharge" : 0
"info" : "N1 #1"
"model" : "1"
"partialCharge" : 0.0
"radius" : 0.7416667
"shape" : "trigonal planar"
"spacefill" : 0.3565
"sym" : "N"
"visibilityFlags" : 63
"visible" : true
"x" : 1.312
"y" : -1.0479
"z" : 0.0025
}
xyz.select("...")
Creates the sublist of associative arrays having the selected subset of keys:
xyz = [ [a:1,b:11],[a:2,b:22],[a:3,b:33] ]
print xyz.select("b").format("JSON")
print x.select("atomno,element")
{
"atomno" : 1
"element" : "nitrogen"
}
{
"atomno" : 2
"element" : "carbon"
}
{
"atomno" : 3
"element" : "carbon"
}
{
"atomno" : 4
"element" : "oxygen"
}
...
xyz.select("(...)")
Adding parentheses creates a list of only the values for the specified keys:
xyz = [ [a:1,b:11],[a:2,b:22],[a:3,b:33] ]
print xyz.select("(b)").format("JSON")
[ 11,22,33 ]
xyz = [ [a:1,b:11],[a:2,b:22],[a:3,b:33] ]
print xyz.select("(a,b)").format("JSON")
[ 11,1,22,2,33,3 ]
load $caffeine
print getProperty("atomInfo").select("(element)").pivot
{
"carbon" : 8
"hydrogen" : 10
"nitrogen" : 4
"oxygen" : 2
}
The assumption when using (keys) is that you want to know all these values,
but you don't care what order they are in (because that will not be predictable)
and you don't care about their exact context. An example is a list of bonds for
which we just want to know all the atoms involved, but the atoms are listed
under "atom1" and "atom2" in each bond array.
load =1ehz/dssr
select on @{_M.dssr.hbonds.select("(atom1_id,atom2_id)")}
Using WHERE
WHERE is used to select a subset of the elements of an array based on specific
key-value relationships.
xyz = [ [a:1,b:11],[a:2,b:22],[a:3,b:33] ]
print xyz.select("* where a<3 and b<20").format("JSON")
[ { "b": 11,"a": 1 } ]
load $caffeine
print getProperty("atomInfo").select("atomno,element WHERE shape LIKE 'trigonal
planar' ").format("JSON")
xyz = [ [a:1,b:11],[a:2,b:22],[a:3,b:33] ]
print xyz.select("(b) where a>1").format("JSON")
[ 22,33 ]
load $caffeine
print getProperty("atomInfo").select("(shape) WHERE shape").pivot
{
"bent" : 1
"tetrahedral" : 3
"trigonal planar" : 8
}
Note that "WHERE shape" here just excludes all cases where shape is the empty
string, since empty strings in Jmol evaluate as FALSE. (In this case that involves
hydrogen atoms.)
For example, finding all the hydrogen bonds created by DSSR for a given residue:
load =1ehz/dssr
x = _M.dssr.hbonds.select("(distance) where res_long like '*|A|C|72|*'");
print x.format("JSON")
print format("%5.3f",x.average)
[ 2.832,2.879,2.838 ]
2.850
Array "Drilling"
[ 11,22,33 ]
{
"(A1)--O" : 6
"(A2)--O" : 1
"(B1)--O" : 1
"(B2)--O" : 4
}
Note that this use of WHEREIN with arrays in this way can also be accomplished
more directly with WHERE:
{
"(A1)--O" : 6
"(A2)--O" : 1
"(B1)--O" : 1
"(B2)--O" : 4
}
[ 1,5,8,10 ]
JmolVersion="14.3.16_2015.09.25"
JmolVersion="14.3.16_2015.09.23"
JmolVersion="14.3.16_2015.09.22"
-- example:
$ a = [[1,2],3]
$ a..2 = a
$ print a.format("JSON")
$ a = [b:1]
$ a.b = a
$ print a.format("JSON")
{ "b": { "b": { } } }
$ y = @x
$ show y
y = { "b":{ "b":{ } } }
new feature: x = @a
-- deep copy for a = array or associative array
-- @a for string variable still gets the value of the variable named by variable
a
-- math environment only, not SELECT
new feature: for allows one continuation line, as in JavaScript and Java
-- for example:
for (i = 1; i <= 3; i++)
print i;
bug fix: for (key in hash){...} fails upon functional iteration (deepCopy)
-- code was reusing the FOR variable when it should have been caching it in the
context stack
JmolVersion="14.3.16_2015.09.21"
bug fix: print within(0, "XXX", ...) ignores the "XXX" entirely. Should throw an
error (Ron Mignery)
bug fix: print within(0, "vdw", ...) ignores "vdw"; should accept that as
"vanderwaal"
bug fix: print within(-1.0, "vanderwaal", ...) ignores "vanderwaal" and does a
fractional-coordinate calculation
JmolVersion="14.3.16_2015.09.20"
FEATURE CHANGE: 3DNA DSSR has switched over to JSON; some array names are changed.
-- Note that the full 8-line unit ID is produced under all circumstances.
This is important, because string-matching of unit ids will not work
without all fields completed. For example:
|1|A|G|1
would match
|1|A|G|11
|1|A|G|11
|1|A|G|11|||3|
-- Note that in an actual atom label, one needs to add "\n" at the end
and have the label in quotes in order to avoid having "|" mean "new line"
label "%[unitid]\n"
not just
label %[unitid]
bug fix: quoted labels containing \n are supposed to ignore | as new-line char
JmolVersion="14.3.16_2015.09.15"
bug fix: JSME's noncanonical SMILES does not match Jmol's standard SMILES for
aromatics
-- solution is to use /noncanonical/ with find().
JmolVersion="14.3.16_2015.09.14"
bug fix: load data [2D mol structure...] filter "2D" not working
bug fix: Crystallographic Open Database CIF files have unusual atom_site_label
("MgT")
and no atom_site_type_symbol, leading to missing element assignments
JmolVersion="14.3.16_2015.09.09"
#ignore:
#new feature: SMILES/SMARTS atom designations [C(xxxx)]
# -- allows pointing to the same atom without connection numbers
# -- (xxxx) may be anything, including just ()
# -- definition may be anywhere in bracketed atom specification
# -- any additional primitives in referring expression will be ignored
# -- involves only a very simple addition to parser code
# -- Jmol is not currently creating these strings, just interpreting them
# -- rationale:
#
# One basic aspect of SMILES is that it efficiently uses numbers to
# indicate connectivity using a process of "opening" bonds and "closing" them.
# Along with radical (.) notation, this is totally sufficient for describing
# any connected network of atoms, including situations where the ordering
# of connections is critical (e.g., in describing stereochemistry). Basically,
# one can simply list all the atoms in an arbitrary order as single-atom
# components (separated by "."), then assign bonds as desired, in whatever
# order is desired.
#
# The problem comes when attempting to indicate stereochemistry for
# centers with more than six substituents or with geometries that are
# outside the standard set of AL, TH, TP, SP, and OH. In such cases,
# there may arise situations where the ordering of unbonded substituents
# will be critical. An example is crystal structures of metals and metal
# alloys. In this situation there are no covalent bonds. The need is to
# be able to compare two such crystal structures.
#
# The solution is to create SMARTS and SMILES strings for complex
# "atomic environments" consisting of a central atom and any number of
# nearby atoms, using a cutoff radius rather than a bonding pattern.
# One possibility is to create a "pseudobond" that connects the central
# atom to all of its connected atoms, but this is not really necessary and
# slows processing significantly. Instead, the [@PHn] syntax proposed here
# allows the polyhedral environment to be specified only for the polyhedron
# itself, exclusive of the central atom.
#
# By providing a means of referring to a specific previously defined atom in a
# SMILES or SMARTS string, we can allow an atom in such an arrangement
# to be part of two different polyhedra.
#
# Thus, although isolated polySMARTS can be implemented without atom
referents,
# extending that to more complex multi-atom polySMARTS searches requires them.
#
# -- example, simple branched organic
#
# $ load $t-butylmethylether
# $ select on search("[O][C(a)H0].[C(a)]C")
#
# 5 atoms selected
#
# same as
#
# $ select on search("[O][CH0](C)")
#
# -- note that [C(2)] and [O(2)] are not sensible and may be disallowed.
#
-- example:
load SF6.smol -1
polyhedra
calculate symmetry polyhedra
x = {polyhedra}.polyhedra.polySmiles
print x
print polyhedron(x).atomname
S1
JmolVersion="14.3.16_2015.09.08"
load =1ehz/dssr1
cartoons only;
color @{within(dssr,"junctions")} blue
color @{within(dssr,"hairpins")} white
bug fix: dssr = "testing" works, but then print dssr just prints "DSSR"
-- was true for all within() function keywords, such as substructure, search,
sequence, etc.
bug fix: after atom deletion, atom iterator still finds atoms.
-- was not reinitializing the binary search after atom deletion
-- affects polyhedra, within()
$ load $caffeine
$ delete _N
4 atoms deleted
$ print {*}.count
20
$ print within(14.0, {c6}).count
24
JmolVersion="14.3.16_2015.09.05"
code: Polyhedra work, including more efficient algorithms for completing set of
faces
JmolVersion="14.3.16_2015.09.04"
bug fix: Mac OS does not add modifiers (left, right, ctrl, etc.) to drag operations
JmolVersion="14.3.16_2015.08.31"
JmolVersion="14.3.16_2015.08.31"
$ load $2-bromobutane
$ show smiles
Br[C@@H](C)CC
$ print {*}.find("Br[C@](C)(H)CC")
({0:5})
$ print {*}.find("Br[C@PH4(234)](C)(H)CC")
({0:5})
$ print {*}.find("Br[C@PH4(234)](H)(C)CC")
({})
$ print {*}.find("Br[C@PH4(432)](H)(C)CC")
({0:5})
$ print {*}.find("Br[CH@@](C)CC")
({0:4})
$ print {*}.find("Br[CH@PH4(.134)](C)CC")
({0:4})
$ print {*}.find("Br[CH@PH4(!.134)](C)CC")
({})
-- :)
JmolVersion="14.3.16_2015.08.30"
code: refactoring of smiles package
$ load $methane
$ polyhedra 4
$ calculate symmetry polyhedra
C1 #1 Td
$ print @1.polyhedra.polySmiles
//* C1 #1 *// [C@PH4].
//* H5 #5 *// [H]123.
//* H2 #2 *// [H]245.
//* H3 #3 *// [H]356.
//* H4 #4 *// [H]641
load $C(Br)(Cl)F
color chlorine blue
polyhedra 4 bonds distancefactor 3.0
calculate symmetry polyhedra
print @1.polyhedra.polySmiles
C1 #1 C1
C1 #1 C1
$load cyclopentane
print {*}.find("CCCCC(1)") # cyclopentane ring
$ load =3ll2
$ print {carbohydrate}.find("seq")
~c~[MAN][MAN][MAN].~c~[MAN][MAN].~c~[MAN][MAN][MAN]
$ print {carbohydrate}.find("seq", true)
code: much more efficient selection for groups, types of monomers, polymers, etc.
$ load =3LL2
SUGAR BINDING PROTEIN 28-JAN-10 3LL2
MONOMERIC GRIFFITHSIN IN COMPLEX WITH A HIGH-MANNOSE BRANCHED
CARBOHYDRATE
found biomolecule 1: A
$ select carbohydrate
168 atoms selected
$ show smiles true
//* Jmol bioSMILES 14.3.16_2015.08.29 2015-08-29 12:03 1 *//
//* chain A CARBOHYDRATE 122 *// ~c~[MAN]:1[MAN]:2[MAN] //* 124 *//.
//* chain A CARBOHYDRATE 125 *// ~c~[MAN]:2[MAN] //* 126 *//.
//* chain A CARBOHYDRATE 127 *// ~c~[MAN]:1[MAN][MAN] //* 129 *//
bug fix: SMILES/SMARTS not accepting two separate processing directives such as
/noaromatic/ /nostereo/
new feature: GaussianReader reads high precision vibrational mode data
-- Gaussian input options must include Freq=(HPModes)
new feature: GaussianRedaer filter "NOHP" flag ignores high precision vibrational
mode log info
new feature: Gaussian FCHK file reader reads vibrational modes
-- Gaussian input options must include Freq=(SaveNormalModes)
JmolVersion="14.3.16_2015.08.26"
select on search("{[CH3]}(.t:50,70,-70,-50)CC{[CH3]}")
JmolVersion="14.3.16_2015.08.25b"
JmolVersion="14.3.16_2015.08.25"
bug fix: compare() function returning matrix with translation about center, not
origin
bug fix: print compare({1.1},{2.1}, "SMILES", "stddev") broken
bug fix: select search("[$(select atomno < 5)]") broken
bug fix: select search("[$(select atomno < 5) or @5]") broken
bug fix: calculate partialCharge does not store result if all values are 0 (Otis
Rothenberger)
bug fix: still problems with aTest = "testing"; x = [aTest:aTest] or a =
[property_MYINFO:aTest] (Rolf Huehne)
bug fix: cross(a,b) broken
bug fix: write PDB broken; works without "PDB" keyword broken in 14.3.15_2015.06.18
FEATURE CHANGE: Definitions of dna, rna, purine, and pyrimidine were ambiguous and
not particularly viable for group fragments. This is much clearer
now: Fragments and P-only and N-only monomers are identified by
name only:
// These masks are only used for P-only and N-only polymers
// or cases where there are so few atoms that a monomer's type
// cannot be determined by checking actual atoms and connections.
// They are used for NucleicMonomer or AminoMonomer classes only as
// a last resort.
//
// I A G
// purine: 100101 = 0x25
// UT C
// pyrimidine: 011010 = 0x1A
//
// +IUTACGDIUTACG IUTACG
// rna: 110000 000000 110111 = 0x30037
// +IUTACGDIUTACG IUTACG
// dna: 001111 111111 001000 = 0x0FFC8
bug fix: SMILES recognizes atom name [*.CA] but not residue name [ALA.*]
bug fix: Jmol BioSMILES broken
bug fix: protein and nucleic are not set properly for non-monomer groups (Eric
Martz)
-- broken in Jmol 14.3.11 (12/13/2014)
-- general definition of protein is from having CA, C, and N. But there
are situations where we know it is protein from its group name (ALA,LEU..)
despite the fact that it is just one atom. Same for nucleic.
-- note that non-canonical (HETERO) amino acids or nucleic bases that do not have
the requisite atoms to identify them as such will still not test positive for
"protein" or "nucleic".
JmolVersion="14.3.16_2015.08.21"
JmolVersion="14.3.16_2015.08.21"
var x = load("quartz.cif")
load var x {1 1 1}
bug fix: creating and running and saving binary hash from PNGJ fails
-- allows creating an associative binary array from a PNGJ file
then modifying it and loading that variable
then saving it as a new PNGJ file
-- initial PNGJ file is not necessary if binary array x is created by some other
means
-- example:
var x = load("test.png",true)
load "@x"
write test2.png as PNGJ
bug fix: hover callback is not supposed to be stopped with HOVER OFF
bug fix: atom.sx and atom.sy and atom.sz report incorrectly when antialiasing is on
bug fix: write VAR x "test.png" creates a ZIP file instead of a PNGJ file when x is
from load("test.png",true)
bug fix: write test.png as PNGJ (without initial quotes) fails
JmolVersion="14.3.16_2015.08.19"
bug fix: PyMOL reader does not load surface from PNGJ file
bug fix: PDB reader can skip assignments of secondary structure after first
structure loaded during session
JmolVersion="14.3.16_2015.08.18"
JmolVersion="14.3.16_2015.08.17"
JmolVersion="14.3.16_2015.08.17"
released
bindAction(SINGLE|CTRL|WHEEL, ActionManager.ACTION_wheelZoom);
bindAction(SINGLE|SHIFT|WHEEL, ActionManager.ACTION_wheelZoom);
bindAction(SINGLE|CTRL|SHIFT|WHEEL, ActionManager.ACTION_wheelZoom);
bindAction(SINGLE|CTRL|WHEEL, ActionManager.ACTION_slab);
bindAction(SINGLE|SHIFT|WHEEL, ActionManager.ACTION_depth);
bindAction(SINGLE|CTRL|SHIFT|WHEEL, ActionManager.ACTION_slabAndDepth);
JmolVersion="14.3.16_2015.08.16"
run up to full documentation
JmolVersion="14.3.16_2015.08.15"
bug fix: x.array.pivot returns "NaN" for empty array -- should return an empty
associative array
JmolVersion="14.3.16_2015.08.14"
JmolVersion="14.3.16_2015.08.13"
released
JmolVersion="14.3.16_2015.08.12"
JmolVersion="14.3.16_2015.08.11"
released
JmolVersion="14.3.15_2015.08.09"
JmolVersion="14.3.15_2015.08.08"
JmolVersion="14.3.15_2015.08.06"
bug fix: calculate STRUTS broken for 3dfr, with peptide ligand MTX
JmolVersion="14.3.15_2015.08.01"
JmolVersion="14.3.15_2015.07.30b"
bug fix: JavaScript deletion of array elements fails for int[] arrays.
JmolVersion="14.3.15_2015.07.30"
JmolVersion="14.3.15_2015.07.29"
bug fix: config 2 and select config=2 may not work properly (still)
bug fix: minimization of PCl4 (==PC4) does not auto-switch to UFF from MMFF94 (bond
key not set)
JmolVersion="14.3.15_2015.07.22"
JmolVersion="14.3.15_2015.07.11"
bug fix: format("%5.-5i") broken -- only shows right four digits if # digits is
5.
bug fix: write PDB broken for some systems (14.3.12)
JmolVersion="14.3.15_2015.07.09"
released as 14.2.15_2015.07.09
bug fix: load "xxx" 1 {10 10 10} does not recognize lattice information when model
number is given (broken in 07.07)
JmolVersion="14.3.15_2015.07.08c"
bug fix: load files "xxx.png|xxxx" "xxx.png|zzzz" not read from state properly
bug fix: polyhedra not saved in state property
bug fix: moving atoms with 4x4 matrix not saved in state
bug fix: moving of an atom having a polyhedron fails to move the polyhedron as well
JmolVersion="14.3.15_2015.07.07c"
JmolVersion="14.3.15_2015.07.07b"
bug fix: SMARTS processing with "." may not find substructure
JmolVersion="14.3.15_2015.07.03"
bug fix: mmCIF reader does not recognize load MODEL ...
bug fix: PDB reader should be reading load "" [1 3 4] as MODEL record numbers, not
sequential numbers
bug fix: load MODELS "" [1 3 4] does not work (although load "" [1 3 4], without
with MODELS keyword, works)
clarification:
load "" 1 # loads the first model in a file when not PDB or mmCIF.
load "" 1 # loads the model with MODEL 1 record for a PDB file.
load "" 1 # loads the model with _atom_site.pdbx_PDB_model_num = 1
for an mmCIF file
load "" [1] # same as load "" 1; brackets allow for more than one
model, for instance [1 3 5]
load MODELS ({1}) "" # always loads the SECOND model in a file
JmolVersion="14.3.15_2015.06.30"
JmolVersion="14.3.15_2015.06.19c"
JmolVersion="14.3.15_2015.06.19b"
$ macro aflow
running http://aflowlib.mems.duke.edu/users/jmolers/jmol/spt/AFLOW.spt
aflowLoad(binaryAlloy) loaded
aflowBinaries loaded
aflowDualArray(binaryAlloy, a, b) loaded
aflowDualWrite loaded
aflowConvexHull(binaryAlloy) loaded
aflowCheckBinary(binaryAlloy) loaded
aflowGetPG(binaryAlloy, a, range1, range2,radius) loaded
$ aflowLoad("AgAu")
294 models
$ print aflowConvexHull
{
"Cb" : 0.0
"Hf_eV_VASP" : 0.0
"modelNumber" : 2
}
{
"Cb" : 0.25
"Hf_eV_VASP" : -0.0472733
"modelNumber" : 26
}
{
"Cb" : 0.5
"Hf_eV_VASP" : -0.085589
"modelNumber" : 180
}
{
"Cb" : 0.75
"Hf_eV_VASP" : -0.0463823
"modelNumber" : 25
}
{
"Cb" : 1.0
"Hf_eV_VASP" : 0.0
"modelNumber" : 260
}
bug fix: AFLOW binary file reader can fail with certain VASP formats containing
both in-line atom labels and atom elements prior to #elements line.
(AlPd#5, for example)
JmolVersion="14.3.15_2015.06.19"
new feature: removing empty array values using array.find() and opposite using
array.find("")
-- "empty" means an entry that is "", [], or {}
-- for example:
[0 3 4 5 6]
JmolVersion="14.3.15_2015.06.18"
bug fix: wireframe ONLY (RESTRICT) executes polyhedral DELETE instead of OFF
bug fix: Polygons not indicating visibility when they are the only thing visible.
bug fix: x[++y] did not increment y. x[y++] and other contexts were fine
JmolVersion="14.3.15_2015.06.17"
new feature: extracting array of sequential arrays from array of associative arrays
-- pull out just the values desired into a sequential array
-- example, where b is an array of associative arrays [....., energy:...,
pointGroup....]
load "AgAu.aflow_binary"
polyhedra 4-24 3.65 unitcell translucent 0.2
m = _("aflowInfo[Select modelNumber where Cb=0.5]")
b = {@1 and model=m}.polyhedra.all.getProperty("[select
energy,pointGroup,modelNumber");
c = b.bin(-0.1,0.1,0.02,"energy")
print b.format(["energy", "pointGroup"]).sort(1).reverse.format("%5.3f %5s")
faceCount
faces
modelIndex
modelNumber
smarts
smiles
vertexCount
vertices
bug fix: ++x and x++ do not increment properly when in expressions
// no problem here because it is compiled as "x = x + 1"
x = 0
x++
print "x should be 1 " + x
// x does not increment, but the test passes ("bad" is not printed)
x = 0
if (x++) {
print "bad"
}
print "x should be 1 " + x
x = 0
// works
x++
// y is OK, but x does not increment
y = x++
print "x should be 2 " + x
x = 0
// z is OK, but x does not increment
z = ++x
print "x should be 1 " + x
// result:
x should be 1 1
good
x should be 1 0
x should be 1 0
x should be 2 1
x should be 1 0
JmolVersion="14.3.15_2015.06.16"
bug fix: msCIF reader failing for Legendre polynomials of order greater than 4
-- JavaScript fix for new double[m + 1][]
-- must use AU.newDouble2(m + 1);
JmolVersion="14.3.15_2015.06.14c"
feature note: This version introduces several very powerful and very different
capabilities
to Jmol in the area of crystallography. Many of these features are
nonexistent
in other programs. They involve:
- the generation of polyhedra in crystal structures for which only the central
atom
may be loaded.
(What is the atom environment around Au3 in this crystal structure?)
load t.cif // just the unit cell, maybe just one atom even
polyhedra 4-12 UNITECELL @1
load t.cif
polyhedron 12 unitcell @1
select @1
show pointgroup POLYHEDRON
draw pointgroup POLYHEDRON
print getProperty("shapeInfo.polyhedra[1]").keys
_ipt
center
modelIndex
planeCount
polygons
vertexCount
vertices
- the ability to select polyhedra
select polyhedra
select polyhedra(4)
print polyhedra()
print polyhedra(4)
print getProperty("shapeInfo.polyhedra[1]").keys
_ipt
center
modelIndex
planeCount
polygons
vertexCount
vertices
select @21
polyhedron 3.5 UNITCELL
show pointgroup polyhedron
Oh nC4 3 2
Oh C4_1 {0.99993926, -0.007795072, 0.0077921236}
Oh C4_2 {7.8514034E-7, -0.9997856, -0.020707628}
Oh C4_3 {7.619045E-7, 0.009661385, -0.9999533}
Oh nC3 4 2
Oh C3_1 {-0.58944535, 0.5712053, 0.57120806}
Oh C3_2 {-0.58944565, -0.5712049, -0.57120824}
Oh C3_3 {-0.5824926, -0.58349025, 0.5658989}
Oh C3_4 {0.5764604, -0.5864354, 0.5690228}
Oh nC2 9 1
Oh C2_1 {0.7004682, -0.71362424, -0.0092081865}
Oh C2_2 {0.7004673, 0.009209763, 0.7136251}
Oh C2_3 {0.99993926, -0.007795072, 0.0077921236}
Oh C2_4 {-0.70046806, -0.71362436, -0.009208187}
Oh C2_5 {-8.22445E-7, 0.7071046, -0.707109}
Oh C2_6 {7.8514034E-7, -0.9997856, -0.020707628}
Oh C2_7 {0.7056006, -0.019795598, -0.70833325}
Oh C2_8 {7.619045E-7, 0.009661385, -0.9999533}
Oh C2_9 {5.440252E-7, 0.70734024, 0.7068733}
Oh nS6 4 2
Oh S6_1 {-0.58944535, 0.5712053, 0.57120806}
Oh S6_2 {-0.58944565, -0.5712049, -0.57120824}
Oh S6_3 {-0.5824926, -0.58349025, 0.5658989}
Oh S6_4 {0.5764604, -0.5864354, 0.5690228}
Oh nS4 2 2
Oh S4_1 {0.99993926, -0.007795072, 0.0077921236}
Oh S4_2 {7.619045E-7, 0.009661385, -0.9999533}
Oh nCs 9 1
Oh Cs_1 {0.0, 0.7071068, -0.7071067}
Oh Cs_2 {0.0, -0.7071068, -0.7071068}
Oh Cs_3 {0.007949507, 0.020366998, -0.999761}
Oh Cs_4 {0.007952394, 0.999761, -0.020367}
Oh Cs_5 {1.0, 0.0, 0.0}
Oh Cs_6 {0.7030396, 0.014484465, 0.71100324}
Oh Cs_7 {0.7030395, 0.71100324, 0.014484464}
Oh Cs_8 {0.70023495, -0.008727634, -0.7138592}
Oh Cs_9 {0.7030395, -0.71100324, -0.014484464}
draw width 0.2 points @{x["points"]} color red mesh nofill translucent
JmolVersion="14.3.14_2015.06.10c"
bug fix: "transparent" PNG images as echos in front still hide pixels
bug fix: JSmol set echo IMAGE not working properly (Frieda Reichsman)
$ print {*}.label("%a").pivot
{
"Ag" : 1561
"Cd" : 1360
}
$ load $caffeine
$ print {_N}.bondCount({_C})
3
3
2
3
$ print {_N}.bondCount({_C}).pivot
{
"2" : 1
"3" : 3
}
$
JmolVersion="14.3.14_2015.06.08"
$ print _.keys
boundbox
group3Counts
group3Lists
modelLoadNote
models
properties
someModelsHaveFractionalCoordinates
someModelsHaveSymmetry
someModelsHaveUnitcells
symmetryRange
$ print format("json",_m.unitCellParams)
[ 0.0,0.0,0.0,0.0,0.0,0.0,0.0,-2.1660376,-2.1660376,0.0,-2.1660376,2.1660376,-
4.10273,0.0,0.0,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN ]
{atomset}._ by itself delivers a subset array of auxiliaryInfo.models for all
models in {atomset}
$ print {*}._..1..aflowInfo
Examples:
JmolVersion="14.3.14_2015.06.07"
JmolVersion="14.3.14_2015.06.05"
JmolVersion="14.3.14_2015.06.04"
and then that will be exposed to the next level of function calls.
Or you could use use it as a parameter:
function xx() {
....
yyy(_caller)
...
given t.spt:
function showme(a,b,c) {
var x = "showme"
print "c._arguments =" + (c ? format("json",c._arguments) : "<n/a>")
print "_argCount = " + _argCount + "\nx = " + x
print "_caller.x = " + _caller.x
print "_caller.caller.x = " + _caller.caller.x
print "_arguments = " + format("json", _arguments)
print " "
}
var x = "scriptlevel"
var caller = {}
showme(1)
function show2() {
var x = "show2"
var caller = _caller
showme(5,6,_caller,7,8,9)
}
show2(4)
$ t.spt("testing" ,"here")
c._arguments = <n/a>
_argCount = 1
x = showme
_caller.x = scriptlevel
_caller.caller.x =
_arguments = [ 1 ]
c._arguments = [ "testing","here" ]
_argCount = 6
x = showme
_caller.x = show2
_caller.caller.x = scriptlevel
_arguments = [ 5,6,{ "x": "scriptlevel","caller": { },"_arguments":
[ "testing","here" ] },7,8,9 ]
JmolVersion="14.3.14_2015.06.03"
new feature: AFLOW binary alloy file reader centers unit cells in all frames at the
same point
new feature; AFLOW binary alloy file reader can filter "list=xx" to produce a list
of values start with xx.
new feature: AFLOW binary alloy file reader selective for a given composition:
new feature: AFLOW binary alloy file reader reading -- DATA -- block into
associative arrays:
bug fix: [SELECT ... WHERE ...] can fail with spaces or [ ] in key names. For
example:
http://aflowlib.mems.duke.edu/php/apool.php?POST?
job=awrapper_apool&lattice=all&alloy=AgAu
Notice that when Jmol reads these files, it automatically catalogs the models along
the lines of composition, and it translates their unit cells to be on a common
center from frame to frame.
46 models
The file loader parses all the -- DATA -- information into arrays, so that can all
be accessed using getProperty(). For example:
JmolVersion="14.3.14_2015.06.01b"
JmolVersion="14.3.14_2015.06.01"
JmolVersion="14.3.14_2015.05.25"
JmolVersion="14.3.13_2015.05.23"
JmolVersion="14.3.13_2015.05.19"
JmolVersion="14.3.13_2015.05.14"
JmolVersion="14.3.13_2015.05.12"
JmolVersion="14.3.13_2015.05.08"
JmolVersion="14.3.13_2015.05.07"
JmolVersion="14.3.13_2015.05.06"
new feature: JmolSQL "drilling" in associative arrays for sub arrays with a given
property (Rolf Huehne)
-- NOTE ADDED: replaced by WHEREIN in Jmol 14.3.16
-- uses "**" as the SELECT option, sort of the way ** sometimes means
"subdirectories of"
-- returns an associative array or "" if no match
-- example:
x = [key_1:[type:"a"],key_2:[type:"b"],key_3:[type:"a"]]
z = getProperty(x, "[SELECT ** WHERE type='a']");
show z;
JmolVersion="14.3.13_2015.05.05"
JmolVersion="14.3.13_2015.05.03"
new feature: for msCIF (modulated structure files), setting modulation or using
vibration ON
now also indicates occupancy changes
bug fix: sawtooth and Legendre displacement modulations should set occupancy to 0
outside of their range.
JmolVersion="14.3.13_2015.05.02"
JmolVersion="14.3.13_2015.04.30d"
JmolVersion="14.3.13_2015.04.30c"
JmolVersion="14.3.13_2015.04.29"
bug fix: perspective renderer was using the wrong formula for calculating Z depth
of pixels:
JmolVersion="14.3.13_2015.04.27"
bug fix: with set dragSelected, highlight does not recognize whole molecule
JmolVersion="14.3.13_2015.04.25"
bug fix: loading mmCIF data in-line loses multi-character chain IDs
bug fix: with set picking dragSelected with allowMoveAtoms FALSE and
allowRotateSelected TRUE
rotating the atoms with ALT-left ignores setting of allowMoveAtoms
JmolVersion="14.3.13_2015.04.17"
JmolVersion="14.3.13_2015.04.12"
JmolVersion="14.3.13_2015.04.09b"
JmolVersion="14.3.13_2015.04.09"
JmolVersion="14.3.13_2015.04.08"
JmolVersion="14.3.13_2015.04.07"
JmolVersion="14.3.13_2015.04.05b"
bug fix: language switching not working from popup menu;
bug fix: language bundles not processed in the correct order for variants
JmolVersion="14.3.13_2015.04.05"
bug fix: for (var i in hashArray) {....} broken (also in 14.2; not fixed there)
JmolVersion="14.3.13_2015.04.02"
bug fix: [3 4 5].min should give integer 3, not decimal 3.0 (same with .max)
JmolVersion="14.3.13_2015.04.01b"
bug fix: hash values created from named int variables do not clone properly
bug fix: hash[key1]..key2.push() does not work properly
bug fix: show hash where one of the elements is an empty hash ignores that key
bug fix: local var xxx with same name of ..xxx forces lower case xxx
JmolVersion="14.3.13_2015.04.01"
bug fix: local var xxx with same name of foo..xxx forces lower case xxx
load $caffeine
draw polygon [@5 @7 @12 @13 @1 @3]
new feature: ".[a]" notation extended to x.. and allows mixing with .a.
function a(){return 1}
x = [A:[1,2,3], a:[4,5,6]]
$ print x.a.[a()]
4
$ print x..a..[a()]
4
$ print x.a..[a()]
4
$ print x..a..[a()]
4
$ print x..a.[a()]
4
$ y = x.a[1][2]; show y
y = [ 4,5 ]
JmolVersion="14.3.13_2015.03.30"
bug fix: {hash}.Key = value will be stored as "key" rather than "Key" if "key" is
also a user-defined function.
bug fix: {hash}.key will fail if "key" is also a user-defined function.
bug fix: print a where a is an associative arrays fails in JavaScript (since jmol-
14.3.7_2014.08.25)
JmolVersion="14.3.13_2015.03.27"
JmolVersion="14.3.13_2015.03.25"
bug fix: translate SELECTED {1 1 1} @1 not working (works fine without the SELECTED
keyword)
JmolVersion="14.3.13_2015.03.23"
bug fix: isosurface solvent will fail if max volume is smaller than cavity max even
though not cavity
JmolVersion="14.3.13_2015.03.21"
JmolVersion="14.3.13_2015.03.20b"
JmolVersion="14.3.13_2015.03.20"
JmolVersion="14.3.13_2015.03.19"
bug fix: VASP chgcar surface reader fails to recognize 10-per-line file format
JmolVersion="14.3.13_2015.03.16"
bug fix: label <color ...> xxxx </color> does not calculate stringwidth properly;
set labeloffset 0 incorrect
JmolVersion="14.3.13_2015.03.13"
released
bug fix: fonts too small with antialiasDisplay (14.2.12)
bug fix: PNG generation uses iTXt instead of tEXt; problems with diacritical marks
(German translation of "March" month in creation time)
JmolVersion="14.3.13_2015.03.11"
bug fix; pdb and mmcif readers not doing biomolecule 2 properly
bug fix: load filter "bychain" broken
bug fix: x.a.push(6) does not work
bug fix: (x.a).push(3) does not work
bug fix: (x.a)[3] = 5 does not work
JmolVersion="14.3.13_2015.03.10"
new feature: print command by itself clears JavaScript and Jmol consoles
JmolVersion="14.3.13_2015.03.07"
synchronized with 14.2.12_2015.03.07
new feature: NBO command with no arguments starts NBO panel (Java application only)
JmolVersion="14.3.12_2015.03.05b"
synchronized with 14.2.13_2015.03.05
JmolVersion="14.3.12_2015.03.05"
synchronized with 14.2.13_2015.03.05
released
JmolVersion="14.3.12_2015.03.01"
bug fix: late discovery of mmCIF format does not load secondary structure
bug fix: reading PNGJ file saved after load with /dssr or /rna3d annotations
ignores annotations
bug fix: {*}.find("~d~G:C") broken (find with bioSMARTS)
new feature: image "" close # close the current view image
new feature: image "c:/temp/t.bmp" close # close image from a file
new feature: image CLOSE # close all
image ID "test"
image ID "test" 400 500
image ID "test" "bob.png"
image ID "test" close
JmolVersion="14.3.12_2015.02.26"
bug fix: imageFontScaling integer instead of float; does not scale appropriately on
resize
bug fix: writing image of MO fails to write info (Jmol 12 or before)
JmolVersion="14.3.12_2015.02.25c"
bug fix: legacy non-XML JVXL files with color mapping should default to RGB color
scheme
bug fix: Jmol 14.1.2_2013.12.13 disabled some mmCIF file reading for non-wwPDB
mmCIF files
JmolVersion="14.3.12_2015.02.25b"
JmolVersion="14.3.12_2015.02.25"
JmolVersion="14.3.12_2015.02.24"
bug fix: restriction against getting SMILES string for biomolecule lifted
bug fix: end-on bonds may appear to disappear
bug fix: JavaScript -2.format("%8.3") gives 2.000 not -2.000
code: javajs.img.BMPDecoder
code: org.openscience.jmol.app.jmolpanel.ImageDialog
JmolVersion="14.3.12_2015.02.19"
bug fix: CML reader does not show proper atom names for crystal structures
bug fix: POV-Ray renderer does not show proper backbone width (since forever)
bug fix: POV-Ray renderer with a translucent surface shows bonds that should be
hidden (since 13.1)
bug fix: unitcell info for PDB file biomolecule does not show "biomolecule 1"
JmolVersion="14.3.12_2015.02.18"
JmolVersion="14.3.12_2015.02.17b"
bug fix: writing to PNGJ data to .ZIP file should create a standard ZIP file.
-- especially useful now that some zip readers will not open PNGJ files as zip
files
(with newer 7zip you can right-click file, then select 7zip...open
archive...zip)
JmolVersion="14.3.12_2015.02.17"
set zShadePower 0
set zSlab 100
set zDepth 0
set zShade true
write z.jpg
set zShade false
write rgb.jpg
JmolVersion="14.3.12_2015.02.16"
new feature: x.dot(y) for planes and points -- was present but undocumented and
not working correctly
new feature: (undocumented) x.distance.all(y)
code: org.jmol.modelsetbio.BioExt
-- extracts struts, quaternion plots, polymerInfo, mutate into optional module
-- saves 15K in corebio.js
JmolVersion="14.3.12_2015.02.11"
JmolVersion="14.3.12_2015.02.10"
bug fix: color $contact1 "roygb" range -0.5 1.0; broken (in state after using
CONTACT)
bug fix: mmCIF reader does not flag first model of a multimodel set as type PDB
JmolVersion="14.3.12_2015.02.09"
JmolVersion="14.3.12_2015.02.07"
released
JmolVersion="14.3.12_2015.02.04"
released
JmolVersion="14.3.12_2015.01.30b"
JmolVersion="14.3.12_2015.01.30"
JmolVersion="14.3.12_2015.01.29"
bug fix: 01.28 version does not write correct PDB CONECT records
bug fix: 01.22 version may not correctly clear rasmol hydrogen bonds in
trajectories
code: simplification of BioModel; extraction of legacy Chime messaging into
ChimeMessenger class
code: extraction of org.jmol.modelset.Trajectory
JmolVersion="14.3.12_2015.01.28"
bug fix: write "t.pdb" now correctly sequences groups and atoms, even after
mutation
JmolVersion="14.3.12_2015.01.27"
bug fix: select thisModel does not select all atoms in visible frame set
new feature: @@3 for "atomno=3 and thisModel"
-- provides a function distinct from @3 when there are multiple models
-- includes all atoms in current frame set
-- example:
load "cyclohexane_movie.xyz"
select @10
35 atoms selected
select @@10
1 atom selected
frame [1 2 4 6]
select @@10
4 atoms selected
@@10.label = "atom 10"
-- just for drawing lines; does not implement PS fill, gsave, grestore
-- just moveto, lineto, newpath, closepath, setlinewidth, scale
-- uses %%BoundingBox x0 y0 x1 y1 prolog record
to map [x0 y0] to @origin, [x1 0] to @x, and [0 y1] to @y
-- used for NBO contour mapping
JmolVersion="14.3.12_2015.01.25"
JmolVersion="14.3.12_2015.01.24"
code: new interface for "services" that can provide valuable information to Jmol
over ports or by running executable processes.
-- currently just NBO
bug fix: MOPAC reader loses two atoms in IRC calculation for MOPAC 2012
bug fix: _slabPlane and _depthPlane not set immediately when slab and depth are set
JmolVersion="14.3.12_2015.01.22"
released simultaneously with 14.2.12
JmolVersion="14.3.12_2015.01.21"
new feature: load =cod/1000041 loads Crystallographic Open Database CIF files
JmolVersion="14.3.11_2015.01.20"
released simultaneously with 14.2.11
new feature: select :"X" where quotes are used now forces case sensitivity
bug fix: for old PDB files with no chain ID, "select :" fails
JmolVersion="14.3.11_2015.01.18"
bug fix: Typing select his and :A will set chain selection to be case sensitive
due to a bug that
processes "his an" as "{his:}an".
JmolVersion="14.3.11_2015.01.15"
bug fix: modulation x.x and modulation n not described correctly in documentation
JmolVersion="14.3.11_2015.01.12"
function test(i) {
set echo top left
echo @i
isosurface slab none
isosurface cap plane {1 1 1 1} @i
refresh
}
load 1crn.pdb
rotate y 60
rotate y -120
isosurface s1 vdw;
display none
center $s1
for (var i = -2 ; i < 58; i++){test(i)}
JmolVersion="14.3.11_2014.12.21"
new feature: CGO (undocumented command from Jmol 13.1.16; never tested)
cgo test1a [
BEGIN LINES
VERTEX 0 0 0 VERTEX 2 2 2
VERTEX 2 2 2 VERTEX 3 2 0
END
]
cgo test1b [
BEGIN LINE_LOOP
VERTEX 4 0 0
VERTEX 6 2 2
VERTEX 5 2 0
END
]
cgo test1c [
BEGIN LINE_STRIP
VERTEX 4 0 0
VERTEX 6 2 2
VERTEX 5 2 0
END
]
cgo test2 [
BEGIN POINTS
COLOR 255 0 0
LINE 0 0 3 0 0 3 2 2
COLOR 0 255 0
LINE 0 0 3 2 2 4 2 0
END
]
cgo test2b [
BEGIN LINE_LOOP
DIAMETER 0.3
VERTEX 4 0 0
VERTEX 6 2 2
VERTEX 5 2 0
END
]
JmolVersion="14.3.11_2014.12.19"
bug fix: label, echo, and measurement text should not display when deeper
than zSlab with zShade is TRUE
bug fix: mmCIF reader load filter biomolecule 1
broken for viruses with symmetry ranges listed as "1-60" with a hyphen
bug fix: mmCIF reader coarse-grain load filter bysymop broken
bug fix: mmCIF reader coarse-grain load filter bychain broken
JmolVersion="14.3.11_2014.12.17"
bug fix: rotate selected <4x4 matrix> should not rotate about center of atoms
bug fix: use of a subset command will change value of a variable bitset if "select
x" is used
-- example:
x = {*}
subset {atomno < 10}
print x // just the first 9
select x // just the first 9
subset all
print x // but now x itself is truncated; this is not supposed to be the case
JmolVersion="14.3.11_2014.12.15"
bug fix: show LIGHTING does not report a full list of settings
vwr.setBooleanProperty("specular", true);
vwr.setBooleanProperty("celShading", false);
vwr.setBooleanProperty("zshade", false);
}
code: reduced method sets for Viewer, ModelSet, and several other classes
-- a bit contrary to standard practice, I know
-- direct access of class fields instead of using methods with just one or two
references
-- direct access of class fields instead of using getXXX() and setXXX()
because these are NOT optimized in JavaScript.
JmolVersion="14.3.11_2014.12.09"
JmolVersion="14.3.11_2014.12.06"
JmolVersion="14.3.11_2014.12.04"
JmolVersion="14.3.11_2014.12.02"
new feature: Gaussian Input File creation defaults to "opt pop=full gfprint" to
generate orbital information by default.
FEATURE CHANGE: Gaussian Input File creation moved to Tools menu rather than
file...export
JmolVersion="14.3.11_2014.11.28"
new feature: readers for ESS input types: CFILE, VFILE, MOPAC, NWChem, Gaussian,
GAMESS, Orca, PQS
-- CFILE and VFILE require CFI:: and VFI:: (or C:: and V::)
-- MOPAC requires MND::
-- any of these could also use ZMATRIX:: or INPUT::
JmolVersion="14.3.11_2014.11.27"
JmolVersion="14.3.10_2014.11.27"
released as 14.3.10
new feature: isosurface contour 0 "t.jvxl" will override contour selected in JVXL
file
JmolVersion="14.3.10_2014.11.26"
bug fix: hover OFF disables hover callback, but should not
bug fix: reading of JVXL file saved with noFill still does fill
bug fix: CASTEP DENSITY surface file reader does not do downsampling
JmolVersion="14.3.9_2014.11.23"
JmolVersion="14.3.9_2014.11.17"
bug fix: JmolVersion 14.3.3_2014.07.27 broke ligand bond reading when fetching
ligands.
-- mmCIF reader was not being selected by the Resolver
-- Requires an increment of version number to 14.3.9
bug fix: GIF writer not properly handling large numbers of colors
-- use of CIE L*a*b for color quantification
-- nearly identical to GIMP
-- uses MEAN_cut (not MEDIAN_cut)
-- uses Floyd-Steinberg dithering
-- will not discolor background (as GIMP will do)
bug fix: WRITE command should remove "t" or "j" in WRITE xxx.PNGJ, WRITE xxx.PNGT,
WRITE xxx.GIFT
-- specifically when no PNGJ, GIFT, or PNGT designation is made.
bug fix: up-arrow in console may not return command if contains unicode
bug fix: antialiasing can subtly change background color
bug fix: working on GIF writer -- some success with 256 colors using median-cut
with RGB
JmolVersion="14.3.9_2014.11.15"
JmolVersion="14.3.9_2014.11.12"
bug fix: JmolVersion 14.3.3_2014.07.27 broke ligand bond reading when fetching
ligands.
-- mmCIF reader was not being selected by the Resolver
-- Requires an increment of version number to 14.3.9
JmolVersion="14.3.8_2014.11.10"
JmolVersion="14.3.8_2014.11.09"
bug fix: GIF writer not properly handling large numbers of colors
-- use of CIE L*a*b for color quantification
-- nearly identical to GIMP
-- uses MEAN_cut (not MEDIAN_cut)
-- uses Floyd-Steinberg dithering
-- will not discolor background (as GIMP will do)
bug fix: WRITE command should remove "t" or "j" in WRITE xxx.PNGJ, WRITE xxx.PNGT,
WRITE xxx.GIFT
-- specifically when no PNGJ, GIFT, or PNGT designation is made.
JmolVersion="14.3.8_2014.10.27"
bug fix: up-arrow in console may not return command if contains unicode
bug fix: antialiasing can subtly change background color
bug fix: working on GIF writer -- some success with 256 colors using median-cut
with RGB
JmolVersion="14.3.8_2014.10.15b"
JmolVersion="14.3.8_2014.10.14"
JmolVersion="14.3.7_2014.10.13"
bug fix: msCIF reader superspace group operators with mixing of x1,x2,x3 into x4,x5
was still not quite correct.
JmolVersion="14.3.7_2014.10.12"
bug fix: JSmol/HTML5 SCRIPT command broken (forces async, which is not working yet)
-- since 14.3.7_2014.9.17
bug fix: set waitForMoveTo not controlling script for ROTATE x.x y.y (finite spin)
bug fix: capture command not waiting properly for full spin
bug fix: msCIF reader: wave vectors of the form {a -a 0} were being ignored.
(14.3.6_2014.08.16 and 14.2.6)
JmolVersion="14.3.7_2014.10.05"
JmolVersion="14.3.7_2014.09.30"
bug fix: CGD reader for fractional coordinates; alternative EDGE syntax
JmolVersion="14.3.7_2014.09.29"
bug fix: JavaScript j2sjmol.js -- should not create object .isArray() method as it
conflicts with
JavaScript Array.isArray
bug fix: CGD reader space groups set to Bilbao (origin 2) setting.
JmolVersion="14.3.7_2014.09.28"
bug fix: Molden reader overlaying MO info and unit cell info
JmolVersion="14.3.7_2014.09.27"
bug fix: interpretation of space group I41 by name only, without operations,
drops second (centered) C2 axis.
JmolVersion="14.3.7_2014.09.26"
JmolVersion="14.3.7_2014.09.24"
bug fix: exporter generally not allowing creating meshes with PovRAY
JmolVersion="14.3.7_2014.09.23"
JmolVersion="14.3.7_2014.09.22"
FEATURE CHANGE: atoms without vibration will no longer report out as vxyz = {0 0 0}
or vx = 0
-- print {atomno=3}.vxyz and {*}.vxyz.all will report -1
instead of {vx vy vz} when atom does not have a vibration
-- print {atomno=3}.vx will report "NaN" (also vy and vz)
-- label %[vxyz] will be blank
-- label %[vx] will be blank (also vy and vz)
-- select vxyz >= 0 will select for atoms with vibrations of any magnitude
-- select vxyz < 0 will select for atoms without vibrations of any magnitude
-- select vx = 0 will NOT select atoms with no vibration vector
-- select vx != 0 will NOT select atoms with no vibration vector
-- select vx = 0 || vx != 0 will select for atoms with vibrations of any magnitude
-- same with modulations and modxyz, modx, mody, modz
JmolVersion="14.3.7_2014.09.21"
JmolVersion="14.3.7_2014.09.20b"
bug fix: CIF reader not reading magnetic lattice centering for incommensurately
modulated structures
bug fix: {*}.modulation("M") not functional
JmolVersion="14.3.7_2014.09.17"
bug fix: cartoon OFF does not remove nucleic bases from visible set
bug fix: select visible does not recalculate visible set
-- after RESTRICT, for instance; Eric Martz
-- at least since 14.1.14
load =1d66
cartoons only # if this is omitted, 'select visible' works correctly
refresh
restrict 28-36:B
print {visible}
JmolVersion="14.3.7_2014.09.16"
JmolVersion="14.3.7_2014.09.15b"
JmolVersion="14.3.7_2014.09.15"
bug fix: CARTOON OFF does not remove visibility flag for alpha carbons
(introduced in jmol-14.1.17_2014.06.03)
JmolVersion="14.3.7_2014.09.14"
bug fix: JSmol/HTML5 fails to show rockets
bug fix: setting structures after displaying rockets does not reset rockets
correctly
JmolVersion="14.3.7_2014.09.12"
JmolVersion="14.3.7_2014.09.11"
bug fix: Unit cell display and other characteristics offset or wrong when
crystallographic coordinates include an intrinsic offset from
Cartesian coordinates, as in the case of ENT/mmCIF 1hbb and 2hhb.
bug fix: PDB reader not reading SCALEn records; required in certain cases for load
=xxxx {1 1 1}
JmolVersion="14.3.7_2014.09.10"
JmolVersion="14.3.7_2014.09.08"
bug fix: binary document reader can skip bytes if an http connection
fails to deliver the full set of requested bytes in one operation
(nonstandard MRC files and PyMOL files)
JmolVersion="14.3.7_2014.09.07"
bug fix: adds correct dates for code versions of JSmol files
bug fix: load quartz.cif {1 1 1};draw symop @1 @5 does not work
due to refactoring error 7/9/2014 (14.3.3)
bug fix: dssr broken in 14.3.5
bug fix: throw context prior to try/catch within function causes exception
bug fix: polyhedra not removed from rendering when central atoms are deleted
JmolVersion="14.3.7_2014.08.29"
JmolVersion="14.3.7_2014.08.25"
bug fix: translation of atoms after deleting atoms having dots on crashes Jmol
JmolVersion="14.3.7_2014.08.22"
doc note: load ... SUPERCELL "2a,2b,2c" is the same as load ... SUPERCELL {2 2 2}
except that the packing will be based on the supercell dimensions, not
the
original cell dimensions, with range 0.02.
This can be adjusted using PACKED x.x, which is still a fraction of the
supercell dimensions.
load quartz.cif supercell "10a, 10b+10a,c" PACKED 0.002
doc note: load ... SUPERCELL ... defaults to PACKED, but simply adding a lattice
overrides this:
load ... {1 1 1} SUPERCELL ...
JmolVersion="14.3.7_2014.08.18"
JmolVersion="14.3.6_2014.08.17b"
released as Jmol 14.3.6
bug fix: modulated magnetic moment scaling by VECTORS MAX x.x not saved in state
for modulations that are 0,0,0.
bug fix: magnetic CIF reader not automatically showing modulation
bug fix: load SUPERCELL {x y z} not working correctly in terms of packing
bug fix: load SUPERCELL not working correctly with modulation or magnetic
JmolVersion="14.3.6_2014.08.15"
JmolVersion="14.3.6_2014.08.14"
bug fix: JavaScript drag-drop clears cache inappropriately when spt file is dropped
IMPORTANT NOTE: The problem described here only affects the reading of states that
have been created for crystallographic files, and then only if the
state was created in Java and then displayed in JavaScript,
or vice-versa.
and in general only in the case where the file coordinates are
fractional. Thus, those files will be read exactly as in the
version they were created by. And they will have have the same
issues as well.
print {*}.fxyz
becomes:
{0.33333 1 1}
{0.66667 1 1}
{1 1 0}
{1 1 0.629}
{1 1 0.371}
{1 1 1}
JmolVersion="14.3.5_2014.08.10"
bug fix: magCIF file reading broken for new file format
new feature: magCIF file reading for incommensurately modulated magnetic structures
-- very preliminary only; not tested
JmolVersion="14.3.5_2014.08.08"
JmolVersion="14.3.5_2014.08.05"
JmolVersion="14.3.4_2014.08.03"
note: Sourceforge release of 14.3.4 and 14.2.4
bug fix: annotation atom sets not adjusted for added hydrogens
bug fix: 14.3.3_2014.08.02 broke mmCIF reader
bug fix: BinaryDocument (Spartan file) reading broken in 14.1.12_2014.03.18
JmolVersion="14.3.3_2014.08.02"
note: Sourceforge release of 14.3.3 and 14.2.3
JmolVersion="14.3.3_2014.08.01"
load *1cbs/dom
Domains loaded:
CATH 2.40.128.20
GO GO:0001972 GO:0005215 GO:0005501 GO:0005634 GO:0005730
GO:0005737 GO:0005783 GO:0006355 GO:0006810 GO:0007165 GO:0008289 GO:0008544
GO:0016918 GO:0019841 GO:0035115 GO:0042573 GO:0070062
InterPro IPR000463 IPR000566 IPR011038 IPR012674
Pfam PF00061
SCOP 50847
UniProt P29373
$ show domains
metadata restapi_version=0.8
metadata date=20140801
metadata url=http://wwwdev.ebi.ac.uk/pdbe/api/mappings/1cbs?
pretty=false&metadata=true
1cbs SCOP 50847 identifier=Fatty acid binding protein-like
1cbs SCOP 50847 fold description=Lipocalins
1cbs SCOP 50847 fold sunid=50813
1cbs SCOP 50847 description=Fatty acid binding protein-like
1cbs SCOP 50847 class description=All beta proteins
1cbs SCOP 50847 class sunid=48724
1cbs SCOP 50847 superfamily description=Lipocalins
1cbs SCOP 50847 superfamily sunid=50814
1cbs UniProt P29373 name=RABP2_HUMAN
1cbs UniProt P29373 identifier=RABP2_HUMAN
1cbs GO GO:0005215 name=transporter activity
1cbs GO GO:0005215 identifier=transporter activity
1cbs GO GO:0005215 definition=Enables the directed movement of
substances (such as macromolecules, small molecules, ions) into, out of or within a
cell, or between cells.
1cbs GO GO:0005215 category=Molecular_function
...
1cbs CATH 2.40.128.20 architecture=Beta Barrel
1cbs CATH 2.40.128.20 identifier=Lipocalin
1cbs CATH 2.40.128.20 name=Cellular retinoic acid binding protein
type ii. Chain: a. Engineered:yes
1cbs CATH 2.40.128.20 homology=Lipocalin
1cbs CATH 2.40.128.20 class=Mainly Beta
1cbs CATH 2.40.128.20 topology=Lipocalin
1cbs Pfam PF00061 identifier=Lipocalin / cytosolic fatty-acid
binding protein family
1cbs Pfam PF00061 description=Lipocalin / cytosolic fatty-acid
binding protein family
1cbs InterPro IPR012674 name=Calycin
1cbs InterPro IPR012674 identifier=Calycin
1cbs InterPro IPR000566 name=Lipocalin/cytosolic fatty-acid
binding domain
1cbs InterPro IPR000566 identifier=Lipocalin/cytosolic fatty-acid
binding domain
1cbs InterPro IPR011038 name=Calycin-like
1cbs InterPro IPR011038 identifier=Calycin-like
1cbs InterPro IPR000463 name=Cytosolic fatty-acid binding
1cbs InterPro IPR000463 identifier=Cytosolic fatty-acid binding
load *2x9t/val
color property_rsrz "bwr"
display group within(5, property_rsrz > 0)
Validations loaded:
property_sidechains (residues: 181)
property_rama (residues: 262)
property_rsrz (residues: 87, max: 10.6)
property_chirals (atoms: 1)
property_planes (residues: 21, max: 0.08)
property_RNA_suite (residues: 241)
property_RNA_pucker (residues: 33)
property_bond_angles (atoms: 31, max: 14.12)
property_clashes (atoms: 2655, max: 3.42)
load *1d66/val
select on within(validation,"clashes")
{
_atoms : ({15:204})
_path : "InterPro.IPR000463"
chain_id : "A"
domain :
{
identifier : "Cytosolic fatty-acid binding"
mappings : "<circular reference>"
name : "Cytosolic fatty-acid binding"
}
end :
{
author_insertion_code : ""
author_residue_number : 25
residue_number : 25
}
entity_id : 1
start :
{
author_insertion_code : ""
author_residue_number : 3
residue_number : 3
}
struct_asym_id : "A"
}
{
_atoms : ({32:185})
_path : "InterPro.IPR000463"
chain_id : "A"
domain :
{
identifier : "Cytosolic fatty-acid binding"
mappings : "<circular reference>"
name : "Cytosolic fatty-acid binding"
}
...
JmolVersion="14.3.3_2014.07.27"
-- does NOT use abolute value; report is as an array when select value is used:
JmolVersion="14.3.3_2014.07.26"
load *2x9t/val
color property_rsrz "bwr"
display group within(5, property_rsrz > 0)
Validations loaded:
property_sidechains (residues: 181)
property_rama (residues: 262)
property_rsrz (residues: 87, max: 10.6)
property_chirals (atoms: 1)
property_planes (residues: 21, max: 0.08)
property_RNA_suite (residues: 241)
property_RNA_pucker (residues: 33)
property_bond_angles (atoms: 31, max: 14.12)
property_clashes (atoms: 2655, max: 3.42)
load *1d66/val
select on within(validation,"clashes")
JmolVersion="14.3.3_2014.07.23"
JmolVersion="14.3.3_2014.07.22"
JmolVersion="14.3.3_2014.07.20"
{ "<pdbID>" : { <databaseInformation> } }
"<databaseID>" : { <entryInfo> }
"<entryID>" : { <entry> }
- reports to console:
Domains loaded:
CATH 2.40.128.20
EC
GO GO:0001972 GO:0005215 GO:0005501 GO:0005634 GO:0005730 GO:0005737
GO:0005783 GO:0006355 GO:0006810 GO:0007165 GO:0008289 GO:0008544 GO:0016918
GO:0019841 GO:0035115 GO:0042573 GO:0070062
InterPro IPR000463 IPR000566 IPR011038 IPR012674
Pfam PF00061
SCOP 50847
UniProt P29373
Use SHOW DOMAINS for details.
select within(domains,"InterPro")
- a specific databaseID.entryID:
select within(domains,"InterPro.IPR012674")
JmolVersion="14.3.3_2014.07.29"
JmolVersion="14.3.3_2014.07.27"
JmolVersion="14.3.3_2014.07.26"
load *2x9t/val
color property_rsrz "bwr"
display group within(5, property_rsrz > 0)
Validations loaded:
property_sidechains (residues: 181)
property_rama (residues: 262)
property_rsrz (residues: 87, max: 10.6)
property_chirals (atoms: 1)
property_planes (residues: 21, max: 0.08)
property_RNA_suite (residues: 241)
property_RNA_pucker (residues: 33)
property_bond_angles (atoms: 31, max: 14.12)
property_clashes (atoms: 2655, max: 3.42)
load *1d66/val
select on within(validation,"clashes")
JmolVersion="14.3.3_2014.07.23"
JmolVersion="14.3.3_2014.07.22"
JmolVersion="14.3.3_2014.07.20"
{ "<pdbID>" : { <databaseInformation> } }
"<databaseID>" : { <entryInfo> }
"<entryID>" : { <entry> }
- reports to console:
Domains loaded:
CATH 2.40.128.20
EC
GO GO:0001972 GO:0005215 GO:0005501 GO:0005634 GO:0005730 GO:0005737
GO:0005783 GO:0006355 GO:0006810 GO:0007165 GO:0008289 GO:0008544 GO:0016918
GO:0019841 GO:0035115 GO:0042573 GO:0070062
InterPro IPR000463 IPR000566 IPR011038 IPR012674
Pfam PF00061
SCOP 50847
UniProt P29373
Use SHOW DOMAINS for details.
select within(annotations,"InterPro")
- a specific databaseID.entryID:
bug fix: 1-letter sequence for water showing as "I" not "?"
bug fix: SHOW SEQUENCE FALSE not giving 1-letter sequences
bug fix: for (i in x) where x is an associative array does not work
JmolVersion="14.3.3_2014.07.17"
new feature: load *1cbs/all
-- preliminary only
JmolVersion="14.3.3_2014.07.13"
JmolVersion="14.3.3_2014.07.12"
load *1ai6
bug fix: model kit menu does not allow setting of new element
bug fix: set atomPicking, setDrawPicking should not be in state
JmolVersion="14.3.3_2014.07.09"
JmolVersion="14.3.3_2014.07.02"
JmolVersion="14.3.2_2014.06.29"
bug fix: MCIF reader misreads magnetic symmetry operators involving xyz scaling
bug fix: isosurface "=3hyd" AS "3hyd.omap" fails to save proper file
(error in seek() method of javajs.util.binaryDocument)
JmolVersion="14.3.1_2014.06.28"
JmolVersion="14.3.0_2014.06.13"
bug fix: CASTEP reader broken for multiple cells and geometry optimization
JmolVersion="14.1.17_2014.06.12"
JmolVersion="14.1.17_2014.06.11"
bug fix: set pdbAddHydrogens fails for structures with ANISOU records
bug fix: select x < 0.3 reports error when checking, though it does run when
executed
bug fix: SMILES for model with nonbonded atoms fails
JmolVersion="14.1.17_2014.06.10"
JmolVersion="14.1.17"
JmolVersion="14.1.17_2014.06.07"
FEATURE CHANGE: default space group names for Int. Tables # 39, 41, 64, 67, 68
added
unitcell "a+b,a-b,c;1/4,1/4,1/4"
unitcell "!a+b,a-b,c;1/4,1/4,1/4"
unitcell "a+b,a-b,c;"
unitcell boundbox
draw {1/2 1/2 1/2}
unitcell reset
new feature: JSmol: allow for a user callback for customization of menu
if (Jmol._showMenuCallback)
Jmol._showMenuCallback(menu, x, y);
new feature: unit cell display includes k (mCIF) and q (CIF, Jana2006) vectors
bug fix: cannot zap model for which atoms are all deleted
bug fix: isosurface "=1bna" does not work for zapped file
bug fix: label %[x] does not work
bug fix: show spacegroup not complete for magnetic and modulated structures
bug fix: legacy JVXL file data skipping broken in 14.1.13
bug fix: MO file line includes full path; should be just the filename
bug fix: V3000 reader skips 2nd file in multiple files separated by $$$$
bug fix: isosurface color density broken
bug fix: isosurface slab @1 @2 @3 broken
bug fix: (undocumented) isosurface slab @3 fails when isosurface has not been
mapped
bug fix: console not properly handling TAB key
bug fix: double-click drag doesn't drag the model, and
since double-click is determined by time, not location,
it appears as though sometimes the model drags and
sometimes it does not. Solution is to
a) add a localization to double clicking. I think that
was removed because of touch interface problems.
b) add left-double-drag to left-single-drag for standard rotation
bug fix: Jmol 14.1.12 broke atom.fxyz for models that have vibrations.
-- atom.fxyz SHOULD change with changes in unit cell, but when an update was
made to accommodate modulated subsystems, where different atoms in a
model may have different unit cells, this capability was lost for any
atom having any sort of vibration other than a modulation.
bug fix: set hoverlabel will be ignored if no hover has already taken place
JmolVersion="14.1.15"
JmolVersion="14.1.15_2014.05.08"
JmolVersion="14.1.15_2014.05.06"
JmolVersion="14.1.15_2014.05.04"
JmolVersion="14.1.14"
JmolVersion="14.1.14_2014.04.28"
FEATURE CHANGE: Application Tools...Spectrum menu removed
-- Issue is that EPFL returns with a new 2D structure,
-- and Jmol would have to determine from that an atom selection map.
-- we are doing this with JSmol, but not yet with the application.
-- Bummer!
[ 33 ]
z = x[4]
show z
z = { "testing":"here","val":33 }
33
TO HERE
select within(dssr,"multiplets")
select within(dssr,"bulges.3")
select within(dssr,"bulges.3.linkedBy")
select within(dssr,"basePairs[SELECT res* WHERE twist > 1]")
print getProperty("auxiliaryInfo.models.1.dssr")
basePairs
basePairs.19.DSSR
basePairs.19.LW
basePairs.19.Saenger
basePairs.19.bp
basePairs.19.id
basePairs.19.info
basePairs.19.name
basePairs.19.nt1
basePairs.19.nt2
coaxialStacks
coaxialStacks.1.helix
coaxialStacks.1.nts
coaxialStacks.1.nts.4.5.DSSR
coaxialStacks.1.nts.4.5.LW
coaxialStacks.1.nts.4.5.Saenger
coaxialStacks.1.nts.4.5.bp
coaxialStacks.1.nts.4.5.id
coaxialStacks.1.nts.4.5.info
coaxialStacks.1.nts.4.5.name
coaxialStacks.1.nts.4.5.nt1
coaxialStacks.1.nts.4.5.nt2
coaxialStacks.1.stemCount
helices
helices.1.basePairs
helices.1.basePairs.19.DSSR
helices.1.basePairs.19.LW
helices.1.basePairs.19.Saenger
helices.1.basePairs.19.bp
helices.1.basePairs.19.id
helices.1.basePairs.19.info
helices.1.basePairs.19.name
helices.1.basePairs.19.nt1
helices.1.basePairs.19.nt2
helices.1.info
internalLoops
internalLoops.3.count
internalLoops.3.dssrType
internalLoops.3.id
internalLoops.3.linkedBy
internalLoops.3.nts
internalLoops.3.nts.3.count
internalLoops.3.nts.3.nt
internalLoops.3.nts.3.seq
stems
stems.4.basePairs
stems.4.basePairs.5.DSSR
stems.4.basePairs.5.LW
stems.4.basePairs.5.Saenger
stems.4.basePairs.5.bp
stems.4.basePairs.5.id
stems.4.basePairs.5.info
stems.4.basePairs.5.name
stems.4.basePairs.5.nt1
stems.4.basePairs.5.nt2
stems.4.info
aMinorMotifs
basePairs
bulges
coaxialStacks
hairpinLoops
helices
internalLoops
junctions
kinkTurns
kissingLoops
lonePairs
multiplets
riboseZippers
singleStrandedSegments
stems
x = getProperty("auxiliaryInfo.models.1.dssr.basepairs.nt")
select @{x}
bug fix: x=3;select atomno=x can fail (E. Martz)
bug fix: JSmol deferred (image-covered) applet can produce unwanted multiple
canvases (J. Gutow)
bug fix: print "x" = "X" returns false; should be TRUE (broken in 14.0/1.10)
bug fix: script error in JavaScript xxx.spt stops all subsequent script processing
(P. Bays)
bug fix: color property_x fails (broken in jmol-14.1.14_2014.04.16) (P. Bays)
bug fix: halos ON fails for small vdw radii (A. Herraez)
bug fix: CIF reader with bsModels fails
-- example:
load maleic.cif [3 5 7]
bug fix: reading concatenated files from PNGJ with model selected
bug fix: reading gzip files from PNGJ fails when concatenated
bug fix: group1 codes for nonstandard residues not read from mmCIF
(_struct_ref_seq_dif.db_mon_id) or PDB (SEQADV)
bug fix: select group="ALA" fails due to select group ..... option
bug fix: getProperty("auxiliaryInfo") fails for JavaScript
bug fix: Gaussian FCHK file reader fails when no SP coefficients
bug fix: set defaultVDW not working (A. Herraez)
bug fix: color isosurface range broken (Lucy Cusinato)
bug fix: script compiler error: x.x*x.x requiring space: x.x * x.x (Alexander Rose)
bug fix: lost H atoms of PDB-designated water (E. Martz)
bug fix: mouse rotation can cause loss of model (E. Martz)
bug fix: Jana2006 reader not reading groups correctly
bug fix: functions called in script defined by script called by this script
must be lower case. (A. Rose)
bug fix: clickable atoms may not be considered visible for hover
bug fix: select color=red should be color="red" to allow
for variable after "color="
code: upgrade of Apache Commons CLI (Command Line Interface) to 1.2 from 1.0
JmolVersion="14.1.13"
JmolVersion="14.1.13_2014.04.03c"
bug fix: polyhedra display improperly when some vertex atoms are hidden (Nick
Greeves)
code: Huge refactoring for JavaScript and judicious post-Google Closure Compiler
editing serves to reduce code size by 5% -- to 1.38 MB for core.z.js
partially due to additional directory changes in JavaScript and
partially due to removing unnecessary final static variable defs.
(These are just constants that are never referred to.)
JmolVersion="14.1.13_2014.04.02"
JmolVersion="14.1.13_2014.04.01d"
bug fix: JmolAppletSigned0.jar missing export classes (POV-Ray, VRML, for example)
bug fix: Mac Spartan spardir reading
-- for web, use zipped up version of spardir
JmolVersion="14.1.12"
JmolVersion="14.1.12_2014.03.30"
summary: We now have general ZIP and image file (including PDF) creation in
JavaScript independent of Jmol itself.
new feature; byteArray type
-- from format("byteArray", x) where
x is an integer array, or
x is a string starting with ";base64,"
x is any other variable (converted to byte list of string equiv.
-- from binary associative arrays
JmolVersion="14.1.12_2014.03.27b"
JmolVersion="14.1.12_2014.03.21"
bug fix: getProperty() function does not recognize a list as a variable and returns
it as a string
summary: We now have general ZIP and image file (including PDF) creation in
JavaScript independent of Jmol itself.
JmolVersion="14.1.12_2014.03.19"
JmolVersion="14.1.12_2014.03.18"
bug fix: Dsn6Reader.java misnamed, causing EDS map file load error
in JavaScript only. (I did not know that was even possible!)
bug fix: java.io.dataStreamReader.readShort() does not take into
account JavaScript equivalence of short and int, causing
"-1" to be read as 65535.
JmolVersion="14.1.12_2014.03.17"
JmolVersion="14.1.12_2014.03.16"
JmolVersion="14.1.12_2014.03.13"
JmolVersion="14.1.12_2014.03.10"
bug fix: msCIF reader not accepting normalized commensurate Fourier vectors
bug fix: JSmol/HTML MSIE local installation AJAX working again (still no binary
files)
JmolVersion="14.1.11"
JmolVersion="14.1.11_2014.03.08"
new feature: JSpecView readers for ACD/Labs annotated MS, IR, Raman, and UV/VIS
-- displays fragments for MS (highlights atoms)
-- highlights atoms involved in an IR/Raman stretch
-- UV/VIS and Raman untested
new feature: JSpecView and Jmol read ACD/Labs assigned spectra block JDX files.
-- 2D MOL files with missing hydrogens on hetero atoms.
-- fully synced
-- drag-drop enabled
-- saved in state only for file loading; should be unchanged after state loading.
-- example:
[xffffff][xffbfbf][xff7f7f][xff3f3f][xff0000]
[xff0000][xffff00][x00ff00][x00ffff][x0000ff]
$ print "testing"
$ throw "testing here"
$ print "we will never see this"
testing
script ERROR: testing here
----
throw >> "testing here" <<
-- passes a string as the variable thrown_value
$ print thrown_value
testing here
try{
print "testing"
throw "testing here"
print "continuing"
} catch(e) {
print "thrown_value=" + thrown_value;
}
results in:
testing
thrown_value=testing here
&test
function f(a, b, c) {
var x = 5
throw context testing
print "x=" + x
}
f(1,2,3)
print "done"
print testing["x"]
testing["x"]++
print testing
a : 2
b : 2
c : 3
x : 6
&contextName
x=6
done
b = [1 2 3 [ 1 2 [1 2 [1 [testing:"here"] 3]]]]
print b..4..3..1
b..2 = 34
b..2..1 = 33
print b..2..1
b = [testing:"here"]
b.testing= 33
print b.testing
b = [ [2] 10 11 ]
b[1][2]= 33
#NOT print b[1][2] (that's a range)
b = [1 2 3 [ 1 2 [1 2 [1 [testing:"here"] 3]]]]
b[4][3][3][2].more = "yes"
#NOT print b[4][3] (that's a range)
-- extends to matrices
b = quaternion()%"matrix"
b[1] = [1 2 3]
b[-1] = [1 2 3]
b[2][3] = 2
-- extends to string
b = "testing"
b[1] = "T"
b[1][3] = "T"
b["t"] = "T"
-- extends to points
p = {3 3 3}
p.x = 10
p.y = 5
p.z = 3
-- extends to bitsets
-- single dots only, not a["color"] or a..color
a = {*}
a.color = "red"
a.property_x = {*}.temperature.all
bug fix: try { ... throw ...} catch {....} continues through catch when resumed.
bug fix: anonymous context { ..... } not closed
bug fix: JSON of 4x4 matrix (M4) fails
bug fix: modelkitmode broken for Java in 14.1.10
JmolVersion="14.1.10"
JmolVersion="14.1.10_2014.02.20"
new feature: THROW command
-- accepts unquoted string or @x simple variable substitution
-- examples:
throw this is an error
or
x = "this is an error"
throw @x
resulting in:
this is an error
----line 3 command 3 of try:
throw >> "this is an error" <<
----line 10 command 1 of t.spt:
end
----
script "t.spt"
JmolVersion="14.1.10_2014.02.19"
JmolVersion="14.1.9"
JmolVersion="14.1.9_2014.02.18"
bug fix: recently released 14.0.8 introduced a math bug that caused
y = "test" + x.f() to be evaluated as ("test" + x).f()
bug fix: long-time multiple unary minus bug (at least 6 years!)
that print 3 +(- -3) evaluates to 0, not 6.
JmolVersion="14.1.8_2014.02.17"
bug fix: PNGJ files within ZIP collections not being read.
-- full PNGJ models can be extracted from MS Word .docx files.
-- for example:
show file "t.docx"
[Content_Types].xml
_rels/.rels
word/_rels/document.xml.rels
word/document.xml
word/media/image1.png
word/theme/theme1.xml
word/settings.xml
word/webSettings.xml
docProps/core.xml
word/styles.xml
word/fontTable.xml
docProps/app.xml
load t.docx|word/media/image1.png
x = "C or T"
y = 3
x = "y"
print x --> "y"
print @x --> 3
Such referencing is important for math expressions, but the
extension of this to atom expressions is not necessary and
not generally useful.
-- The current situation is as follows:
x = "A or T"
select @x --> all A and T groups
print {@x} --> nothing (because @x is "the contents of the variable 'A or
T'")
x = "A or T"
select @x
print {@x}
x = "A or T"
@y @x
select y same as select @x
-- Note that the difference between "select x" and "select @x"
may be significant:
ala = "cys"
code: way more efficient for loop -- loop overhead decreased by > 80%
bug fix: for(i in ...) does not exit when i is assigned a value, as per
documentation
bug fix: for(x in ...) command broken and also quite inefficient.
JmolVersion="14.1.8_dev_2014.02.06"
new feature: anim frame [a,b,c,d] works with negative numbers to indicate ranges:
-- anim frame [1, -5, 10, -6] --> [1,2,3,4,5,10,9,8,7,6]
-- read as "1 through 5 and then 10 through 6"
new feature: Tinker file reader (and FoldingXYZ reader upgrade)
-- see http://dasher.wustl.edu/tinker/
-- Can use Tinker:: but this is only required if first line is JUST an atomCount
-- accommodates older Tinker format with n-1 atoms for atomCount
-- allows for trajectories and desired model number
bug fix: substructure() function using SMILES instead of SMARTS, so only full
structures;
bug fix: better error trapping and messages in SMILES-related methods
bug fix: make webexport discovery of path to Jmol.jar and jsmol.zip more robust.
bug fix: getProperty extractModel not honoring subset
bug fix: set pdbGetHeader TRUE does not capture REMARK3 REMARK290 REMARK350
bug fix: getProperty("JSON",....) should wrap value in {value:...}
bug fix: MO persistent translucency broken in 11.x
bug fix: show MENU write MENU load MENU all broken in 12.2
bug fix: {*}[n] should be empty if nAtoms <=n
bug fix: abinit reader was nonfunctional
bug fix: assign atom into into PDB file loses atom names
bug fix: y = ([3])[1][1] should be [3] not 3
bug fix: break n nonfunctional
bug fix: format() and label() functions limited to 4 arguments; should be unlimited
code: JSmol: applying atom mapping between mol2D and mol3D for viewSets
code: refactoring to enable SWING in JavaScript for all menus
code: methods from jcampdxReader extracted to org.jmol.jsv.JDXMOLParser
code: reader overhaul for setting atom coordinates in a consistent fashion
JmolVersion="14.1.7"
JmolVersion="14.1.7_dev_2014.01.20"
bug fix: 14.0.6 fatally bugged -- unitcell and echo rendering, getProperty
JmolVersion="14.1.6"
JmolVersion="14.1.6_dev_2014.01.19"
bug fix: Jmol2.js should have commented lines in Jmol.Info but does not
bug fix: JSpecView cannot close "Options...Show Header" panel in HTML5
bug fix: select visible not right after this sequence:
load $C\C=C\CC
select _C
wireframe off
spacefill off
display !_H
select visible // 5 (but nothing is showing)
JmolVersion="14.1.5"
JmolVersion="14.1.5_dev_2014.01.09"
JmolVersion="14.1.4"
JmolVersion="14.1.4_dev_2014.01.05"
JmolVersion="14.1.3"
JmolVersion="14.1.3_dev_2013.12.29"
bug fix: incommensurate composite structures not packed into unit cell properly
bug fix: incommensurate composite structures - wrong unit cell for d > 1
bug fix: if load "" fails, last file name is lost
bug fix: print a (operator) b not processing string parameter B consistently across
operators
bug fix: composite structures reading for JANA2006 M50/M40 files
bug fix: capture time slightly off; needs 50 ms addition. This may vary with
rendering speeds.
bug fix: CIF reader goes into molecular mode even if geom_bond block is all
"? ? ? ? ?"
bug fix: n-d incommensurate modulated composite structures (preliminary testing)
bug fix: getProperty atomInfo broken for modulated atoms
bug fix: x.distance.min(y) broken
code: generic javajs.util.Matrix class added based on Jama code for inversion using
L/U decomposition
JmolVersion="14.1.2"
JmolVersion="14.1.2_2013.12.13"
at = [] // t points
am = [] // distance measurements
var p1 = a.modulation(1e10)[1]
var p2 = a2.modulation(1e10)[1]
for (var i = 0; i <= 50; i++) {
var t = i / 50.0;
at.push(t);
var b1 = a.modulation(t)[1];
var b2 = b.modulation(t)[1];
var m = distance((p1 + b1).xyz, (p2 + b2).xyz);
am.push(m);
}
d = at.add("\t", am)
select on _O2
select off *
new feature: load() function, as in print load("xxx"), limited local file reading
in applet:
-- no root-directory files
-- no files without extension
-- no files with any "/." in path
new feature: applet JAR files include JNLPs (Java Network Launch Protocols) for
local file loading
new feature: JSmol URL options _USE= _JAR= _J2S= overrides for Info data
new feature: "extensions" directories in JSmol for contributed JS and SPT scripts
-- jsmol/js/ext
-- jsmol/spt/ext
new feature: load ... filter "ADDHYDROGENS"
-- local set pdbAddHydrogens just for one load command
new feature: symop() function allows symmetry from biomolecule filter for PDB and
mmCIF
new feature: JSpecView completely Java-free; includes 2D nmr and PDF printing of
spectra
new feature: WRITE PDF <width> <height> <quality> "xxx.pdf" quality > 1 requests
landscape mode
-- uses efficient custom PDF creation classes
-- sizes image to fit if too large
bug fix: write CD removed; ChemDoodle has changed formats; use JSON instead
bug fix: PDB and CIF files indicated assemblies such as PAU as large negative
number
bug fix: COMPARE with no rotation starts infinite loop
bug fix: looping problem with delay(-1)
bug fix: Mouse wheeling for Chrome in JavaScript
bug fix: JavaScript popup menu fix for language changes
bug fix: JavaScript core components not being processed; Jmol._debugCode not
recognized
bug fix: unitcell offset incorrectly for biomolecules; origin incorrect for axes.
bug fix: isosurface/mo FRONTONLY broken
bug fix: language localization broken in JavaScript
bug fix: ADF reader not reading MO output from DIRAC Build 201304052106
bug fix: Safari reports yellow Jmol info instead of asking to accept applet
-- <object> tag needed to be <applet>
bug fix: CIF reader not handling _pdbx_struct_assembly_gen.assembly_id properly
-- wrong atom set for load =3fsx.cif filter "ASSEMBLY 1"
bug fix: [#558 Compatibility issue with ChemDoodle] JSmol error in definition of
Number.toString()
bug fix: mouse wheel not working properly
bug fix: JavaScript J2S compiler error does not coerce int += float to integer
bug fix: JavaScript WEBGL option broken
bug fix: JavaScript NMRCalculation does not access resources
bug fix: JavaScript stereo not implemented
bug fix: MOL reader fix for multiple-model file (just 13.3.9_dev)
bug fix: MOL reader error with load APPEND -- does not continue atom numbers
bug fix: CIF modulation reader not reading linear combinations of cell wave vectors
bug fix: CIF reading with filter "BIOMOLECULE 1" fails if only the identity
operation
bug fix: mmCIF reader not reading all _pdbx_struct_assembly_gen.oper_expression
options
bug fix: PDB CRYST entry 1.0 1.0 1.0 90 90 90 should mean "no unit cell" regardless
of biomolecule filter
bug fix: isosurface slab <percent> not adapting well for flat molecules such as HEM
bug fix: print userfunc() may fail (userfunc() by itself is fine)
bug fix: within(helix) not implemented for C-alpha-only polymers
bug fix: _modelTitle not updated when a new file is loaded or zapped
bug fix: {*}.symop.all not delivering symmetry operator appropriately
bug fix: for triple bond in SMILES in URLs
bug fix: build.xml missing PDF creation classes
bug fix: [#554] for
load http://sourceforge.net/p/jmol/code/18631/tree/trunk/Jmol-
datafiles/xyz/3structs.xyz?format=raw;
zap model!=1.1;
bug fix: following Java update, adding proper path check for local signed applet
bug fix: {xxx}.property_xx not saved in state (broken 8/7/2013 rev 18518)
bug fix: Manifests updated for signed and unsigned applet JAR files
bug fix: write <type> <filename> fails
bug fix: applet scriptWait() method broken
bug fix: PyMOL session may display unit cell after read from saved state
bug fix: MMCIF reader fails for multiple assembly types
bug fix: CIF reader "biomolecule 1" translating to "molecular" rather than
"assembly"
bug fix: load trajectory with multiple files not working
bug fix: JS applet popup menu not closing properly upon language change
bug fix: HTML checkbox id attribute not assigned
JmolVersion="13.3.7"
JmolVersion="13.3.7_dev_2013.10.01"
JmolVersion="13.3.7_dev_2013.09.30"
JmolVersion="13.3.6"
JmolVersion="13.3.6_dev_2013.09.27"
new feature: adds remote logging for applet and app via http:// and via function
for applet using
jmolApplet0._applet.viewer.setLogfile(function(data) {......})
new feature: show BEST ROTATION / show BEST VOLUME (better than undocumented show
rotation best, show rotation volume)
FEATURE CHANGE: added bindings: "drag" and "up" -- may affect power users who use
BIND command
new: _center CTRL+SHIFT+LEFT+click
new: _reset SHIFT+LEFT+double+click
for example:
SINGLE-RIGHT-CLICK
DOUBLE-LEFT-DRAG
sequence is always:
down
(drag,drag,drag...)
up
(click) (only if no drag)
$ show mouse
_assignNew LEFT+click assign/new atom or bond (requires
set picking assignAtom_??/assignBond_?)
_center CTRL+SHIFT+LEFT+click center
_clickFrank LEFT+click pop up recent context menu (click
on Jmol frank)
_pickConnect LEFT+click connect atoms (requires set picking
CONNECT)
_deleteAtom LEFT+click delete atom (requires set picking
DELETE ATOM)
_deleteBond LEFT+click delete bond (requires set picking
DELETE BOND)
_depth CTRL+SHIFT+LEFT+double+drag adjust depth (back plane;
requires SLAB ON)
_dragAtom LEFT+drag move atom (requires set picking
DRAGATOM)
_dragDrawObject SHIFT+LEFT+drag move whole DRAW object (requires
set picking DRAW)
_dragDrawPoint ALT+LEFT+drag move specific DRAW point (requires
set picking DRAW)
_dragLabel SHIFT+LEFT+drag move label (requires set picking
LABEL)
_dragMinimize LEFT+drag move atom and minimize molecule
(requires set picking DRAGMINIMIZE)
_dragMinimizeMolecule LEFT+drag move and minimize molecule
(requires set picking DRAGMINIMIZEMOLECULE)
_dragSelected ALT+SHIFT+LEFT+drag move selected atoms (requires set
DRAGSELECTED)
_dragZ SHIFT+LEFT+drag drag atoms in Z direction (requires
set DRAGSELECTED)
_navTranslate LEFT+drag translate navigation point
(requires set NAVIGATIONMODE and set picking NAVIGATE)
_pickAtom LEFT+click pick an atom
_pickIsosurface LEFT+click pick an ISOSURFACE point (requires
set DRAWPICKING
_pickLabel LEFT+click pick a label to toggle it
hidden/displayed (requires set picking LABEL)
_pickMeasure LEFT+click pick an atom to include it in a
measurement (after starting a measurement or after set picking
DISTANCE/ANGLE/TORSION)
_pickNavigate CTRL+SHIFT+LEFT+click pick a point or atom to navigate to
(requires set NAVIGATIONMODE)
_pickPoint LEFT+click pick a DRAW point (for
measurements) (requires set DRAWPICKING
_popupMenu CTRL+LEFT+down, RIGHT+down pop up the full context menu
_reset SHIFT+LEFT+double+click, MIDDLE+double+click reset (when
clicked off the model)
_rotate LEFT+drag rotate
_rotateBranch SHIFT+LEFT+drag rotate branch around bond (requires
set picking ROTATEBOND)
_rotateSelected ALT+LEFT+drag rotate selected atoms (requires set
DRAGSELECTED)
_rotateZ ALT+LEFT+drag, SHIFT+RIGHT+drag rotate Z
_rotateZorZoom SHIFT+LEFT+drag, MIDDLE+drag rotate Z (horizontal motion
of mouse) or zoom (vertical motion of mouse)
_select LEFT+double+click select an atom (requires set
pickingStyle EXTENDEDSELECT)
_selectToggleOr LEFT+click if all are selected, unselect all,
otherwise add this group of atoms to the set of selected atoms (requires set
pickingStyle DRAG)
_setMeasure LEFT+double+click pick an atom to initiate or
conclude a measurement
_slab CTRL+SHIFT+LEFT+drag adjust slab (front plane; requires
SLAB ON)
_slabAndDepth CTRL+ALT+SHIFT+LEFT+drag move slab/depth window (both
planes; requires SLAB ON)
_slideZoom LEFT+drag zoom (along right edge of window)
_spinDrawObjectCCW LEFT+drag click on two points to spin around
axis counterclockwise (requires set picking SPIN)
_spinDrawObjectCW SHIFT+LEFT+drag click on two points to spin around
axis clockwise (requires set picking SPIN)
_stopMotion LEFT+double+click stop motion (requires set
waitForMoveTo FALSE)
_swipe LEFT+drag spin model (swipe and release
button and stop motion simultaneously)
_translate CTRL+ALT+LEFT+drag, CTRL+RIGHT+drag,
SHIFT+LEFT+double+drag, MIDDLE+double+drag translate
_wheelZoom WHEEL zoom
bug fix: platformSpeed persists but appears unreadable after loading a state
bug fix: JavaScript version InputStreamReader not processing non-UTF data correctly
bug fix: second reading of older PNG files with embedded script fails
due to improper png file caching
-- Thus, the "real" transfer size -- based on server-side gzipping -- is half the
size of Jmol/Java.
JmolVersion="13.3.5"
JmolVersion="13.3.5_dev_2013.09.06"
bug fix: CRYSTAL reader not allowing vibration for conventional cell
bug fix: JavaScript binary for Safari and Opera
new feature: strutureModifiedCallback
bug fix: ID @id vector fails
JmolVersion="13.3.4"
JmolVersion="13.3.4_dev_2013.08.21"
code: Incommensurate modulated structure CIF and M50/40 file loading validation
-- includes d=1 and d=2
-- Fourier, sawtooth, crenel
bug fix: CIF reader does not find Hall name for space groups
script LOAD
via loadModelFromFile
createModelSetAndReturnError
bug fix: Jsmol menu and console broken in 2013.08.07 when jQuery calls were all
moved into JSmolCore.js
code: pdb, cif readers separated into separate packages; p2n, pqr readers with pdb
now
JmolVersion="13.3.3_dev_2013.07.27"
bug fix: Gaussian cube format changed and not recognized (extra "1" in third line).
bug fix: PDB header don't do trim();
bug fix: isosuface ID @x ... becomes isosurface ID "@x"
bug fix: color chain broken
bug fix: rockets with color chain
bug fix: filter ":X" broken
bug fix: O not 2- in PDB adding hydrogens
bug fix: NWChem reader error
bug fix: JSmol 2-sided surface color problem due to Java2Script miscoding of
Number.shortValue()
bug fix: PyMOLMeshReader code clean-up.
JmolVersion="13.3.2_dev_2013.07.21"
JmolVersion="13.3.1_dev_2013.07.20"
bug fix: allow PyMOL PSE files reading as part of a set of files, not just by
itself
JmolVersion="13.3.0"
JmolVersion="13.1.19_dev_2013.07.18"
JmolVersion="13.1.17_dev_2013.06.27"
=============================================================================
JmolVersion="13.1.16_a"
new feature: set defaults PyMOL
-- zoomHeight TRUE
-- measurementUnits ANGSTROMS
new feature: added parameters to moveTo allows setting cameraDepth, cameraX, and
cameraY
new feature: moveTo <nseconds> PYMOL [18-element standard PyMOL view matrix]
-- used for PSE file loading
-- to be used also for scenes
[0-8] are 3x3 rotation matrix (row/column inverted)
[9,10] are x,y translations (y negative)
[11] is distance from camera to center (negative)
[12-14] are rotation center coords
[15-16] are slab and depth distance from camera (0 to ignore)
[17] is field of view; positive for orthographic projection
after:
Listing archive: t.zip
Physical Size = 395174
new feature: pyMOL PSE state options: LOAD "FOO.PSE" state FILTER "xxxx"
-- [state not present; default] load all PyMOL states (one PyMOL state == one Jmol
model)
-- state = 0 (load only the current PyMOL state)
-- state > 0 (load just a specific PyMOL state)
-- FILTER "nosurface" -- load PyMOL file without surfaces
PyMOL: first phase of reader development complete (working with Jaime Prilusky)
-- 104 test models http://ispcsrv3.weizmann.ac.il/a2jmolb/browse
-- implementation of standard objects, including:
-- atoms with labels
-- bonds
-- standard PyMOL rendering, including:
-- lines
-- sticks
-- nonbonded (stars)
-- nb_spheres
-- cartoons of various types (not plank)
-- rockets
-- ribbon (backbone/trace)
-- putty (trace)
-- dots
-- measures
-- simple CGO objects
-- molecular surfaces
-- electron density as points and meshes
-- custom colors
-- fog and slab
-- morphing movies
-- JVXL caching of isosurfaces
bug fix: COMPARE move of group saved in state may not be correct when restored
bug fix: write command doesn't accept parameter sequence IMAGE PNGJ ... (broken in
13.1.14)
bug fix: load APPEND with PDB file loses structure (broken in 13.1.15)
bug fix: restore command broken
bug fix: JavaScript: adding SYNC
bug fix: antialiasing or resizing stray lines problem solved (introduced in 11.0,
08/2006!)
bug fix: "display add" by itself should not do anything
bug fix: Hall translation initialization problem
bug fix: JavaScript reading of old-style JVXL files
bug fix: Gaussian reader not splitting MO set by model
bug fix: polyhedron reading from state
bug fix: connect delete not saved in state
bug fix: rockets not working for alpha polymer (also in 13.0.16)
bug fix: GXL added to carbohydrates
bug fix: show state/anim turns "anim" into "animation"
bug fix: MoldenReader orbitals are not in energy order; use FILTER "NOSORT" to
prevent sorting by energy
bug fix: simultaneous spin/animation broken in 13.1.13
bug fix: MoldenReader fix for file blank lines and g,h,i orbitals - also for
13.0.16
bug fix: COMPARE does not allow nSeconds at beginning, as described in
documentation
bug fix: isosurface VOLUME/AREA SET n cannot return to full array reporting; SET -1
added.
bug fix: isosurface VOLUME/AREA always returns an array, possibly of length 0
bug fix: isosurface molecular/solvent can give inappropriate inner surfaces
bug fix: show selected includes deleted atoms
=============================================================================
JmolVersion="13.1.15"
FEATURE CHANGE: default JPEG quality set to 100 (was 75, which looks crappy)
new feature: select command parameter completion using [TAB] includes variables
where
new feature: "all frames" toolbar button starts/stops PyMOL movies: if(_isMovie){if
(_animating) {animation off}else{animation play}} else {frame *}
new feature: Jmol/JmolData application -I flag accepts input from System.in and
command piping:
new feature: Jmol or JmolData with -g0x0 and load filter "DORESIZE" will
automatically
resize the image to what is given in the PyMOL file as its default
size:
JmolData -ns "load t.pse filter 'DORESIZE'" -g0x0 -w "PNGJ:t.png"
bug fix: isosurface map property may not reference correct atom
bug fix: set isosurfacekey may not work with slabbing
bug fix: deleting atoms does not remove bioshape rendering
bug fix: isosurface in multi-model context saved in state with wrong model number
bug fix: PyMOL label fix, including fonts
bug fix: PyMOL rockets, nucleic acid rendering
bug fix: write JPG not working in JavaScript
bug fix: isosurface ... map property colors not cleared entirely before next
mapping
bug fix: MSMS reader broken
bug fix: labels lost upon z-shading
bug fix: isosurface property temperature default smoothing broken in 13.1.13.
bug fix: {xxx}.cartoon = {xxx}.temperature.all fails to use correct values (also
backbone, trace, etc.)
bug fix: isosurface translucent level not re-zeroed properly
bug fix: IDTF exporter with translucency fails
bug fix: commands f.sort() and f.reverse() fail.
bug fix: {;...;} syntax does not work in 13.1
bug fix: select dots > 0 does not work
bug fix: JmolData broken
code: PyMOL work; CGO command and class CGO extends DRAW preliminary only;
preliminary putty; fix for putty+sticks issue
code: PyMOL reader localSettings
code: PyMOL putty hack for Cover1.pse removed; colix index error fixed
code: PyMOL slab and depth; better field of view; even better zslab/zdepth
code: PyMOL reader "backbone" (really a trace -- fixed width?)
code: PyMOL reader isosurface solvent
code: PyMOL reader and full surfaces, mixed bigEndian/littleEndian Pickle reading
code: PyMOL reader: cartoon_ladder_mode approximation as cartoons
code: PyMOL reader: includes cartoon type 1,4,7 -> trace
code: String JmolViewer.runScript(String script) runs script immediately and
returns output buffer
code: continued work on PyMOL PSE file reader
code: simplification of JmolViewer interface and access to global parameters:
// several; methods were deprecated and removed in 13.1.15. All are accessible
via "getXxxx" methods:
=============================================================================
JmolVersion="13.1.14"
new feature: JVXL vertex-only data encoding "none" allows hand-coding of JVXL files
=============================================================================
JmolVersion="13.1.13"
FEATURE CHANGE: multiple applets no longer share the same lighting space
new Feature: Experimenting with ellipsoid {atom set} and ellipsoid $isosurfaceID
new feature: PyMOL PSE reader enhancements -- labels, simple surfaces, measures
load =mp/1
load =nci/caffeine
load =pubchem/caffeine
load =pubchem/cid/2345
print(load('=nci/caffeine/names'))
bug fix: set picking IDENT when picking is already ident can cancel a pending
measurement
bug fix: applet does not refresh when mouse exits with pending measurement
bug fix: labels within fog should be hidden
bug fix: load CENTROID does not always work -- wrong implicit normalization flag
(was -1 instead of 1)
bug fix: property_xxx does not work (since 10/3/12, 13.1.7)
bug fix: The "show history" command is supposed to clear out the "show history"
command
itself, but only if it is a top-level command (from the console),
but it does more than that if it is part of script("show history").
Probably true with all recent versions of Jmol.
bug fix: isosurface binary file reading (MRC, CCP4, O, binary PMESH, etc.) broken
bug fix: JavaScript: zoomTo [seconds > 0]... and restore rotation|orientation
[name] [seconds > 0] not waiting
code: shader functions removed from Colix; Shader class made nonstatic
code: refactored to allow scriptless JavaScript. (reduces initial core code load
size by 25%, to 2.5Mb)
=============================================================================
version="13.1.12"
new feature: PDB reading of X-PLOR using hybrid-36 and NAMD files using hex
-- see https://www.schrodinger.com/AcrobatFile.php?
type=supportdocs&type2=&ident=530
-- see http://cci.lbl.gov/cctbx_sources/iotbx/pdb/hybrid_36.py
new feature: axes labels "a" "b" "c" "xxx" where "xxx" is the label for the origin
bug fix: PDB file reading of remediated 1A7Y and 1E9W error due to too many CONECT
bonds
-- now reads HEADER columns 63-66 for 4-digit PDB ID.
-- only if this ID is absent will the number of CONECT bonds be checked in
decision to autobond
bug fix/update: revision of the pages that make the About menu (application) in
each language.
-- Some changes that had been formerly applied to the English page are now in all.
(Removal of copyright date in text)
-- All About_xx.html files are now encoded and saved in UTF-8 w/o BOM,
except Chinese which is in GB2312/GB18030.
-- Extended characters in tr and zh that had become corrupt across revisions were
restored from old ones.
-- Several html header tags updated or added (html5 doctype, charset, lang)
-- Hopefully all will display correctly after these changes!
=============================================================================
version="13.1.11"
new feature: Jmol app "recent files" recognizes if file was drag-dropped or opened
via "File Open"
new feature: color cartoons red blue
-- front/back colors
-- preliminary - only for hermiteLevel = 0, not cartoonFancy
-- a bit rough at the edges
-- not in state
bug fix: 13.1 does not calculate partial charges (mark/reset fault in reading
resource files)
bug fix: MOPAC2012 files not recognized
bug fix: patch 3581394 - small fixes for cartoon meshes
bug fix: 13.1.8 does not display translucent bonds when only bonds are translucent
JavaScript: flat cartoons for WebGL using mesh
JavaScript: adds XML model file readers
-- tested: VASP, XODYDATA, CML, Chem3D, MolPro, XSD
=============================================================================
version="13.1.10"
=============================================================================
version=13.1.9
=============================================================================
version=13.1.8
bug fix: boundbox $pmeshID, center $pmeshID, and zoomto $pmeshID not implemented
bug fix: stronger (bold) frame labels
bug fix: no automatic change to bold for antialiasDisplay or PovRAY
bug fix: try/catch not working when embedded in another context
bug fix: JmolData not producing output for PRINT commands
bug fix: JmolData setting haveDisplay true, then failing to get mouse manager
bug fix: MRC file reader not setting default cutoff correctly
bug fix: (13.1 only) MRC/DNS6 file readers fail
bug fix: MRC surface file reader with symmetry error
bug fix: (13.1 only) minimization broken
=============================================================================
version=13.1.7
bug fix: (13.1 only) reading of states with select BONDS fails to select bonds
broken in 13.1.6
bug fix: (13.1 only) centered/right-aligned text only aligned after first line
bug fix: export WRL missing various objects requiring transformMatrixInv
bug fix: export may be missing protein cartoon turn
bug fix: set ribbonAspectRatio improperly widens ribbon
bug fix: zShadePower should not be static (affecting all applets/Jmol application
frames)
bug fix: write OBJ xxx.obj not working (but write xxx.obj is fine)
bug fix: cartoons (with hermiteLevel > 1) adjusted to have smooth
normals between segments (Alexander Rose)
also, hermiteLevel >= 6 now gives ellipse cross-section
recommended settings: set hermiteLevel 6;set ribbonAspectRatio 4
bug fix: JmolControls.js had broken radio buttons
bug fix: DRAW {x y z} "title" can fail in multimodel cases with translucency
=============================================================================
version=13.1.6
Var x = load("test.txt")
load "1vif-early.cif" append "appendedData" @x FILTER "assembly 1;$A"
-- or in one line:
load "1vif-early.cif" append "appendedData" @{load("test.txt")} FILTER
"assembly 1;$A"
-- where, perhaps, x =
_pdbx_struct_assembly_gen.assembly_id 1
_pdbx_struct_assembly_gen.oper_expression 1,2,3,4
_pdbx_struct_assembly_gen.asym_id_list A,B,C
#
loop_
_pdbx_struct_oper_list.id
_pdbx_struct_oper_list.symmetry_operation
1 x,y,z
2 y,x,-z+1
3 -x+1,-y+1,z
4 -y+1,-x+1,-z+1
#
new feature: LOAD "xxx.cif" APPEND DATA "appendedData" .... end "appendedData"
-- specifically for CIF files, reads a CIF file, appending string in lines of
script
-- intentionally not documented
-- most important for saving the state:
bug fix: PDB 4B2Q, with faulty (incomplete) REMARK 350 not read
-- adding:
javax.util.BitSet
javax.util.StringXBuilder
-- streamlining:
javax.vecmath...
-- removed all references to StringBuffer
-- StringXBuilder allows optimization of performance in JavaScript
-- workaround for Java2Script compiler bug setting "char x;" to 0
-- Java2Script compiler is not distinguishing int[] from float[] when
creating the array
-- StringXBuilder takes care of adding ".0" to floats and doubles, but
we need to be on the lookout for not places where we are constructing
a string where the difference between an int and a float is significant.
-- optimize class hierarchy return by cataloging classes
as org_jmol_xxxx in addition to org.jmol.xxxx
-- tie in graphics on JavaScript side
-- add fonts
-- add "billboard" objects such as labels, 3D echos, etc.
-- add 2D echos
-- ultimately write an asynchronous version of JSmol
=============================================================================
version=13.1.5
=============================================================================
version=13.1.4
new feature: ISOSURFACE PLANE ... MAP ... LATTICE {i j k} [volume data]
-- allows periodic volume data to be mapped to a plane
based on a specified translational lattice
-- for example: isosurface plane x=2 map LATTICE {1 2 2} "data.dat"
=============================================================================
version=13.1.3
=============================================================================
version=13.1.2
bug fix: translate x 0 does not recenter the model in the window
bug fix: PDB polymers of length 1 allow size to be set and appear {visible} but are
not
bug fix: OPEN dialog doesn't allow for no PDB cartoons.
bug fix: open dialog for 1-residue PDB files does not show atoms.
bug fix: pngj storage of Spartan directory zip files or Spartan directories cannot
be read
because the PNGJ files created do not contain the necessary files from the
directory
=============================================================================
version=13.0.1
APPLET:
-- a new OOP JavaScript interface (Jmol-JSO)
allowing nonJava options such as ChemDoodle and GLmol
as well as JME/JSpecView connectivity
-- JmolData full "headless" operation for server-side processing
BIOPHYSICS:
-- COMPARE command
FILE READING:
-- reading of JCAMP-DX files having structure/spectra assignment data
using ##$MODELS and ##$PEAKS (see http://chemapps.stolaf.edu/jmol/jspecview)
-- Gaussian log reading of Natural Transition Orbitals
-- automatic PNGJ file caching for immensely faster loading of PNGJ files from
remote servers
FILE WRITING:
-- write PNGJ files encapsulate all model file data into one PNG file
-- write image 400 400 PNGJ "http://....." POSTs JMOL or IMAGE or structure to
a server as application/octet-stream
-- write MOL adds partial charge data as > <JMOL_PARTIAL_CHARGES> in SDF format
-- multiple-scene PNGJ files allowing minimal or full data loading and scripted
animations
ISOSURFACES:
-- isosurface caching
-- isosurface MOVE [[...matrix4f...]] moves/rotates an isosurface (for the state)
MINIMIZATION:
-- MMFF94/UFF minimization and energy calculation
MOLECULAR DATA:
-- show CHEMICAL
-- show NMR
MOLECULAR PLAYGROUND:
-- MolecularPlayground -- remote status and remote control
SOLID-STATE PHYSICS:
-- solid state physics support
SPECTROSCOPY:
-- integration of JSpecView into Jmol, including 2D spectral display and
manipulation
STRUCTURE SEARCHING:
-- extended Jmol SMARTS searching
-- PubChem search for name (which can be a CAS number), cid, or SMILES using ":"
=============================================================================
version=13.0.RC7_dev
=============================================================================
version=13.0.RC6
=============================================================================
version=13.0.RC5
=============================================================================
version=13.0.RC4
new feature: write SCENE PNG|PNGJ "xxxx.spt" option to create PNG or PNGJ files
(same file, just different extension)
new feature: "menu" as sole contents of a script pops up the context menu
-- joins category of special commands, including "exit" "pause" and "quit"
=============================================================================
version=13.0.RC3
new feature: automatic PNGJ file caching for immensely faster loading
new feature: write MOL adds partial charge data as > <JMOL_PARTIAL_CHARGES> in SDF
format
new feature: isosurface CACHE <surface creation parameters> ....
-- parameter CACHE along with isosurface creation or alone instructs Jmol to
immediately create JVXL data for the specified surface and to load that data
instead.
The surface remains in memory (in this version of Jmol) can can be used again
using cache://isosurface_<ID> where <ID> is the isosurface ID such as
"isosurface1".
-- The command ISOSURFACE CACHE alone will cache the current isosurface
-- If the cache is no longer needed, then RESET CACHE will release the memory used
to hold the JVXL data for the isosurface
-- The result should be essentially equivalent to the original command.
(It is recommended that the original be a relatively simple command, because
not all nuances
of an isosurface may be stored in the JVXL data.)
-- THIS OPTION IS NOT COMPATIBLE WITH SAVING THE STATE AS AN SPT FILE.
-- Instead, one needs to save the state in PNGJ or JMOL format, where the cached
isosurface
can be reloaded from a file saved in the PNGJ or JMOL zip directory
bug fix: load a model, then load append TRAJECTORY -- will fail
bug fix: load APPEND xxx where xxx is FILE, INLINE, SMILES, TRAJECTORY, MODEL
all save incorrect LOAD command in state
bug fix: shelx reader (.res) not assigning space group name or applying
normalization
=============================================================================
version=13.0.RC2
bug fix: isosurface moved by atom connection not saved correctly in state
bug fix: isosurface SET n not read properly from JVXL file.
ant fix: changing the way Jmol.properties is handled vis-a-vis # and underscores
bug fix: isosurface SOLVENT producing artifacts --- needed minimum resolution
bug fix: isosurface with selected set not delivering just those vertices for within
distance calc
bug fix: isosurface CONNECT in documentation but never implemented
bug fix: isosurface SET n not saved in state or JVXL file.
bug fix: Gaussian reader fails for 2-digit basis orbital names such as "12XX"
bug fix: PNGJ creation not handling same-file or same-name issues.
bug fix: isosurface SOLVENT producing cavity-like artifacts
bug fix: SCENE writing with toggle (pause scene 2 ... pause scene 2) in error
bug fix: SCENE min spt script needs wrapping by pathForAllFiles
bug fix: isosurface MINSET or SET not compatible with SLAB
bug fix: show $d1 where d1 is a DRAW object broken
bug fix: calculate hydrogens incorrect for proteins
=============================================================================
version=13.0.RC1
=============================================================================
version=12.3.33 (13.0.RC1)
bug fix: select within(1.0, withinallmodels, 1.1) and 1.2 causes exception
bug fix: script xxx(yyy).spt broken
=============================================================================
version=12.3.32
bug fix: compiler not synchronized; allows jmolEvaluate() to fail if two threads
access it simultaneously
bug fix: getproperty isosurface after a "no-surface" isosurface call like load
$water;isosurface sasurface fails
bug fix: color for hbonds/ssbonds backbone incorrect
=============================================================================
version=12.3.31
bug fix: isosurface plane ... within ... map ... fails
bug fix: write broken in 12.3.30
=============================================================================
version=12.3.30
new feature: atom properties sx, sy, sz, and sxyz -- screen coordinates
new feature: app flag -r restricts file access
-- like -R, but allows reading of ".spt" files
new feature: load("http://.....?POST?_PNGJBIN_")
-- accompanies load("http://....?POST?_PNG_") and load("http://....?POST?_PNGJ_")
-- sends PNGJ image to server as byte array instead of as application/octet-
stream
instead of Base64-encoded string and application/x-www-form-urlencoded
-- return value is whatever server is set up to send
new feature: select within(distance, $drawID)
=============================================================================
version=12.3.29
=============================================================================
version=12.3.28
bug fix: LOAD with SPACEGROUP or RANGE or UNITCELL should default to {555 555 -1}
(packed) lattice
bug fix: JVXL reading of mapped data does not use file's rendering option for
lighting
bug fix: default measure dotted lines are too thin for export
bug fix: measures not offset correctly when given width in line.
=============================================================================
version=12.3.27
=============================================================================
version=12.3.26
new feature: Jmol SMARTS searching can include full Jmol selection syntax within
an atom primitive using the "atomType" option and "select:":
load caffeine.xyz
print {*}.find('{c}$(select _N and connected(2, _C))')
will output:
checkmm.spt;checkAllEnergies
for 761 atoms, 6 have energy differences outside the range -0.1 to 0.1
with a standard deviation of 0.05309403
=============================================================================
version=12.3.25
new feature: MMFF94 single point energy calculation and minimization
set forcefield "MMFF"
checkmm.spt
checkmm "AMHTAR01";minimize energy
AMHTAR01 Initial E = 66.180 kcal/mol # should be 66.18011
checkmm "ARGIND11";minimize energy
ARGIND11 Initial E = -207.436 kcal/mol # should be -207.43598
validation complete. The following 13 structures (of 761) do not validate to within
0.1 kcal/mol
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
=============================================================================
version=12.3.24
new feature: SMARTS search for atom type using quotes: ["37"]-["58"]
new feature: SMARTS option /aromaticdouble/ allows distinguishing between aromatic
single and double bonds
new feature; SMARTS option /aromaticstrict/ checks 6-electron rule for aromatics
new feature: CALCULATE partialCharge does MMFF94 charge calculation
-- all atom types validated
-- charge values validated to +- 0.001001 over the 761-atom dative validation set
new feature: isosurface CACHE
-- creates a JVXL version of the surface (possibly outside of Jmol, but that's not
implemented yet)
-- saved by write JMOL as a JVXL file "isosurface_ID"
(where ID is the original isosurface ID) within the JMOL zip collection
-- Warning! not saved using write SPT
***ALWAYS*** use write JMOL or write PNGJ after using the CACHE option, not
write SPT
-- invoked by isosurface file "cache://isosurface_ID"
-- cleared by reset CACHE
-- allows rapid recreation of an isosurface across file loads
-- possibly limited to a subset of surface types
-- not fully tested
new feature: 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
=============================================================================
version=12.3.23
new feature: (applet) new interface for Jmol as an HTML object as well as full
support on all platforms
using a ChemDoodle fall-back option for Java/Applet-challenged
platforms (iPad,iPhone,Android)
Note that Jmol.js is no longer required, but not all of the features of Jmol.js
are in place yet
Allows 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.
=============================================================================
version=12.3.22
allows ChemDoodle-like 2D and 3D canvases that can load files via a privately
hosted
server that delivers raw data files rather than specialized JSON mol data.
access to iChemLabs server is not required for simple file-reading operations
and
database access. Database and image services are provided by a server-side PHP
program
running JmolData.jar with flags -iR.
In this case, the NCI and RCSB databases are accessed via a St. Olaf College
server,
but for your installation, you should consider putting JmolData.jar and
jmolcd.php
on your own server. Nothing more than these two files is needed on the server.
new feature: write CD (simple ChemDoodle JSON format -- atoms and bonds only)
For example: java -jar JmolData.jar -iRJ "load $tylenol;print
write('cd')"
generates: {"mol":{"a":[{"x":0.20549999,"y":0.8303,"z":0.3823},
{"x":0.6906,"y":-1.4656999,"z":-0.14220001},{"x":1.5485,"y":1.1359,"z":0.2829},
{"x":2.0332,"y":-1.1585,"z":-0.24180001},{"x":-3.9799001,"y":-0.1617,"z":0.1295},
{"l":"H","x":4.2731,"y":0.35680005,"z":0.7047},{"l":"H","x":-1.8655999,"y":-
1.6522,"z":0.6012},{"x":-0.2273,"y":-0.4718,"z":0.17},
{"x":2.4650002,"y":0.1425,"z":-0.029099999},{"l":"O","x":-
2.1741998,"y":1.1759001,"z":-0.59169996},{"l":"O","x":3.7872,"y":0.4441,"z":-
0.1268},{"x":-2.5170999,"y":0.1262,"z":-0.089999996},{"l":"N","x":-1.5898,"y":-
0.78279996,"z":0.2712},{"l":"H","x":-0.50740004,"y":1.6029,"z":0.6296},
{"l":"H","x":0.35450003,"y":-2.4786,"z":-0.3079},
{"l":"H","x":1.8853,"y":2.1487997,"z":0.4477},{"l":"H","x":2.7472,"y":-
1.9314001,"z":-0.485},{"l":"H","x":-4.3884,"y":-0.65880007,"z":-0.7504},
{"l":"H","x":-4.0964003,"y":-0.8086,"z":0.9991},{"l":"H","x":-
4.513,"y":0.7739,"z":0.2986}],"b":[{"b":8,"e":10},{"b":9,"e":11,"o":2},
{"b":7,"e":12},{"b":11,"e":12},{"b":0,"e":7,"o":2},{"b":1,"e":7},{"b":0,"e":2},
{"b":2,"e":8,"o":2},{"b":3,"e":8},{"b":1,"e":3,"o":2},{"b":4,"e":11},
{"b":5,"e":10},{"b":6,"e":12},{"b":0,"e":13},{"b":1,"e":14},{"b":2,"e":15},
{"b":3,"e":16},{"b":4,"e":17},{"b":4,"e":18},{"b":4,"e":19}]}}
(this ended up NOT being used in the Jmol extension to ChemDoodle)
new feature: (JmolData) -iR (silent, restricted) mode sends output from PRINT and
ECHO commands to SYSOUT
and also restricts the application to no local file read/writing
bug fix: "connect;" command in states saved prior to 11.9.24 and then read by
versions after that
The order in which Jmol created bonds changed in 11.9.24. Due to this,
Jmol must check for the
version number of Jmol used to create a state, and if it was before this
point, it must
apply "legacy" autobonding methods. Unfortunately, if that state from pre-
11.9.24 versions
contains the "connect;" command, which it would if someone used the
CONNECT command by itself
to regenerate all bonds in a model PRIOR to saving the state (Proteopedia
does this), then
those scripts will be misread in versions 11.9.24-12.2.21/12.3.21.
bug fix: antialiasDisplay does not show drag-box properly
bug fix: SMARTS syntax [${xxx}n] and [${xxx}m-n] changed to [$n{xxx}] and [$m-
n{xxx}]
to avoid conflict with specifying isotope
=============================================================================
version=12.3.21
new feature: app flag -R restricts file access -- no local file reading; no
writing, no logging
// disables WRITE, LOAD file:/, set logFile
// command line -g and -w options ARE available for final writing of image
// for use with headless operation
new feature: app flag -T <seconds> headless timeout delay for "exitJmol"
note: Headless operation with image creation works perfectly using JmolData.jar
java -Djava.awt.headless=true -Xmx512m -jar "JmolData.jar" -RJ "load $tylenol;"
-g1000x1000 -wJPG:t.jpg
see also: http://leshazlewood.com/2009/08/26/linux-javaawtheadless-and-the-
display-environment-variable/
// determined by GraphicsEnvironment.isHeadless()
// from java -Djava.awt.headless=true
// disables command threading
// disables DELAY, TIMEOUT, PAUSE, LOOP, GOTO, SPIN <rate>, ANIMATION ON
// turns SPIN <rate> <end> into just ROTATE <end>
new feature: JSpecView JCamp-MOL files can reference model="$xxxx" -- model
retrieved from NCI
version=12.3.20 -- skipped
=============================================================================
version=12.3.19
bug fix: Jmol defaults not being loaded with startup option -n (no display)
bug fix: UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()
failed for non-graphics system, and even though it is an exception, it
isn't trapped by try/catch.
bug fix: point() function does not accept 3x1 array
bug fix: show x where x is a matrix does not have ',' before tabs, so it can't be
clipped directly
back into Jmol
code: better coding for quaternions
=============================================================================
version=12.3.18
new feature: JSpecView reads and displays 2D spectra very quickly -- all
tested JCamp-DX 6.0 files readable. -- JSpecView 2.0.10176
=============================================================================
version=12.3.17
bug fix: JCampDX reader resolving should allow spaces before "##TITLE"
bug fix: jvxl issue when color PHASE and translucent
-- upon reading JVXL doesn't handle translucency right
-- upon writing SPT doesn't preserve colors
bug fix: user variable lower case "x" not cleared by "X = none"
bug fix: draw HELIX fails for residue numbers < 0
code: better Enum structure using name()
=============================================================================
version=12.3.16
=============================================================================
version=12.3.15
=============================================================================
version=12.3.14
bug fix: state after frame RANGE or frame 0 not saved properly (state saves "frame
all" instead of "frame 0")
bug fix: frame n does not work properly after load APPEND
bug fix: measurement units may appear as full word "nanometers" instead of "nm"
bug fix: user bindings do not access _atomPicked
-- solution is to add _ATOM _BOND _POINT _OBJECT to user binding actions
=============================================================================
version=12.3.13
=============================================================================
version=12.3.12
=============================================================================
version=12.3.11
new feature: plot ramachandran -- now those points .phi and psi return values
-- load 1crn.pdb;plot ramachandran;print {2.1}.psi
new feature: LOAD .... filter "reverseModels"
-- does just that
-- for IRC calculation transition state -> minimum reversal
new feature: measures "2:%VALUE %UNITS//xx"
-- where xx is a specified unit such as nm or Angstroms
-- overrides set measurementUnits
-- fixes state problem when units or labels are changed after measurements are
made
-- operates on selected measurements only (or all, if no measurements are
selected)
=============================================================================
version=12.3.10
=============================================================================
version=12.3.9
=============================================================================
version=12.3.8
bug fix:
set picking DRAW does not work on polygon sets
bug fix:
set picking DRAW does not report position change
bug fix:
MPJmolApp (Molecular Playground) problems when navigation is on
bug fix:
CifReader (molecular type, with GEOM_BOND records) adds
extra atoms when embedded in JMOL or PNGJ file or part load FILES command
bug fix: PdbReader -- crystallographic non-PDB files not checking special positions
=============================================================================
version=12.3.7
new feature: "Write PNG+JMOL" added to application and signed applet menu
code: dispensing with InputStream in favor of BufferedInputStream
new feature: write PNGJ
-- creates a PNG file with appended JMOL (zip) data containing
all necessary files, MANIFEST, and script file.
-- viewable in directories as an "icon" and readable by image readers
-- draggable back into Jmol and readable using LOAD
-- PNG file includes:
-- iTXt field "Jmol Type\0PNGJxxxxxxxxx+yyyyyyyyy"
where xxxxxxxxx is a pointer to the ZIP data
yyyyyyyyy is the number of ZIP data bytes
-- iTXt field "Software\0Jmol 12.3.7 2011-10-11 15:30"
-- iTXt field "Creation Time\0Tue, 24 Nov 2011 19:56:10 -0600"
-- yyyyyyyyy bytes of .JMOL zip data
-- show FILE "xxx.PNG" will show list of contained files.
-- show state FILE "xxx.PNG" will extract state
-- show FILE "xxx.PNG|1crn.pdb" for example will extract file
#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
#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
#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
dist 1.0
angle 107
N1
H1 N1 dist
H2 N1 dist H1 angle
H3 N1 -dist H1 angle H2 angle
AM1
Ethane
C
C 1 r21
H 2 r32 1 a321
H 2 r32 1 a321 3 d4213
H 2 r32 1 a321 3 -d4213
H 1 r32 2 a321 3 60.
H 1 r32 2 a321 3 180.
H 1 r32 2 a321 3 d300
r21 1.5
r32 1.1
a321 109.5
d4213 120.0
d300 300.0
bug fix: show orientation shows incorrect zyz format if reset uses file-based
orientation matrix (smol, Sygress)
bug fix: isosurface plane xy map mep
code: MPJmolApp work
bug fix: user variables should not be rest by INITIALIZE in an spt file
bug fix: x3d/vrml outputting unnecessary spheres
-- bond caps within opaque atoms removed (not precisely correct to do that)
bug fix: minimization broken
bug fix: contact still not quite right -- setting default to +0.0 instead of +0.25
=============================================================================
version=12.3.6
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)
=============================================================================
version=12.3.5
=============================================================================
version=12.3.4
=============================================================================
version=12.3.3
=============================================================================
version=12.3.2
=============================================================================
version=12.3.1
code: experimenting with fragmentation of applet core classes into _1b, _1c, _1d,
_1e, _1f
version=12.3.0
October 4, 2011