bug fix: lcaocartoon @4 LONEPAIR "lp" not displaying dots
bug fix: lcaocartoon @4 RADICAL "lp" not displaying dots
bug fix: lcaocartoon DELETE does not delete radical or lone pair, only lobes
bug fix: early demo pages are back on line, by demand
https://chemapps.stolaf.edu/jmol/docs/examples-10.2/new.htm
https://chemapps.stolaf.edu/jmol/docs/examples-10.3/new.htm
https://chemapps.stolaf.edu/jmol/docs/examples-11/new.htm
https://chemapps.stolaf.edu/jmol/docs/examples-12/new.htm
bug fix: anisotropic bonding should not be able to be set for double bonds
bug fix: unit cell with set picking dragMolecule should not allow SHIFT-DRAG (z-shift)
bug fix: unit cell with set picking dragMolecule Should allow ALT-DRAG (rotate)
bug fix: {atoms}.within("unitcell") should relate to their own model's unit cell,
not just the currently visible one.
bug fix: Hall description of 252:_2 (Jmol mirror of nonstandard 254:_2 found as =ams/quartz 1)
-- was 152:a,b,c;0,0,-1/3 and p 31 2" (0 0 -4)
-- now 152:a,b,c;0,0,-1/3 and p 31 2" (0 0 4);
-- now a mirror image of quartz:
load =ams/quartz 1 packed
draw spacegroup all
a = {*}.fx.all
b = {*}.fy.all
{*}.fx = b
{*}.fy = a
calculate spacegroup
bug fix: SpaceGroupFinder not always finding group
-- idea of removing groups that when a
bug fix: matrix("20>>3") fails
-- logic bug in recursive subgroup search truncates the search early
-- should give:
$ print matrix("20>>3","map").indexPath
20>[2]>5>[2]>3
$ print matrix("230>>3","map").indexPath
230>[3]>142>[2]>70>[2]>15>[2]>5>[2]>3
bug fix: show CHEMICAL INCHIKEY should not include "inchikey="
bug fix/feature change: NCI/CADD resolver inchi call
-- switched to /file?format=stdinchi from /stdinchi
-- problem was noticed with conversion of SMILES to InChI.
bug fix: SHOW SYMOP 3 should show same as SHOW SYMOP 4 "label"
-- for =ams/quartz 1, should be "3(+) (0 0 -1/3) screw axis", not "null null 3(+) (0 0 -1/3) screw axis"
new feature: adds support for magnetic spin space groups (SSGs)
- alternative to magCIF
- reads preliminary scif ("spin CIF") files.
new feature: load xxx.scif FILTER "spinframe=-a+b,-a-2b,c"
- replaces value in CIF:
_space_group_spin.transform_spinframe_Pp_abc 'a+b,-a,c'
new feature: load filename fill SPIN
- fills the spin frame rather than the real frame
- just for showing spins in their frame
- experimental
new feature: unitcell("spin")
- returns the spin frame unit cell if an sCIF file was read
new feature: UNITCELL spin
- returns the spin frame unit cell in [center,a,b,c] format
new feature: (JavaScript only) InChI WASM upgraded to InChI 1.07
- switched to inchi-web.wasm, from the InChI-SwingJS project
- allows InChI to stereochemically correct structure
new feature: (Java only) JNI-InChI replaced with JNA-InChI
- maintained by Daniel Lowe and John Mayfield
- slower than JNI, but a much simpler interface
new feature: {*}.smiles()
- calculates SMILES for the selected atoms
new feature: <b>this</b> or <b>this.x</b>
- similar to <b>all</b>, but limited to only atoms in frames currently visible
- same as {thisModel}.x (which still may be more than one model)
new feature: (JmolSwingJS only, not legacy) smilesString.inchi("ocl")
- uses the OpenChemLibrary to directly convert smiles strings to InChI.
- legacy still uses NCI/CADD CIR
new feature: {*}.inchi("model") or smiles.inchi("model") or inchi.inchi("model")
- returns a map of the internal InChI ouput model, include keys "atoms", "bonds", and "stereo"
- If {*} or SMILES is used, this model will have 3D coordinates
- If a SMILES string is used, a MOL file equivalent will be created from
new feature: {*}.inchi("ocl model") or smiles.inchi("model") or inchi.inchi("model")
- returns a map of the internal InChI ouput model, include keys "atoms", "bonds", and "stereo"
new feature: matrix4.rxyz
-- 3x4 (rotation|translation) representation of 4x4 rotation-translation matrices
-- generates rational fractions only for exact 48ths; other values are left as decimals
-- works with symop() when result is a 4x4 matrix or a list of 4x4 matrices
$ print matrix("x,y,z;1/2,1/3,1/4")
[
[1.0 0.0 0.0 0.5]
[0.0 1.0 0.0 0.3333333333333333]
[0.0 0.0 1.0 0.25]
[0.0 0.0 0.0 1.0] ]
$ print matrix("x,y,z;1/2,1/3,1/4").rxyz
(
1 0 0 | 1/2
0 1 0 | 1/3
0 0 1 | 1/4
)
$ load =ams/quartz 1 packed
$ print symop(3, "xyz")
-y,x-y,z-1/3
$ print symop(3).rxyz
(
0 -1 0 | 0
1 -1 0 | 0
0 0 1 | -1/3
)
new feature: matrix(...,"rxyz")
-- same as matrix(...).rxyz
$ print matrix("x,x-y,z;1/2,1/3,1/4", "rxyz")
(
1 0 0 | 1/2
1 -1 0 | 1/3
0 0 1 | 1/4
)
new feature: symop(...,"rxyz")
-- same as symop(...).rxyz
$ load =ams/quartz 1 packed
$ print symop(3, "xyz")
-y,x-y,z-1/3
$ print symop(3, "rxyz")
(
0 -1 0 | 0
1 -1 0 | 0
0 0 1 | -1/3
)