📄 changes.txt
字号:
# code: mouse manager refactoring
# bug fix: picking off structure did not clear picking for set picking spin
# bug fix: jmolScriptWait() improperly reporting to applet console
# bug fix: too many messages to applet console
#
# Note: planes, axisAngles, and quaternions are all saved as Token.point4f
# axisAngle() and quaternion() are both processed to quaternion format
# {x y z w} where w = cos(theta/2) and {x y z} = sin(theta/2)*unitNormal
# quaternions are always fixed so that cos(theta/2) > 0 -- that is, so that
# the reported theta (q %-2) is in the range [0, 180]
# This is important. One can also get a directed theta based on a
# specified axis using q % {x y z w}. w is ignored; x y z is the
# axis to dot with the quaternion normal in order to switch the
# sign of theta if that value is negative.
#
# new feature: show atom(s)
# new feature: show group(s)
# new feature: show selected
# new feature: draw {point} {plane}
# new feature: draw vector {point} {plane}
# new feature: draw arrow {point} {plane}
# new feature: q = axisAngle({x y z}, theta)
# new feature: q = axisAngle(x, y, z, theta)
# new feature: q = axisAngle("{x y x theta}")
# new feature: q = quaternion("{x y z w}")
# new feature: rotate @{quaternion(....)}
# new feature: rotate @{axisAngle(....)}
# new feature: rotate quaternion {x y z w}
# new feature: rotate axisAngle {x y z theta}
# new feature: {point1} == {point2} if distance < 0.000001
# new feature: {quaternion} == {quaternion2} if distance < 0.000001
# new feature: float1 == float2 if |float1 - float2| < 0.000001
# code: refactoring and simplification of rotate/spin
# code: threads named
# bug fix: hover will find atom in hidden frame.
# bug fix: ellipsoid translucency not saved in state.
# bug fix: local assignment var x = array() followed by x[n] = ... does not work
# bug fix: f(x[i],x[j]) selects only x[j], not both x[i] and x[j]
# bug fix: quaternion frame "n" recognizes file-based H atoms on N for frame definition
# -----------------------------------------------------------------------------
#version=11.5.44
# bug fix: Java exception with write(quaternion) instead of write("quaternion")
# bug fix: set picking spin did not enable draw spin/picking
# bug fix: _applet variable not initializing properly
# bug fix: math calculation .xyz, .color averages broken in 11.5.42
# bug fix: select @x broken in 11.5.43
# bug fix: integer addition not remaining integer
# -----------------------------------------------------------------------------
#version=11.5.43
# bug fix -- if last helix is last atom, SHOW STRUCTURE fails to identify it.
#
# new feature/feature change:
#
# selectX is no longer necessary. Simply use
#
# select {atomExpression} (property expression)
#
# with no "x." An implied variable "_x" can be used explicitly:
#
# select {*} (straightness < 0.995) # does not round
# select {*.ca} (atomY < atomX)
# select {*.ca} (phi < select(y; {*.ca}; y.resno = _x.resno + 1).phi)
#
# new feature: quaterion % point4f --- "thetaDirected" --
# point4f is {x, y, z, w} (w ignored), where {x y z} is a
# preferred direction.
# Returns a point4f angle-Axis equivalent with x, y, z the normal for the quaternion
# rotation and w = theta for the rotation, where the normal and theta are chosen
# to be directed with a positive dot product between the input {x y z}
# vector and the output {x y z}.
#
# thus, because the negative angle switches the normal:
#
# print quaternion({1 0 0}, -20) % 1 ==> {-1 0 0}; %1 ==> 20
#
# but % {1 0 0 0} forces the angle associated with {1 0 0} to be reported
#
# print quaternion({1 0 0}, -20) % {1 0 0 0} ==> {1 0 0 20}
#
# bug fix: POV-RAY output of quadrilaterals.
# new feature: Ramachandran "r" --- includes third (Z) axis quaternion r difference2 X component equivalent
# bug fix: quaternion definition with dot-product check not effective -- removed
# bug fix: quaternion construction from matrix error
#
# new feature: _applet boolean
#
# new feature: extended quaternion math
#
# q = quaternion({x y z}, angleDegrees)
# q = quaternion(q0, q1, q2,q3)
# q = {qx, qy, qz, qw}
#
# returning component values:
#
# q.x, q.y, q.z, q.w
#
# note that the Point4f equivalent stores w LAST, even though it is "q0"
# because the Java Quat4f() and Point4f() both do that as well. We're just
# being consistent with other Java use.
#
# Modulus operator for extended information retrieval:
#
# (q%0) -- q0 (w)
# (q%1) -- q1 (x)
# (q%2) -- q2 (y)
# (q%3) -- q3 (z)
# (q%-1) -- the vector {q1, q2, q3}
# (q%-2) -- theta
# (q%-3) -- equivalent rotational frame X-axis
# (q%-4) -- equivalent rotational frame Y-axis
# (q%-5) -- equivalent rotational frame Z-axis
# (q%{x y z}) -- rotational transform of a point or vector based on a quaternion
#
# thus, for example, (q%{1 0 0}) is the same as (q%-3)
#
# (!q) -- quaternion inverse
#
#
# Quaternion right division (difference "dq"):
#
# q2 / q1 = q2 * (!q1)
#
# Quaternion left division (relative difference n):
#
# q2 \ q1 = (!q1) * q2
#
# Examples:
#
# q = quaternion({1 1 1},120)
# print "" + (q%{1 0 0}) + " " + (q%{0 1 0}) + " " + (q%{0 0 1})
#
# {0 1.0 0} {0 0 1.0} {1.0 0 0}
#
# new feature: Numerical left division (integer divide)
#
# 3.6 \ 2 = 1
# 3.6 \ 1.3 = 2
#
# new feature: sqrt(x)
#
# bug fix: load trajectory for cases with different atom counts.
#
# experimental: "straightness" defined as 1 - 2 * acos(normal(dq[i]%-1) dot normal(dq[i+1])) / PI
# giving a measure proportional to the difference in local helical axis angle
# and ranging from -1 (opposite direction) to 1 (same direction) for proteins
# -- a work in progress. See
#
# load =1d66
# calculate straightness;color straightness
# -----------------------------------------------------------------------------
#version=11.5.42
# code: modified Jmol encoded PDB data output
# bug fix: color of NaN float values changed from "center of color scheme" to GRAY
# bug fix: connect "_1" was inadvertently dropped in 11.5.26.
# bug fix: state script fails to save data for atoms created using the quaternion command
# bug fix: axes/boundbox/unitcell dotted not working since 11.5.6
# bug fix: spin thread not stopped for applet destroy()
# bug fix: quaternion derivative for i/i+1 assigned to i+1 instead of i; now assigned to i
# bug fix: quaternion calculation using published algorithms was giving inverted quaternions
#
# new feature: set PICKLABEL "xxx" -- allows customized pick reports
#
# for example: set pickLabel "%n x = %x, y = %y, z = %z"
#
# new feature: "quaternion derivative" --> "quaternion difference", which is more
# appropriate, we think, with "absolute" and "relative" qualifiers:
#
# quaternion absolute difference # in the molecular frame
# quaternion relative difference # in the (local) frame of first quaternion:
#
# dq_absolute = q2 * q1_inverse
# dq_relative = q1_inverse * q2
#
# absolute involves un-doing q1's rotation (making it the reference frame), then applying q2.
# relative involves applying q2 (maintaining the original reference frame), then undoing q1.
#
# new feature: quaternion [w|x|y|z|a|r] [difference][2] [draw]
# new feature: draw quaternion [w|x|y|z|a|r] [difference][2]
# new feature: write quaternion [w|x|y|z|a|r] [difference][2] [draw]
# and with that: write("quaternion" [,"w"|"x"|"y"|"z"|"a"|"r"][,"difference"|"difference2"][,"draw"])
#
# new feature: set quaternionFrame "N" -- for solid state NMR PISEMA 15N chemical shift frame
# using alpha = 0 and beta = 17 degrees.
#
# new feature: select whatever; quaternion draw
# draws x,y,z and n vectors for a quaternion center
#
# new feature: straightness, defined as:
#
# straightness = 2*|n(dq1).dot(n(dq2))| - 1
#
# where q1 and q2 are quaternions defined generally as:
#
# q = frame{ vA, (vC x vA), vC }
#
# using quaternionFrame "p", which I define as
#
# protein:
#
# vA = C--CA
# vB = C--N[i+1]
#
# purine:
#
# vA = N9--C4
# vB = N9--C8
#
# pyrimidine:
#
# vA = N1--C2
# vB = N1--C6
#
# Differences dq1 and dq2 are absolute quaternion differences
# on the two sides of a residue:
#
# dq1 === q[i] * q[i-1]_inverse
# dq2 === q[i+1] * q[i]_inverse
#
# and n(dq) = the normal vector associated with this quaternion.
# Range is from -1 to 1
#
# applications (note that CALCULATE must be invoked first):
#
# calculate straightness # must be invoked first;
# color straightness;
# select straightness < 0.70; # rounds to nearest hundredth
# selectX {*} x.straightness < 0.995 # does not round
#
# new feature: "%T" label format for straightness
# -----------------------------------------------------------------------------
#version=11.5.41
# new feature: xyz reader reads partial charge in 5th field
# bug fix: carbohydrate popup menu script incorrect
# new feature: "load" of Jmol state scripts works same as "script" command
# (file recognized as SPT type and read as a script instead)
# bug fix: Jmol Embedded scripts containing script comments /* */
# new feature: getproperty menu current
# bug fix: 11.5.40 cannot read most state scripts.
# -----------------------------------------------------------------------------
#version=11.5.40
# (with corrected 40_dev draw scale)
# new feature: new command:
#
# selectX {atomExpression} booleanEvaluation
#
# same as select() function, but simpler to implement
#
# new feature: full math on individual atom properties using
# a new function:
#
# select(x;{atomexpression};booleanEvaluation)
#
# for example:
#
# x = select(x;{*};x.distance({atomno=3}) / 3 > x.distance({atomno=2}))
# x = select(x;{*.ca};x.phi < select(y; {*.ca}; y.resno = x.resno + 1).phi)
#
# bug fix: H1 and H3 in DNA are NOT backbone
# new feature: quaternion derivative2 (2nd derivative) and quaternion e derivative [experimental]
# new feature: draw Vector [x y] or [x y %] {x' y' z'}
# new feature: draw [x y] or [x y %] can be incorporated into lines, curves, arrows
# bug fix: set picking center should not zoom -- just too annoying
# new feature: set echo myecho [x y] and set echo myecho [x y %]
# new feature: axes position [x y] and axes position [x y %]
# sets the axes to the x y screen position or percent indicated.
# bug fix: echos with active script and a model designation
# and multiple models select even if not displayed because it is not their model
# that is displayed.
# bug fix: missing echocallback, scriptcallback, measurecallback "set"able variables
# bug fix: "set picking identify" should be equivalent to "set picking ident"
# bug fix: popup menu had stereo reversed
#
# new feature: signed applet shows frank "Jmol-S" which is NOT removable.
# possibly to come: signed applet will send confirmation first time it reads a local file?
# bug fix: reading .mmol (biological unit) files such as
# http://pqs.ebi.ac.uk/pqs-doc/macmol/1j7n_1.mmol
# new feature: frank appears RED in signed applet, and popup about menu identifies the applet as signed.
# code: better handling of twin script manager threads
# new feature: /*SPLIT*/ in a command string allows it to be processed by
# the two independent processors. (just to isolate javascript from load commands
# for the signed applet
# -----------------------------------------------------------------------------
#version=11.5.39
# new feature: --threaded option for command processor uses
# a watcher thread to monitor a Vector, allowing the signed applet to open any file
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -