Revision: 20652 http://sourceforge.net/p/jmol/code/20652 Author: hansonr Date: 2015-07-10 04:04:29 +0000 (Fri, 10 Jul 2015) Log Message: ----------- synchronized with 14.3.15_2015.07.09
feature note: This version introduces several very powerful and very different capabilities to Jmol in the area of crystallography. The polyhedra command has been extended significantly, allowing for much more interesting polyhedra and also the extraction of polyhedron information. Polyhedra can now be SEARCHED using SMILES and SMARTS as though they were molecules. Many of these features are nonexistent in other programs. They involve: - new MACRO command allows us to build macros that can be used generally - the ability to adjust the lattice scaling using filter "latticeScaling=0.98" thus allowing comparison of structures with slightly different lattices - the ability to load a given block of space (such as a 10x10x10-Angstrom cube) with a crystal structure irrespective of its given unit cell. (Are these two structures that have totally different unit cells really that different?) load t.cif FILL load t.cif FILL 20 load t.cif FILL {20 10 10} load t.cif FILL [{0 0 0} {5.2 5.2 0} {-5.2 5.5 0} {1.3 0 3.3}] - an extension of SMILES to compare bonding topology irrespective of atom identity. (Are these two atom environments both iscoahedral?) x = {@1 and 1.1 and connected(@1)}.find("SMILES", "*"} y = {2.1}.find("SMARTS", x) - the generation of polyhedra in crystal structures for which only the central atom may be loaded. (What is the atom environment around Au3 in this crystal structure?) load t.cif // just the unit cell, maybe just one atom even polyhedra 4-12 UNITECELL @1 - the ability to show and draw the point group of a polyhedron load t.cif polyhedron 12 unitcell @1 select @1 show pointgroup POLYHEDRON draw pointgroup POLYHEDRON - the ability to extract information about polyhedra print getProperty("shapeInfo.polyhedra[1]").keys _ipt center modelIndex planeCount polygons vertexCount vertices - the ability to select polyhedra select polyhedra select polyhedra(4) print polyhedra() print polyhedra(4) - the ability to draw points from derived arrays draw diameter 0.2 points @{getProperty("shapeInfo.polyhedra[1].vertices")} Modified Paths: -------------- branches/v14_2/Jmol/src/org/jmol/viewer/Jmol.properties Modified: branches/v14_2/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v14_2/Jmol/src/org/jmol/viewer/Jmol.properties 2015-07-10 03:51:03 UTC (rev 20651) +++ branches/v14_2/Jmol/src/org/jmol/viewer/Jmol.properties 2015-07-10 04:04:29 UTC (rev 20652) @@ -11,103 +11,89 @@ synchronized with 14.3.15_2015.07.09 -clarification: +feature note: This version introduces several very powerful and very different capabilities + to Jmol in the area of crystallography. + + The polyhedra command has been extended significantly, allowing for much + more interesting polyhedra and also the extraction of polyhedron information. + Polyhedra can now be SEARCHED using SMILES and SMARTS as though they were + molecules. + + Many of these features are nonexistent in other programs. They involve: - load "" 1 # loads the first model in a file when not PDB or mmCIF. - load "" 1 # loads the model with MODEL 1 record for a PDB file. - load "" 1 # loads the model with _atom_site.pdbx_PDB_model_num = 1 for an mmCIF file - load "" [1] # same as load "" 1; brackets allow for more than one model, for instance [1 3 5] - load MODELS ({1}) "" # always loads the SECOND model in a file + - new MACRO command allows us to build macros that can be used generally -bug fix: load files "xxx.png|xxxx" "xxx.png|zzzz" not read from state properly -bug fix: moving atoms with 4x4 matrix not saved in state -bug fix: moving of an atom having a polyhedron fails to move the polyhedron as well + - the ability to adjust the lattice scaling using filter "latticeScaling=0.98" + thus allowing comparison of structures with slightly different lattices + + - the ability to load a given block of space (such as a 10x10x10-Angstrom cube) + with a crystal structure irrespective of its given unit cell. + (Are these two structures that have totally different unit cells really that different?) + + load t.cif FILL + load t.cif FILL 20 + load t.cif FILL {20 10 10} + load t.cif FILL [{0 0 0} {5.2 5.2 0} {-5.2 5.5 0} {1.3 0 3.3}] + + - an extension of SMILES to compare bonding topology irrespective of atom identity. + (Are these two atom environments both iscoahedral?) + + x = {@1 and 1.1 and connected(@1)}.find("SMILES", "*"} + y = {2.1}.find("SMARTS", x) + + - the generation of polyhedra in crystal structures for which only the central atom + may be loaded. + (What is the atom environment around Au3 in this crystal structure?) + + load t.cif // just the unit cell, maybe just one atom even + polyhedra 4-12 UNITECELL @1 + + - the ability to show and draw the point group of a polyhedron + + load t.cif + polyhedron 12 unitcell @1 + select @1 + show pointgroup POLYHEDRON + draw pointgroup POLYHEDRON + + - the ability to extract information about polyhedra + + print getProperty("shapeInfo.polyhedra[1]").keys -bug fix: x.getProperty("[select name where composition[1] == 0.5]") - -- the [ there is tripping us up. True, ..1 could be used instead as well. -bug fix: 2015.07.06 breaks text writing in JSmol -bug fix: Crystal reader cannot handle TOTAL ENERGY CORRECTED... line + _ipt + center + modelIndex + planeCount + polygons + vertexCount + vertices -bug fix: mmCIF reader does not recognize load MODEL ... -bug fix: PDB reader should be reading load "" [1 3 4] as MODEL record numbers, not sequential numbers -bug fix: load MODELS "" [1 3 4] does not work (although load "" [1 3 4], without with MODELS keyword, works) - -bug fix: SMARTS processing with "." may not find substructure - -bug fix: POVRay and VRML exporters mishandle label backgrounds -bug fix: exports not handling rockets correctly - -bug fix: 1/{a b c} gives 0, not 1/length({a b c}) - -bug fix: AFLOW binary file reader can fail with certain VASP formats containing - both in-line atom labels and atom elements prior to #elements line. (AlPd#5, for example) - -bug fix: ++x and x++ do not increment properly when in expressions - // no problem here because it is compiled as "x = x + 1" - x = 0 - x++ - print "x should be 1 " + x - - // x does not increment, but the test passes - x = 0 - if (++x) { - print "good" - } - print "x should be 1 " + x + - the ability to select polyhedra + + select polyhedra + select polyhedra(4) - // x does not increment, but the test passes ("bad" is not printed) - x = 0 - if (x++) { - print "bad" - } - print "x should be 1 " + x - x = 0 - // works - x++ - // y is OK, but x does not increment - y = x++ - print "x should be 2 " + x - x = 0 - // z is OK, but x does not increment - z = ++x - print "x should be 1 " + x + print polyhedra() + print polyhedra(4) + - // result: - - x should be 1 1 - good - x should be 1 0 - x should be 1 0 - x should be 2 1 - x should be 1 0 + - the ability to draw points from derived arrays + + draw diameter 0.2 points @{getProperty("shapeInfo.polyhedra[1].vertices")} + -bug fix: msCIF reader can hang if occupancy is not fractional -bug fix: JSmol applet not returning full set of parameters in animFrameCallback -bug fix: load FILL command can fail if base unit cell is not part of the needed set for the specified volume +clarification: -bug fix: wireframe ONLY (RESTRICT) executes polyhedral DELETE instead of OFF -bug fix: Polygons not indicating visibility when they are the only thing visible. -bug fix: x[++y] did not increment y. x[y++] and other contexts were fine - -bug fix: msCIF reader failing for Legendre polynomials of order greater than 4 - -- JavaScript fix for new double[m + 1][] - -- must use AU.newDouble2(m + 1); - -bug fix: var firstPARAM = "p1_b"; x = [FIRSTParam: "p1_a"]; results in lowering of case as [firstparam:....] -bug fix: set drawPicking draw;set drawpicking does not show handles -bug fix; point group not calculated when the selected atoms are a subset of a model -bug fix: x.find("SMILES") is incorrect for structures that have hypervalent atoms and branches such as inorganic nitrates -bug fix: msCIF reading with two models, and only one has displacement modulation causes "render error" crash -bug fix: msCIF reader failing for Legendre polynomials of order greater than 4 -bug fix: DRAW for quadrilateral broken when perspective depth is turned off. -bug fix: SET ECHO IMAGE broken in JavaScript version - -bug fix: polyhedra broken for number of vertices > 6. - -- needed smaller default distanceFactor (set to 1.5; formerly 1.85) - -- this setting is for any - - + load "" 1 # loads the first model in a file when not PDB or mmCIF. + load "" 1 # loads the model with MODEL 1 record for a PDB file. + load "" 1 # loads the model with _atom_site.pdbx_PDB_model_num = 1 for an mmCIF file + load "" [1] # same as load "" 1; brackets allow for more than one model, for instance [1 3 5] + load MODELS ({1}) "" # always loads the SECOND model in a file +new feature: load xxx filter "latticeScaling=1.2" + -- scales model based on a crystal lattice + -- allows volume matching for crystal comparison + new feature: smiles2.find("SMILES",smiles1, asMap, allMappings) -- asMap = TRUE (default false) indicates you want an atom correlation map indicating positions in smiles2 corresponding to smiles1 @@ -129,15 +115,17 @@ select {1.1} rotateselected @mat +new feature: x.find("SMILES","*") + -- creates a topology SMILES, involving just * and connections + -- does not include stereochemistry + -- allows comparison of connection patterns without respect to any other consideration. + -- can be used to check equivalences in inorganic crystal structures. + new feature: JSmol Jmol._persistentMenu = true -- allows menu to persist and not be removed new feature: JSmol <div id=JmolApplet0_console></div> sets a place on the page for the JSmol console. -new feature: load xxx filter "latticeScaling=1.2" - -- scales model based on a crystal lattice - -- allows volume matching for crystal comparison - new feature: MACRO command -- runs predefined script, generally defining new functions of general use -- contributions welcome! @@ -198,11 +186,6 @@ print [0 3 4 "" 5 {} [] 6].find("") [ "" {} [] ] -new feature: polyhedra ONLY - -new feature: calculate symmetry POLYHEDRA - -- sets values for ShapeInfo.Polyhedra.smiles, .smarts, and .pointGroup - new feature: extracting array of sequential arrays from array of associative arrays -- pull out just the values desired into a sequential array -- example, where b is an array of associative arrays [....., energy:..., pointGroup....] @@ -228,7 +211,22 @@ c = b.bin(-0.1,0.1,0.02,"energy") print b.format(["energy", "pointGroup"]).sort(1).reverse.format("%5.3f %5s") +new feature: array.getProperty("xxxx") + -- same as getproperty(array, "xxxx") + -- drills down into an array of associative arrays to get sublist + -- can be used with [SELECT ... WHERE] + +new feature: draw POINTS [ array of points ] + + draw diameter 0.2 points @{getProperty("shapeInfo.polyhedra[1].vertices")} + + +new feature: polyhedra ONLY + +new feature: calculate symmetry POLYHEDRA + -- sets values for ShapeInfo.Polyhedra.smiles, .smarts, and .pointGroup + new feature: polyhedra highlight with select ON or set selectionHalos ON new feature: getProperty("ShapeInfo.polyhedra") includes keys @@ -273,72 +271,6 @@ // make the current frame set just those models frame @z -new feature: array.getProperty("xxxx") - -- same as getproperty(array, "xxxx") - -- drills down into an array of associative arrays to get sublist - -- can be used with [SELECT ... WHERE] - - -feature note: This version introduces several very powerful and very different capabilities - to Jmol in the area of crystallography. Many of these features are nonexistent - in other programs. They involve: - - - an extension of SMILES to compare bonding topology irrespective of atom identity. - (Are these two atom environments both iscoahedral?) - - x = {@1 and 1.1 and connected(@1)}.find("SMILES", "*"} - y = {2.1}.find("SMARTS", x) - - - the generation of polyhedra in crystal structures for which only the central atom - may be loaded. - (What is the atom environment around Au3 in this crystal structure?) - - load t.cif // just the unit cell, maybe just one atom even - polyhedra 4-12 UNITECELL @1 - - - the ability to load a given block of space (such as a 10x10x10-Angstrom cube) - with a crystal structure irrespective of its given unit cell. - (Are these two structures that have totally different unit cells really that different?) - - load t.cif FILL - load t.cif FILL 20 - load t.cif FILL {20 10 10} - load t.cif FILL [{0 0 0} {5.2 5.2 0} {-5.2 5.5 0} {1.3 0 3.3}] - - - the ability to show and draw the point group of a polyhedron - - load t.cif - polyhedron 12 unitcell @1 - select @1 - show pointgroup POLYHEDRON - draw pointgroup POLYHEDRON - - - the ability to extract information about polyhedra - - print getProperty("shapeInfo.polyhedra[1]").keys - - _ipt - center - modelIndex - planeCount - polygons - vertexCount - vertices - - - the ability to select polyhedra - - select polyhedra - select polyhedra(4) - - print polyhedra() - print polyhedra(4) - - - - the ability to draw points from derived arrays - - draw diameter 0.2 points @{getProperty("shapeInfo.polyhedra[1].vertices")} - - new feature: POLYHEDRA 12 UNITCELL -- creates a polyhedron (12-gon in this case) around each of the currerntly selected atoms that has that bonding environment @@ -367,10 +299,6 @@ vertexCount vertices -new feature: draw POINTS [ array of points ] - - draw diameter 0.2 points @{getProperty("shapeInfo.polyhedra[1].vertices")} - new feature: show pointgroup POLYHEDRON -- uses points from the polyhedron of the first selected atom -- recommended to use specific atom reference in POLYHEDRA command: @@ -463,17 +391,98 @@ new feature: select polyhedra(4) -- selects central atoms of any atoms having tetrahedral polyhedra. -new feature: x.find("SMILES","*") - -- creates a topology SMILES, involving just * and connections - -- does not include stereochemistry - -- allows comparison of connection patterns without respect to any other consideration. - -- can be used to check equivalences in inorganic crystal structures. - - code: SMILES code cleaned up. code: most image loading is now asynchronous. (Not BMP, not from PNGJ files with "|" in filename) code: introducing interfaces to allow less use of @j2sNative and more traceability of method calls in Eclipse +bug fix: load files "xxx.png|xxxx" "xxx.png|zzzz" not read from state properly +bug fix: moving atoms with 4x4 matrix not saved in state +bug fix: moving of an atom having a polyhedron fails to move the polyhedron as well + +bug fix: x.getProperty("[select name where composition[1] == 0.5]") + -- the [ there is tripping us up. True, ..1 could be used instead as well. +bug fix: 2015.07.06 breaks text writing in JSmol +bug fix: Crystal reader cannot handle TOTAL ENERGY CORRECTED... line + +bug fix: mmCIF reader does not recognize load MODEL ... +bug fix: PDB reader should be reading load "" [1 3 4] as MODEL record numbers, not sequential numbers +bug fix: load MODELS "" [1 3 4] does not work (although load "" [1 3 4], without with MODELS keyword, works) + +bug fix: SMARTS processing with "." may not find substructure + +bug fix: POVRay and VRML exporters mishandle label backgrounds +bug fix: exports not handling rockets correctly + +bug fix: 1/{a b c} gives 0, not 1/length({a b c}) + +bug fix: AFLOW binary file reader can fail with certain VASP formats containing + both in-line atom labels and atom elements prior to #elements line. (AlPd#5, for example) + +bug fix: ++x and x++ do not increment properly when in expressions + // no problem here because it is compiled as "x = x + 1" + x = 0 + x++ + print "x should be 1 " + x + + // x does not increment, but the test passes + x = 0 + if (++x) { + print "good" + } + print "x should be 1 " + x + + // x does not increment, but the test passes ("bad" is not printed) + x = 0 + if (x++) { + print "bad" + } + print "x should be 1 " + x + x = 0 + // works + x++ + // y is OK, but x does not increment + y = x++ + print "x should be 2 " + x + x = 0 + // z is OK, but x does not increment + z = ++x + print "x should be 1 " + x + + // result: + + x should be 1 1 + good + x should be 1 0 + x should be 1 0 + x should be 2 1 + x should be 1 0 + +bug fix: msCIF reader can hang if occupancy is not fractional +bug fix: JSmol applet not returning full set of parameters in animFrameCallback +bug fix: load FILL command can fail if base unit cell is not part of the needed set for the specified volume + +bug fix: wireframe ONLY (RESTRICT) executes polyhedral DELETE instead of OFF +bug fix: Polygons not indicating visibility when they are the only thing visible. +bug fix: x[++y] did not increment y. x[y++] and other contexts were fine + +bug fix: msCIF reader failing for Legendre polynomials of order greater than 4 + -- JavaScript fix for new double[m + 1][] + -- must use AU.newDouble2(m + 1); + +bug fix: var firstPARAM = "p1_b"; x = [FIRSTParam: "p1_a"]; results in lowering of case as [firstparam:....] +bug fix: set drawPicking draw;set drawpicking does not show handles +bug fix; point group not calculated when the selected atoms are a subset of a model +bug fix: x.find("SMILES") is incorrect for structures that have hypervalent atoms and branches such as inorganic nitrates +bug fix: msCIF reading with two models, and only one has displacement modulation causes "render error" crash +bug fix: msCIF reader failing for Legendre polynomials of order greater than 4 +bug fix: DRAW for quadrilateral broken when perspective depth is turned off. +bug fix: SET ECHO IMAGE broken in JavaScript version + +bug fix: polyhedra broken for number of vertices > 6. + -- needed smaller default distanceFactor (set to 1.5; formerly 1.85) + -- this setting is for any + + code: to be released 6/11/15 JmolVersion="14.3.14_2015.06.10c" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ Don't Limit Your Business. Reach for the Cloud. GigeNET's Cloud Solutions provide you with the tools and support that you need to offload your IT needs and focus on growing your business. Configured For All Businesses. Start Your Cloud Today. https://www.gigenetcloud.com/ _______________________________________________ Jmol-commits mailing list Jmol-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jmol-commits