Revision: 20772
          http://sourceforge.net/p/jmol/code/20772
Author:   hansonr
Date:     2015-09-14 11:56:50 +0000 (Mon, 14 Sep 2015)
Log Message:
-----------
Jmol.___JmolVersion="14.3.16_2015.09.14"

bug fix: Crystallographic Open Database CIF files have unusual atom_site_label 
("MgT") 
         and no atom_site_type_symbol, leading to missing element assignments

Modified Paths:
--------------
    trunk/Jmol/src/org/jmol/adapter/readers/cif/CifReader.java
    trunk/Jmol/src/org/jmol/adapter/readers/quantum/GamessUKReader.java
    trunk/Jmol/src/org/jmol/adapter/readers/quantum/MopacGraphfReader.java
    trunk/Jmol/src/org/jmol/adapter/readers/quantum/SpartanReader.java
    trunk/Jmol/src/org/jmol/adapter/smarter/Atom.java
    trunk/Jmol/src/org/jmol/viewer/Jmol.properties

Modified: trunk/Jmol/src/org/jmol/adapter/readers/cif/CifReader.java
===================================================================
--- trunk/Jmol/src/org/jmol/adapter/readers/cif/CifReader.java  2015-09-14 
04:27:09 UTC (rev 20771)
+++ trunk/Jmol/src/org/jmol/adapter/readers/cif/CifReader.java  2015-09-14 
11:56:50 UTC (rev 20772)
@@ -316,9 +316,8 @@
   private void readSingleAtom() {
     Atom atom = new Atom();
     atom.set(0, 0, 0);
-    String s = atom.atomName = parser.fullTrim(data);
-    atom.elementSymbol = s.length() == 1 ? s : s.substring(0, 1)
-        + s.substring(1, 2).toLowerCase();
+    atom.atomName = parser.fullTrim(data);
+    atom.getElementSymbol();
     asc.addAtom(atom);
   }
 
@@ -1246,13 +1245,8 @@
             + " has invalid/unknown coordinates");
         continue;
       }
-      if (atom.elementSymbol == null && atom.atomName != null) {
-        String sym = atom.atomName;
-        int pt = 0;
-        while (pt < sym.length() && PT.isLetter(sym.charAt(pt)))
-          pt++;
-        atom.elementSymbol = (pt == 0 || pt > 2 ? "Xx" : sym.substring(0, pt));
-      }
+      if (atom.elementSymbol == null && atom.atomName != null)
+        atom.getElementSymbol();
       if (!filterCIFAtom(atom, assemblyId))
         continue;
       setAtomCoord(atom);

Modified: trunk/Jmol/src/org/jmol/adapter/readers/quantum/GamessUKReader.java
===================================================================
--- trunk/Jmol/src/org/jmol/adapter/readers/quantum/GamessUKReader.java 
2015-09-14 04:27:09 UTC (rev 20771)
+++ trunk/Jmol/src/org/jmol/adapter/readers/quantum/GamessUKReader.java 
2015-09-14 11:56:50 UTC (rev 20772)
@@ -110,7 +110,7 @@
       String[] tokens = getTokens();
       int atomicNumber = (int) parseFloatStr(tokens[2]);
       Atom atom = setAtomCoordScaled(null, tokens, 3, ANGSTROMS_PER_BOHR);
-      atom.elementSymbol = 
AtomSetCollectionReader.getElementSymbol(atomicNumber);
+      atom.elementSymbol = getElementSymbol(atomicNumber);
       atomNames.addLast(atom.atomName = tokens[1]);
     }
   }

Modified: trunk/Jmol/src/org/jmol/adapter/readers/quantum/MopacGraphfReader.java
===================================================================
--- trunk/Jmol/src/org/jmol/adapter/readers/quantum/MopacGraphfReader.java      
2015-09-14 04:27:09 UTC (rev 20771)
+++ trunk/Jmol/src/org/jmol/adapter/readers/quantum/MopacGraphfReader.java      
2015-09-14 11:56:50 UTC (rev 20772)
@@ -75,7 +75,7 @@
           parseFloatRange(line, 29, 41));
       if (line.length() > 41)
         atom.partialCharge = parseFloatStr(line.substring(41));
-      atom.elementSymbol = 
AtomSetCollectionReader.getElementSymbol(atomicNumbers[i]);
+      atom.elementSymbol = getElementSymbol(atomicNumbers[i]);
       //System.out.println(atom.elementSymbol + " " + atom.x + " " + atom.y + 
" " + atom.z);
     }
   }

Modified: trunk/Jmol/src/org/jmol/adapter/readers/quantum/SpartanReader.java
===================================================================
--- trunk/Jmol/src/org/jmol/adapter/readers/quantum/SpartanReader.java  
2015-09-14 04:27:09 UTC (rev 20771)
+++ trunk/Jmol/src/org/jmol/adapter/readers/quantum/SpartanReader.java  
2015-09-14 11:56:50 UTC (rev 20772)
@@ -76,11 +76,9 @@
   private void readAtoms() throws Exception {
     discardLinesUntilBlank();
     while (rd() != null && (/* atomNum = */parseIntRange(line, 0, 3)) > 0) {
-      String elementSymbol = parseTokenRange(line, 4, 6);
-      String atomName = parseTokenRange(line, 7, 13);
       Atom atom = asc.addNewAtom();
-      atom.elementSymbol = elementSymbol;
-      atom.atomName = atomName;
+      atom.elementSymbol = parseTokenRange(line, 4, 6);
+      atom.atomName = parseTokenRange(line, 7, 13);
       setAtomCoordXYZ(atom, parseFloatRange(line, 17, 30), 
parseFloatRange(line, 31, 44), parseFloatRange(
           line, 45, 58));
     }

Modified: trunk/Jmol/src/org/jmol/adapter/smarter/Atom.java
===================================================================
--- trunk/Jmol/src/org/jmol/adapter/smarter/Atom.java   2015-09-14 04:27:09 UTC 
(rev 20771)
+++ trunk/Jmol/src/org/jmol/adapter/smarter/Atom.java   2015-09-14 11:56:50 UTC 
(rev 20772)
@@ -104,30 +104,29 @@
   }
 
   public String getElementSymbol() {
-    if (elementSymbol == null)
-      if (atomName != null) {
-        int len = atomName.length();
-        int ichFirst = 0;
-        char chFirst = 0;
-        while (ichFirst < len &&
-               !isValidSymChar1(chFirst = atomName.charAt(ichFirst)))
-          ++ichFirst;
-        switch(len - ichFirst) {
-        case 0:
+    if (elementSymbol == null && atomName != null) {
+      int len = atomName.length();
+      int ichFirst = 0;
+      char chFirst = 0;
+      while (ichFirst < len
+          && !isValidSymChar1(chFirst = atomName.charAt(ichFirst)))
+        ++ichFirst;
+      switch (len - ichFirst) {
+      case 0:
+        break;
+      default:
+        char chSecond = atomName.charAt(ichFirst + 1);
+        if (isValidSymNoCase(chFirst, chSecond)) {
+          elementSymbol = "" + chFirst + chSecond;
           break;
-        default:
-          char chSecond = atomName.charAt(ichFirst + 1);
-          if (isValidSymNoCase(chFirst, chSecond)) {
-            elementSymbol = "" + chFirst + chSecond;
-            break;
-          }
-          //$FALL-THROUGH$
-        case 1:
-          if (isValidSym1(chFirst))
-            elementSymbol = "" + chFirst;
-          break;
         }
+        //$FALL-THROUGH$
+      case 1:
+        if (isValidSym1(chFirst))
+          elementSymbol = "" + chFirst;
+        break;
       }
+    }
     return elementSymbol;
   }
 

Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties
===================================================================
--- trunk/Jmol/src/org/jmol/viewer/Jmol.properties      2015-09-14 04:27:09 UTC 
(rev 20771)
+++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties      2015-09-14 11:56:50 UTC 
(rev 20772)
@@ -58,8 +58,13 @@
 
 TODO: image off  stops JSmol
 
-Jmol.___JmolVersion="14.3.16_2015.09.09"
+Jmol.___JmolVersion="14.3.16_2015.09.14"
 
+bug fix: Crystallographic Open Database CIF files have unusual atom_site_label 
("MgT") 
+         and no atom_site_type_symbol, leading to missing element assignments
+
+JmolVersion="14.3.16_2015.09.09"
+
 new feature: SMILES/SMARTS atom designations [C(xxxx)]
    -- allows pointing to the same atom without connection numbers
    -- (xxxx) may be anything, including just ()

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
_______________________________________________
Jmol-commits mailing list
Jmol-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jmol-commits

Reply via email to