Jmol.___JmolDate="$Date: 2015-07-09 22:22:41 -0500 (Thu, 09 Jul 2015) $"
Jmol.___fullJmolProperties="src/org/jmol/viewer/Jmol.properties"
# THIS IS THE RELEASE BRANCH
# BUG FIXES ONLY, PLEASE
# see also http://chemapps.stolaf.edu/jmol/zip for daily updates
Jmol.___JmolVersion="14.2.15_2015.07.09"
synchronized with 14.3.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
new feature: smiles2.find("SMILES",smiles1, asMap, allMappings)
-- asMap = TRUE (default false) indicates you want an atom
correlation map indicating positions in smiles2 corresponding to smiles1
-- allMappings = TRUE (default false) indicates you want
all mappings, not just the first found
-- returns a number, -1, 0, n>0 when asMap is false (allMappings ignored)
-- returns int[] when allMappings is false
-- returns int[][] when allMappings is true
-- example:
var s1 = atom1.polyhedron.getProperty("SMILES")
var coords = atom2.polyhedron.getProperty("vertices")
var s2 = atom2.polyhedron.getProperty("SMILES")
var coords2 = atom2.polyhedron.getProperty("vertices")
var map12 = s2.find("SMILES", s1, true, false)
var coords2Mapped = []
for (var i in map12) coords2Mapped.push(coords2[i + 1])
coords2 = coords2Mapped
var mat = compare(coords1, coords2)
select {1.1}
rotateselected @mat
JmolVersion="14.3.15_2015.07.07c"
bug fix: x.getProperty("[select name where composition[1] == 0.5]")
-- the [ there is tripping us up. True, ..1 could be used instead as well.
JmolVersion="14.3.15_2015.07.07b"
bug fix: 2015.07.06 breaks text writing in JSmol
bug fix: Crystal reader cannot handle TOTAL ENERGY CORRECTED... line
new feature: JSmol Jmol._persistentMenu = true
-- allows menu to persist and not be removed
new feature: JSmol
sets a place on the page for the JSmol console.
new feature: load xxx filter "latticeScaling=1.2"
-- scales model based on a crystal lattice
-- allows volume matching for crystal comparison
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"
bug fix: POVRay and VRML exporters mishandle label backgrounds
bug fix: exports not handling rockets correctly
JmolVersion="14.3.15_2015.06.19c"
bug fix: 1/{a b c} gives 0, not 1/length({a b c})
JmolVersion="14.3.15_2015.06.19b"
new feature: MACRO command
-- runs predefined script, generally defining new functions of general use
-- contributions welcome!
-- will be expanded
$ 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: pt.distance(plane,ptRef)
-- returns a negative distance if pt and ptRef are on different sides of the plane
-- useful for constructing 3D convex hulls and polyhedra, where all points
must be on the same side of all planes
new feature: removing empty array values using array.find() and opposite using array.find("")
-- "empty" means an entry that is "", [], or {}
-- for example:
print [0 3 4 "" 5 {} [] 6].find()
[0 3 4 5 6]
print [0 3 4 "" 5 {} [] 6].find("")
[ "" {} [] ]
bug fix: msCIF reader can hang if occupancy is not fractional
bug fix: JSmol applet not returning full set of parameters in animFrameCallback
bug fix: load FILL command can fail if base unit cell is not part of the needed set for the specified volume
JmolVersion="14.3.15_2015.06.18"
new feature: polyhedra ONLY
new feature: calculate symmetry POLYHEDRA
-- sets values for ShapeInfo.Polyhedra.smiles, .smarts, and .pointGroup
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....]
print b.format(["energy", "pointGroup"])
new feature: array of sequential arrays formatting using array.format("format")
-- example
energy_pg = b.format(["energy", "pointGroup"])
print energy_pg.format("%5.3f\t%5s")
new feature: associative array binning:
-- creates a pivot table of the bins
-- adds keys "_bin", "_binMin", and "_binMax" to the initial array
-- example:
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")
new feature: polyhedra highlight with select ON or set selectionHalos ON
new feature: getProperty("ShapeInfo.polyhedra") includes keys
atomIndex
atomNumber
center
energy // from model auxiliaryInfo _m.Energy, if available
faceCount
faces
modelIndex
modelNumber
smarts
smiles
vertexCount
vertices
new feature: polyhedra properties "smiles" and "smarts"
-- uses JmolSMILES, extending SMILES for periodic structures
-- smiles is a SMILES string for the polyhedron, not including its center atom.
-- smarts is smiles but replacing atom descriptors with *
-- can be searched for using x = polyhedron(s) where s is SMILES or SMARTS
new feature: polyhedron(smiles)
new feature: polyhedron(smarts)
-- searches for a polyhedron (which must be already present) matching the given SMILES
-- for example:
// load a set of binary alloy structures
load "AgAu.aflow_binary"
// generate all polyhedra on the first atom of each model
select @1
polyhedra 4-24 3.65 unitcell translucent 0.2
// find all SMARTS codes for 12-vertex polyhedra; taking the first
x= polyhedra(12).polyhedra.all.getProperty("smarts")[1]
// find central atoms for all similar polyhedra
y= polyhedra(x)
// get their model numbers
print y.model.all
z= y.model.all
// make the current frame set just those models
frame @z
-- not fully worked out
new feature: array.getProperty("xxxx")
-- same as getproperty(array, "xxxx")
-- drills down into an array of associative arrays to get sublist
-- can be used with [SELECT ... WHERE]
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
x = 0
if (++x) {
print "good"
}
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"
bug fix: var firstPARAM = "p1_b"; x = [FIRSTParam: "p1_a"]; results in lowering of case as [firstparam:....]
bug fix: set drawPicking draw;set drawpicking does not show handles
bug fix; point group not calculated when the selected atoms are a subset of a model
bug fix: x.find("SMILES") is incorrect for structures that have hypervalent atoms and branches such as inorganic nitrates
bug fix: msCIF reading with two models, and only one has displacement modulation causes "render error" crash
bug fix: msCIF reader failing for Legendre polynomials of order greater than 4
bug fix: DRAW for quadrilateral broken when perspective depth is turned off.
bug fix: SET ECHO IMAGE broken in JavaScript version
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:
- an extension of SMILES to compare bonding topology irrespective of atom identity.
(Are these two atom environments both iscoahedral?)
x = {@1 and 1.1 and connected(@1)}.find("SMILES", "*"}
y = {2.1}.find("SMARTS", x)
- 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
- the ability to load a given block of space (such as a 10x10x10-Angstrom cube)
with a crystal structure irrespective of its given unit cell.
(Are these two structures that have totally different unit cells really that different?)
load t.cif FILL
load t.cif FILL 20
load t.cif FILL {20 10 10}
load t.cif FILL [{0 0 0} {5.2 5.2 0} {-5.2 5.5 0} {1.3 0 3.3}]
- the ability to show and draw the point group of a polyhedron
load t.cif
polyhedron 12 unitcell @1
select @1
show pointgroup POLYHEDRON
draw pointgroup POLYHEDRON
- the ability to extract information about polyhedra
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)
- the ability to draw points from derived arrays
draw diameter 0.2 points @{getProperty("shapeInfo.polyhedra[1].vertices")}
new feature: POLYHEDRA 12 UNITCELL
-- creates a polyhedron (12-gon in this case) around each of the
currerntly selected atoms that has that bonding environment
-- DOES NOT require atoms at these positions - can simply use the
unit cell and periodicity to find the relevant atom positions.
-- will check bonding as necessary using autobonding parameters
-- accepts all standard polyhedra options. For example:
polyhedra 12,16 3.5 UNITCELL
new feature: POLYHEDRA 4-16
-- allows a range of unit cell bonding patterns.
-- in this case, same as 4,5,6,7,8,9,10,11,12,13,14,15,16
polyhedra 4-16 3.5 UNITCELL
new feature: getProperty shapeInfo.polyhedra
print getProperty("shapeInfo.polyhedra[1]").keys
_ipt
center
modelIndex
planeCount
polygons
vertexCount
vertices
new feature: draw POINTS [ array of points ]
draw diameter 0.2 points @{getProperty("shapeInfo.polyhedra[1].vertices")}
new feature: show pointgroup POLYHEDRON
-- uses points from the polyhedron of the first selected atom
-- recommended to use specific atom reference in POLYHEDRA command:
select @21
polyhedron 3.5 UNITCELL
show pointgroup polyhedron
$ show pointgroup polyhedron
# 13 atoms
Oh Ci {2.1020985 -4.3122215 2.1430104}
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}
Oh type nType nUnique
Oh E 1 1
Oh Ci 1 1
Oh Cs 9 9
Oh Cn 16 23
Oh Sn 6 12
Oh TOTAL 46
-- displays a table showing point group information.
-- notice that not all the operators may be found because of settings of
set pointGroupDistanceFactor 0.2 being too tight a restriction.
new feature: draw POINTS
new feature: draw POLYGON -1
-- these two are identical; POINTS is a bit nicer.
load "file:/C:/temp/aflow/binary/AgCd.aflow_binary" 20 //filter "ca=0.5;nopack"
select @1 & 1.1
polyhedra 4-16 3.7 unitcell
x = within(4, true, "unitcell", {selected})
print x;
draw width 0.2 points @{x["points"]} color red mesh nofill translucent
new feature: select POLYHEDRA
-- selects central atoms of any atoms having polyhedra.
new feature: select polyhedra(4)
-- selects central atoms of any atoms having tetrahedral polyhedra.
new feature: x.find("SMILES","*")
-- creates a topology SMILES, involving just * and connections
-- does not include stereochemistry
-- allows comparison of connection patterns without respect to any other consideration.
-- can be used to check equivalences in inorganic crystal structures.
code: SMILES code cleaned up.
code: most image loading is now asynchronous. (Not BMP, not from PNGJ files with "|" in filename)
code: introducing interfaces to allow less use of @j2sNative and more traceability of method calls in Eclipse
bug fix: polyhedra broken for number of vertices > 6.
-- needed smaller default distanceFactor (set to 1.5; formerly 1.85)
-- this setting is for any
code: to be released 6/11/15
JmolVersion="14.3.14_2015.06.10c"
bug fix: "transparent" PNG images as echos in front still hide pixels
code : PNG images with partial transparency are not supported.
They COULD be supported, but currently the rendering is
in the first pass, but it could be in a later pass.
code: g3d.ImageRenderer removed; code moved to g3d
bug fix: GaussianDialog fails to write element symbols
bug fix: animation buttons go to wrong first frame for FRAME [3 2 1]
bug fix: JSmol set echo IMAGE not working properly (Frieda Reichsman)
new feature: {atomset}.bondcount({atomset2})
-- counts bonds to a specific set of atoms
-- result is an array
new feature: [array].pivot
-- creates a pivot table using strings, integers, or floats
-- result is a hash for which the keys are
$ 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"
_ by itself, not as a function, is shorthand for getProperty("auxiliaryInfo")
$ print _.keys
boundbox
group3Counts
group3Lists
modelLoadNote
models
properties
someModelsHaveFractionalCoordinates
someModelsHaveSymmetry
someModelsHaveUnitcells
symmetryRange
_m by itself, not as a function, is shorthand for getProperty("auxiliaryInfo.models")[_currentFrame]
$ 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
(first model's aflowInfo)
_(key) prepends "auxiliaryInfo.models", delivering a modelCount-length array of information
$ print _("aflowInfo[SELECT auid WHERE H__eV___VASP_ < 0]")
{atomset}._(key) selects for model Auxiliary info related to models of the specified atoms
{atomset}.getProperty(key) defaults to atomInfo, but also allows key to start with "bondInfo"
Examples:
print _("aflowInfo[select sg where volume_cell > 70]")
print {model>10}._("aflowInfo[select sg where volume_cell > 70]")
bug fix: [array].find("xxx") should always return a sub-array; previously if there was only one hit, it returned that hit
bug fix: [array].find("xxx") should not return string equivalent even if it uses that in the find.
JmolVersion="14.3.14_2015.06.07"
new feature: _m.xxx _m shortcut for @{getProperty("auxiliaryInfo.models[]")}
-- much easier syntax for getting auxiliary information
-- was not available, so this was not easily determined
-- for example - a dynamic echo with model-specific info that changes when the frame is changed
set echo top center
echo "@{_m.modelNumber}
new feature: _.currentModelIndex _ shortcut for @{getProperty("auxiliaryInfo", "")}
-- much easier syntax for getting auxiliary information
new feature:
new feature: {*}.getProperty("atomInfo.xxx") alternative for getProperty("atominfo.xxx", {*})
new feature: {*}.getProperty("xxx") same as {*}.getProperty("atomInfo.xxx")
new feature: {*}.getProperty("bondInfo.xxx") alternative for getProperty("bondinfo.xxx", {*})
new feature: {*}._(...) same as {*}._getProperty(...)
-- note that {*}.getProperty was present but undocumented and not useful
bug fix: Console should be checking scripts after space-bar is pressed.
bug fix: script checking should not trigger screen refresh
code: refactoring of vi ewer.JC for label/echo business
new feature: set labeloffset range expanded to [-500,500]
new feature: set labelOffsetAbsolute x y
-- was undocumented as "set labelOffsetExact" but used in state (still available)
-- sets label to specific value; same as set labelOffset, but allows 0 in x or y
-- range [-500,500]
bug fix: dragging labels not working properly
bug fix: axisAngle (javajs.util.A4) not resetting angle to 0 --> wrong default orientation saved to state immediately after RESET (broken in 14.1.6_dev_2014.01.16c)
JmolVersion="14.3.14_2015.06.05"
new feature: load "...." FILL BOUNDBOX
new feature: load "...." FILL UNITCELL
new feature: load "...." FILL [o va vb vc]
new feature: load "...." FILL [o vabc]
new feature: load "...." FILL
-- loads a crystal structure such that a given volume is packed
-- volume can be the current boundbox or the current unitcell
-- can specify origin and a,b,c vectors or origin and diagonal vector
-- no parameters --> {0 0 0} {10 10 10}
-- when not a crystal, just loads this model with the specified boundbox
-- simplification of initial idea (6/4/2015)
JmolVersion="14.3.14_2015.06.04"
new feature: _argCount, _arguments for functions and scripts
new feature: _caller for functions
-- a hashtable of local VARs defined in the calling function
-- note that _caller._caller is not valid. But you can define
var caller = _caller
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) : "")
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 =
_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.
load "file:/C:/jmol-dev/bobtest/aflow/binary/AgCd.aflow_binary" {2 2 2} packed filter "list=Hf_a"
new feature: AFLOW binary alloy file reader selective for a given composition:
load "file:/C:/jmol-dev/bobtest/aflow/binary/AgCd.aflow_binary" {2 2 2} packed filter "Ca=0.5"
new feature: AFLOW binary alloy file reader reading -- DATA -- block into associative arrays:
load "file:/C:/jmol-dev/bobtest/aflow/binary/AgCd.aflow_binary" {2 2 2} packed
print getProperty("auxiliaryInfo.models.aflowInfo['Hf_atom (VASP)']")
bug fix: [SELECT ... WHERE ...] can fail with spaces or [ ] in key names. For example:
print getProperty("auxiliaryInfo.models.aflowInfo[SELECT Cb,\"Hf_atom [eV](VASP)\" WHERE Cb > 0.4 and Cb< 0.6]")
The call to the AFLOWLIB API to do this in Jmol involves forcing use of the POST method. The following link will work only in Jmol:
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.
Using a local file, requesting a listing of Hf_atom:
load "file:/C:/jmol-dev/bobtest/aflow/binary/AgCd.aflow_binary" {2 2 2} packed filter "list=Hf_a"
FileManager opening 1 file:/C:/jmol-dev/bobtest/aflow/binary/AgCd.aflow_binaryThe Resolver thinks AFLOWfiltering with ;LIST=HF_A;[AgCd] REFERENCE: S. Curtarolo, W. Setyawan, S. Wang, J. Xue, K. Yang, R. H. Taylor, L. J. Nelson, G. L. W. Hart, S. Sanvito, M. Buongiorno Nardelli, N. Mingo, and O. Levy, AFLOWLIB.ORG: a distributed materials properties repository from high-throughput ab initio calculations, Comp. Mat. Sci. 58, 227-235 (2012).
[AgCd] REFERENCE: S. Curtarolo, W. Setyawan, G. L. W. Hart, M. Jahnatek, R. V. Chepulskii, R. H. Taylor, S. Wang, J. Xue, K. Yang, O. Levy, M. Mehl, H. T. Stokes, D. O. Demchenko, and D. Morgan, AFLOW: an automatic framework for high-throughput materials discovery, Comp. Mat. Sci. 58, 218-226 (2012).
[AgCd] REFERENCE: S. Curtarolo, D. Morgan, and G. Ceder, Accuracy of ab-initio methods in predicting the crystal structures of metals: review of 80 binary alloys, Calphad 29, 163-211 (2005).
AgCd 0.00000000000000 11 Hf_atom [eV] (VASP) 0.0
AgCd 0.04347826086957 1 Hf_atom [eV] (VASP) 0.0870304
AgCd 0.07142857142857 1 Hf_atom [eV] (VASP) 0.15737298
AgCd 0.11111111111111 1 Hf_atom [eV] (VASP) -0.011088
AgCd 0.12500000000000 1 Hf_atom [eV] (VASP) -0.027350498
AgCd 0.16666666666667 7 Hf_atom [eV] (VASP) -0.037070002
AgCd 0.17241379310345 1 Hf_atom [eV] (VASP) 0.020694898
AgCd 0.20000000000000 9 Hf_atom [eV] (VASP) -0.0460172
AgCd 0.25000000000000 30 Hf_atom [eV] (VASP) -0.056237496
AgCd 0.33333333333333 42 Hf_atom [eV] (VASP) -0.0609502
AgCd 0.37500000000000 3 Hf_atom [eV] (VASP) -0.0589556
AgCd 0.40000000000000 12 Hf_atom [eV] (VASP) -0.0618938
AgCd 0.41379310344828 1 Hf_atom [eV] (VASP) 0.00122355
AgCd 0.42857142857143 2 Hf_atom [eV] (VASP) -0.037301403
AgCd 0.44444444444444 2 Hf_atom [eV] (VASP) -0.0335542
AgCd 0.46153846153846 1 Hf_atom [eV] (VASP) -0.0150388
AgCd 0.50000000000000 46 Hf_atom [eV] (VASP) -0.068898305
AgCd 0.53846153846154 1 Hf_atom [eV] (VASP) 0.0721082
AgCd 0.55555555555556 2 Hf_atom [eV] (VASP) -0.033519298
AgCd 0.57142857142857 2 Hf_atom [eV] (VASP) -0.0333517
AgCd 0.58620689655172 1 Hf_atom [eV] (VASP) -0.0124974
AgCd 0.60000000000000 12 Hf_atom [eV] (VASP) -0.047418
AgCd 0.61538461538462 1 Hf_atom [eV] (VASP) -0.06818979
AgCd 0.62500000000000 3 Hf_atom [eV] (VASP) -0.040674802
AgCd 0.66666666666667 42 Hf_atom [eV] (VASP) -0.0603182
AgCd 0.75000000000000 29 Hf_atom [eV] (VASP) -0.0485616
AgCd 0.80000000000000 9 Hf_atom [eV] (VASP) -0.0095262
AgCd 0.82758620689655 1 Hf_atom [eV] (VASP) 0.033198204
AgCd 0.83333333333333 7 Hf_atom [eV] (VASP) -0.025705501
AgCd 0.87500000000000 1 Hf_atom [eV] (VASP) 0.0031846298
AgCd 0.88888888888889 1 Hf_atom [eV] (VASP) 0.0286024
AgCd 0.92857142857143 1 Hf_atom [eV] (VASP) 0.114186
AgCd 0.95652173913043 1 Hf_atom [eV] (VASP) 0.065135606
AgCd 1.00000000000000 12 Hf_atom [eV] (VASP) 0.0
Time for openFile(file:/C:/jmol-dev/bobtest/aflow/binary/AgCd.aflow_binary): 288 ms
reading 24509 atoms
297 models
Notice that I could have used a different listing key.
You can load just a single composition by filtering with "Ca=x"
load "file:/C:/jmol-dev/bobtest/aflow/binary/AgCd.aflow_binary" {2 2 2} packed filter "ca=0.5"
[AgCd] REFERENCE: S. Curtarolo, W. Setyawan, S. Wang, J. Xue, K. Yang, R. H. Taylor,
L. J. Nelson, G. L. W. Hart, S. Sanvito, M. Buongiorno Nardelli, N. Mingo, and O. Levy, AFLOWLIB.ORG: a distributed materials properties repository from high-throughput ab initio calculations, Comp. Mat. Sci. 58, 227-235 (2012).
[AgCd] REFERENCE: S. Curtarolo, W. Setyawan, G. L. W. Hart, M. Jahnatek, R. V. Chepulskii, R. H. Taylor, S. Wang, J. Xue, K. Yang, O. Levy, M. Mehl, H. T. Stokes, D. O. Demchenko, and D. Morgan, AFLOW: an automatic framework for high-throughput materials discovery, Comp. Mat. Sci. 58, 218-226 (2012).
[AgCd] REFERENCE: S. Curtarolo, D. Morgan, and G. Ceder, Accuracy of ab-initio methods in predicting the crystal structures of metals: review of 80 binary alloys, Calphad 29, 163-211 (2005).
46 models
The file loader parses all the -- DATA -- information into arrays, so that can all be accessed using getProperty(). For example:
print getProperty("auxiliaryInfo.models.aflowInfo['space group POST']") print getProperty("auxiliaryInfo.models.aflowInfo['Hf_atom [eV] (VASP)']")
Jmol's SQL selectors can be used to select out specific records.
print getProperty("auxiliaryInfo.models.aflowInfo[SELECT Cb,'Hf_atom [eV] (VASP)' WHERE Cb > 0.4 and Cb< 0.6]")
Jmol adds two additional fields, "fileModelNumber" and "modelNumber":
print getProperty("auxiliaryInfo.models.aflowInfo[SELECT modelNumber,Ca,'Hf_atom [eV] (VASP)' WHERE Cb > 0.4 and Cb< 0.6]")
JmolVersion="14.3.14_2015.06.01b"
bug fix: unncessary dialog with LOAD ? when using JSmol/HTML5
JmolVersion="14.3.14_2015.06.01"
new feature: preliminary AFLOW AaBb binary file reader
- see http://www.aflowlib.org/binary_alloys.php
new feature: NBO cfi file writer
- print data({*}, "cfi")
bug fix: draw pointgroup also draw arrow broken
bug fix: write("pdb") not returning string data and instead creating file "pdb"
bug fix: VASP reader for in-line atom labels
bug fix: measure pending dashed line does not appear
JmolVersion="14.3.14_2015.05.25"
release; synchronized with 14.2.14
JmolVersion="14.3.13_2015.05.23"
bug fix: select conformation=1 broken for non-bio CIF data
JmolVersion="14.3.13_2015.05.19"
bug fix: CML reader not recognizing "fragment/join/fragment" sequence
from http://www.xml-cml.org/schema/schema3/schema.xsd (Stuart Chalk)
JmolVersion="14.3.13_2015.05.14"
new feature: set contextDepthMax
-- sets the maximum depth of contexts, including {}, if{} for{} while{} function{}
as well as the SCRIPT command and a number of expression-related situations
-- default 100
-- minimum 10
bug fix; 05.12 breaks Jmol.evaluate and Jmol.evaluateVar and print getProperty("variableInfo", exp)
bug fix: using historyLevel = ... or scriptlevelMax = ... doesn't really set these
bug fix: a number of settings have not been excluded from state scripts, which
only should save critical information for the state, not general processing
-- no longer saved in state
-- no longer read using "set xxxxx" when that is in a state script
-- includes: historylevel;imagestate;iskiosk;useminimizationthread;
-- includes: showkeystrokes;saveproteinstructurestate;testflag1;testflag2;testflag3;testflag4
JmolVersion="14.3.13_2015.05.12"
bug fix: re-entering functions loses if/else state
bug fix: more issues with low-resolution linear-z index lines.
Need to compromise for isosurfaces and nucleic cartoons and bonds
-- which became very slow to render with precision Z placement.
JmolVersion="14.3.13_2015.05.08"
bug fix: BIND can cause fault
bug fix: write "?" can cause fault when [x] box is pushed on window
bug fix: set picking dragMolecule, set picking dragMinimizeMolecule, set picking dragLigand broken
JmolVersion="14.3.13_2015.05.07"
bug fix: x = plane(@1 @2 @3) fails
bug fix: isolated bio groups such as AMP, which are not part of biopolymers, can result in crashes
when colored or queried about their parameters (Hiroufmi Suzuki)
bug fix: new SQL ** feature needed a tweak
JmolVersion="14.3.13_2015.05.06"
new feature: SQL "drilling" in associative arrays for sub arrays with a given property (Rolf Huehne)
-- 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;
z = { "key_1":{ "type":"a" },"key_3":{ "type":"a" } }
JmolVersion="14.3.13_2015.05.05"
bug fix: set structureModifiedCallback does not work with "JmolScript:...."
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"
bug fix: color atoms property vxyz crashes Jmol if no vibrations
bug fix: with msCIF, select subsystem=1 does not select anything
bug fix: vibrations in trajectories not animating (14.3.6_2014.08.14)
JmolVersion="14.3.13_2015.04.30d"
bug fix: reading Molden file with no MOs crashes Jmol
JmolVersion="14.3.13_2015.04.30c"
bug fix: color $id [30 40 50] translucent 0.8 fails
bug fix: Jmol.jar was requiring Java 1.7
bug fix: POV-Ray fixed for perspective and orthographic cameras using new z-depth formula.
thanks: Many thanks to Laurent Proville for motivating me to look in this issue.
JmolVersion="14.3.13_2015.04.29"
bug fix: perspective renderer was using the wrong formula for calculating Z depth of pixels:
* Note added 4/2015 BH:
*
* Well, it turns out that the calculation of the intermediate pixel z value
* in all methods involving rasterization of lines is incorrect and has been
* incorrect since Jmol's inception. I noticed long ago that large triangles such as
* produced in DRAW could incorrectly overlay/underlay other objects, but I could
* never determine why. It turns out that the assumption that z-value is linear
* across a line when perspectiveDepth is TRUE is simply incorrect.
*
* Basically, the function z(x) is non-linear. Treating it as simply a
* linear function results in oddities where lines and planes
* -- particularly created using DRAW and large distances -- appear
* to be where they are not.
*
* Through Jmol 13.3.13 we had the standard linear relationship:
*
* z = (x - xa) / (xb - xa) * (zb - za) + za
*
* I worked it out, and, amazingly, it should be
*
* z = (xb - xa) * za * zb / ((xb - x) * zb + (x - xa) * za)
*
* Note that it is still true that when x = xb, z = zb
* and when x = xa, z = za, as required.
*
* This equation can be rearranged to
*
* z = a / (b - x)
*
* where
*
* a = (xb - xa) * za * (zb / (zb - za))
*
* and
*
* b = (xb * zb - xa * za) / (zb - za)
*
* These values must be floats, not integers, to work properly, because
* these are extrapolations from long distances in some cases. So there is
* considerable overhead there. It will take some experimentation to figure this
* out.
*
* The practical implications are for line, cylinder, and triangle drawing.
* First-pass corrections are for axes and DRAW objects. They tend to be the
* larger objects that result in the issue.
*
* Also affected is POV-Ray output, because right now POV-Ray is created using
* perspective on and plotted as though it were orthographic, but although that
* works in x and y, it does not work in z!
*
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"
code: integration of changes made for SwingJS into JSmol code
JmolVersion="14.3.13_2015.04.22"
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
// see footnotes below for ^, #, *, and $
//
// settings:^ set picking dragSelected set dragSelected
//
// move:# drag alt-shift-drag
// rotate:#* alt-drag alt-drag
// z-shift:# shift-drag (n/a)
//
// double-click:$ (starts measurement) (sets selected if set picking SELECT)
//
// ^ set picking dragSelected overrules set dragSelected
// # all actions involve whole molecules unless set allowMoveAtoms TRUE
// * rotate requires set allowRotateSelected TRUE
// $ set dragSelected allows setting of a new molecule with double-click when set picking SELECT
// $ set picking dragSelected allows measurements with double-click, as usual
code: introduce use of (int... ) syntax in ActionManager simplifies logic
JmolVersion="14.3.13_2015.04.17"
bug fix: for in/from broken in 14.3.13_2015.04.05
-- entering a FOR loop with empty has pops {...} context one level too far, exiting functions
JmolVersion="14.3.13_2015.04.12"
code: refactoring PT.isAxxx to AU.isAxxx (array type testing)
JmolVersion="14.3.13_2015.04.09b"
feature update: EBI validation site updated from wwwdev.ebi to www.ebi
-- for example, LOAD *1crn/val
JmolVersion="14.3.13_2015.04.09"
bug fix: MO calculation hanging when G orbitals are present
JmolVersion="14.3.13_2015.04.08"
bug fix: echo id myecho "testing" reports "myecho" instead of "testing"
JmolVersion="14.3.13_2015.04.07"
bug fix: Molden reader broken for Dalton2015 version
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"
code: rewriting FOR loop code to enhance performance
new feature: set showScript -1
-- turns off history (on when commands come from the keyboard)
-- stops every-second JavaScript interruptions -- Caution!
new feature: for (var i FROM [a, b]) {...}
-- same as for (var i = a; i <= b; i++) when a < b
-- same as for (var i = a; i >= b; i--) when a > b
-- much more efficient
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
new feature: draw polygon [@1 @2 @3...]
-- fills polygon with triangles
-- order is important -- must be cw or ccw
-- does not have to be convex
-- indeterminate result if atoms are not coplanar
-- example:
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"
new feature: "." notation extended to x.[a]
disambiguifies x[a][b][c]...
allows for variables and expressions in "." notation
i = 2
x = [1,[2 3 4 [5 6 7]],3]
show x[2].[4].[i]
==> "6"
x = [ 1,[ 2,3,4,[ 5,6,7 ],{ "testing":"now" } ],3 ]
x[i + 1].[5].["testing"] = "again"
show x
==> x = [ 1,[ 2,3,4,[ 5,6,7 ],{ "testing":"again" } ],3 ]
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"
bug fix: JmolVersion="14.3.13_2015.03.20b" broke JSmol due to error in coding URL.js
JmolVersion="14.3.13_2015.03.20b"
bug fix: popup menu Symmetry broken
bug fix: PDB reader does not save unit cell on simple load
JmolVersion="14.3.13_2015.03.20"
bug fix: use of {*}.xxxx = for(i;{*};....) fails
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 xxxx 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
new feature: color polyhedra red blue (edge color blue)
bug fix: show state/xxxx does not work
JmolVersion="14.3.13_2015.03.07"
synchronized with 14.2.12_2015.03.07
bug fix: x[2] = y[2] fails
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
bug fix: reading legacy mapped plane (2ptn-molecular_slice1.jvxl.txt) crashes Jmol
JmolVersion="14.3.12_2015.03.05"
synchronized with 14.2.13_2015.03.05
released
bug fix: (14.3 only) write VRML|MAYA|OBJ|POVRAY broken
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 # the current view as an image
new feature: image 300 400 # adjustable size
new feature: image "c:/temp/t.bmp" # image from a file
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
new feature: image ID ...
-- id for IMAGE CLOSE;
-- displayed in title of frame
-- examples:
image ID "test"
image ID "test" 400 500
image ID "test" "bob.png"
image ID "test" close
new feature: write IMAGE
-- same as IMAGE
new feature: write IMAGE 500 500
-- same as IMAGE 500 500
new feature: (JavaScript/HTML5; see JSmol_Console.java)
// page designer may indicate one of three divs for images on the page:
// _Image_app_holder for IMAGE command by itself (current app image)
// _Image__holder for IMAGE ID "xxx" ... or IMAGE "xxx"
// where cleaning is with .replace(/\W/g,"_")
// _Image_holder for all images not identified as above
// if a page div is not identified, then the image will be placed in a new floating div
note: experimental SHOW IMAGE now replaced by new command IMAGE
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"
new feature: random(low,high,seed)
-- provides a new seed for the random() function
-- seed may be any 48-bit integer.
-- x = random(0.0,1.0,121231223)
-- low and high are simply placeholders
-- does return the first number from this seed
-- note that Java and JavaScript will have DIFFERENT seedings
-- utilizes https://github.com/davidbau/seedrandom/blob/released/seedrandom.js
(appended to java.util.Random.js)
JmolVersion="14.3.12_2015.02.25"
new feature: show chemical drawing
new feature: show drawing
-- pops up window with drawing of model
-- service is from NCI
-- uses SMILES if structure was not loaded using $... (NCI) or :... (PubChem)
JmolVersion="14.3.12_2015.02.24"
// 02.28 removes "show " from these
new feature: show IMAGE
-- pops up a frame with the current image
-- allows "Save As..."
new feature: show IMAGE "filename"
-- pops up a frame with the image loaded from a file
-- allows "Save As..."
new feature: show image 300 400 # adjustable size
new feature: show image none # closes all image panels
new feature: show image CLOSE # "all" presumed
new feature: show image CLOSE "" # the model image
new feature: show image CLOSE "c:/temp/t.bmp" # the image for this file
new feature: write IMAGE
-- same as SHOW IMAGE
new feature: write IMAGE 500 500
-- same as SHOW IMAGE 500 500; allows customization of width and height
new feature: Windows BMP image reading
-- reads 24-bit (full color) as well as 16-, 8-, 4-, 2-, and 1-bit color palette modes
-- 14-byte and 40-byte headers only
-- does not read compressed modes
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
bug fix: minimizer treats hydrogen bonds as covalent single bonds
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"
bug fix: load filter "biomolecule 1" broken in 14.3.12_2015.02.14
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)
var x = load("t.png", true)
write var x "t.zip"
bug fix: VASP POSCAR fix for atom symbols in header line
JmolVersion="14.3.12_2015.02.17"
new feature: set zshadePower 0
-- allows examination of depth buffer and writing to image for external processing
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)
new feature: load MUTATE "==LYS"
-- loads using set appendNew false
-- bypasses regeneration of secondary structure
-- not to be documented
-- issued by MUTATE command only
bug fix: write isosurface "./xxx.jvxl" broken -- concatenates "isosurface" with filename
bug fix: write ISOSURFACE by itself broken (similarly for write POINTGROUP and others)
bug fix: MUTATE command adjustments for saving state
bug fix: MUTATE command should not force recreation of shapes
bug fix: MUTATE command should not change backbone atoms
bug fix: x = measure(a,b) where b is {none} crashes Jmol
bug fix: compare({atomA},{atomsB}) should return standard 4x4 matrix, not one involving a rotation
about an atom center
-- (not adjusted when ROTATESELECTED was fixed in 14.3.11_2014.12.17; Angel Herraez)
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"
bug fix: 14.3.12_2015.02.09 breaks MODEL "someTitle" syntax
bug fix: MUTATE not properly saved in state
bug fix: "USER MOD" not accepted at beginning of PDB file (MolProbity breaking PDB format here)
bug fix: 02.10 may break loading ligand files
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"
new feature: frame align {atoms} FIXED
-- shifts atom positions in each frame to match first atom in {atoms}
-- unlike just frame align {atoms}, frame * will still show alignment
-- objects such as DRAW and ISOSURFACE will NOT be shifted
-- needs testing
new feature: frame align [modelNo] [pt]
-- FIXED is assumed
-- used in state; shifts a model by a specific amount after removing any current frame alignment
JmolVersion="14.3.12_2015.02.07"
released
bug fix: set meshScale is not being applied to isosurface contours
bug fix: zoomTo{xxx} 0 does not center (broken in 13.1.16_dev_2013.05.23)
bug fix: appending a model to a model with data can fail
bug fix: 02.04 select conformation=1 broken
bug fix: 02.04 select within(chain,...) broken
bug fix: hydrogen addition should not follow component file
ILE7 HG12 != ILE7 HG13
ILE7 HG13 != ILE7 HG12
ARG10 HB2 != ARG10 HB3
ARG10 HB3 != ARG10 HB2
ARG10 HG2 != ARG10 HG3
ARG10 HG3 != ARG10 HG2
ARG10 HD2 != ARG10 HD3
ARG10 HD3 != ARG10 HD2
LEU18 HB3 != LEU18 HB2
LEU18 HB2 != LEU18 HB3
PRO19 HD2 != PRO19 HD3
PRO19 HD3 != PRO19 HD2
ILE25 HG12 != ILE25 HG13
ILE25 HG13 != ILE25 HG12
JmolVersion="14.3.12_2015.02.04"
released
new feature: print data({*},"xyz")
-- (lower case) writes only atom data lines
new feature: print data({*},"XYZ", true)
-- third parameter TRUE writes all trajectories
bug fix: show mouse fails in JavaScript
-- we cannot test using AU.isAI() in org.jmol.viewer.binding.Binding
-- because of a Java2Script compiler creates standard array [...]
-- from new int[] {....} whereas it should create Clazz.newArray() and fill it
bug fix: writing of file formats was inconsistent between WRITE and data() (not fixed in 14.2)
bug fix: Jmol writing of PDB file data did not include TER records (not fixed in 14.2)
bug fix: label %r should print "1" for non-PDB file atoms
bug fix: 01.30 mutate {xxx} ~... skips first-listed replacement group identifier
bug fix: 01.29 breaks loading non-trajectory file after a trajectory is loaded
JmolVersion="14.3.12_2015.01.30b"
bug fix: select %w %x %y %z not implemented
bug fix; lcaoCartoon broken in 14.3.10_2014.11.27/14.2.12_2015.01.22
bug fix: isosurface id surf1 solvent; select within(2.0, $surf1) broken
JmolVersion="14.3.12_2015.01.30"
new feature: MUTATE command
-- operates only on last model present if multiple models are loaded
-- replaces one or more amino acids group with others
-- can read from RCSB or from user-specified file
-- examples:
mutate 33 lys // replace resno=33 with lysine
mutate @3 arg // replaces group of atom 3 with arginine
mutate @r gly // replaces groups in variable r with glycine
mutate 22 "myfile.cif" // user-defined replacement
mutate {1-3} ala // replace first three residues with alanine
mutate {1-5} GLVAG // (sequence codes) replace residues 1-5 with gly-leu-val-ala-gly
mutate {1-3} ~LYS // (force 1-character sequence codes) replace 1-3 with leu-tyr-ser
mutate {1-3} A?L // replace 1 with ala, 3 with leu; skip 2
mutate {within(sequence, "GAT")} GYT // replace locations of GAT with GYT (needs testing)
mutate 35 @fname // replaces resno=33 with file data (use "==ALA" or "~A" for RCSB)
mutate {r} his // same as above; r must be an atom selection
bug fix: code fixes relating to calculate structure in 01.29
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
new feature: resno is user settable
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"
new feature: frame [1 3 5 6]
-- sets limited number of frames for animation and frame *
-- same as animation frame [1 3 5 6]; frame *
new feature: CGO SCREEN option
-- CGO [SCREEN z ...]
-- reads CGO 2D VERTEX records as screen coordinates, installing them at a depth of z
- where z > 0 indicates a percent (0.01 far back; 100 front)
- z < 0 indicates an absolute screen z value as -z.
- uses 2D VERTEX and other CGO point elements, not 3D
-- example: a static border 20% from the back of the model
cgo test2 [ SCREEN 20
BEGIN LINE_LOOP
VERTEX 10 10
VERTEX 90 10
VERTEX 90 90
VERTEX 10 90
END
]
new feature: CGO UVMAP option
-- CGO [UVMAP @origin @x @y x0 y0 x1 y1 scaleX scaleY ...]
-- 2D VERTEX records are scaled and mapped to a plane defined by @origin @x @y
-- example: a parallelogram based on atoms 1, 6, and 11
cgo test1a [ UVMAP @1 @6 @11 0 0 80 80 1 1
BEGIN LINE_LOOP
VERTEX 0 0
VERTEX 80 0
VERTEX 80 80
VERTEX 0 80
END
]
new feature: CGO PostScript option
-- CGO [ PS @origin @x @y ] data "PS" [primitive encapsulated postscript data] end "PS"
-- maps 2D EPS data onto a plane defined by an origin point, an x-axis point, and a y-axis point.
-- somewhat similar to UV mapping of textures in other programs
-- allows 2D data to be superimposed on a model.
-- a crude implementation still in development; doesn't properly implement stroke;
-- 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
CGO[ PS @{point(-5,-5,0)} @{point(5,-5,0)} @{point(-5,5,0)] data "PS"
%!PS-Adobe-2.0 EPSF-1.2
%%Creator: Bob Hanson (from NBO)
%%Title: nbo orbital slice
%%CreationDate: 1/26/2015 5:36 AM
%%DocumentFonts: Helvetica
%%BoundingBox: 211 300 428 518
%% note: above numbers are from 0.24*881 0.24*1781 0.24*1256 0.24*2156
%%EndComments
%%EndProlog
0.2400 0.2400 scale
newpath
3 setlinewidth
newpath
881 1256 moveto
1781 1256 lineto
1781 2156 lineto
881 2156 lineto
closepath
stroke
1241 1717 moveto
1250 1713 lineto
...
stroke
%%Trailer
showpage
end "PS"
bug fix: CGO LINE_LOOP not closing
bug fix: configuration 1 broken
bug fix: display configuration=1 broken (in Jmol 12.0, 2011)
JmolVersion="14.3.12_2015.01.25"
bug fix: image echos broken
JmolVersion="14.3.12_2015.01.24"
new feature: load NBO CH3CH2CH3
-- retrieves the stucture of propane (in this case) from a local NBO server.
-- including inorganics. For example:
load nbo "Cr 3::acac"
load nbo "Cr 2:::Bz"
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
bug fix: color rockets amino fails
bug fix: "color TRANSLUCENT -1" (screened translucency) restored;
-- had been removed in 14.3.12_2015.01.20 because broken in jmol-11.7.27_02-27-09
bug fix: atom screened translucency not saved in state
bug fix: isosurfaces with screened translucency not restored from JVXL with that
bug fix: screened translucent bonds broken
code: adding org.jmol.g3d.PixelatorScreened, PixelatorT
JmolVersion="14.3.12_2015.01.21"
new feature: load =cod/1000041 loads Crystallographic Open Database CIF files
bug fix: load =xxx/..... (special database) fails
bug fix: (JavaScript) using "Helvetica Neue, Sans-serif" instead of just "Sans-serif" (org.jmol.awtjs2d.JSFont.java)
- gets around Safari bug in Safari v. 7
JmolVersion="14.3.11_2015.01.20"
released simultaneously with 14.2.11
bug fix: Languages lost in Jmol Application
new feature: select :"X" where quotes are used now forces case sensitivity
bug fix: DIPOLE command broken in Jmol 14.3.10_2014.11.27 (OK in 14.2)
bug fix: for old PDB files with no chain ID, "select :" fails
JmolVersion="14.3.11_2015.01.18"
new feature: Jmol Application Tools|NBO... (Experimental Only; requires NBOServer)
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
new feature: modulation T x.x
new feature: modulation Q n
new feature: modulation T {t1 t2 t3}
new feature: modulation Q {q1 q2 q3}
JmolVersion="14.3.11_2015.01.12"
bug fix: color PMESH reader not working properly
JmolVersion="14.3.11_2015.01.11"
bug fix: JSpecView -- version/date not appearing in menu
bug fix: GIF images bleed into background.
bug fix: GIF writing of xxx.gif (three character name) broken.
bug fix: proper isosurface capping. Test code:
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"
code: major refactoring into BioModel of PDB-specific code in ModelSet
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
]
new feature: NBO command
-- same as MO command, but allows TYPE keyword
-- to be developed with, perhaps, different defaults, 2D slices, etc.
new feature: NBO TYPE
-- options AO, PNAO, NAO, PNHO, NHO, PNBO, NBO, PNLMO, NLMO, MO
-- results in immediate loading of .32-.41 file if present
-- generally after a .47 archive file has been loaded
new feature: ... PLANE {pt1} {pt2} frac12
-- wherever a PLANE parameter is required
-- perpendicular plane frac12 of the distance from pt1 to pt2
new feature: x = plane(pt1, pt2, frac12)
-- perpendicular plane frac12 of the distance from pt1 to pt2
JmolVersion="14.3.11_2014.12.19"
bug fix: JavaScript connect broken
due to j2s failure to create bsAromatic when BondCollection created (14.3.7)
due to j2s bug in instantiating global definitions in super classes using Clazz_prepareFields
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
new feature: SYNC nnnn x
-- x is a math expression, possibly just a string, but also possibly an associative array.
new feature: SYNC nnnn {type:"command", "command" : command, "var": vname, "data":vdata}
-- script command request, with optional definition of a Jmol user variable prior to execution)
-- for example:
x = {"type":"command","command":"background green; print y", "var": "y", "data":['an array',2]}
sync 3000 x
-- allows simple transfer of data via JSON strings between applications
JmolVersion="14.3.11_2014.12.15"
FEATURE CHANGE: JmolViewer interface streamlined
-- many esoteric methods removed
-- can be reinstated upon request
-- many are available via public fields
-- for economy of performance and .js file size
FEATURE CHANGE: "screened translucency TRANSLUCENT -1" removed (broken in jmol-11.7.27_02-27-09)
bug fix: mol2 reader fails to read "THR1" as a PDB group
bug fix: PyMOL reader should not reset user variables
bug fix: show LIGHTING does not report a full list of settings
new feature: reset LIGHTING
public void resetLighting() {
vwr.setIntProperty("ambientPercent", 45);
vwr.setIntProperty("celShadingPower", 10);
vwr.setIntProperty("diffusePercent", 84);
vwr.setIntProperty("phongExponent", 64);
vwr.setIntProperty("specularExponent", 6); // log2 of phongExponent
vwr.setIntProperty("specularPercent", 22);
vwr.setIntProperty("specularPower", 40);
vwr.setIntProperty("zDepth", 0);
vwr.setIntProperty("zShadePower", 3);
vwr.setIntProperty("zSlab", 50);
vwr.setBooleanProperty("specular", true);
vwr.setBooleanProperty("celShading", false);
vwr.setBooleanProperty("zshade", false);
}
code: moved PDB-related methods and constants in JC.java to org.jmol.modelsetbio.Resolver
-- allows 50K savings in core.z.js
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"
new feature: Castep reading of .ts files
bug fix: array.add("\t",array) broken 2014.12.04
bug fix: array.split("",true) doesn't handle CSV with new lines in quotes
JmolVersion="14.3.11_2014.12.06"
new feature: MODEL 1 PROPERTY "xxx" x
-- adds property to model's auxilliaryInfo
-- x may be any valid math expression, for example
model 1 property "test" {1.1}.temperature.mul(0.1)
-- if x is an array, then these become atom data accessible via %{...}
-- for example:
x = "1\n2\n3\n".lines
model 1 property "mydata" x
{model=1}.property_n = {*}.label("%{mydata}") // converts to numbers
data "myd @x" // similar, but not model-based
label %{myd}
bug fix: format() function broken
bug fix: SHOW DATA should be cleared when a file is loaded
JmolVersion="14.3.11_2014.12.04"
new feature: "....".split("",true) // CSV split of string to array of arrays
new feature: [...].split("",true) // CSV split of array to array of arrays
new feature: "...".split("\t",true) // tab split of string to array of arrays
new feature: [...].split("\t",true) // tab split of array to array of arrays
new feature: [...][...].join("",true) // CSV join to array of lines
new feature: [...][...].join("\t",true) // tab join to array of lines
-- example:
x = load("test.csv").split("",true) //from CSV
print x.join("",true) // back to CSV
print x.join("\t",true) // to tab-separated
new feature: [...][...].col(n)
-- extracts nth column from an array of arrays
-- example:
x = load("test.csv").split("",true).col(3) //3rd column from CSV
JmolVersion="14.3.11_2014.12.02"
bug fix: for (x in yUpperCase) fails
bug fix: draw SYMOP fails for incommensurate space groups
bug fix: incommensurate magnetic CIF reading does not apply magnetic spin operation to spin modulations
bug fix: CIF reader can cycle infinitely if loop_ keywords are not followed by any data
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::
bug fix: dynamicMeasurements deprecated in 14.1.1 but
not left in as a valid token to allow use
JmolVersion="14.3.11_2014.11.27"
new feature: GAMESS input reader
new feature: NBO .37 archive file coordinate reader (not MOs)
new feature: ZMatrixReader also serves as simple input file reader
for Q-Chem, Gaussian, Jaguar, MolPro, and ADF, as produced by NBO6Pro
JmolVersion="14.3.10_2014.11.27"
released as 14.3.10
(note - these were not fixed in 14.2)
bug fix: SPIN BRANCH {atomno=2} {atomno=1} does not work
code: scriptExt.IsoExt splits CmdExt into two parts
-- (note this will require changes to build_03_tojs_stable)
code: simplification of SurfaceGenerator
bug fix: JVXL files do not record selected contour
bug fix: isosurface CONTOUR -n broken (in Jmol 12)
bug fix: isosurface "t.jvxl" loading of contoured planes broken
bug fix: isosurface plane xy map property atomno broken every other time used
new feature: isosurface contour 0 "t.jvxl" will override contour selected in JVXL file
new feature: isosurface CONTOUR n i
-- n contours; i-th only
FEATURE CHANGE: For the ISOSURFACE command, there is an undocumented
syntax that the CUTOFF keyword prior to a number is optional,
as in "ISOSURFACE 2.0". This was never documented and was never
shown in any examples. This change is to require the CUTOFF keyword
new feature: isosurface LATTICE {i j k} FIXED
-- creates an isosurface from periodic volumetric data
with the specified number of unit cells
-- "fixed" in the sense that the operation is at load time
not at rendering, allowing slabbing and use of WITHIN
new feature: isosurface UNITCELL x.x ....
-- for periodic lattices only
-- adjusts grid by x.x in fractional coordinates
-- caution is advised, as the grid is expanded in this process,
leading to more grid points and more memory required
-- negative x.x results in a selection of a subset of the data
centered on the center of the unit cell
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
new feature: VASP CHGCAR default cutoff set to 0.5
new feature: set edsUrlFormatDiff
-- specifies difference map location
new feature: isosurface "==1blu"
-- difference map fo-fc
-- defaults to sigma=3
-- automatically implements SIGN option
new feature: isosurface RMSD (same as SIGMA)
JmolVersion="14.3.9_2014.11.23"
released as Jmol 14.3.9 and Jmol 14.2.9
bug fix: isosurface slab plane -xy not recognizing "-"
bug fix: PNGJ writing broken
bug fix: VASP CHGCAR reader not recognized for primitive cell
bug fix: Euler ZYZ and ZXZ for quaternion({0 0 1},theta) where theta < 0 in error
JmolVersion="14.3.9_2014.11.17"
released as Jmol 14.3.9 and Jmol 14.2.9
new feature: VASP CHGCAR reader
new feature: VASP CHGCAR isosurface reader
new feature: load HISTORY "saved.his" (Gabor Oszlanyi)
-- loads command history with script in saved.his
new feature: CTRL-PAGE_UP CTRL-PAGE_DOWN in console (Gabor Oszlanyi)
-- searches for next instance of current start of command up or down command history
new feature: capture END
-- closes capture without annoying popup message
-- also for capture CANCEL and just CAPTURE
new feature: transparent GIF using WRITE GIFT "xxx.gif"
new feature: GIF images use dithering to approximate full palette.
new feature: CAPTURE "file.gif" 10 transparent
- or CAPTURE "file.gift" -- "gift" automatically changed to "gif"
new feature: CAPTURE "filename0000.png"
-- captures set of PNG files
-- 0000 is not required
new feature: CAPTURE "filename0000.gif"
-- captures set of GIF files
-- 0000 IS required in order to distinguish this from animated GIF
bug fix: set labelOffset {1 2 3} or set labelOffset [1 2 3 4 5 6 7]
fails if selection does not contain a label at each selected atom
bug fix: Molden reader fails to read orbitals if [GEOCONV] is present
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: slightly better GIF processing
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: GIF and PPM writing broken in JavaScript
-- initial putString improperly forces string buffer mode in OC (Output Channel)
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: PDB reader limited to 20 connections per atom
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
bug fix: GIFT (transparent-background GIF) dithering transparent background
bug fix: Legendre for U not implemented in msCIF reader - preliminary
bug fix: Legendre for D,U in Jana2006 reader not implemented - preliminary
code: code clean-up in GData, Graphics3D, and Export3D
code: PDB reader CONECT efficiency
released as Jmol 14.3.9 and Jmol 14.2.9
bug fix: set labelOffset {1 2 3} or set labelOffset [1 2 3 4 5 6 7]
fails if selection does not contain a label at each selected atom
JmolVersion="14.3.9_2014.11.15"
new feature: VASP CHGCAR reader
new feature: VASP CHGCAR isosurface reader
JmolVersion="14.3.9_2014.11.12"
bug fix: Molden reader fails to read orbitals if [GEOCONV] is present
JmolVersion="14.3.9_2014.11.11"
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"
bug fix: slightly better GIF processing
JmolVersion="14.3.8_2014.11.09"
new feature: CAPTURE "filename0000.png"
-- captures set of PNG files
-- 0000 is not required
new feature: CAPTURE "filename0000.gif"
-- captures set of GIF files
-- 0000 IS required in order to distinguish this from animated GIF
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: GIF and PPM writing broken in JavaScript
-- initial putString improperly forces string buffer mode in OC (Output Channel)
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: PDB reader limited to 20 connections per atom
code: code clean-up in GData, Graphics3D, and Export3D
code: PDB reader CONECT efficiency
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
new feature: load HISTORY "saved.his" (Gabor Oszlanyi)
-- loads command history with script in saved.his
new feature: CTRL-PAGE_UP CTRL-PAGE_DOWN in console (Gabor Oszlanyi)
-- searches for next instance of current start of command up or down command history
JmolVersion="14.3.8_2014.10.15b"
bug fix: GIFT (transparent-background GIF) dithering transparent background
JmolVersion="14.3.8_2014.10.15"
new feature: capture END
-- closes capture without annoying popup message
-- also for capture CANCEL and just CAPTURE
JmolVersion="14.3.8_2014.10.14"
new feature: transparent GIF using WRITE GIFT "xxx.gif"
new feature: GIF images use dithering to approximate full palette.
new feature: CAPTURE "file.gif" 10 transparent
- or CAPTURE "file.gift" -- "gift" automatically changed to "gif"
bug fix: Legendre for U not implemented in msCIF reader - preliminary
bug fix: Legendre for D,U in Jana2006 reader not implemented - preliminary
JmolVersion="14.3.7_2014.10.13"
new feature: modulation occupancy settable using {*}.occupancy = {*}.modulation('O',t)
-- for example:
load "t3.cif" {20 1 1} packed 0.5
connect {_Mn} {_Mn} delete
polyhedra bonds {_Mn} collapsed;
set echo top right;
capture "occ.gif" 120
for (var i = 0; i <= 100; i++) {
var f = i/100.
modulation @f
{*}.occupancy = {*}.modulation("O",f);
display _Mn and occupancy > 0;
var t = "t=" + f
echo @t
refresh;
}
capture
bug fix: msCIF reader superspace group operators with mixing of x1,x2,x3 into x4,x5
was still not quite correct.
bug fix: data "occupancy set" spelled wrong in state
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
feature change: DSSR reference to "lonePairs" changed to "isolatedPairs"
-- select within(dssr,"isolatedPairs") preferred
-- select within(dssr,"lonePairs") still OK
bug fix: msCIF reader incorrectly handling multiple Legendre orders
bug fix: msCIF reader incorrectly handling superspace operators with x1,x2,x3 mixed into x4,x5
bug fix: CONTACT FULL does not report proper volume (Young ho Jhon)
bug fix: (Java only) write FILE fails for string (copy/pasted) data
JmolVersion="14.3.7_2014.10.10"
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"
bug fix: isosurface molecular reader misassigning voxel source atom
bug fix: JSpecView integration not displaying properly
bug fix: JSmol does not allow Info._coverImage
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
new feature: Molden reader adds [CellAxes] block
-- three vectors -- a, b, c
-- Angstroms assumed; no other option, actually
-- Use 0 0 0 for c to indicate slab
-- example
[CellAxes] (Angs)
2.963407 0.0 0.0
0.0 6.513587 0.0
0.0 0.0 0.0
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"
new feature: TOPOS Crystal Graph Data (CGD) file reader
JmolVersion="14.3.7_2014.09.24"
bug fix: exporter generally not allowing creating meshes with PovRAY
JmolVersion="14.3.7_2014.09.23"
bug fix: Clazz.floatToLong not aliased as Clazz_floatToLong in corebottom2.js/coretop2.js
-- causes CAPTURE command to fail for JSmol/HTML5
new feature: {xxx}.find("MF","CH2O")
-- returns subset of {xxx}
-- first atoms that match formula; not necessarily sequential
new feature: {*}.find("MF", TRUE)
-- calculates EMPIRICAL formula
-- example:
$ load $glucose
$ print {*}.find("MF")
H 12 C 6 O 6
$ print {*}.find("MF",true)
H 2 C 1 O 1
new feature: {cell=555}.find("CellFormula");
-- calculates cell formula for specified unit cell
-- weights interior 1, face 1/2, edge 1/4, vertex 1/8
-- selection should be a single packed unit cell
-- fails with "?" if end result is not integral
-- example:
$ load quartz.cif packed
$ print {*}.find("cellFormula");
O 6 Si 3
new feature: {cell=555}.find("CellFormula", TRUE);
-- calculates empirical cell formula for specified unit cell
-- weights interior 1, face 1/2, edge 1/4, vertex 1/8
-- selection should be a single packed unit cell
-- fails with "?" if end result is not integral
-- example:
$ load quartz.cif packed
$ print {*}.find("cellFormula", true);
O 2 Si 1
new feature: label %O
-- lists all symmetry operators leading to this position (as a string)
-- if more than one operator (contains a comma), this is a special position
-- same as %[symmetry] but just a simple list of operators
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
FEATURE CHANGE: {xxx}.vxyz = a, where a is an array
-- no longer throws an exception if a[i] is not a point
-- simply does not set that value.
-- allows for v = {*}.vxyz.all; {*}.vxyz = v;
JmolVersion="14.3.7_2014.09.21"
bug fix: magCIF reading with symmetry scaling (-x+1/2,-2x+y,z+1/2,+1 mx,2mx-my,-mz)
improperly rotates moments (1.34.cif)
JmolVersion="14.3.7_2014.09.20b"
bug fix: array sorting broken in JavaScript
code: magCIF change to _space_group_symop.magn_ssg_centering_algebraic
code: efficiencies in storage of CIF keys
bug fix: CIF reader not reading magnetic lattice centering for incommensurately modulated structures
bug fix: {*}.modulation("M") not functional
bug fix: script queue broken in 2014.09.17
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}
bug fix: x = {visible} does not COPY the visible set
bug fix: spin broken in WebGL
code: further progress with fully asynchronous HTML5
-- all initial script loading and program start-up
-- general LOAD and SCRIPT command processing
-- minimization (static resource loading)
-- PNGJ file loading
JmolVersion="14.3.7_2014.09.16"
bug fix: chainCaseSensitive ignored for select :a
bug fix: JmolData not reporting out properly
JmolVersion="14.3.7_2014.09.15b"
bug fix: 14.3.7_2014.09.14 breaks nucleic acid rendering
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
bug fix: load *xxxx/val validation loading not working (14.3.7_2014.09.07)
new feature: load =xxxx/rna3d
-- mmCIF only
-- fetches http://rna.bgsu.edu/rna3dhub/loops/download/xxxx
-- hairpinLoops, internalLoops, junctions
-- allows for such constructs as:
select within(rna3d,"hairpinLoops")
select within(rna3d,"hairpinLoops where index=5")
x = getproperty("auxiliaryInfo.models[1].rna3d.internalLoops.5")
x = getproperty("auxiliaryInfo.models[1].rna3d.internalLoops")[5]
print x
{
_atoms : ({3023:3062 3639:3706})
_isres : true
_path : "internalLoops"
index : 5
units : "1S72|1|0|C|153,1S72|1|0|C|154,1S72|1|0|G|182,1S72|1|0|A|183,1S72|1|0|G|184"
}
y = x._atoms
select y
new feature: load =xxxx/val
new feature: load =xxxx/dom
-- extends PDBe validation/domain annotation to RCSB calls
new feature: load *xxxx/dssr
new feature: load *xxxx/rna3d
-- DSSR analysis extended to PDBe calls
-- RNA3D analysis extended to RCSB calls
JmolVersion="14.3.7_2014.09.12"
bug fix: Draw broken in JSmol/HTML5 in 14.3.7_2014.09.07
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"
bug fix: Pending measurements lost when dragging to reposition molecule
bug fix: EM files not allowing unit cell creation for PDB or mmCIF files
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"
code: note new Jmol. in front of ___xxx here
code: further work on asynchronous file loading
-- uses script state machine to reset state
-- xhr used only for data files; DOM for scripts
-- caches data files
-- principal shown to work
-- works for package.js and corexxx.js files
-- works for most Java-class xxxx.js files
-- fails (requires multiple attempts) for some cases
-- animation/vibration/spin threads
-- PNGJ file loading
-- cleaned up j2sjsmol code
-- abandons complex j2s Clazz file loading methods; just uses jQuery
new feature: Legendre polynomials for MSCIF file reading
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
code: refactoring symmetry info into org.jmol.symmetry.SymmetryDesc
JmolVersion="14.3.7_2014.08.29"
code: preliminary all-asynchronous JSmol/HTML5
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"
new feature: AXES TYPE "a"|"b"|"c"|"ab"|"ac"|"bc"|"abc"
-- for axes position [x y] only shows specified axes
new feature: load quartz.cif supercell "2a,2b+a,c;1/2,0,0"
-- allows adjusting origin without changing symmetry operations
-- same as load quartz.cif filter "cell=2a,2b+a,c;1/2,0,0"
-- default lattice set to {555 555 -1} (i.e., PACKED)
-- sets packing range based on the supercell
-- packing can be avoided by specifying the lattice:
load quartz.cif {1 1 1} supercell "2a,2b+a,c;1/2,0,0"
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 ...
new feature: load(filename, asbinary, async)
-- 3rd parameter loads file asynchronously in HTML5
bug fix: magnetic CIF files incompatible with displacement modulation
bug fix: write PNG xxx.png when xxx.png is currently loaded saves 0-length data files
bug fix: load ASYNC was documented for 14.1.12_2014.03.10 but never implemented
JmolVersion="14.3.7_2014.08.18"
bug fix: load quartz.cif supercell "2a,2b+a,c" not working properly
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"
new feature: upgrade of application file...export...Gaussian Input File...
new feature: pmesh files can contain triangle colors
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.
The problem is due to the fact that the Java implementation
of Jmol uses float values for atom coordinates, while JavaScript
is restricted to using only double values. The problem arises when
a comparison must be made between two decimal values. After symmetry
has been applied, it is possible for atom coordinates to be off in the
4th-7th decimal digit for floats and 14th-17th for doubles in the
range -256 to 256.
The problem is most acute for inorganic crystal systems where
symmetry has been applied and especially after the CONNECT NONE command
has been issued.
Aspects where a problem might arise include:
-- packing of unit cells, where atoms are discarded
-- iterating over atoms, where atom order is important
-- autobonding, where distances and order are critical
-- comparing Cartesian or fractional coordinate values
Solution to the problem is to automatically round all fractional
atom coordinates to a precision of 0.00001 and all Cartesian
atom coordinates to a precision of 0.0001. This forces both
double and float implementations to the same value and
results in no practical error, since these ranges are
well beyond the precision of atom coordinates in crystals.
Coincidence is assured for fractional coordinates up to
about 126 and for Cartesian coordinates up to about 838.
This rounding is not implemented for state or PNGJ file
with state version v where
v < 140206 || v >= 140300 && v < 140306
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.
The result is also much cleaner-looking atom coordinates.
For example, in JavaScript:
print {*}.fxyz
{0.33333328149215147 0.999999891271352 1.0000000000000024}
{0.6666666148254848 0.999999891271352 1.0000000000000024}
{0.9999999844017011 1.000000000000001 0}
{0.9999999616049127 0.9999999316096356 0.6290004156275991}
{0.9999999709556066 0.9999999596617175 0.3709995843724032}
{0.9999999481588181 0.999999891271352 1.0000000000000024}
becomes:
{0.33333 1 1}
{0.66667 1 1}
{1 1 0}
{1 1 0.629}
{1 1 0.371}
{1 1 1}
new feature: set legacyJavaFloat
-- set by Jmol when a state is read that is before 14.2.6 or in the range 14.3.0 - 14.3.5;
-- prevents fractional and cartesian coordinate rounding.
-- cleared by ZAP or LOAD or loading of any later state script
new feature: MOLDEN extensions [SpaceGroup] [Operators] [Cell]
JmolVersion="14.3.5_2014.08.10"
code: static Txt functions moved to javajs.util.PT
new feature: SHOW/WRITE PROPERTIES ... format "%s %i %f %f %f"
-- allows specifying the format for a set of up to three properties.
-- %s is atom name; %i is atom number
bug fix: show PROPERTIES broken
bug fix: plot PROPERTIES changes axis settings
JmolVersion="14.3.5_2014.08.09"
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
new feature: set showModulationVectors true/false
-- required now for showing modulation vectors rather than vibration vectors
new feature: vibration max x.x
new feature: vector max x.x // alternative; the same
-- renormalizes all vibrations and vibration/spin vectors to have a maximum value of x.x
JmolVersion="14.3.5_2014.08.08"
bug fix: CIF operators with n/9 not supported
JmolVersion="14.3.5_2014.08.05"
bug fix: CIF reader broken for load xxx.cif 1 (14.1.17_2014.06.07)
bug fix: CONTACT command not functioning properly with multiple models
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
new feature: point({x,y,z}, true)
-- TO screen coordinates
new feature: point({sx,sy,sz}, false)
-- FROM screen coordinates
JmolVersion="14.3.3_2014.08.01"
bug fix: move+moveto/zoomto still an issue.
summary of new features for annotations, July 17 - Aug 1
new feature: load *1cbs/dom
-- loads mmCIF file from EBI along with sequence domain data
-- uses URL http://wwwdev.ebi.ac.uk/pdbe/api/mappings/sequence_domains/1cbs?metadata=true&pretty=false
-- use example:
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
Use SHOW DOMAINS for details.
$ 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
select within(domains,"InterPro where domain.identifier='calycin'")
new feature: load *1cbs/val
-- loads mmCIF file from EBI along with validation data
-- use URL http://wwwdev.ebi.ac.uk/pdbe/api/validation/outliers/all/1cbs?metadata=true&pretty=false
-- places that data into property_xxxx arrays
-- use examples:
load *2x9t/val
color property_rsrz "bwr"
display group within(5, property_rsrz > 0)
found biomolecule 1: A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y
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")
new feature: load *1cbs/all
-- loads mmCIF file from EBI along with validation and domain data
-- may be extended to more types as they arise.
new feature: label %[validation.xxxx]
-- retrieves comma-separated validation values after load *yyyy/val
-- xxxx is an entry in the validation API return, such as clashes or rsrz
-- NOT a sum of absolute values, as %[property_xxxx] is for validation data
-- example:
load *1d66/val
select within(validation,"bond_angles")
label val=%[validation.bond_angles]
new feature: set hoverlabel "%[validation.xxxx]"
-- allows customized hover based on validation data
-- example:
set hoverlabel "%[validation.bond_angles]"
new feature: select within(validation, "clashes where value>3")
-- selects atoms from "outliers" array
-- similar to select within(domains, "....")
-- uses sum of absolute values for each atom
new feature: print getProperty("validationInfo[select * where _type='clashes']", atomset)
-- WHERE close can contain any validation type (see SHOW VALIDATION)
-- second parameter can be atom set -- {2.1} for instance -- defaults to current model
-- allows uses SQL-like select phrases
-- example:
set hoverlabel "@{getProperty(\"validationInfo[select value where _type='bond_angles' and (_atoms and {hovered})]\").join(',')}"
new feature: print getProperty("domainInfo[select * where _type='SCOP']")
-- subset of auxiliaryInfo
-- assumes model of visible
-- second parameter can be atom set: {2.1} for instance
-- uses sum of absolute values for each atom
-- allows uses SQL-like select phrase:
print getProperty("domainInfo[select * where _type='SCOP' and _domain like '508']")
new feature: SQL NOCACHE flag
-- prevents caching when using outside variables or functions
-- can be anywhere in the clause
-- example:
select within(domains,"NOCACHE SCOP where myFunc(domain, _atoms)")
new feature: SHOW DOMAINS "some info"
-- selects specific records
-- text-based matching in all fields and key names
-- dot-notation allowed
-- examples:
show domains name
show domains CATH
show domains InterPro.IPR002409
show domains Gal4
new feature: SHOW DOMAINS " all"
-- shows JSON-like array data
-- will involve a circular reference because the domain key
points to the parent.parent entry in the main array
-- example:
load *1cbs/dom
show domains InterPro.IPR002409 all
{
_atoms : ({15:204})
_path : "InterPro.IPR000463"
chain_id : "A"
domain :
{
identifier : "Cytosolic fatty-acid binding"
mappings : ""
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 : ""
name : "Cytosolic fatty-acid binding"
}
...
JmolVersion="14.3.3_2014.07.27"
bug fix: set pdbAddHydrogens incompatible with mmCIF *xxxx/val
new feature: select within(validation, "clashes where value>3")
-- selects atoms from "outliers" array
-- similar to select within(domains, "....")
-- uses sum of absolute values for each atom
new feature: print getProperty("validationInfo[select * where _type='clashes']")
-- subset of auxiliaryInfo
-- WHERE close can contain any validation type, currently including:
-- assumes model of visible
-- second parameter can be atom set: {2.1} for instance
-- allows uses SQL-like select phrase:
print getProperty("domainInfo[select * where _type='SCOP' and _domain like '508']")
-- does NOT use abolute value; report is as an array when select value is used:
set hoverlabel "@{getProperty(\\"validationInfo[select value where _type='bond_angles' and (_atoms and {hovered})]\\").join(',')}"
new feature: print getProperty("domainInfo[select * where _type='SCOP']")
-- subset of auxiliaryInfo
-- assumes model of visible
-- second parameter can be atom set: {2.1} for instance
-- uses sum of absolute values for each atom
-- allows uses SQL-like select phrase:
print getProperty("domainInfo[select * where _type='SCOP' and _domain like '508']")
JmolVersion="14.3.3_2014.07.26"
code: refactoring dssr/domains/validation clases
new feature: load *1crs/val
-- loads PDBe file with validation data
-- places that data into property_xxxx arrays
-- use examples:
load *2x9t/val
color property_rsrz "bwr"
display group within(5, property_rsrz > 0)
found biomolecule 1: A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y
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"
bug fix: write PDB fails
JmolVersion="14.3.3_2014.07.22"
new feature: getProperty(x,"[select a,b,c ....
- selection of specific keys to report in getProperty command
- does not require star-slash, which could mark end-of-comment
new feature: x.in(a,b,c,d...) # suggestion of Sameer Velankar
new feature: x.in([a,b,c,d])
- returns 0 (x not in group) or position 1-n
new feature: SQL NOCACHE flag
- prevents caching when using outside variables or functions
- can be anywhere in the clause
- example:
select within(domains,"NOCACHE ...")
JmolVersion="14.3.3_2014.07.20"
new feature: load *1cbs/dom
- loads domain info from EBI along with mmCIF file
- enables seqid (_atom_site.label_seq_id) required for animation
- ` information is in the JSON form (in all cases below,
additional key/value pairs are allowed):
{ "" : { } }
where is a lower-case PDB id such as 1crs or 1d66
and is one or more records:
"" : { }
is a database identifier such as:
"CATH", "SCOP", "InterPro", "UniProt", "GO", "EC"
is one or more records of the form:
"" : { }
must at the very least contain:
"identifier" : ""
"mappings" : [ array of ]
must minimally be
{ "chain_id" : "" }
but is more likely to contain start/end records:
{ "chain_id" : "",
"start" : ,
"end" :
}
must minimally be:
{ "residue_number" : }
but usually also contains "author_residue_number" and "author_insertion_code".
- 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.
new feature: SHOW DOMAINS
- displays tab-separated annotation information
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
new feature: SHOW DOMAINS ""
- selects specific records
- text-based matching in all fields
new feature: SHOW DOMAINS " mappings"
- adds information about mapping
new feature: select within(annotation, "")
- allows selection of atoms based on annotations.
- can be:
- a databaseID:
select within(domains,"InterPro")
- a specific databaseID.entryID:
select within(domains,"InterPro.IPR012674")
- a specific databaseID, with WHERE clause:
select within(domains,"InterPro where domain.identifier='calycin'")
select within(domains,"InterPro where identifier='calycin'")
select within(domains,"InterPro where identifier like '*-like*'")
note: "annotations" references changed to "domains"
bug fix: Jmol application starts in English regardless of language
JmolVersion="14.3.3_2014.07.29"
new feature: label %[validation.xxxx]
-- retrieves comma-separated validation values after load *yyyy/val
-- xxxx is an entry in the validation API return, such as clashes or rsrz
-- NOT a sum of absolute values, as %[property_xxxx] is for validation data
-- example:
load *1d66/val
select within(validation,"bond_angles")
label val=%[validation.bond_angles]
new feature: set hoverlabel "%[validation.xxxx]"
-- allows customized hover based on validation data
-- example:
set hoverlabel "%[validation.bond_angles]"
JmolVersion="14.3.3_2014.07.27"
bug fix: set pdbAddHydrogens incompatible with mmCIF *xxxx/val
new feature: select within(validation, "clashes where value>3")
-- selects atoms from "outliers" array
-- similar to select within(domains, "....")
-- uses sum of absolute values for each atom
new feature: print getProperty("validationInfo[select * where _type='clashes']")
-- subset of auxiliaryInfo
-- WHERE close can contain any validation type, currently including:
-- assumes model of visible
-- second parameter can be atom set: {2.1} for instance
-- allows uses SQL-like select phrase:
print getProperty("domainInfo[select * where _type='SCOP' and _domain like '508']")
-- does NOT use abolute value; report is as an array when select value is used:
set hoverlabel "@{getProperty(\"validationInfo[select value where _type='bond_angles' and (_atoms and {hovered})]\").join(',')}"
new feature: print getProperty("domainInfo[select * where _type='SCOP']")
-- subset of auxiliaryInfo
-- assumes model of visible
-- second parameter can be atom set: {2.1} for instance
-- uses sum of absolute values for each atom
-- allows uses SQL-like select phrase:
print getProperty("domainInfo[select * where _type='SCOP' and _domain like '508']")
JmolVersion="14.3.3_2014.07.26"
code: refactoring dssr/domains/validation clases
new feature: load *1crs/val
-- loads PDBe file with validation data
-- places that data into property_xxxx arrays
-- use examples:
load *2x9t/val
color property_rsrz "bwr"
display group within(5, property_rsrz > 0)
found biomolecule 1: A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y
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"
bug fix: write PDB fails
JmolVersion="14.3.3_2014.07.22"
new feature: getProperty(x,"[select a,b,c ....
- selection of specific keys to report in getProperty command
- does not require star-slash, which could mark end-of-comment
new feature: x.in(a,b,c,d...) # suggestion of Sameer Velankar
new feature: x.in([a,b,c,d])
- returns 0 (x not in group) or position 1-n
new feature: SQL NOCACHE flag
- prevents caching when using outside variables or functions
- can be anywhere in the clause
- example:
select within(domains,"NOCACHE ...")
JmolVersion="14.3.3_2014.07.20"
new feature: load *1cbs/dom
- loads domain info from EBI along with mmCIF file
- enables seqid (_atom_site.label_seq_id) required for animation
- ` information is in the JSON form (in all cases below,
additional key/value pairs are allowed):
{ "" : { } }
where is a lower-case PDB id such as 1crs or 1d66
and is one or more records:
"" : { }
is a database identifier such as:
"CATH", "SCOP", "InterPro", "UniProt", "GO", "EC"
is one or more records of the form:
"" : { }
must at the very least contain:
"identifier" : ""
"mappings" : [ array of ]
must minimally be
{ "chain_id" : "" }
but is more likely to contain start/end records:
{ "chain_id" : "",
"start" : ,
"end" :
}
must minimally be:
{ "residue_number" : }
but usually also contains "author_residue_number" and "author_insertion_code".
- 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.
new feature: SHOW DOMAINS
- displays tab-separated annotation information
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
new feature: SHOW DOMAINS ""
- selects specific records
- text-based matching in all fields
new feature: SHOW DOMAINS " mappings"
- adds information about mapping
new feature: select within(annotation, "")
- allows selection of atoms based on annotations.
- can be:
- a databaseID:
select within(annotations,"InterPro")
- a specific databaseID.entryID:
select within(annotations,"InterPro.IPR012674 where identifier='calycin'")
- a databaseID followed by a WHERE clause:
select within(annotations,"InterPro where identifier='calycin'")
select within(annotations,"InterPro where identifier like '*-like*'")
any text information in the
SHOW ANNOTATION report.
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
new feature: show annotation
bug fix: DSSP analysis not returning information to console
JmolVersion="14.3.3_2014.07.13"
code: refactoring of HTML5 Jmol, JSpecView, and AstexViewer for cleaner
interaction with web-page based JavaScript. All interations now
go directly through JS
bug fix: move and moveto cannot be in the same session
JmolVersion="14.3.3_2014.07.12"
bug fix: x.func(y) as second operand in a boolean "and" operation
where the first operand evaluates to FALSE
(so that x.func(y) is never evaluated), triggers a script error.
bug fix: set atomPicking, setDrawPicking, pickLabel, pickingSpinRate
all should not be in state
new feature: load /pdbe/xxxx
-- loads CIF file http://www.ebi.ac.uk/pdbe/entry-files/download/xxxx.cif
-- can be abbreviated as "*":
load *1ai6
-- can be supplemented with annotations (TODO)
new feature: {*}.seqid
-- mmCIF only
-- settable using {*}.seqid = ....
-- from _atom_site.label_seq_id
-- a pointer to _entity_poly_seq.num in the ENTITY_POLY_SEQ category.
Data items in the ENTITY_POLY_SEQ category specify the sequence
of monomers in a polymer. Allowance is made for the possibility
of microheterogeneity in a sample by allowing a given sequence
number to be correlated with more than one monomer id - the
corresponding ATOM_SITE entries should reflect this heterogeneity.
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"
new feature: eval(...)
code: org.jmol.util.Measure moved to javajs.util.Measure
JmolVersion="14.3.3_2014.07.02"
bug fix: getproperty structureInfo can fail with phosphorus monomers
bug fix: PDB reader not placing compoundSource in model auxiliary info
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"
bug fix: zz = write("coord") should write untransformed coordinates in XYZ format. It is writing untransformed coordinates in MOL format.
bug fix: zz = write("coord", "MOL") should write transformed coordinates in MOL format. It is writing untransformed coordinates.
bug fix: write COORD should display untransformed coordinates in XYZ format in the console, but it does not. It writes a JPG file named "coord".
bug fix: MCIF reader not reading magnetic centerings 1/3, 2/3
bug fix: JSV jsvAddHighlight broken
bug fix: JSmol HTML5 console broken for Safari and Chrome
bug fix: CASTEP phonon .geom file reading broken
JmolVersion="14.3.0_2014.06.13"
RELEASE OF Jmol 14.2.0 Friday, June 13, 2014
new feature: readers with unit cells may load as trajectories
bug fix: CASTEP reader broken for multiple cells and geometry optimization
JmolVersion="14.1.17_2014.06.12"
new feature: protein sidechain minimization
-- enabled by set picking dragMinimizeMolecule
-- proteins only
-- uses MMFF or UFF force field automatically
-- important to use set pdbAddHydrogens prior to loading
to avoid stereochemical switch (ILE, THR, e.g.)
or to be very careful about that
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"
bug fix: 06.09 broke unitcell display
bug fix: WebPanel error trapping problem; too long file name for tar file
synchonized with Jmol 14.0.17 June 9, 2014
bug fix: zoomto broken
bug fix: atoms turned off with restrict still clickable
JmolVersion="14.1.17"
JmolVersion="14.1.17_2014.06.07"
FEATURE CHANGE: jmolCommandInput 6th parameter added is default value
-- defaults to "help"
FEATURE CHANGE: set useArcBall removed
-- no longer necessary; never documented
-- arcBall is always used anyway
FEATURE CHANGE: removed UNITCELL "xxx" where xxx is an isosurface ID
-- undocumented
-- not necessary, as UNITCELL $xxx or UNITCELL isosurface xxx does as well
-- conflicts with new UNITCELL "parent" and other unit cell types
FEATURE CHANGE: REMOVED: set fractionalRelative
-- an odd quantity -- related specifically to scripts commands
using {1/1 1/2 1/3} and cell=nnn
-- Its use with cell= was never documented.
-- It makes no sense to change the unit cell and not change the
meaning of {1/1 1/2 1/3} and cell=nnn
-- Only relates to situations where the unit cell has been offset.
-- Its presence caused unitcell [{origin} {a} {b} {c}] to fail.
-- It should never have been set in state, as it has nothing to do with the state
FEATURE CHANGE: default space group names for Int. Tables # 39, 41, 64, 67, 68 added
new feature: x= format("JSON", data)
-- simple way to generate JSON code.
new feature: x = format("base64", data)
-- creates base64-encoding of the data
-- data can be an array, a byteArray, a string, or a base64-encoded array
-- prepends the string with ";base64,"
new feature: x = format("byteArray", data)
-- creates byte array from the data
-- data can be an array, a byteArray, a string, or a base64-encoded array
new feature: x = format("array", data)
-- data can be an array, a byteArray, a string, or a base64-encoded array
-- turns byteArrays and strings into integer arrays
-- copies arrays if data is an array
new feature: load xxxx filter "CELL=va,vb,vc;oa,ob,oc"
-- generic cell transformation during load
-- applicable to any crystallographic file
-- must be the LAST element of a filter
-- operators are applied BEFORE this transformation
-- can be expanded with {i j k} or {mmm nnn 1}
-- can be used to create a supercell with or without offset
-- reversed with "cell=!a,b,c:0,0,1/2"
-- forces packing, with range based on specified cell dimensions
-- example:
load t.mcif filter "cell=2a,2b,c:0,0,1/2"
new feature: load xxxx filter "NOPACKCELL=va,vb,vc;oa,ob,oc"
-- same as CELL= except without any packing
new feature: load "cell=parent" or "cell=standard"
-- for MCIF files (magnetic spin CIF files
-- later, UNITCELL "conventional" displays conventional cell
new feature: set showUnitCellInfo TRUE (default)
-- set FALSE to hide unit cell information display
new feature: unitcell "type"
-- type can be "standard" or "parent" for now
derived from CIF records
-- "primitive" may follow
unitcell "standard"
unitcell "parent"
unitcell "conventional"
new feature: unitcell "abc_offset"
-- abc_offset is of the form "a,b,c;0,0,0"
where a, b, and c, can be any expression involving a, b, and c
and 0 can be an offset
-- numbers can be expressed fractionally or as decimals
-- offset is optional, but semicolon is not
-- effect is cumulative -- unit cell is NOT first restored
-- reversed using !
-- examples:
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;"
new feature: unitcell {555 575 0}
-- 0 here means "draw these cells without internal lines"
-- (currently) .uxyz does not scale
new feature: unitcell OFFSET and RANGE
-- explicit parameters for unitcell {i j k} and unitcell {nnn mmm x}
new feature: unitcell BOUNDBOX
-- allows calculation of positions relative to boundbox using fractional coordinates
-- for example
unitcell boundbox
draw {1/2 1/2 1/2}
unitcell reset
new feature: x.push(key,value) for associative array
-- same as x.key = value; seems appropriate
new feature: x.pop("key") for an associative array
-- same as x - "key"; just seems more appropriate
new feature: load ORIENTATION or load DATA "...orientation..." ...
-- loads a file and preserves current orientation
-- creates saved orientation "preload"
-- shortcut for save orientation preload;load....;restore orientation preload
-- example:
load orientation "" // reload file with same orientation
new feature: V3000 reading of DATA SGROUP records:
-- for example:
...
M V30 BEGIN SGROUP
M V30 1 DAT 0 ATOMS=(1 1) FIELDNAME=pc FIELDDATA=-0.2344
M V30 1 DAT 0 ATOMS=(1 2) FIELDNAME=pc FIELDDATA=0.3344
M V30 1 DAT 0 ATOMS=(1 3) FIELDNAME=pc FIELDDATA=-0.4344
M V30 END SGROUP
...
then partialCharges, for example, can be set using:
{*}.partialCharge = {*}.property_pc.all
-- optionally, if FIELDNAME contains "partial" then the atom's partial charge
is automatically set instead of property_partialCharge
-- if more than one field starts with "partial" then the
first one indicated in the file is assigned to partialCharge
and the any others are left as property_partialXXXX
new feature: moveTo AXIS [a,b,c,x,y,z]
-- for example: moveTo AXIS a
-- rotates the model smoothly to a crystallographic or cartesian axis.
-- in the case of abc, the rotation places the remaining two axes
to the right and down (International Tables standard)
-- in the case of xyz, the rotation places the remaining two axes
to the right and up (standard Cartesian orientation)
-- for abc, if no unit cell is available, a simple {1 1 1 90 90 90} unit cell is used
-- added to application and popup View menus
new feature: JSmol: allow for a user callback for customization of menu
if (Jmol._showMenuCallback)
Jmol._showMenuCallback(menu, x, y);
new feature: show(xxx) function
-- same as script("show " + xxx)
new feature: set showUnitCellDetails TRUE (default)
-- FALSE removes a,b,c,alpha,beta,gamma lines
new feature: unitcell RESET (or RESTORE)
-- returns unit cell to original values and removes offset and scaling
-- resets width to fine line
new feature: restore UNITCELL
-- returns unit cell to original values and removes offset and scaling
new feature: show symop n "fmatrix"
new feature: show symop @1 @2 "fmatrix"
-- gives rational fractional matrix
new feature: BilbaoReader NONORM option -- reads displacements as actual values, not normalized
new feature: load ... filter "symop=..."
-- list of numbers separated by space, for example:
load quartz.cif packed filter "symop=2"
load quartz.cif packed filter "symop=2 3"
new feature: set echo depth x.x for standard echos
-- works for 3D echos now as well as 2D echos
-- values in percent of depth
-- x.x >= 1000 are (x.x % 1000) in front of the 3D position
-- x.x <= -1000 are (-x.x % 1000) behind the 3D position
new feature: set starWidth
-- replaces set set starScale
new feature: menu item color--atoms--by scheme--vectors
new feature: load "filename" packed x.x
-- x.x is the range in fractional coordinates within which an atom
can be close to being in the 555 cell but not quite and still be
accepted by the atom loading filter.
-- default is 0.02
-- in some cases, this adds too many atoms and can be reduced to 0.01 or 0.001
-- modulation reader uses 0.001 strictly.
-- for example:
load t2.bcs packed 0.01
{1.1}.property_dist = {1.1}.distance.min({1.2})
{1.1}.spacefill={1.1}.property_dist.all
color {1.1} property_dist "bwr" range 0 0.5
select 1.2
stars -0.3
set starscale 0.1
frame *
unitcell {1.2}
new feature: Bilbao Crystallographic Server file reader
-- scrapes Bilbao HTML pages for Bilbao structure format
-- for example, http://www.cryst.ehu.es/cryst/compstru.html
or http://www.cryst.ehu.es/cryst/amplimodes.html
-- reads Bilbao standard setting data:
15
13.800 5.691 9.420 90.0 102.3 90.0
7
Pb 1 4e 0.0000 0.2910 0.2500
Pb 2 8f 0.3170 0.3090 0.3520
P 1 8f 0.5990 0.2410 0.4470
O 1 8f 0.6430 0.0300 0.3920
O 2 8f 0.6340 0.4640 0.3740
O 3 8f 0.6420 0.2800 0.6120
O 4 8f 0.4910 0.2220 0.4200
-- identified by 1st and third line being a single integer only
(IT spacegroup number and atom count, respectively)
new feature: dipole ID m1 ALL {...}
-- creates a molecular dipole set with ID
-- one dipole per molecule in specified range
-- connected to associated molecule in terms of visibility
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: browser errant zero mouse move
causes collapse of rotation matrix
due to coding error in arcball routine
bug fix: drag-drop followed by model building may fail.
bug fix: tm.matrixRotate protected from setting to all zeros (Chrome issue; reason unknown)
bug fix: JavaScript state creation not properly representing integral decimal numbers
bug fix: draw length pt1 pt2 only makes half the line
bug fix: color $m* green blue wild card coloring for isosurfaces doe not work
bug fix: {*}.trace = {*}.bfactor crashes Jmol (.bfactor does not exist)
bug fix: ramachandran plot scaling off
bug fix: color $isosurface1 "rwb" range 3.0 4.5 fails to set color scheme
bug fix: write VAR X fails if X is an associative array
bug fix: show NMR broken
bug fix: H1 simulation not happening in Jmol.jar
bug fix: write() function does not work for write("coords")
bug fix: vibration vectors may have incorrect length if vector scale and vibration scale are different
bug fix: LOAD ... SUPERCELL not saved in state
bug fix: CASTEP reader not handling supercell correctly (packing and phonons)
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
bug fix: symmetry operation drawing/description with centering
bug fix: Bilbao uses 2nd origin for numerous spacegroups
bug fix: magCIF reader using 4x4 determinant, not 3x3
bug fix: file drag-drop doing append if no atoms
bug fix: BilbaoReader amplimode correction
bug fix: polyhedra not vibrating
bug fix: application file open preview not working
bug fix: show file only shows file for model 1.1
bug fix: signed applet not accepting drag-drop
bug fix: getProperty "fileInfo" for CIF should fix keys (lower case and change '.' to '_')
bug fix: problems reading PNGJ files for Jana2006
code: V3000 reader split off from MolReader; saves 2K or so.
code: faster calculations involving point-based atom properties such as fx
code: TransformManager clean-up;
code: Viewer/FileManager clean-up; image loading moved to jzu
JmolVersion="14.1.15"
JmolVersion="14.1.15_2014.05.08"
bug fix: pubChem reader broken
new feature: mCIF (magnetic CIF) file reader
-- preliminary reader for CIF format development testing
-- includes latest proposal in committee as of May 8, 2014
new feature: unitcell [ {origin} {a} {b} {c} ]
-- defines unit cell in terms of an origin and three vectors
-- just wasn't documented.
JmolVersion="14.1.15_2014.05.06"
bug fix: CIF reader not filtering atoms by element
bug fix: structure command may not properly remove residues from structures (F. Reichmann)
bug fix: FRAME n setting frame to n - 1. (F. Reichmann)
bug fix: unitcell {0 0 0}; in state leaves unit cell on
bug fix: modulation of anisotropic parameters broken
bug fix: Jana2006 reader does not accept filter "MODAVE"
bug fix: msCIF with filter "MODAXES=X" broken
JmolVersion="14.1.15_2014.05.04"
new feature: reset PRINT
-- clears the output buffer (scriptWait, scriptEcho, evaluateVar
bug fix: color property x does not pass script check, so not allowed in web command box
bug fix: echo "@{xxx}" may fail
but fix: print @b fails for referred variable an array
bug fix: xxx.format("%8.-3p") does not work
bug fix: [array].format("%8.3p") does not work
bug fix: PDB Reader skips first ANISOU record
bug fix: SFTP not supported
bug fix: fix for measurements not updating with modulation x.x
new feature: replace()
-- no arguments means "clean whitespace to single space and trim"
new feature: replace(x, y, TRUE)
-- all occurrences of characters of x will be replaced with y.
new feature: mCIF reader
-- Bilbao Crystallographic Server format
-- magnetic extension to CIF reader
new feature: set vectorsCentered
-- centers vibration vector on atom
-- vector is never animated
-- useful for magnetic/spin properties
new feature: select xyz > 1.0
-- xyz, fxyz, fuxyz, uxyz, vxyz
-- uses length
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!
new feature: getProperty(x, SQL_query)
-- Full SQL for any Jmol associative array.
-- Result is an array if x is an array.
-- example:
x = [ 1,2,3,{ "testing":"here","val":33 } ]
y = getProperty(x, "SELECT val WHERE testing LIKE 'here'")
show y
[ 33 ]
z = x[4]
show z
z = { "testing":"here","val":33 }
y = getProperty(z, "SELECT val WHERE testing LIKE 'here'")
show y
33
new feature: LIKE operator extended to atom expressions
--IS case-sensitive (unlike "=")
--examples:
load =1crn
select group like "G*"
print "x" like "X" // FALSE
new feature: "like" operator, strings only:
a LIKE "x" a equals x
a LIKE "*x" a ends with x
a LIKE "x*" a starts with x
a LIKE "*x*" a contains x
new feature: rich SQL logic in GETPROPERTY, getProperty(), and within(dssr,"xxxx.yyy..."):
-- syntax: [SELECT keys WHERE expression]
-- keys indicating only one key, such as "nt1", return just the value
-- keys may be a LIKE wildcard such as "nt*" or "*nt" or "*nt*" (but are NOT case sensitive)
also return just the value(s)
-- keys * or */* means "return all values as an associative array"
-- keys */nt1,nt2 means "return a new associative array including only keys nt1 and nt2"
-- keys */nt* means "return a new associative array including all keys starting with nt"
-- if drilling to this associative array from a list, * or */... returns an array of key/value pairs
-- expression may be any standard Jmol expression that does not involve actual Jmol variables
(instead, the variable names should all be the keys, and their values will be that given in the key:value pair)
-- example:
load files "=1ehz/dssr"
x = getProperty("auxiliaryInfo.models.1.dssr.basepairs");
print getProperty(x,"[SELECT nt* WHERE bp='C-G']")
print getProperty(x, "[SELECT */nt* WHERE Saenger LIKE '19*']")
-- keys may be "dotted" -- modelProperties.FreqValue -- but in this case
the dotted key (FreqValue here) must be exact case. "modelProperties.freqvalue" would not work.
-- example:
load C6H6.smol
x = getProperty("modelInfo.models[select _ipt where modelProperties.PATH='Frequencies' and modelProperties.FreqValue > 3000]")
select modelIndex = x // 6 models selected
new feature: JANA2006 reader adds M40 molecular group support
-- no TLS modulation
-- no local axes (third header line of pos# record)
new feature: calculate structure dssr
-- fetches http://x3dna.bio.columbia.edu/dssr/?POST?opts=--hl%20--more&model=[pdb data]
-- builds auxiliaryInfo.models.n.dssr
-- displays summary report
-- complements calculate structure dssp, except it is done by the x3dna server at Columbia, not Jmol
new feature: (application only) -a --autoAnimationDelay
-- delay time in seconds for press-and-hold operation of
toolbar animation buttons (default 0.2; set to 0 to disable)
new feature: calculate hbonds structure
-- now includes DSSR-calculated bonds for nucleic acids
new feature: select leadAtom(s)
-- selects *.CA, *.P and terminal O in nucleotides
new feature: set backboneSteps TRUE
-- draws base pair steps between dssr-identified base pairs
TO HERE
TRANSCRIPTION/DNA 06-MAR-92 1D66
DNA RECOGNITION BY GAL4: STRUCTURE OF A PROTEIN/DNA COMPLEX
found biomolecule 1: D, E, A, B
DSSR: a software program for Defining the Secondary
Structures of RNA from three-dimensional coordinates
v1.0.6-2014apr04, Xiang-Jun Lu (xiangjun@x3dna.org)
List of 19 base pairs
List of 1 helix
List of 4 stems
List of 1 coaxial stack
List of 3 internal loops
new feature: load =1msy/dssr
-- very simple RCSB/DSSR connection
-- loads both files:
FileManager opening 1 http://www.rcsb.org/pdb/files/1msy.pdb.gz
FileManager opening 1 http://x3dna.bio.columbia.edu/dssr?id=1msy
load =1msy/dssr
set backboneSteps
backbone -0.2
select within(dssr,"helices")
color blue
select within(dssr,"stems")
color red
select within (dssr,"singleStranded")
color white
select within (dssr,"multiplets")
color green
select within (dssr,"isolatedPairs") // was "lonePairs"
color orange
select leadatom
spacefill 1.5
label %[group1]
font label 24 bold
set labeloffset 0 0
color label grey
new feature: select within(dssr,"subset")
-- subsets include
aMinorMotifs
basePairs
bulges
coaxialStacks
hairpinLoops
helices
internalLoops
junctions
kinkTurns
kissingLoops
lonePairs
multiplets
riboseZippers
singleStranded
stems
summary
-- optionally followed by ".n" where n is a number starting with 1
-- optionally followed by ".linkedBy" for loops, bulges, and junctions
-- optionally followed by ".res1" or ".res2"
-- can accommodate SQL
-- results are cached for individual models
-- example:
select within(dssr,"multiplets")
select within(dssr,"bulges.3")
select within(dssr,"bulges.3.linkedBy")
select within(dssr,"basePairs[SELECT res* WHERE twist > 1]")
new feature: select x = [array or array variable]
-- implied OR
-- operators other than equals use implied AND
new feature: DSSR server
-- load files "=1d66" + "=dssr/1d66"
DSSR: a software program for Defining the Secondary
Structures of RNA from three-dimensional coordinates
v1.0.6-2014apr04, Xiang-Jun Lu (xiangjun@x3dna.org)
-- uses new "concatenate" notation to combine data from two sources
-- after loading, try
print getProperty("auxiliaryInfo.models.1.dssr")
new feature: array.keys.all
-- drills down in sequential or associative arrays
-- gives all keys as well as number of array elements:
load files "=1d66" + "=dssr/1d66"
x=getProperty("auxiliaryInfo.models.1.dssr")
print x.keys.all
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
new feature: array.join()
-- creates a flat array from an array of arrays:
-- example:
$x = [1,2,[3,4,5],[6,[7,8,9]]].join()
$show x
x = [ 1,2,3,4,5,6,7,8,9 ]
new feature: DSSR output reading
-- Defining the (Secondary) Structures of RNA
-- see http://forum.x3dna.org/rna-structures/dssr-software-for-defining-the-%28secondary%29-structures-of-rna/
-- brain-child of Xiang-Jun Lu (3dna.lu@gmail.com; Columbia University)
-- use system command x3d-dssr.exe --input=xxxx.pdb > xxxx.out
-- then in Jmol:
load files "xxxx.pdb" + "xxxx.out"
-- all DSSR information will be in auxiliaryInfo.models.dssr with the following keys:
aMinorMotifs
basePairs
bulges
coaxialStacks
hairpinLoops
helices
internalLoops
junctions
kinkTurns
kissingLoops
lonePairs
multiplets
riboseZippers
singleStrandedSegments
stems
-- all entries are lists.
-- most of these list entries have "nt" entries, and those
are nucleotide residue identifiers, so Jmol's
getProperty() "drill-down" capabilities allow for:
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
code: T4 generalized as extending T3, allowing 4D mesh reading.
code: implementation of Andrew Hanson's 3D Ball Roll mouse algorithm
-- no significant practical improvement, but nicer mathematics
-- a bit more involved, but this is once per mouse move. Doesn't matter.
JmolVersion="14.1.13"
new feature: load files "xxx" + "yyy"
-- concatenates yyy onto xxx as a single string of file data
new feature: Gaussian fchk file reader
new feature: var x,y,z;
-- commas optional
-- similar to JavaScript
-- initializes the variable to ""
JmolVersion="14.1.13_2014.04.03c"
bug fix: LOAD command cannot force XML types
-- load xmlvasp::vasprun.xml
-- load vasp::vasprun.xml
-- option without "xml" required only for Odyssey, as there are both Odyssey and XmlOdyssey
bug fix: application file open fails when preview is unchecked in Edit|Properties
bug fix: vectors using vibration scale, not vector scale
bug fix: vector 0.01 misread as if integer "20" (pixel width)
bug fix: Gaussian fchk+freq needs to propagate bonding as well to modes
bug fix: JDX reading of older Chime-related ##PEAKASSIGNMENTS records
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"
code: JavaScript additional global reduction
new feature: load files "xxx" + "yyy"
-- concatenates yyy onto xxx as a single string of file data
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
new feature: Gaussian fchk file reader
bug fix: A=[]; A[3] = 5 not working
new feature: var x,y,z;
-- commas optional
-- similar to JavaScript
-- initializes the variable to ""
bug fix: var x not isolated to script context
bug fix: ellipsoid command broken
JmolVersion="14.1.12"
JmolVersion="14.1.12_2014.03.30"
changes since 14.1.11:
new feature: JSpecView getSolutionColor fill/all/none/false
-- any combination of these four flags
-- fill: fill area under a VIS spectrum with color
-- none: remove fill
-- all: do this for all spectra, not just the selected spectrum
-- false: use interpolation method rather than curve fitting
(see jspecview.common.Visible.java for details)
new feature: JSpecView PEAK command -- adds PEAK GC/MS "#1"
-- #1 here indicates "MS for first GC peak"
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
new feature: binary associative arrays
-- Any array containing "$_BINARY_$" as a key.
-- Values may contain raw byte array data, but need not.
-- Can be expanded or changed, just like any associative array.
-- Seen in string form when in a string context.
-- .type of elements will report "byteArray"
new feature: x = write("PNGJ")
-- Creates a binary associative array equivalent to writing a PNGJ file
-- Contains keys "_IMAGE_", "JmolManifest.txt", "state.spt"
and all associated files.
new feature: write VAR x "filename"
or write @x "filename"
-- Where x is a byteArray or a (possibly binary) associative array.
-- When x is a byteArray, writes binary data to a file.
-- When x is an associative array, creates a ZIP file
(or PNGJ file, if _IMAGE_ is present and is PNG format),
automatically converting strings starting with ";base64," to
byte arrays in the ZIP file. To do the same with x a binary
array, just use @{array(x)} instead of @x.
new feature: x = load("myfile",true)
-- Creates a binary associative array variable x that contains the contents of
the file.
-- data are stored as byte arrays.
-- If the file is a standard file, the key "_DATA_" will hold the file data.
-- If the file is a PNGJ file, the key "_IMAGE_" will hold the image data,
and additional files are keyed by file name.
-- If the file is a zip file, the files are keyed by file name.
-- Note that x = load("myfile") without "true" loads the contents of
the file into x and, if the file is a PNGJ or ZIP file, just loads
the list of files in the collection, not the actual data.
new feature: filter "ATOM" opposite of filter "HETATM"
new feature: load ASYNC ....
new feature: script ASYNC ....
-- load and script ASYNC start a new asynchronous thread to load the file
and then continue after that.
-- JSmol/HTML5 only; others ignore
new feature: Mol3D reader
-- using load "MOL3D::xxx.mol" one can force only 3D mol files to be read
-- 2D mol files will throw an error.
new feature: show CHEMICAL STDINCHIKEY
new feature: show CHEMICAL STDINCHI
new feature: load ":inchikey:xxxxx"
-- requires STANDARD InChIKey (as from {*}.find("chemical", "stdinchikey")
new feature: x = {*}.find("chemical",type)
-- type is "smiles", "inchi", "stdinchi", "inchikey", "stdinchikey"
-- uses NCI/CADD CIR
-- Note that unlike SHOW CHEMICAL, "InChIKey=" and "InChI=" are dropped
-- Note that unlike SHOW CHEMICAL, trailing new line char is removed
new feature: x = smilesString.find("chemical",type)
-- type is "smiles", "inchi", "stdinchi", "inchikey", "stdinchikey"
-- allows going directly from SMILES to other quantities
-- uses NCI/CADD CIR
-- Note that unlike SHOW CHEMICAL, "InChIKey=" and "InChI=" are dropped
-- Note that unlike SHOW CHEMICAL, trailing new line char is removed
bug fix: NWChem reader broken
bug fix: JSpecView GC/MS issues
bug fix: JSmol callbacks should refer to "jmolApplet0" not "jmolApplet0_object"
bug fix: set cameraDepth not working
-- note that loading of PyMOL files affects this setting, which
is reset only using the INITIALIZE command
bug fix: getProperty() function does not recognize a list as a variable and returns it as a string
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.
bug fix: minimum modulationScale set to 1; should be 0.1.
bug fix: translucent echo backgrounds broken
bug fix: filter "HETATM" does not work
bug fix: write XYZ broken by changes to the way arrays
are shown with the PRINT command
bug fix: x = adfjladj(3) crashes Jmol
bug fix: x[0] = "tst" "here" "now" should cause script exception
bug fix: isosurface MOLECULAR delivers wrong surface
bug fix: spacefill ionic not working
bug fix: set cameraDepth disabled
bug fix: some translations not being carried out.
bug fix: msCIF reader not accepting normalized commensurate Fourier vectors
bug fix: JSmol/HTML MSIE local installation AJAX working again (still no binary files)
code: variable compression issues in Jmol and JSV
code: org.jmol.io and org.jmol.io2 consolidated
code: select water hard-coded for speed (2 x faster)
code: careful attention to loading of biomolecules results in 160K core bio load savings
code: JavaScript core load reduced by 2% (30KB) by changing high-frequency global name "viewer" to "vwr"
code: refactoring of image writing code to javajs.img for general use
code: refactoring of zip code into javajs.util for general use
code: refactoring of minimization code saves 10KB
code: isosurface MOLECULAR speed-up by a factor of 10.
-- better handling of constants during iteration
-- better identification of unnecessary edges and faces
JmolVersion="14.1.12_2014.03.27b"
bug fix: NWChem reader broken
new feature: JSpecView PEAK command -- adds PEAK GC/MS "#1"
-- #1 here indicates "MS for first GC peak"
bug fix: JSpecView GC/MS issues
bug fix: JSmol callbacks should refer to "jmolApplet0" not "jmolApplet0_object"
bug fix: set cameraDepth not working
-- note that loading of PyMOL files affects this setting, which
is reset only using the INITIALIZE command
code: variable compression issues in Jmol and JSV
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
code: org.jmol.io and org.jmol.io2 consolidated
code: select water hard-coded for speed (2 x faster)
code: careful attention to loading of biomolecules results in 160K core bio load savings
code: JavaScript core load reduced by 2% (30KB) by changing high-frequency global name "viewer" to "vwr"
code: refactoring of image writing code to javajs.img for general use
code: refactoring of zip code into javajs.util for general use
code: refactoring of minimization code saves 10KB
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"
new feature: x= format("JSON", data)
-- simple way to generate JSON code.
new feature: x = format("base64", data)
-- creates base64-encoding of the data
-- prepends the string with ";base64,"
new feature; binary byte array
-- from array(s) where s starts with ";base64,"
-- from binary associative arrays
new feature: binary associative arrays
-- Any array containing "$_BINARY_$" as a key.
-- Values may contain raw byte array data, but need not.
-- Can be expanded or changed, just like any associative array.
-- Seen in string form when in a string context.
-- .type of elements will report "byteArray"
new feature: x = write("PNGJ")
-- Creates a binary associative array equivalent to writing a PNGJ file
-- Contains keys "_IMAGE_", "JmolManifest.txt", "state.spt"
and all associated files.
new feature: write VAR x "filename"
or write @x "filename"
-- Where x is a byteArray or a (possibly binary) associative array.
-- When x is a byteArray, writes binary data to a file.
-- When x is an associative array, creates a ZIP file
(or PNGJ file, if _IMAGE_ is present and is PNG format),
automatically converting strings starting with ";base64," to
byte arrays in the ZIP file. To do the same with x a binary
array, just use @{array(x)} instead of @x.
new feature: x = load("myfile",true)
-- Creates a binary associative array variable x that contains the contents of
the file file.
-- data are stored as raw bytes.
-- If the file is a standard file, the key "_DATA_" will hold the file data.
-- If the file is a PNGJ file, the key "_IMAGE_" will hold the image data,
and additional files are keyed by file name.
-- If the file is a zip file, the files are keyed by file name.
-- Note that x = load("myfile") without "true" loads the contents of
the file into x and, if the file is a PNGJ or ZIP file, just loads
the list of files in the collection, not the actual data.
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"
bug fix: minimum modulationScale set to 1; should be 0.1.
new feature: filter "ATOM" opposite of filter "HETATM"
bug fix: translucent echo backgrounds broken
bug fix: filter "HETATM" does not work
bug fix: write XYZ broken by changes to the way arrays
are shown with the PRINT command
bug fix: x = adfjladj(3) crashes Jmol
bug fix: x[0] = "tst" "here" "now" should cause script exception
JmolVersion="14.1.12_2014.03.16"
code: isosurface MOLECULAR speed-up by a factor of 10.
-- better handling of constants during iteration
-- better identification of unnecessary edges and faces
bug fix: isosurface MOLECULAR delivers wrong surface
JmolVersion="14.1.12_2014.03.13"
bug fix: spacefill ionic not working
bug fix: set cameraDepth disabled
JmolVersion="14.1.12_2014.03.10"
bug fix: some translations not being carried out.
new feature: load ASYNC ....
new feature: script ASYNC ....
-- load and script ASYNC start a new asynchronous thread to load the file
and then continue after that.
-- JSmol/HTML5 only; others ignore
bug fix: msCIF reader not accepting normalized commensurate Fourier vectors
bug fix: JSmol/HTML MSIE local installation AJAX working again (still no binary files)
new feature: Mol3D reader
new feature: show CHEMICAL STDINCHIKEY
new feature: show CHEMICAL STDINCHI
new feature: load ":inchikey:xxxxx"
-- requires STANDARD InChIKey (as from {*}.find("chemical", "stdinchikey")
new feature: x = {*}.find("chemical",type)
-- type is "smiles", "inchi", "stdinchi", "inchikey", "stdinchikey"
-- uses NCI/CADD CIR
-- Note that unlike SHOW CHEMICAL, "InChIKey=" and "InChI=" are dropped
-- Note that unlike SHOW CHEMICAL, trailing new line char is removed
new feature: x = smilesString.find("chemical",type)
-- type is "smiles", "inchi", "stdinchi", "inchikey", "stdinchikey"
-- allows going directly from SMILES to other quantities
-- uses NCI/CADD CIR
-- Note that unlike SHOW CHEMICAL, "InChIKey=" and "InChI=" are dropped
-- Note that unlike SHOW CHEMICAL, trailing new line char is removed
JmolVersion="14.1.11"
JmolVersion="14.1.11_2014.03.08"
FEATURE CHANGE: associative array .count, .length, .lines removed
-- specifically for associative arrays, nothing more
-- these were unnecessary equivalents of .size
-- change will not be incorporated into Jmol 14.0
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
new feature: associative array standard "dot" notation
-- a.test = 33
-- print a.test
-- caveat: cannot do this with a.keys, a.size, or a.type
-- not implemented in Jmol 14.0 because of the feature change
new feature: associative array alternative ".." syntax
-- same as JavaScript and Java, but ".." instead of "."
-- for example:
a["test"] == a..test
new feature: .covalentRadius added as more appropriate alias for .covalent
new feature: .bondingRadius added as more appropriate alias for .ionic
new feature: set bondingVersion
-- 0: Jmol default, from OpenBabel 1.100.1
-- uses a mix of covalent and ionic radii for autobonding
-- 1: Pyykko and Atsumi, 2009
-- changes the distance criteria for autobonding to be specifically covalent
-- saved in state only for file loading; should be unchanged after state loading.
new feature: color(color1, color2, n, asHSL)
-- returns a color scheme as a string
-- colors can be of any nature -- string or point, name or rgb
-- n colors; simple interpolation from color1 to color2
-- asHSL must be TRUE or FALSE;
-- when TRUE, uses hue/saturation/luminance instead of rgb gradient
-- example:
$ print color("white", "red", 5, false)
[xffffff][xffbfbf][xff7f7f][xff3f3f][xff0000]
$ print color("red", "blue", 5, true)
[xff0000][xffff00][x00ff00][x00ffff][x0000ff]
$ set propertyColorScheme color("yellow","black",50,true)
$ color property temperature
new feature: added simpler associative array notation: [key:value,...]
-- no quotes required
-- supplements {"key":value,...} where quotes are still required
due to conflict with atom set chain descriptors such as {a:b}.
new feature: catchable THROW
-- as in Java or JavaScript, allows a way of jumping
out of a process.
-- outside of try/catch gives the expected error report:
$ 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
-- can be trapped with try/catch:
try{
print "testing"
throw "testing here"
print "continuing"
} catch(e) {
print "thrown_value=" + thrown_value;
}
results in:
testing
thrown_value=testing here
new feature: asynchronous resumable processes
-- THROW CONTEXT contextName
-- throws a catchable error, but in the process of doing so,
creates a script context that allows RESUMING
at the point of the throw, unlike anything in JavaScript
or Java (or perhaps like a debug mode).
-- if within a try/catch phrase, is handled by catch.
in which case the error message is simply the context name.
-- if not within a try/catch phrase just reports
to resume, enter: &contextName
-- essentially provides a callback into the running
script, so you could, for example, put a running script
on hold while you load a file, check variables, etc.,
then continue.
-- can be resumed using RESUME CONTEXT or just & followed
by the name of the context:
&test
resume context &test
-- replaces PAUSE/RESUME, now deprecated.
-- The current context returns to the highest level, however
the variables in the context that was thrown are
accessible as though the context variable was an
associative array. So, for example, if we have
function f(a, b, c) {
var x = 5
throw context testing
print "x=" + x
}
f(1,2,3)
print "done"
The context will be saved as the variable "testing", and
we can then test all the variables in that saved context,
(and change them before continuing):
print testing["x"]
5
testing["x"]++
print testing
_path : [script] >> function f
_retval : 0
a : 2
b : 2
c : 3
x : 6
-- contexts can be restored using
&contextName
In the above case, we would get the report:
x=6
done
new feature: SAVE CONTEXT contextName
-- similar to THROW, but does not stop processing.
So in the above example, if we change THROW to SAVE,
the processing continues, but after it has completed,
we can change context variables and run it again.
new feature: show SAVED
-- same as show SAVE
new feature: delete $SAVED savedName
delete $SAVED Context_xxxx
-- $ is important; case is not.
-- allows selective deletion of saved objects
-- Contexts always start with "Context_" but the subname
"xxxx" in this case will work as well.
new feature: RESUME with arguments is synonymous with RESTORE
new feature: Better idea for THROW:
throw "this is an error"
throw x
-- that is, throw is like PRINT, not LABEL
bug fix: applet language localization skipping translations containing \"
bug fix: application language localization does not include defs defined for JmolApplet
bug fix: JSpecView/JSME connection with simulated and ACD/Labs annotated spectra
bug fix: JSpecView loading simulation now compatible with synced applets
bug fix: drag/drop not working for JSV applet
bug fix: solid-state NMR calc (Magres) should not apply "nearest-atom-only"
algorithm for measure ALL in dipolar coupling measurements
bug fix: state contains: zap;load /*data*/ data "append inline"
bug fix: zoomto without time goes over 2 seconds, not 1 second
bug fix: print "id" + "x" fails (back to 13.2 at least)
bug fix: animFrameCallback not reporting for each morph
bug fix: inline-if fails if not at end of statement
-- Bug goes back to at least 11.8
bug fix: Jmol math fix for new . notation.
-- needs testing
-- examples:
-- note that .. notation works with numbers
and in all expressions
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
-- alternative single dot notation also on both sides
-- associative arrays only
-- no numbers here
b = [testing:"here"]
b.testing= 33
print b.testing
-- note that sequential brackets for arrays
work only on the left side of an assignment
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: state reading broken in most recent version at chemapps
bug fix: ++/-- compatibility with no-comma arrays
bug fix: print ++b["test"] fails
bug fix: ++b["test"] fails
bug fix: a[6][8] = "q" not working correctly when a is a string
bug fix: {*}.covalent is misleading in that it is a mix of covalent and ionic bonding
distances. As such, I have replaced it with data at the Blue Obelisk Data Repository
which are from
Pyykkö, P. and Atsumi, M. (2009),
Molecular Single-Bond Covalent Radii for Elements 1\u2013118.
Chem. Eur. J., 15: 186\u2013197. doi: 10.1002/chem.200800987
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
code: unused obrador package removed from application
code: JavaScript org.jmol.modelset->JM, org.jmol.modelsetbio->JMB
code: org.jmol.util.Quaternion moved to javajs.util.Quat
code: Refactoring of script.ScriptEvaluator to make it more manageable:
* ScriptEval -- entry point and script command code
*
* extends ScriptExpr -- expression parsing
*
* extends ScriptParam -- parameter parsing
*
* extends ScriptError -- error handling
*
* scriptext.CmdExt -- optionally loaded, less-used commands
* scriptext.MathExt -- optionally loaded, less-used functions
* scriptext.SmilesExt -- optionally loaded methods for cmds and math
code: faster CONNECT [{...}] process for specified bonds
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"
bug fix: color atoms formalcharge not saved in state
bug fix: averageAtomPosition never updated.
bug fix: load of model with one atom does not set center to that atom
bug fix: ==/!= comparison not appropriate for arrays or strings
-- string/string comparison should be case sensitive, but wasn't
-- (you can use x %9999 == y %9999 to force no-case comparison)
-- array/array comparison should be element by element and exact
-- assoc.array/assoc.array should be key/value by key/value and exact
-- int/decimal comparison should be simply numerical, always
-- decimal/decimal comparison should be able to be done without the < 1e-6 cutoff
-- you can now use [x] == [y] for exact numerical comparison
-- string/int and string/decimal comparison should also only be outside of arrays
-- all approximations for type1/type2 should be only outside the context of arrays
bug fix: array/string assignment broken in 14.1.9
-- a[2] = ...
-- a["testing"] = ...
bug fix; HTML5 popup frank mini-menu not implemented
bug fix: HTML5 popup menu checkboxes not turning off
bug fix: zap or zap {atom expression} broken
-- does not affect ZAP command without parameters
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.
new feature: WRITE "filename" AS type
-- allows setting type at end of WRITE command using AS
-- for example:
write "t.png" as PNGJ
-- meant only for very simple production; no additional parameters.
-- all parameterized cases must use standard notation
write PNGJ 300 300 "t.png"
JmolVersion="14.1.8_2014.02.17"
bug fix: JSpecView issues with navigating through spectra
bug fix: PyMOL reader multiple bond view
bug fix: popup menu fixes
bug fix: bond/draw/isosurface picking broken
bug fix: [1 -5 6 -2] gives [1 (-5+6-2)] instead of [1 -5 6 -2]
bug fix: set defaultLoadScript "{0 0 0}" actually sets that to {1 1 1}
-- goes way way back to early Jmol math where there were no point-type variables
bug fix: PyMOL reader update for Version 1700 lacking setting 83.
bug fix: -m option not working with Jmol.jar
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
new feature: JSmol Info.z, Info.zIndexBase
bug fix: tensor("efg", "value") should return sparce array, not dense for missing tensors
bug fix: JSmol now allows writing POVRAY, MAYA, IDTF, VRML, etc.
both from Java and from HTML5
code: reworking of export classes
bug fix: label @{math expression...} not working
bug fix: interpretation of x and @x in select commands and {...} phrases
-- Variable substitution has been unintuitive and inconsistent.
For instance:
x = "C or T"
select @x -- works fine
print {@x} -- fails
The problem is the use of @ to reference the variable NAMED BY another
variable within a math expression (print context) but not a select context.
For instance:
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'")
-- This fix simplifies the situation by not allowing variable-variable
referencing within atom expressions bounded by braces, just like
within implicit atom expression commands (select, display, hide, delete, etc.).
-- The result is much more consistent. The following do exactly what
you think they would do:
x = "A or T"
select @x
print {@x}
-- The current way of doing this, by defining a temporary atom
expression using the DEFINE (or @) command still works:
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"
select ala --> selects all alanines
select @ala --> selects all cysteines
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: set cartoonRibose
-- draws in ribose rings, with facets showing puckering
-- connects via C4'-C5'-O5'-P explicitly
-- shows C3'-O3' for reference.
-- disables cartoonBaseEdges (Leontis-Westhof Edges)
-- disabled by SET cartoonBaseEdges ON
-- suggested by Rick Spinney, Ohio State
new feature: anim frame [a,b,c,d] works with negative numbers to indicate ranges:
-- anim frame [1, -5, 10, -6] --> [1,2,3,4,5,10,9,8,7,6]
-- read as "1 through 5 and then 10 through 6"
new feature: Tinker file reader (and FoldingXYZ reader upgrade)
-- 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
new feature: (actually 13.1 but undocumented) animation frame [ 51 50 49 48 47 46 45 (etc) 27 1 2 3 4 5 6 7 (etc)....]
new feature: x = compare({atomset1}, {atomset2}, "MAP")
new feature: x = compare({atomset1}, {atomset2}, "MAP", "all")
new feature: x = compare({atomset1}, {atomset2}, "MAP", "best")
new feature: x = compare({atomset1}, {atomset2}, "MAP", "H")
new feature: x = compare({atomset1}, {atomset2}, "MAP", "allH")
new feature: x = compare({atomset1}, {atomset2}, "MAP", "bestH")
-- generates one or more correlation lists based on non-aromatic SMILES
-- optionally includes H atoms
-- optionally generates all possible atom mappings
-- returns int[][] = [ [a1 b1],[a2 b2],[a3 b3],... ]
where an and bn are integer atom indices
or list when "all" option is chosen.
-- the following will generate one atom correlation
map for two structures including hydrogen atoms:
load files "a.mol" "b.mol"
x = compare({1.1} {2.1} "MAP" "H")
(useful for 2D/3D model atom matching)
-- the following compares the model of caffeine from NCI to that from PubChem:
load $caffeine;load append :caffeine;frame *
select 2.1; label %[atomIndex]
compare {1.1} {2.1} SMILES rotate translate
x = compare({1.1}, {2.1}, "MAP" "bestH")
for (a in x) {a1 = a[1];a2=a[2];select atomindex=a1;label @a2}
new feature: compare {model1} {model2} SMILES
-- no need to give SMILES; Jmol can generate it from {model1}
new feature: x = {*}.find("SMILES", "H")
-- generates SMILES with explicit H atoms
bug fix: substructure() function using SMILES instead of SMARTS, so only full structures;
bug fix: better error trapping and messages in SMILES-related methods
bug fix: make webexport discovery of path to Jmol.jar and jsmol.zip more robust.
bug fix: getProperty extractModel not honoring subset
bug fix: set pdbGetHeader TRUE does not capture REMARK3 REMARK290 REMARK350
bug fix: getProperty("JSON",....) should wrap value in {value:...}
bug fix: MO persistent translucency broken in 11.x
bug fix: show MENU write MENU load MENU all broken in 12.2
bug fix: {*}[n] should be empty if nAtoms <=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
bug fix: errors in paths to js code in web export templates.
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"
bug fix: translucent geosurface was turned off;
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)
bug fix: for (a in {displayed}) { a.property_x = 3 } construction fails
bug fix: FireFox browser in mode to open files in new tabs in the background
fails to load second applet of a page unless Jmol.__execDelay is more than 55 ms
and the user specifically right-clicks a link to open a page in a new tab.
bug fix: write ....?POST? fails
bug fix: getproperty broken in 14.1.6_dev_2014.01.15
bug fix: GETPROPERTY command and function can return SV.toString() rather than property escaped value
bug fix: getProperty for certain arrays returns string "[object Array]"
bug fix: Jmol2.js not working when there is no jmolInitialize()
bug fix: _DirectDatabaseCalls not including NMR prediction site
bug fix: reading of *co*mmensurately modulated structures (e.g. Lilianite) working
bug fix: wrong name for coverimage in WebExport.
code: refactored matrix classes javajs.util.M34/M3/M4
code: JSpecView upgrade includes
-- operational applet from jnlp
-- append options from menus
-- file helper for local files using load ?
-- file helper for URL using load http://?
-- file helper for simulation using load $?
code: reader refactoring isolates symmetry aspects
update: images and instructions for WebExport
JmolVersion="14.1.5"
JmolVersion="14.1.5_dev_2014.01.09"
bug fix: LCAOCartoon translucency broken
bug fix: translucent backbone broken
bug fix: pqr,p2n readers broken
bug fix: isosurface map property xxx can fail if surface is a
fragment that (somehow) has a point not associated with
an underlying atom.
JmolVersion="14.1.4"
JmolVersion="14.1.4_dev_2014.01.05"
bug fix: PDB byChain, bySymop not supported.
TODO: Add BSPF for symmetry distance checking in AtomSetCollection to speed special-position checking
new feature: {xxx}.distance.all({yyy}) returns float[][] of values
new feature: expanded unit cell ijk notation:
- 111 - 1000 --> center 5,5,5; range 0 to 9 or -5 to +4
- 1000000 - 1999999 --> center 50,50,50; range 0 to 99 or -50 to +49
- 1000000000 - 1999999999 --> center 500, 500, 500; range 0 to 999 or -500 to +499
JmolVersion="14.1.3"
JmolVersion="14.1.3_dev_2013.12.29"
new feature: filter "MODCELL=x"
-- incommensurate composite readers Jana2006 and CIF
-- sets base cell to specified subsystem
new feature: MSCIF reader now allowing up to d=10; was d=6
new feature: escape pressed cancels pending measurement
new feature: {xxx}.getProperty("yyy")
-- only for FIRST atom
-- returns getProperty("atomInfo.yyy", {xxx})[1] (not xxx.yyy.all)
new feature: unitcell {atomset}
-- unit cell based on first atom of atom set.
-- canceled by any unitcell {none}
or other unitcell command other than on/off and width
new feature: altloc set for msCIF _atom_site_subsystem_code
-- sets % and also configuration
-- prevents covalent bonding between subsystems
new feature: select ON ; select OFF
-- same as selectionHalos ON/OFF
-- deprecates selectionHalos command
new feature: atomSet1.distance.min(atomSet2, TRUE)
new feature: atomSet1.distance.min(point, TRUE)
new feature: atomSet1.distance.max(atomSet2, TRUE)
new feature: atomSet1.distance.max(point, TRUE)
-- returns single closest/furthest atom in atomSet1 from point or atomSet2
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"
new feature: JavaScript: JSmol api Jmol.evaluateVar(applet, expression)
-- better than Jmol.evaluate because result is a JavaScript variable, not a string.
-- DEPRECATING JSmol api Jmol.evaluate(applet, expression)
new feature: getProperty("JSON", ....)
-- returns JSON code for property
-- allows JavaScript: x = Jmol.getPropertyAsArray("variableInfo","some expression")
new feature: getProperty variableInfo
-- allows retrieval of variables in Java or JSON format
-- evaluates expression
-- defaults to "all"
new feature: modulation adjustable by q and t, up to d=3
// modulation on/off (all atoms)
// moduation {atom set} on/off
// modulation int q-offset
// modulation x.x t-offset
// modulation {t1 t2 t3}
// modulation {q1 q2 q3} TRUE
new feature: pickedList -- ordered array of recently picked atoms
-- can be used the same as the PICKED variable,
but that is ordered sequentially, not temporally
-- twice clicking off structure clears the list
-- @{pickedList}[0] last-picked atom
-- @{pickedList}[-1] next-to-last-picked atom
-- @{pickedList}[-1][0] last two picked atoms
new feature: array.pop(), array.push()
-- similar to JavaScript
-- for example:
a=[];a.push("testing");print a.pop()
// create a distance t-plot
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)
new feature: modulation scale x.x
new feature: caption "xxxxx" x.x -- number of seconds to run
new feature: modulation 0.2 // sets t-value
new feature: select ON/OFF atom-set
-- turns selection halos on or off as well as doing the selection
-- convenience only
-- for example:
select on _O2
select off *
new feature: pt1.mul3(pt2)
-- returns {pt1.x*pt2.x, pt1.y*pt2.y, pt1.z*pt2.z}
-- if both are not points, reverts to simple multiplication
new freature: array.mul3(pt2)
-- applies mul3 to all elements of array
new feature: {atomset}.modulation(type, t)
-- delivers P3 (displacement modulation)
-- implemented only for type="D" (optional)
-- optional t is 0 by default
-- if t is missing, the unmodulated displacement is returned
bug fix: modulation not distinguishing between q and t;
bug fix: modulated measurements not working
bug fix: not skipping set defaultLattice "{NaN NaN NaN}"
bug fix: isosurface map atomic orbital fails
bug fix: vibrational display of modulation with distances doesn't update
bug fix: vibration off causes unnecessary warning in console
bug fix: draw symop broken
bug fix: array.mul(matrix3f) crashes Jmol
bug fix: select symop=1555 broken
bug fix: set picking dragSelected not working
code: refactored CifReader, separating out MMCifReader and MSCifReader
code: minor renaming/refactoring of methods in SV
code: adds javajs.api.JSONEncodable interface
-- super-simple implementation in org.jmol.script.SV
-- allows implementations of javajs to deliver custom JSON results
JmolVersion="14.1.1_2013.12.04"
JmolVersion="13.3.9_dev_2013.12.04"
new feature: Jmol._j2sLoadMonitorOpacity (default 55)
new feature: load() function, as in print load("xxx"), limited local file reading in applet:
-- no root-directory files
-- no files without extension
-- no files with any "/." in path
new feature: JAR files securely signed
new feature: applet JAR files include JNLPs (Java Network Launch Protocols) for local file loading
new feature: JSmol URL options _USE= _JAR= _J2S= overrides for Info data
new feature: (was present but undocumented) print quaternion([array of quaternions])
-- returns spherical mean a la Buss and Fillmore (http://www.math.ucsd.edu/~sbuss/ResearchWeb/spheremean/)
new feature: print quaternion([array of quaternions], true)
-- returns standard deviation for spherical mean a la Buss and Fillmore (http://www.math.ucsd.edu/~sbuss/ResearchWeb/spheremean/)
-- units are angular degrees
new feature: named quaternion modulus values
-- print quaternion(1,0,0,0)%"matrix"
-- options include w x y z normal eulerzxz eulerzyz vector theta axisx axisy axisz axisangle matrix
new feature: set celShadingPower
-- sets strength of cel shading
-- integer values
-- default 10 is a thick line
-- 5 is a fine line
-- 0 turns cel shading off
-- negative value removes interior shading -- outline only
-- operates on pixel based on normal to light source (power > 0) or user (power < 0)
-- sets color to background contrast (black or white) when
normal_z < 1 - 2^-(|celShadingPower|/10)
new feature: mmCIF reading reports _citation.title in Jmol scripting console
new feature: minimize SELECT {atomset} ONLY
-- ONLY option excludes all other atoms
new feature: minimize {atomset}
-- implicit SELECT and ONLY
new feature: "extensions" directories in JSmol for contributed JS and SPT scripts
-- jsmol/js/ext
-- jsmol/spt/ext
new feature: load ... filter "ADDHYDROGENS"
-- local set pdbAddHydrogens just for one load command
new feature: compare {1.1} {2.1} BONDS SMILES
new feature: list = compare({atomset1} {atomset2} "SMILES" "BONDS")
new feature: list = compare({atomset1} {atomset2} SmartsString "BONDS")
new feature: write JSON xxx.json
new feature: [#210] JSON {"mol":...} reader
-- example (penicillin; no actual line breaks)
{"mol":{
"_is2D":false,
"_scale":{"x":1,"y":1,"z":1},
"a":[{"x":3.9236999,"y":-0.9222,"z":0.1835},{"x":3.2479,"y":-3.2106004,"z":0.3821},{"x":5.1731,"y":-1.3284999,"z":-0.24640003},{"x":4.4973,"y":-3.6169,"z":-0.0478},{"x":5.4598002,"y":-2.6759,"z":-0.3623},{"x":1.599,"y":-1.4203,"z":0.9663},{"x":-4.2137,"y":0.8188001,"z":2.5929},{"x":-5.7525997,"y":0.1604,"z":0.70350003},{"l":"H","x":-0.92130005,"y":-0.6858,"z":0.8503},{"x":2.961,"y":-1.8632,"z":0.49760002},{"l":"O","x":-4.989,"y":2.5026002,"z":-1.2333001},{"l":"O","x":-1.2756001,"y":1.6640999,"z":-1.9360001},{"l":"O","x":1.104,"y":-1.4738001,"z":-1.3405999},{"l":"O","x":-4.604,"y":3.4702,"z":0.7158},{"x":-4.4305005,"y":2.47,"z":-0.1623},{"x":0.68810004,"y":-1.2541,"z":-0.2227},{"x":-3.5391,"y":1.3063,"z":0.1875},{"x":-1.4742,"y":-0.7,"z":-1.1997},{"x":-1.8847001,"y":0.7218999,"z":-1.4753001},{"l":"H","x":-5.185,"y":4.1949,"z":0.44660002},{"l":"N","x":-0.5887,"y":-0.86149997,"z":-0.043799996},{"x":-2.9578,"y":-0.84800005,"z":-0.8823999},{"x":-4.298,"y":0.3443,"z":1.1408},{"l":"S","x":-3.3189998,"y":-1.1949,"z":0.8809},{"l":"N","x":-3.159,"y":0.59889996,"z":-1.0386},{"l":"H","x":-2.6423,"y":1.6747,"z":0.6855},{"l":"H","x":-3.5207,"y":-1.4693998,"z":-1.5789001},{"l":"H","x":-4.6569,"y":1.8111,"z":2.6771998},{"l":"H","x":-4.7551003,"y":0.123500004,"z":3.2344003},{"l":"H","x":-3.1692,"y":0.86,"z":2.9017},{"l":"H","x":-5.7794,"y":-0.2569,"z":-0.3031},{"l":"H","x":-6.2558002,"y":-0.5187,"z":1.3918},{"l":"H","x":-6.2588997,"y":1.1256,"z":0.71029997},{"l":"H","x":-1.1443,"y":-1.2523,"z":-2.0796},{"l":"H","x":1.1846,"y":-2.1707997,"z":1.6393999},{"l":"H","x":1.6871,"y":-0.46960002,"z":1.4921},{"l":"H","x":3.7012,"y":0.1303,"z":0.2784},{"l":"H","x":2.4957001,"y":-3.9457002,"z":0.62750006},{"l":"H","x":5.9251003,"y":-0.5933,"z":-0.4921},{"l":"H","x":4.7215,"y":-4.6695,"z":-0.13759999},{"l":"H","x":6.4357004,"y":-2.9933,"z":-0.6989}],
"b":[{"b":10,"e":14,"o":2},{"b":13,"e":14},{"b":14,"e":16},{"b":16,"e":24},{"b":16,"e":22},{"b":21,"e":24},{"b":18,"e":24},{"b":6,"e":22},{"b":7,"e":22},{"b":22,"e":23},{"b":21,"e":23},{"b":17,"e":21},{"b":17,"e":18},{"b":11,"e":18,"o":2},{"b":17,"e":20},{"b":15,"e":20},{"b":5,"e":15},{"b":12,"e":15,"o":2},{"b":5,"e":9},{"b":0,"e":9,"o":2},{"b":1,"e":9},{"b":0,"e":2},{"b":1,"e":3,"o":2},{"b":2,"e":4,"o":2},{"b":3,"e":4},{"b":13,"e":19},{"b":16,"e":25},{"b":21,"e":26},{"b":6,"e":27},{"b":6,"e":28},{"b":6,"e":29},{"b":7,"e":30},{"b":7,"e":31},{"b":7,"e":32},{"b":17,"e":33},{"b":8,"e":20},{"b":5,"e":34},{"b":5,"e":35},{"b":0,"e":36},{"b":1,"e":37},{"b":2,"e":38},{"b":3,"e":39},{"b":4,"e":40}]
}}
-- is2D will trigger minimization
-- scale indicates overall scaling present in the "a" records
new feature: set particleRadius
-- global radius for atoms over the max radius value (16.0)
-- defaults to 20.0
new feature: CIF and PDB filters "BYCHAIN" and "BYSYMOP" for virus particulation
-- creates just one atom per chain or per symop
-- size can be scaled larger than the max of 16 Angstroms using, for example:
set particleRadius 30;
spacefill 30; // any number over 16 here uses particleRadius instead
new feature: symop() function allows symmetry from biomolecule filter for PDB and mmCIF
new feature: isosurface SYMMETRY
-- applies symmetry operators to isosurface
-- more efficient rendering and creation
-- default selection is {symop=1} only
-- default coloring is to color by symop based on propertyColorScheme
-- example:
load 1stp filter "biomolecule 1"
color property symop
isosurface sa resolution 0.8 symmetry sasurface 0
new feature: new atom property: chainNo
-- sequentially from 1 for each model;
-- chainNo == 0 means "no chain" or chain = ''
new feature: new propertyColorScheme "friendly"
-- color-blindness-friendly color scheme
-- used at RCSD
-- example:
set propertyColorScheme "friendly"
color {chainNo > 0} property chainNo
new feature: JSpecView completely Java-free; includes 2D nmr and PDF printing of spectra
new feature: WRITE PDF "xxx.pdf" quality > 1 requests landscape mode
-- uses efficient custom PDF creation classes
-- sizes image to fit if too large
new feature: JSpecView adds PDF and 2D NMR for JavaScript
new feature: load "==xxx" FILTER "NOIDEAL"
-- chemical component load from PDB using the "nonideal" coordinate set
bug fix: write CD removed; ChemDoodle has changed formats; use JSON instead
bug fix: PDB and CIF files indicated assemblies such as PAU as large negative number
bug fix: COMPARE with no rotation starts infinite loop
bug fix: looping problem with delay(-1)
bug fix: Mouse wheeling for Chrome in JavaScript
bug fix: JavaScript popup menu fix for language changes
bug fix: JavaScript core components not being processed; Jmol._debugCode not recognized
bug fix: unitcell offset incorrectly for biomolecules; origin incorrect for axes.
bug fix: isosurface/mo FRONTONLY broken
bug fix: language localization broken in JavaScript
bug fix: ADF reader not reading MO output from DIRAC Build 201304052106
bug fix: Safari reports yellow Jmol info instead of asking to accept applet
--