Jmol 14.6.0 has been released.
*Download Jmol-14.6.0_2016.05.17-binary.zip (66.2 MB)
<https://sourceforge.net/projects/jmol/files/latest/download?source=files>*
Full list of new features includes:
Jmol.___JmolVersion="14.6.0_2016.05.17"
new feature: full implementation of OpenSMILES and OpenSMARTS in Jmol
new feature: C13 NMR prediction from
http://www.nmrdb.org/service/jsmol13c?smiles=CCCC
-- although we send MOL file, not SMILES here.
-- actuated with
SHOW NMR H1 // H1 1H H or just SHOW NMR all default to this
SHOW NMR C13 // or C or 13C
SHOW NMR none // close JSpecView
(this is in the Jmol Application, not the HTML5 application)
new feature: Jmol now implements a way of indicating atropisomer chirality.
-- measured dihedral angle is clockwise-positive front-to-back, as for
Jmol dihedrals
-- matching with {*}.find("SMILES","...a^nm-a...") where n and m are 1, 2,
or 3
indicate first, second, or third, respectively, and indicate which
bonds of
the biaryl bond, as written, are to the reference atoms.
-- for example:
$ load $biphenol
$ connect @{@7|@8} @{@1|@2} atropisomer
$ print {*}.find("SMARTS","c1(O)ccccc1^23-c2c(O)cccc2")
({0:13})
Explained below.
new feature: CONNECT {pair1} {pair2} ATROPISOMER
-- creates a new bond of type atropisomer (bond chirality in biaryl
systems)
-- each pair must include the bonded atom and its reference connected atom
-- example:
$ load $biphenol
$ connect @{@7|@8} @{@1|@2} atropisomer
$ getProperty bondinfo[7].type
bondinfo[7].type "atropisomer_23"
new feature: BONDORDER ATROPISOMER_nm
-- not for general use; will be found in state file
-- for example:
select BONDS ({6});
bondOrder atropisomer_23;
new feature: Jmol SMILES bond atropisomerism ^nm- and ^^nm-
-- indicates atropisomerism (bond chirality in biaryl systems)
-- ^ and ^^ for bonds similar to @ and and @@ for atoms
-- n and m are single-digit bond selectors, generally one of 1, 2, or 3
-- n = 1/2/3 means "reference atom is first/second/third bonded
-- ^- and ^^- same as ^22- and ^^22-, respectively
-- example:
$ load $biphenol
$ connect @{@7|@8} @{@1|@2} atropisomer
$ print {*}.find("SMARTS","c1(O)cccc{c1^23-c2}c(O)cccc2")
({1 6})
Here the "^23-" refers to the two carbons with connected oxygen atoms,
because the second
bond listed for the carbon on the left is to the c1(O) atom, and the
third bond listed for
the carbon on the right is to the other c(O) atom. Note that bond
numbering includes the
implicit bond to the atom coming from the atom on its left, which for the
second carbon,
starts with the atropisomeric bond itself, at least in this case.
1*23 1*23
c1(O)ccccc1^23-c2c(O)cccc2
new feature: (JavaScript) Jmol.loadFileFromDialog(jmolApplet0)
-- asynchronous file loading on demand
-- can be model file, but can also be script, dssr data - anything
-- can be a local file or a URL
-- see dssr.htm
-- for example:
Jmol.jmolButton("jmolApplet0",
[function(){Jmol.loadFileFromDialog(jmolApplet0)}],"Open File")
new feature: setting DSSR on the fly:
model 1 property dssr "1d66.dssr" // file containing data
model 1 property dssr @{load("1d66.dssr")} // actual data
select iloops
new feature: show chemical xxx where xxx is one of the file types:
alc cdxml cerius charmm cif cml ctx gjf gromacs hyperchem jme
maestro mol mol2 sybyl2 mrv pdb sdf sdf3000 sln smiles xyz
retrieves this information for the currently selected set of atoms
from the the NCI CACTVS Resolver.
Note that the PDB writer is nonstandard, and "SDF" no longer returns
the 2D mol file, only the 3D mol file.
Can be used as the show() function: x = show("chemical jme")
new feature: print {*}.find("SMILES/hydrogen/") adds hydrogen atoms
feature note: JSME upgraded to JSME_2015-12-06-2
FEATURE CHANGE: Jmol 14.5.4_2016.04.23 by default will implement DSSP 2.0
as described in
Int. J. Mol. Sci. 2014, 15, 7841-7864;
doi:10.3390/ijms15057841
and implemented at http://www.cmbi.ru.nl/dssp.html.
This change only affects helices that have bulges,
indicating them
more appropriately as pi helices rather than alpha
helices.
The original version of DSSP, "DSSP 1.0" will be available
using
calculate structure DSSP 1.0
show DSSP 1.0
load ... filter "DSSP1"
This change is for 14.5 only, not 14.4, which remains DSSP
1.0
new feature: preliminary MMTF reader
-- MacroMolecular Transmission Format (MMTF, from RTSB)
-- see https://github.com/rcsb/mmtf/blob/master/spec.md#overview
-- binary format for file transfer and molecule construction
-- uses MessagePack binary JSON format
-- entirely experimental; not for general consumption
-- biomolecule processing works
-- DSSP secondary structure is read
*
* JmolData RCSB MMTF (macromolecular transmission format) file reader
*
* see https://github.com/rcsb/mmtf/blob/master/spec.md
*
* /full/ specification as of 2016.4.18 is implemented,including:
*
* reading atoms, bonds, and DSSR secondary structure
*
* load =1f88.mmtf
*
*
* reading space groups and unit cells, and using those as per other readers
*
* load =1crn.mmtf {1 1 1}
*
* reading bioassemblies (biomolecules) and applying those transformations
*
* load =1auy.mmtf FILTER "biomolecule 1;*.CA,*.P"
*
* reading biomolecules and lattices, and loading course-grained
*
* load =1auy.mmtf {2 2 1} filter "biomolecule 1;bychain";spacefill 30.0;
color property symop
*
*
new feature: set window width height
new feature: set window [width height]
new feature: set window "xxx.png"
-- allows programmatic setting of window size (app only)
new feature: getProperty("shapeInfo.echo")
-- a 1-length array (because all shapeInfo results are arrays
-- shapeInfo.echo[0] contains an associative array based on echo names
-- currently only include keys name, imageWidth, imageHeight, and imageFile
$ set echo myecho image '
http://noys3.weizmann.ac.il/a2jb/browse?sn=testSet/dna-a/pymol.png'
$ print getProperty("shapeInfo.echo[0]")
{
"myecho" :
{
"imageFile" : "
http://noys3.weizmann.ac.il/a2jb/browse?sn=testSet/dna-a/pymol.png"
"imageHeight" : 500
"imageWidth" : 500
"name" : "myecho"
}
}
-- idea is to allow access to image dimensions for any file image
-- for example, for a MacPyMOL session file, because those do not contain
width and height information,
we don't have the width and height we need to recreate the model window
and associated Jmol image,
but we can also read the associated PyMOL-generated PNG file and get
the dimensions that way
load 'xxxx.pse' filter 'DORESIZE;DOCACHE'
set echo myecho image 'xxxx.png'
var a = getProperty('shapeInfo.echo[0].myecho')
set echo myecho off
write PNGJ @{a.imageWidth} @{a.imageHeight} 'xxxx-jmol.png'
thus temporarily loading the PyMOL image just long enough to get its
dimensions; not actually viewing it
new feature: "$isosurface1".getProperty("atoms")
-- returns atoms associated with this surface
-- for example, the atoms used to make a molecular surface
new feature: show xxx /yyy
-- filters any SHOW command for lines containing "yyy" (case insensitive)
-- examples:
$ show symop/glide
$ show set/zoom
$ show state/draw
$ show file "test.xyz" /H
$ show file "/remark 900"
$ show variables/sym
FEATURE NOTE: Jmol now has a RELATIVELY COMPLETE set of analysis and
visualization
tools for space group symmetry. All standard and magnetic space group
operations
are covered. Features are concentrated in four command options and one
function:
LOAD .... SPACEGROUP .... UNITCELL ....
SHOW SYMOP ....
DRAW SYMOP ....
DRAW POINTGROUP SPACEGROUP
x = symop(....)
With these features, you can:
-- load any model while applying any actual or conceivable space group
or subset of a space group
-- tabulate all space group operations associated with that model
-- retrieve an associative array indicating all aspects of the
operation, including
point, rotation axis, plane, glide vector, lattice offset vector, and
4x4 matrix
-- visualize all aspects of an operation, including proper and improper
rotations
inversion centers, mirror planes, glide planes, translations, and
magnetic spin time reversal
-- apply any operation to any atom or any point in space
-- given any combination of two atoms or two points in space, determine
and/or
depict the operation(s) that relate those to atoms or positions
new feature: symop(3,@3,"atom")
-- returns target atom or atoms
new feature: show symop 3 @3 "atom"
-- shows target atom or atoms
new feature: symop() options:
symop(op)
-- returns the 4x4 matrix representation of this operator
symop(op, atom)
-- returns the point generated by operator op on atom
-- op may be a positive or negative integer indictating the operation
(or its reverse)
to apply from the loaded space group -- for example, symop(3, @1) or
symop(-4, {atomindex=16})
-- op may be a string such as "x+1/2,1/2-y,z" representing a specific
generic operation
symop(atom1, atom2)
-- returns the description of the first of possibly several operations
that take atom1 to atom2, for example:
"2-fold screw axis|translation: 1/2 0 0"
symop(atom1, atom2, n)
-- returns the description of the nth operation that takes atom1 to
atom2
symop(...point...)
-- any place an atom can be used in symop(), one can substitute an xyz
coordinate.
-- for example, symop(@1, {1/2 1/2 1/2})
{atomset}.symop(...)
-- when more than one model is loaded, prepending any symop function
with an atom set specifies which
atoms, space group, and unit cell are being referenced. For example,
{2.1}.symop(5) operates only on
atoms in the first model of the second loaded file, using the
appropriate space group and unit cell.
In this way, "@1" will designate one atom only, provided only one
model is showing (using the FRAME/MODEL command).
If only one model has been loaded, there is no need to use this
syntax; symop(...) will do the same.
symop(..., outputType)
-- All uses of symop() and {atomset}.symop() can be extended using a
final parameter that
changes the default output described above to be something else.
Options for outputType include:
"draw" Returns the Jmol script illustrating this operation with
DRAW commands.
$ print symop(3,"draw")
draw ID draw_* delete
draw ID draw_frame1X diameter 0.15{5.5172 1.9683 2.7802}{6.5172
1.9683 2.7802} color red
...
"full" Returns the tab-separated Jones-Faithful string and
descriptor for this operation.
$ print symop(3,"full")
-x,-y,-z(mx,my,mz) Ci: 0 0 0
"lattice" Returns the lattice type associated with the space group
involving this operation.
"list" Specifically when two atoms or points are specified, returns
a string list of all operations
taking the first to the second.
$ print symop(@3,@21,"list")
5 x+1/2,-y+1/2,-z+1/2(-mx,my,mz) 2-fold screw
axis|translation: 1/2 0 0|time-reversed
7 -x+1/2,y+1/2,z+1/2(-mx,my,mz) n-glide
plane|translation: 0 1/2 1/2|time-reversed
Note that this string can be turned into a standard array
using .lines.split("\t",true):
$ print symop(@3,@21,"list").lines.split("\t",true)
[
5
x+1/2,-y+1/2,-z+1/2(-mx,my,mz)
2-fold screw axis|translation: 1/2 0 0|time-reversed
]
[
7
-x+1/2,y+1/2,z+1/2(-mx,my,mz)
n-glide plane|translation: 0 1/2 1/2|time-reversed
]
"array" Returns an associative array that contains critical
information relating to this operation.
$ load =magndata/0.34
$ print symop(3,"array")
{
"inversionCenter" : {0.0 0.0 0.0}
"label" : "Ci: 0 0 0"
"matrix" :
[
[-1.0, 0.0, 0.0, 0.0]
[0.0, -1.0, 0.0, 0.0]
[0.0, 0.0, -1.0, 0.0]
[0.0, 0.0, 0.0, 1.0] ]
"timeReversal" : 1
"xyz" : "-x,-y,-z(mx,my,mz)"
"xyzOriginal" : "-x,-y,-z,m"
}
In addition, all possible keys of this array may be used as well for
outputType. These include:
"axisVector", "cartesianTranslation", "centeringVector",
"fractionalTranslation",
"inversionCenter", "label", "matrix", "plane", "rotationAngle",
"timeReversal", "unitTranslation", "xyz", and "xyzOriginal"
Three of these that may be less than obvious are explained below:
"centeringVector" For operations that are pure lattice translations,
returns the vector
for this centering in fractional coordinates.
"timeReversal" This quantity is 0 for standard space groups.
Magnetic space group
operations also include the possibility of
inversion of the spin
along with any 3D symmetry operation. This
inversion characteristic
is referred to as "time reversal" and takes the
value of 1 or -1.
"unitTranslation" Symmetry operations involving two atoms may include
an extra
lattice translation if the two atoms are in
different unit cells.
This translation is above and beyond any fractional
lattice centering
that this operator incorporates for a face- or
body-centered space group.
new feature: show spacegroup/xxxxx
-- selects lines from a space group report similar to the way show
state/xxxx works
-- example:
load =ams/quartz 1
show spacegroup/Class
new feature: show/draw symop @1 @2
-- gives full list of matching symmetry operations
-- example:
$ load =magndata/1.23 {444 555 1} packed
$ show symop @153 @299
1 x+2,y,z2(mx,my,mz) translation: 2 0 -2
5 -x,-y,-z(mx,my,mz) Ci: 0 0 0
11 x+2,-y,-z(-mx,my,mz) 2-fold screw axis|translation: 2 0
0|time-reversed
15 -x,y,z2(-mx,my,mz) c-glide plane|translation: 0 0
-2|time-reversed
new feature: show/draw symop @1 @2 n
-- shows or draws the nth symmetry operation relating atom 1 to atom 2
-- example:
$ load =magndata/1.23 {444 555 1} packed
$ show symop @153 @299 3
11 x+2,-y,-z(-mx,my,mz) 2-fold screw axis|translation: 2 0
0|time-reversed
new feature: print pointgroup("spacegroup", @1)
-- analyzes the point group (crystal class) of a crystal.
-- uses three irrational-coordinate points to generate all possible
operators
-- creates a map with keys (somewhat variable depending upon axes present):
C2
C3
Ci
Cs
S6
detail
distanceTolerance
linearTolerance
nAtoms
nC2
nC3
nCi
nCn
nCs
nS6
nSn
nTotal
name
points
principalAxis
new feature: draw SPACEGROUP
-- draws all operations in space group
new feature: draw POINTGROUP SPACEGROUP
-- draws crystal class symmetry operations for a space group
-- uses point group style, with circular planes
new feature: @1.find("crystalClass", pt)
-- generates a list of points based on a model's crystal class (point
group)
-- uses @1 just to find the unit cell and space group
-- optional pt is used as a generator (defaults to @1)
-- example:
load =ams/calcite 1
x = @3.find("crystalClass")
print pointgroup(x).name
draw points @x
polyhedra ID p {0 0 0} to @x
new feature: adds SHOW SMILES/bio and {*}.find("SMILES/bio") options:
/bio Jmol bioSMILES with header and chain comments
/bionocomments no chain comments (but still one header with comments)
/bioatomcomments full atom comments
/biocovalent indicates covalent S-S crosslinking using ":" notation
/biohbond indicates hydrogen bonds using ":" notation
/biounmatched allows unmatched rings
new feature: SMILES/nonaromatic same as SMILES/noaromatic
new feature: Polyhedra command allows for min and max radius
-- polyhedra 2.8 3.0 @3
new feature: moveto AXIS <a|b|c|-a|-b|-c> coupled with <1|2|3|4>
-- indicates direction of axis ("-a" indicates "a pointing away")
-- and clockwise position 1(top left), 2(top right), 3(bottom right), and
4(bottom left)
-- defaults a == a1, b == -b1, c == c4
-- slight modification of what was released in 03.21
new feature: x.bin() method allows return of an array listing both the
bound and the count
-- example:
$ print {*}.bonds.length.all.bin(1,2,0.1,TRUE).format("json")
[ [ 1.0,10.0 ],[ 1.1,0.0 ],[ 1.2,0.0 ],[ 1.3,3.0 ],[ 1.4,2.0 ],[
1.5,1.0 ],[ 1.6,0.0 ],[ 1.7,0.0 ],[ 1.8,0.0 ],[ 1.9000001,0.0 ] ]
new feature: load =magndata/1.1.37
-- links to the MAGNDATA database at http://webbdcrista1.ehu.es/magndata
-- "magndata", "http://webbdcrista1.ehu.es/magndata/mcif/%FILE.mcif",
new feature: set vectorTrail n
-- adds a trail onto a modulating vector (as for an incommensurate
magnetic spin)
-- n trails are made, typically in a fan-like pattern that trails the
spinning vector
load =magndata/1.1.37
set vectortrace 20
set vibrationperiod 2
vibration on
new feature: unitcell ON adds #nnn (international table number) to cell
description if found
new feature: axes OFFSET x.x
-- applies offset of x.x in fractional coordinates in each axis direction
-- AXES OFFSET -0.1 same as AXES CENTER {-0.1 -0.1 -0.1/1}
new feature: expanded unitcell() function
-- adds additional types: "A", "B", "C", "I", "F"
-- default is the lattice type of the model's space group
-- not just cubic; "BCC" is converted to "I"
-- for example:
load =ams/silicon 15 packed // Cmca
draw id "uc" diameter 0.1 unitcell mesh nofill color black
unitcell @{unitcell("primitive")}
color unitcell red
unitcell 0.1
axes unitcell
axes on
new feature: expanded UNITCELL command to include PRIMITIVE option for any
space group
new feature: polyhedra POINTS x.y
-- adds variable size spherical points at corners of polyhedra
-- color is that of element, or black
new feature: show SMILES/xxxx
-- xxxx = open, strict, openstrict, mmff94
new feature: show chemical NAME
-- singular "name" gives just the first name; "names" gives full list
new feature: full implementation of OpenSMILES aromatic model
new feature: {*}.find("SMILES/open")
-- generates OpenSMILES string for selected atoms
-- applies OpenSMILES aromaticity rules for 5-, 6-, and 7-membered rings
-- not chemical -- allows exocyclic c=C bonds and [nH] in 6-membered rings
-- also adds atom class if property_atomClass is nonzero
-- for example:
$ load $2-butanol
$ @2.property_atomclass=2
$ @3.property_atomclass=3
$ @5.property_atomclass=5
$ print {*}.find("smiles/open")
C[C@H:2]([OH:5])[CH2:3]C
new feature: /open option for smiles.find("SMILES", pattern)
-- applies OpenSMILES model of aromaticity
-- finds aromaticity-normalized pattern "in" aromaticity-normalized smiles
-- can be after SMILES or as beginning of pattern
$ print "OC1=CC(N)=CC=C1".find("SMILES","NC1=CC(O)=CC=C1")
0
$ print "OC1=CC(N)=CC=C1".find("SMILES/open","NC1=CC(O)=CC=C1")
8
$ print "OC1=CC(N)=CC=C1".find("SMILES","/open/NC1=CC(O)=CC=C1")
8
new feature: compare("smile1","/open/smiles2")
-- applies OpenSMILES model of aromaticity
-- checks for match of atom class if present (default value 0 matches "not
present")
-- does aromaticity normalization on both strings
$ print compare("OC1=CC(N)=CC=C1", "NC1=CC(O)=CC=C1", "isomer")
CONSTITUTIONAL ISOMERS
$ print compare("OC1=CC(N)=CC=C1", "/open/NC1=CC(O)=CC=C1", "isomer")
IDENTICAL
new feature: {*}.find("SMILES/strict")
-- generates OpenSMILES string for selected atoms
-- applies standard Hueckel aromaticity rules for 5-, 6-, and 7-membered
rings
-- does not allow exocyclic c=C bonds or [nH] in 6-membered rings
-- does not create atom classes
-- also for compare() and search()
new feature: {*}.find("SMILES/open strict")
-- same as just /strict, but also generates atom classes if present as
property_atomClass
-- also for compare() and search()
new feature: {*}.find("SMILES/mmff94")
-- applies a very STRICT, chemically meaningful Hueckel 4+2 Rule
-- adds allowance for only a 1-electron contribution to 6-membered rings
(three double bonds)
-- also for compare() and search()
new feature: optional processing of OpenSMILES [CH2:002] ":<n>" atom class.
-- positive integer value only
-- checks the atom property property_atomclass
-- for SMARTS, [:0] means "without an atomclass"
-- for SMARTS, [!:0] means "any non-zero atomclass"
-- for SMARTS, same as [$(select property_atomclass=n)]
-- only enabled with Jmol SMILES directive "/open/"; otherwise ignored
-- for example:
$ load $2-butanol
$ show smiles
C[C@H](O)CC
$ @2.property_atomclass=2
$ @3.property_atomclass=3
$ @5.property_atomclass=5
$ select *
15 atoms selected
$ select on search("/open/[:3]")
1 atoms selected
$ select on search("/open/[!:3]")
14 atoms selected
$ select on search("/open/[:0]")
12 atoms selected
$ select on search("/open/[!:0]")
3 atoms selected
$ select on search("/open/[!:3 & !:0]")
2 atoms selected
new feature: UNITCELL TRANSFORM @m4x4
-- direct 4x4 matrix transformation of a unit cell
new feature: calculate symmetry polyhedra {atomset}
-- selectively calculates polyhedra.
-- for example: calculate symmetry polyhedra {polyhedra(4)}
new feature: calculate symmetry polyhedra id
-- selectively calculates polyhedra for a given ID.
-- for example: calculate symmetry polyhedra "poly1"
new feature: atom set can be specified in polyhedra() function:
-- print {2.1}.polyhedra(3)
-- print {2.1}.polyhedra("....polySMILES string...")
new feature: WRITE MOL67 xxx.mol
-- writes MOL format with bonds of type 6 or 7 (aromatic single/double;
rarely significant)
new feature: (JSmol) standard InChI generator (see inchi.htm, inchi/*)
-- JavaScript library for generation of InChIs
-- runs completely in JavaScript
-- equivalent to SHOW CHEMICAL stdinchi
-- about 900 KB
FEATURE CHANGE: JSmol default for Info._disableInitialConsole changed to
true
-- no longer necessary with JSmol_spinner.gif
new feature: j2s/img/JSmol_spinner.gif implemented (Angel Herraez)
-- as default for Info._appletLoadingImage
-- use Info._appletLoadingImage = "none" to disable
new feature: j2s/img/cursor_wait.gif animation implemented
new feature: invertselected ATOMS {ring atoms to invert}
-- inverts ring stereochemistry
-- requires prior selection of all atoms to be involved in the inversion
new feature: isosurface BACKSHELL
-- displays just the back side of an isosurface
-- works by reversing the normals, then showing front only
-- similar to isosurface slab 50, but better if object is far from
spherical
-- works with PMESH, MO, CONTACT as well
-- reverted using isosurface NOBACKSHELL
new feature: isosurface "*xxxx"
-- accesses EBI test site for ED maps at
http://wwwdev.ebi.ac.uk/pdbe/coordinates/files/%file.ccp4
-- uses default sigma 1.0
new feature: isosurface "**xxxx"
-- accesses EBI test site for ED difference maps at
http://wwwdev.ebi.ac.uk/pdbe/coordinates/files/%file_diff.ccp4
-- uses default sigma 3.0
FEATURE NOTE: Prior to this version if the MO command was issued after use
of
rotateSelected, the orbitals were calculated improperly,
because the
basis functions always must be applied for the original file
coordinate
frame, not the rotated frame. In addition, if MOs were
calculated prior to
use of rotateSelected or translateSelected, then they would
not "track"
with the modified atom positions. So MOs and
rotate/translateSelected
were completely incompatible. Jmol 14.4.2 fixes this issue.
It should be
possible now to produce correct MOs before or after use of
rotateSelected.
Note that ALL atoms in a specified model must be moved in
order for this
tracking of MOs to take place. This functionality was
introduced in
14.4.1_2016.01.28, but that version (never released) does not
properly
check to see that ALL the atoms in a model have been involved
in the rotation.
FEATURE NOTE: If rotateSelected or translateSelected is used to move all
atoms in a
model, and after that the state is saved, then Jmol 14.4.2
will save a state that is not readable in 14.4.1. This is
necessary
because of the added FRAME ORIENTATION command, which is used
in the states
to indicate the relationship of a model to its file
coordinates. The MO
reader requires this so that it can rotate the coordinates
back to their
original position prior to doing its calculation.
new feature: variable _versionDate
$ show _versionDate
_versionDate = "14.4.1_2016.01.16 2016-01-15 17:25"
new feature: x = pointgroup([array of points],center)
-- center is optional, defaulting to average of the points
-- returns a map:
pts = [ {-1.0132 0.585 0.0012999999},{1.0132 0.585 0.0012999999},{0.0
-1.17 0.0012999999} ]
print pointgroup(pts,{0 0 0})
{
"C2" :
[
{0.8660127 -0.50001717 0.0022222984}
{-0.8660127 -0.50001717 0.0022222984}
{0.0 0.99999756 0.002222217}
]
"C3" :
[
{0.0019245904 -0.0011111083 -0.99999756}
]
"Cs" :
[
{0.0019245904 -0.0011111085 -0.99999756}
{-0.49998164 -0.866036 0.0}
{0.49998164 -0.866036 0.0}
{1.0 0.0 0.0}
]
"S3" :
[
{0.0019245904 -0.0011111083 -0.99999756}
]
"center" : {0.0 0.0 0.0}
"detail" : "# 3 atoms;"
"distanceTolerance" : 0.2
"linearTolerance" : 8.0
"nAtoms" : 3
"nC2" : 3
"nC3" : 1
"nCi" : 0
"nCn" : 4
"nCs" : 4
"nS3" : 1
"nSn" : 1
"nTotal" : 12
"name" : "D3h"
"principalAxis" : {0.0019245904 -0.0011111083 -0.99999756}
"principalPlane" : {0.0019245904 -0.0011111085 -0.99999756}
}
new feature: "#_DOCACHE_" suffix for file name loading tells Jmol to insert
full structure into any state
-- allows SPT files to preserve the original file (as in all PNGJ files)
-- for example:
load caffeine.xyz#_DOCACHE_
show state
...
function _setFileState() {
DATA "file_caffeine.xyz#_DOCACHE_"
24
N 1.31200 -1.04790 0.00250
C 2.24650 -2.17620 0.00310
...
H -4.16720 -0.83950 0.51680
END "file_caffeine.xyz#_DOCACHE_";
...
load /*file*/"c:/jmol-dev/bobtest/caffeine.xyz#_DOCACHE_";
}
...
-- repeated calls to caffeine.xyz#_DOCACHE_ use the cached version, not
the actual file
-- calls to caffeine.xyz still ignore the cache.
-- also addded to Jmol 14.4.0, but left undocumented
new feature: load =ams loads data from American Mineralogist Crystal
Structure Database
-- many thanks given to Robert Downs and Alex Pires for enabling this
functionality.
-- fetches data from http://rruff.geo.arizona.edu/AMS
-- employs "#_DOCACHE_" flag because some of these data files may change
after database maintenance
-- three modes. Only the first, using _database_code_amcsd, is guaranteed
to be stable over time,
=ams/<nnnnnnn> (seven-digit database code) loads that specific
structure based on _database_code_amcsd
load =ams/0014673
show _modelfile
_modelfile = "
http://rruff.geo.arizona.edu/AMS/viewJmol.php?amcsd=14673&action=showcif#_DOCACHE_
"
=ams/<nnnnn> (less than seven-digit id) loads that specific structure
based on sequential id code
load =ams/10000
show _modelfile
_modelfile = "
http://rruff.geo.arizona.edu/AMS/viewJmol.php?id=10000&action=showcif#_DOCACHE_"
=ams/<mineralName> loads all structures for a specified named mineral.
load =ams/diamond
show _modelfile
_modelfile = "
http://rruff.geo.arizona.edu/AMS/viewJmol.php?mineral=diamond&action=showcif#_DOCACHE_
"
-- thus, all of the following are equivalent as of 12/13/2015:
load =ams/0008986
load =ams/10000
load =ams/srilankite 4
However, it is possible that new structures will be added to
srilankite, making
this not the fourth structure, and the five-digit code 10000 can
change after
database maintenance.
-- also addded to Jmol 14.4.0, but left undocumented
new feature: drawing of spheres in 2D window
-- as percent position or absolute, as for ECHO
-- diameter is % if position is %; otherwise it is pixels
-- examples:
draw d1 diameter 5 [90 90 %] color blue // percent position; 5%
diameter
draw d2 diameter 15 [90 90] color blue // absolute position; 15-pixel
diameter
draw dO diameter 2 [80 90 %] color @{ {_O}.color }
set echo eO [95 90 %]; echo "O"
-- can be used in the context of an element key:
background white
load $caffeine
function createElementKey() {
var y = 90
for (var e in {*}.element.pivot){
var c = {element=@e}.color
draw ID @{"d_"+ e} diameter 2 [90 @y %] color @c
set echo ID @{"e_" + e} [91 @{y-1} %]
echo @e
font echo 24 bold sansserif
color echo black
y -= 5
}
}
createElementKey
new feature: additional predefined sets for periodic table:
"@nonmetal
_H,_He,_B,_C,_N,_O,_F,_Ne,_Si,_P,_S,_Cl,_Ar,_As,_Se,_Br,_Kr,_Te,_I,_Xe,_At,_Rn",
"@metal !nonmetal",
"@alkaliMetal _Li,_Na,_K,_Rb,_Cs,_Fr",
"@alkalineEarth _Be,_Mg,_Ca,_Sr,_Ba,_Ra",
"@nobleGas _He,_Ne,_Ar,_Kr,_Xe,_Rn",
"@metalloid _B,_Si,_Ge,_As,_Sb,_Te",
"@transitionMetal
elemno>=21&elemno<=30|elemno>=39&elemno<=48|elemno>=72&elemno<=80|elemno>=104&elemno<=112",
"@lanthanide elemno>=57&elemno<=71",
"@actinide elemno>=89&elemno<=103",
-- useful for removal of metal-metal bonds in inorganic systems
and for specifying polyhedra:
connect {metal} {metal} delete
polyhedra bonds {metal}
new feature: polyhedra ID xxx SCALE x.x
-- ID named polyhedra only
-- x.x is the scaling factor, initially 1
-- x.x > 0 does normal scaling
-- x.x < 0 does "explode" from {0 0 0} (for higher-order Brillouin zones,
for instance)
FEATURE CHANGE: (Application only for now) PDB default for =xxxx
-- changed to
"pdb", "
http://ftp.wwpdb.org/pub/pdb/data/structures/divided/pdb/%c2%c3/pdb%file.ent.gz
"
-- will be complemented with file.ent for non-binary transfer, but that
is not implemented yet at RCSB
-- mmCIF counterpart not implemented yet.
-- not HTML5 because for that we need the option to remove .gz
new feature: set testflag3 TRUE gives random triangle effect to polyhedra
new feature: POLYHEDRON ID "xxx" OFFSET {3 3 3}
-- allows cartesian offset of named polyhedra
new feature: (JSmol) adding access-allow-origin status for cdn.rcsb.org and
ftp.wwpdb.org.
new feature: polyhedra with arbitrary center and vertices, without atom
center
-- for example:
polyhedra ID "myid" {0 0 0} TO [{1 0 0}, {0 1 0}, {0 0 1}, {-1 -1 -1}]
new feature: x = within(0.01, [array of points])
-- cleans points of duplicates with a tolerance of 0.001 Angstroms
-- allows multiple pmesh faces to be turned into polyhedra using:
faces = []
for (var i = 1; i <= nPlanes; i++) {
var f = ("$f" + i).getProperty("face")
faces.push(f)
}
polyhedra @1 to @{within(0.01, faces.join())} color white
new feature: $pmeshID.getProperty("faces")
-- returns an array of points
-- cleaned so that it is one point per linear edge, regardless of how
it has been slabbed
new feature: resolution 0.001 with PMESH and ISOSURFACE planes
-- allows for minimum number of triangles.
NOTE: GoDaddy's inadvertent forcing of revocation of the secure certificate
for Jmol
has disabled ALL applets created since Oct 15, 2014. This is a
mandatory upgrade.
JmolVersion="14.4.0_2015.10.13"
--
Robert M. Hanson
Larson-Anderson Professor of Chemistry
Chair, Department of Chemistry
St. Olaf College
Northfield, MN
http://www.stolaf.edu/people/hansonr
If nature does not answer first what we want,
it is better to take what answer we get.
-- Josiah Willard Gibbs, Lecture XXX, Monday, February 5, 1900
------------------------------------------------------------------------------
Mobile security can be enabling, not merely restricting. Employees who
bring their own devices (BYOD) to work are irked by the imposition of MDM
restrictions. Mobile Device Manager Plus allows you to control only the
apps on BYO-devices by containerizing them, leaving personal data untouched!
https://ad.doubleclick.net/ddm/clk/304595813;131938128;j
_______________________________________________
Jmol-users mailing list
Jmol-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jmol-users