Revision: 18358
http://sourceforge.net/p/jmol/code/18358
Author: hansonr
Date: 2013-06-24 22:56:54 +0000 (Mon, 24 Jun 2013)
Log Message:
-----------
___JmolVersion="13.1.17_dev_2013.06.24"
bug fix: PyMOL putty broken
bug fix: pdbAddHydrogens may miss O3' or O5' H atoms at end of DNA strands
bug fix: pdbAddHydrogens may miss H in first group of a chain
bug fix: set defaultDrawArrowScale broken
Modified Paths:
--------------
trunk/Jmol/src/org/jmol/adapter/readers/pymol/JmolObject.java
trunk/Jmol/src/org/jmol/adapter/smarter/AtomSetCollection.java
trunk/Jmol/src/org/jmol/api/JmolBioResolver.java
trunk/Jmol/src/org/jmol/modelset/ModelLoader.java
trunk/Jmol/src/org/jmol/modelsetbio/Resolver.java
trunk/Jmol/src/org/jmol/renderspecial/EllipsoidsRenderer.java
trunk/Jmol/src/org/jmol/script/T.java
trunk/Jmol/src/org/jmol/symmetry/UnitCell.java
trunk/Jmol/src/org/jmol/util/Eigen.java
trunk/Jmol/src/org/jmol/util/Quadric.java
trunk/Jmol/src/org/jmol/viewer/JC.java
trunk/Jmol/src/org/jmol/viewer/Jmol.properties
trunk/Jmol/src/org/jmol/viewer/StateManager.java
Modified: trunk/Jmol/src/org/jmol/adapter/readers/pymol/JmolObject.java
===================================================================
--- trunk/Jmol/src/org/jmol/adapter/readers/pymol/JmolObject.java
2013-06-23 22:18:48 UTC (rev 18357)
+++ trunk/Jmol/src/org/jmol/adapter/readers/pymol/JmolObject.java
2013-06-24 22:56:54 UTC (rev 18358)
@@ -218,10 +218,8 @@
}
switch (id) {
- case T.trace:
- id = JC.SHAPE_TRACE;
- if (info != null)
- sm.setShapePropertyBs(id, "putty", info, bsAtoms);
+ case JC.SHAPE_CGO:
+ sm.viewer.setCGO((JmolList<Object>) info);
break;
case JC.SHAPE_DOTS:
case JC.SHAPE_BALLS:
@@ -350,10 +348,9 @@
case T.script:
sb = (SB) info;
break;
- case JC.SHAPE_CGO:
- JmolList<Object> cgo = (JmolList<Object>) info;
- //sID = (String) cgo.get(cgo.size() - 1);
- sm.viewer.setCGO(cgo);
+ case T.trace:
+ sm.loadShape(id = JC.SHAPE_TRACE);
+ sm.setShapePropertyBs(id, "putty", info, bsAtoms);
break;
}
if (sb != null) {
Modified: trunk/Jmol/src/org/jmol/adapter/smarter/AtomSetCollection.java
===================================================================
--- trunk/Jmol/src/org/jmol/adapter/smarter/AtomSetCollection.java
2013-06-23 22:18:48 UTC (rev 18357)
+++ trunk/Jmol/src/org/jmol/adapter/smarter/AtomSetCollection.java
2013-06-24 22:56:54 UTC (rev 18358)
@@ -1361,7 +1361,7 @@
axes = symmetry.rotateEllipsoid(iSym, ptTemp, axes, ptTemp1,
ptTemp2);
}
- atom1.ellipsoid[j] = new Quadric().fromVectors(axes, lengths,
e.isThermalEllipsoid);
+ atom1.ellipsoid[j] = new Quadric().fromVectors(axes, lengths,
e.eigenSignMask, e.isThermalEllipsoid);
}
}
}
Modified: trunk/Jmol/src/org/jmol/api/JmolBioResolver.java
===================================================================
--- trunk/Jmol/src/org/jmol/api/JmolBioResolver.java 2013-06-23 22:18:48 UTC
(rev 18357)
+++ trunk/Jmol/src/org/jmol/api/JmolBioResolver.java 2013-06-24 22:56:54 UTC
(rev 18358)
@@ -24,7 +24,7 @@
public void setHaveHsAlready(boolean b);
- public void addImplicitHydrogenAtoms(JmolAdapter adapter, int i);
+ public void addImplicitHydrogenAtoms(JmolAdapter adapter, int i, int nH);
public void initialize(ModelSet modelSet);
Modified: trunk/Jmol/src/org/jmol/modelset/ModelLoader.java
===================================================================
--- trunk/Jmol/src/org/jmol/modelset/ModelLoader.java 2013-06-23 22:18:48 UTC
(rev 18357)
+++ trunk/Jmol/src/org/jmol/modelset/ModelLoader.java 2013-06-24 22:56:54 UTC
(rev 18358)
@@ -239,7 +239,8 @@
private int currentModelIndex;
private Model currentModel;
- private int currentChainID = 0;
+ private int currentChainID;
+ private boolean isNewChain;
private Chain currentChain;
private int currentGroupSequenceNumber;
private char currentGroupInsertionCode = '\0';
@@ -276,7 +277,7 @@
group3Of = new String[defaultGroupCount];
seqcodes = new int[defaultGroupCount];
firstAtomIndexes = new int[defaultGroupCount];
- currentChainID = '\uFFFF';
+ currentChainID = Integer.MAX_VALUE;
currentChain = null;
currentGroupInsertionCode = '\uFFFF';
currentGroup3 = "xxxxx";
@@ -751,7 +752,8 @@
if (modelIndex != iLast) {
currentModelIndex = modelIndex;
currentModel = models[modelIndex];
- currentChainID = '\uFFFF';
+ currentChainID = Integer.MAX_VALUE;
+ isNewChain = true;
models[modelIndex].bsAtoms.clearAll();
isPdbThisModel = models[modelIndex].isBioModel;
iLast = modelIndex;
@@ -760,7 +762,8 @@
jbr.setHaveHsAlready(false);
}
String group3 = iterAtom.getGroup3();
- checkNewGroup(adapter, iterAtom.getChainID(), group3,
iterAtom.getSequenceNumber(),
+ int chainID = iterAtom.getChainID();
+ checkNewGroup(adapter, chainID, group3, iterAtom.getSequenceNumber(),
iterAtom.getInsertionCode(), addH);
short isotope = iterAtom.getElementNumber();
if (addH && Elements.getElementNumber(isotope) == 1)
@@ -790,8 +793,9 @@
iterAtom.getRadius()
);
}
- if (groupCount > 0 && addH)
- jbr.addImplicitHydrogenAtoms(adapter, groupCount - 1);
+ if (groupCount > 0 && addH) {
+ jbr.addImplicitHydrogenAtoms(adapter, groupCount - 1, isNewChain ? 1 :
0);
+ }
iLast = -1;
EnumVdw vdwtypeLast = null;
Atom[] atoms = modelSet.atoms;
@@ -853,12 +857,13 @@
currentGroupInsertionCode = '\uFFFF';
currentGroupSequenceNumber = -1;
currentGroup3 = "xxxx";
+ isNewChain = true;
}
if (groupSequenceNumber != currentGroupSequenceNumber
|| groupInsertionCode != currentGroupInsertionCode
|| group3i != currentGroup3) {
if (groupCount > 0 && addH) {
- jbr.addImplicitHydrogenAtoms(adapter, groupCount - 1);
+ jbr.addImplicitHydrogenAtoms(adapter, groupCount - 1, isNewChain ? 1 :
0);
jbr.setHaveHsAlready(false);
}
currentGroupSequenceNumber = groupSequenceNumber;
Modified: trunk/Jmol/src/org/jmol/modelsetbio/Resolver.java
===================================================================
--- trunk/Jmol/src/org/jmol/modelsetbio/Resolver.java 2013-06-23 22:18:48 UTC
(rev 18357)
+++ trunk/Jmol/src/org/jmol/modelsetbio/Resolver.java 2013-06-24 22:56:54 UTC
(rev 18358)
@@ -201,13 +201,14 @@
plane = new P4();
}
- public void addImplicitHydrogenAtoms(JmolAdapter adapter, int iGroup) {
+ public void addImplicitHydrogenAtoms(JmolAdapter adapter, int iGroup, int
nH) {
String group3 = modelLoader.getGroup3(iGroup);
- int nH;
+ int nH1;
if (haveHsAlready || group3 == null
- || (nH = JC.getStandardPdbHydrogenCount(Group
+ || (nH1 = JC.getStandardPdbHydrogenCount(Group
.lookupGroupID(group3))) == 0)
return;
+ nH = (nH1 < 0 ? -1 : nH1 + nH);
Object model = null;
int iFirst = modelLoader.getFirstAtomIndex(iGroup);
int atomCount = modelSet.getAtomCount();
Modified: trunk/Jmol/src/org/jmol/renderspecial/EllipsoidsRenderer.java
===================================================================
--- trunk/Jmol/src/org/jmol/renderspecial/EllipsoidsRenderer.java
2013-06-23 22:18:48 UTC (rev 18357)
+++ trunk/Jmol/src/org/jmol/renderspecial/EllipsoidsRenderer.java
2013-06-24 22:56:54 UTC (rev 18358)
@@ -48,7 +48,7 @@
public class EllipsoidsRenderer extends ShapeRenderer {
private Ellipsoids ellipsoids;
- private boolean drawDots, drawArcs, drawAxes, drawFill, drawBall;
+ private boolean drawDots, drawArcs, drawAxes, drawFill, drawBall, drawArrows;
private boolean wireframeOnly;
private int dotCount;
private int[] coords;
@@ -150,6 +150,7 @@
wireframeOnly = (viewer.getBoolean(T.wireframerotation) &&
viewer.getInMotion(true));
drawAxes = viewer.getBooleanProperty("ellipsoidAxes");
drawArcs = viewer.getBooleanProperty("ellipsoidArcs");
+ drawArrows = viewer.getBooleanProperty("ellipsoidArrows");
drawBall = viewer.getBooleanProperty("ellipsoidBall") && !wireframeOnly;
drawDots = viewer.getBooleanProperty("ellipsoidDots") && !wireframeOnly;
drawFill = viewer.getBooleanProperty("ellipsoidFill") && !wireframeOnly;
@@ -222,6 +223,7 @@
private int dx;
private float perspectiveFactor;
private P3 center;
+ private int eigenSignMask = 7;
private void render1(Atom atom, Quadric ellipsoid) {
if (!isSet)
@@ -245,6 +247,7 @@
setAxes();
if (g3d.isClippedXY(dx + dx, atom.screenX, atom.screenY))
return;
+ eigenSignMask = ellipsoid.eigenSignMask;
renderOne(atom.screenZ, isOK);
}
@@ -271,6 +274,8 @@
}
if (drawDots)
renderDots();
+ if (drawArrows)
+ renderArrows();
}
private void setMatrices() {
@@ -317,6 +322,45 @@
coef, mDeriv, selectedOctant, selectedOctant >= 0 ? selectedPoints :
null);
}
+ private void renderArrows() {
+ for (int i = 0; i < 6; i += 2) {
+ int pt = (i == 0 ? 1 : i);
+ fillConeScreen(screens[i], screens[i + 1], (eigenSignMask & pt) != 0);
+ }
+ }
+ private void fillConeScreen(P3i p1, P3i p2, boolean isPositive) {
+ if (diameter == 0)
+ return;
+ float diam = (diameter == 0 ? 1 : diameter) * 4;
+ v1.set(p2.x - p1.x, p2.y - p1.y, p2.z - p1.z);
+ v1.normalize();
+ v1.scale(diam);
+ s1.setT(p1);
+ s2.setT(p1);
+ if (isPositive) {
+ s2.x -= (int) v1.x;
+ s2.y -= (int) v1.y;
+ s2.z -= (int) v1.z;
+ } else {
+ s1.x -= (int) v1.x;
+ s1.y -= (int) v1.y;
+ s1.z -= (int) v1.z;
+ }
+ g3d.fillConeScreen(GData.ENDCAPS_FLAT, (int) diam, s1, s2, false);
+ s1.setT(p2);
+ s2.setT(p2);
+ if (isPositive) {
+ s2.x += (int) v1.x;
+ s2.y += (int) v1.y;
+ s2.z += (int) v1.z;
+ } else {
+ s1.x += (int) v1.x;
+ s1.y += (int) v1.y;
+ s1.z += (int) v1.z;
+ }
+ g3d.fillConeScreen(GData.ENDCAPS_FLAT, (int) diam, s1, s2, false);
+ }
+
private void renderAxes() {
if (drawBall && drawFill) {
g3d.fillCylinder(GData.ENDCAPS_FLAT, diameter, s0,
@@ -349,7 +393,6 @@
// }
}
-
private void renderDots() {
for (int i = 0; i < coords.length;) {
float fx = (float) Math.random();
Modified: trunk/Jmol/src/org/jmol/script/T.java
===================================================================
--- trunk/Jmol/src/org/jmol/script/T.java 2013-06-23 22:18:48 UTC (rev
18357)
+++ trunk/Jmol/src/org/jmol/script/T.java 2013-06-24 22:56:54 UTC (rev
18358)
@@ -957,10 +957,11 @@
public final static int dsspcalchydrogen = booleanparam | 58;
public final static int dynamicmeasurements = booleanparam | 59;
public final static int ellipsoidarcs = booleanparam | 60;
- public final static int ellipsoidaxes = booleanparam | 61;
- public final static int ellipsoidball = booleanparam | 62;
- public final static int ellipsoiddots = booleanparam | 63;
- public final static int ellipsoidfill = booleanparam | 64;
+ public final static int ellipsoidarrows = booleanparam | 61;
+ public final static int ellipsoidaxes = booleanparam | 62;
+ public final static int ellipsoidball = booleanparam | 63;
+ public final static int ellipsoiddots = booleanparam | 64;
+ public final static int ellipsoidfill = booleanparam | 65;
public final static int filecaching = booleanparam | 66;
public final static int fontcaching = booleanparam | 68;
public final static int fontscaling = booleanparam | 69;
@@ -2350,6 +2351,7 @@
"dsspCalculateHydrogenAlways", T.t(dsspcalchydrogen),
"dynamicMeasurements", T.t(dynamicmeasurements),
"ellipsoidArcs", T.t(ellipsoidarcs),
+ "ellipsoidArrows", T.t(ellipsoidarrows),
"ellipsoidAxes", T.t(ellipsoidaxes),
"ellipsoidBall", T.t(ellipsoidball),
"ellipsoidDots", T.t(ellipsoiddots),
Modified: trunk/Jmol/src/org/jmol/symmetry/UnitCell.java
===================================================================
--- trunk/Jmol/src/org/jmol/symmetry/UnitCell.java 2013-06-23 22:18:48 UTC
(rev 18357)
+++ trunk/Jmol/src/org/jmol/symmetry/UnitCell.java 2013-06-24 22:56:54 UTC
(rev 18358)
@@ -296,7 +296,7 @@
if (parBorU[0] == 0) { // this is iso
float[] lengths = new float[3];
lengths[0] = lengths[1] = lengths[2] = (float) Math.sqrt(parBorU[7]);
- return new Quadric().fromVectors(null, lengths, true);
+ return new Quadric().fromVectors(null, lengths, 7, true);
}
double[] Bcart = new double[6];
Modified: trunk/Jmol/src/org/jmol/util/Eigen.java
===================================================================
--- trunk/Jmol/src/org/jmol/util/Eigen.java 2013-06-23 22:18:48 UTC (rev
18357)
+++ trunk/Jmol/src/org/jmol/util/Eigen.java 2013-06-24 22:56:54 UTC (rev
18358)
@@ -77,7 +77,7 @@
public static void getUnitVectors(double[][] m, V3[] unitVectors, float[]
lengths) {
newM(m).set(unitVectors, lengths);
- sort(unitVectors, lengths);
+ sort(unitVectors, lengths, null);
}
private void set(V3[] unitVectors, float[] lengths) {
@@ -89,8 +89,6 @@
unitVectors[i] = new V3();
unitVectors[i].setA(eigenVectors[i]);
lengths[i] = (float) Math.sqrt(Math.abs(eigenValues[i]));
- //if (eigenValues[i] < 0)
- //unitVectors[i].scale(-1);
}
}
@@ -1088,8 +1086,8 @@
V3[] unitVectors = new V3[3];
float[] lengths = new float[3];
eigen.set(unitVectors, lengths);
- sort(unitVectors, lengths);
- return new Quadric().fromVectors(unitVectors, lengths, false);
+ int mask = sort(unitVectors, lengths, eigen.d);
+ return new Quadric().fromVectors(unitVectors, lengths, mask, false);
}
public static Quadric getEllipsoid(V3[] vectors, float[] lengths, boolean
isThermal) {
@@ -1097,27 +1095,34 @@
V3[] unitVectors = new V3[vectors.length];
for (int i = vectors.length; --i >= 0;)
unitVectors[i] = V3.newV(vectors[i]);
- sort(unitVectors, lengths);
- return new Quadric().fromVectors(unitVectors, lengths, isThermal);
+ sort(unitVectors, lengths, null);
+ return new Quadric().fromVectors(unitVectors, lengths, 7, isThermal);
}
/**
* sorts vectors by absolute value and normalizes them
* @param vectors
* @param lengths
+ * @param values
+ * @return mask 0 - 7 -- 1 for positive, 0 for negative eigenvalue
*/
- private static void sort(V3[] vectors, float[] lengths) {
+ private static int sort(V3[] vectors, float[] lengths, double[] values) {
// for atoms, lengths need to have length 3 to allow for scaling
Object[][] o = new Object[][] {
- new Object[] { vectors[0], Float.valueOf(Math.abs(lengths[0])) },
- new Object[] { vectors[1], Float.valueOf(Math.abs(lengths[1])) },
- new Object[] { vectors[2], Float.valueOf(Math.abs(lengths[2])) } };
+ new Object[] { vectors[0], Float.valueOf(Math.abs(lengths[0])), values
== null || values[0] >= 0 ? Boolean.TRUE : null },
+ new Object[] { vectors[1], Float.valueOf(Math.abs(lengths[1])), values
== null || values[1] >= 0 ? Boolean.TRUE : null },
+ new Object[] { vectors[2], Float.valueOf(Math.abs(lengths[2])), values
== null || values[2] >= 0 ? Boolean.TRUE : null } };
Arrays.sort(o, new EigenSort());
+
+ int mask = 0;
for (int i = 0; i < 3; i++) {
vectors[i] = V3.newV((V3) o[i][0]);
vectors[i].normalize();
lengths[i] = ((Float) o[i][1]).floatValue();
+ if (o[i][2] != null)
+ mask += 1 << i;
}
+ return mask;
}
/**
Modified: trunk/Jmol/src/org/jmol/util/Quadric.java
===================================================================
--- trunk/Jmol/src/org/jmol/util/Quadric.java 2013-06-23 22:18:48 UTC (rev
18357)
+++ trunk/Jmol/src/org/jmol/util/Quadric.java 2013-06-24 22:56:54 UTC (rev
18358)
@@ -32,6 +32,7 @@
public V3[] vectors;
public boolean isThermalEllipsoid = true;
public float scale = 1;
+ public int eigenSignMask = 7;
public void scale(float f) {
for (int i = 0; i < 3; i++)
@@ -46,9 +47,11 @@
+ vectors[2] + "\t" + lengths[2] + "\n");
}
- public Quadric fromVectors(V3[] vectors, float[] lengths, boolean isThermal)
{
+ public Quadric fromVectors(V3[] vectors, float[] lengths,
+ int eigenSignMask, boolean isThermal) {
this.vectors = vectors;
this.lengths = lengths;
+ this.eigenSignMask = eigenSignMask;
isThermalEllipsoid = isThermal;
return this;
}
Modified: trunk/Jmol/src/org/jmol/viewer/JC.java
===================================================================
--- trunk/Jmol/src/org/jmol/viewer/JC.java 2013-06-23 22:18:48 UTC (rev
18357)
+++ trunk/Jmol/src/org/jmol/viewer/JC.java 2013-06-24 22:56:54 UTC (rev
18358)
@@ -940,6 +940,8 @@
}
private final static String[] pdbBondInfo = {
+ // added O3' HO3' O5' HO5' for nucleic and added 1 H atom for res 1 for
13.1.17
+ // this could throw off states from previous versions
"",
/*ALA*/ "N N CA HA C O CB HB?",
/*ARG*/ "N N CA HA C O CB HB2@HB3 CG HG2@HG3 CD D NE HE CZ NH1 NH1
HH11@HH12 NH2 HH21@HH22",
@@ -964,18 +966,18 @@
/*ASX*/ "CA HA C O CB HB2@HB1 C H",
/*GLX*/ "CA HA C O CB HB1 CB HB2 CG HG1 CG HG2",
/*UNK*/ "",
- /*G*/ "P OP1 C5' 5 C4' H4' C3' H3' C2' H2' O2' HO2' C1' H1' C8 N7 C8 H8 C5
C4 C6 O6 N1 H1 C2 N3 N2 H21@H22",
- /*C*/ "P OP1 C5' 5 C4' H4' C3' H3' C2' H2' O2' HO2' C1' H1' C2 O2 N3 C4 N4
H41@H42 C5 C6 C5 H5 C6 H6",
- /*A*/ "P OP1 C5' 5 C4' H4' C3' H3' C2' H2' O2' HO2' C1' H1' C8 N7 C8 H8 C5
C4 C6 N1 N6 H61@H62 C2 N3 C2 H2",
- /*T*/ "P OP1 C5' 5 C4' H4' C3' H3' C2' 2 C1' H1' C2 O2 N3 H3 C4 O4 C5 C6
C7 H7? C6 H6",
- /*U*/ "P OP1 C5' 5 C4' H4' C3' H3' C2' H2' O2' HO2' C1' H1' C2 O2 N3 H3 C4
O4 C5 C6 C5 H5 C6 H6",
- /*I*/ "P OP1 C5' 5 C4' H4' C3' H3' C2' H2' O2' HO2' C1' H1' C8 N7 C8 H8 C5
C4 C6 O6 N1 H1 C2 N3 C2 H2",
- /*DG*/ "P OP1 C5' 5 C4' H4' C3' H3' C2' 2 C1' H1' C8 N7 C8 H8 C5 C4 C6 O6
N1 H1 C2 N3 N2 H21@H22",
- /*DC*/ "P OP1 C5' 5 C4' H4' C3' H3' C2' 2 C1' H1' C2 O2 N3 C4 N4 H41@H42
C5 C6 C5 H5 C6 H6",
- /*DA*/ "P OP1 C5' 5 C4' H4' C3' H3' C2' 2 C1' H1' C8 N7 C8 H8 C5 C4 C6 N1
N6 H61@H62 C2 N3 C2 H2",
- /*DT*/ "P OP1 C5' H5'@H5'' C4' H4' C3' H3' C2' H2'@H2'' C1' H1' C2 O2 N3
H3 C4 O4 C5 C6 C7 H7? C6 H6",
- /*DU*/ "P OP1 C5' 5 C4' H4' C3' H3' C2' H2'@H2'' C1' H1' C2 O2 N3 H3 C4 O4
C5 C6 C5 H5 C6 H6",
- /*DI*/ "P OP1 C5' 5 C4' H4' C3' H3' C2' 2 C1' H1' C8 N7 C8 H8 C5 C4 C6 O6
N1 H1 C2 N3 C2 H2",
+ /*G*/ "P OP1 C5' 5 C4' H4' C3' H3' C2' H2' O2' HO2' C1' H1' C8 N7 C8 H8 C5
C4 C6 O6 N1 H1 C2 N3 N2 H21@H22 O3' HO3' O5' HO5'",
+ /*C*/ "P OP1 C5' 5 C4' H4' C3' H3' C2' H2' O2' HO2' C1' H1' C2 O2 N3 C4 N4
H41@H42 C5 C6 C5 H5 C6 H6 O3' HO3' O5' HO5'",
+ /*A*/ "P OP1 C5' 5 C4' H4' C3' H3' C2' H2' O2' HO2' C1' H1' C8 N7 C8 H8 C5
C4 C6 N1 N6 H61@H62 C2 N3 C2 H2 O3' HO3' O5' HO5'",
+ /*T*/ "P OP1 C5' 5 C4' H4' C3' H3' C2' 2 C1' H1' C2 O2 N3 H3 C4 O4 C5 C6
C7 H7? C6 H6 O3' HO3' O5' HO5'",
+ /*U*/ "P OP1 C5' 5 C4' H4' C3' H3' C2' H2' O2' HO2' C1' H1' C2 O2 N3 H3 C4
O4 C5 C6 C5 H5 C6 H6 O3' HO3' O5' HO5'",
+ /*I*/ "P OP1 C5' 5 C4' H4' C3' H3' C2' H2' O2' HO2' C1' H1' C8 N7 C8 H8 C5
C4 C6 O6 N1 H1 C2 N3 C2 H2 O3' HO3' O5' HO5'",
+ /*DG*/ "P OP1 C5' 5 C4' H4' C3' H3' C2' 2 C1' H1' C8 N7 C8 H8 C5 C4 C6 O6
N1 H1 C2 N3 N2 H21@H22 O3' HO3' O5' HO5'",
+ /*DC*/ "P OP1 C5' 5 C4' H4' C3' H3' C2' 2 C1' H1' C2 O2 N3 C4 N4 H41@H42
C5 C6 C5 H5 C6 H6 O3' HO3' O5' HO5'",
+ /*DA*/ "P OP1 C5' 5 C4' H4' C3' H3' C2' 2 C1' H1' C8 N7 C8 H8 C5 C4 C6 N1
N6 H61@H62 C2 N3 C2 H2 O3' HO3' O5' HO5'",
+ /*DT*/ "P OP1 C5' H5'@H5'' C4' H4' C3' H3' C2' H2'@H2'' C1' H1' C2 O2 N3
H3 C4 O4 C5 C6 C7 H7? C6 H6 O3' HO3' O5' HO5'",
+ /*DU*/ "P OP1 C5' 5 C4' H4' C3' H3' C2' H2'@H2'' C1' H1' C2 O2 N3 H3 C4 O4
C5 C6 C5 H5 C6 H6 O3' HO3' O5' HO5'",
+ /*DI*/ "P OP1 C5' 5 C4' H4' C3' H3' C2' 2 C1' H1' C8 N7 C8 H8 C5 C4 C6 O6
N1 H1 C2 N3 C2 H2 O3' HO3' O5' HO5'",
};
private final static int[] pdbHydrogenCount = {
Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties
===================================================================
--- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2013-06-23 22:18:48 UTC
(rev 18357)
+++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2013-06-24 22:56:54 UTC
(rev 18358)
@@ -9,8 +9,11 @@
# The quotes above look odd for a parameter file, but they are
# important for the JavaScript version of Jmol.
-___JmolVersion="13.1.17_dev_2013.06.23"
+___JmolVersion="13.1.17_dev_2013.06.24"
+bug fix: PyMOL putty broken
+bug fix: pdbAddHydrogens may miss O3' or O5' H atoms at end of DNA strands
+bug fix: pdbAddHydrogens may miss H in first group of a chain
bug fix: set defaultDrawArrowScale broken
TODO: PyMOL uniqueAtomSettings for transparency
Modified: trunk/Jmol/src/org/jmol/viewer/StateManager.java
===================================================================
--- trunk/Jmol/src/org/jmol/viewer/StateManager.java 2013-06-23 22:18:48 UTC
(rev 18357)
+++ trunk/Jmol/src/org/jmol/viewer/StateManager.java 2013-06-24 22:56:54 UTC
(rev 18358)
@@ -852,6 +852,7 @@
//setParameterValue("edsUrlOptions", edsUrlOptions);
setS("edsUrlCutoff", edsUrlCutoff);
setB("ellipsoidArcs", ellipsoidArcs);
+ setB("ellipsoidArrrow", ellipsoidArrows);
setB("ellipsoidAxes", ellipsoidAxes);
setF("ellipsoidAxisDiameter", ellipsoidAxisDiameter);
setB("ellipsoidBall", ellipsoidBall);
@@ -1238,6 +1239,7 @@
boolean ellipsoidAxes = false;
boolean ellipsoidDots = false;
boolean ellipsoidArcs = false;
+ boolean ellipsoidArrows = false;
boolean ellipsoidFill = false;
boolean ellipsoidBall = true;
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:
Build for Windows Store.
http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
Jmol-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jmol-commits