GET Visualization of crystalline 3d structures in a browser without plugins / Sudo Null IT News FREE
Hello, Habr! In this article, I will liken the 4 open engines for visualizing crystalline structures in the CIF data formatting (Crystallographic Information File), which is popular in crystal chemical science and materials science. It will be about modern JavaScript (including transcompilation of Java and C in JavaScript), crystal chemical science and self-coloured state physics. We teleport from the world of Schrödinger and Landau to the ma of Berners-Lee and Jobs, and then back. So LET's go.
It is known from the school natural philosophy course that the atoms in a solid are placed into sporadically repeating structural units of the order of a nanometer in size, forming a crystal wicket. Solid-state physics
studies the human relationship betwixt the properties of these cognition units (whole cells) and the properties of the objects of the world. For example, by dominant the adsorption of water molecules on the surface of transition metal oxides, one can reduce the monetary value of hydrogen and oxygen synthesis , improve the execution of fuel cells and sensors , and optimize drug delivery in pharmacology . Concisely, solid-state physics in one way Beaver State another describes whatsoever research laboratory or technological process, and here the value of unit visualization is extremely tough to overestimate. De facto in materials science, the most common computer format for exchanging data on crystal structures is CIF. An important dispute between CIF and many another chemical formatsis the support of 3d-translations, in other words, to set an infinite 3d-quartz glass, we repeat its unit cubicle in three directions.
CIF was created in the 90s aside the International Crystallography Union (IUCR). The basis of CIF is a textbook container called STAR (Self-Defining Text Archive and Retrieval), where the physical properties obtained as a result of diffractometry or abstractive calculations are marked with regular tags. Standard tags define the unit cell parameters, its symmetry, its constituent atoms, metadata of the corresponding scientific publication, etc. These tags are arranged in external CIF dictionaries, similar to XSD schemas of XML documents, so it is possible to validate a CIF document in a CIF dictionary and even up derive new physical properties supported available ones. The differences are that CIF allows arbitrary tags that are ignored away the CIF parser (of course, later they can turn division of the standard and be included in new dictionaries by decision of the IUCR union). Moreover, CIF supports a relational information model where, for example, you send away refer to certain atoms in a crystal structure by their identifiers. The disadvantage is the lack of roomy support for multi-level hierarchies, Hera the STAR container plays XML. Incidentally, this is why CIF has an XML competitor called CML (Chemical Markup Language).
Traditionally, CIF files raw in background applications (Vesta, Accelrys / BIOVIA, RasMol and many others), however, in this area, about quaternion years agone, browsers began their crusade against desktop applications. The open source fruits of this trip out known to me are self-contained below, and their encrypt in the form of a unwed web coating fanny be found in the repository . The code was tested in several popular browsers, including IE 11 and maneuverable Safari. The structure of the repository is equally follows: the information folder contains examples of CIF models (if you have ever dealt with quartz glass chemistry or material science, you probably will have your own), the engines folder contains JavaScript inscribe for all engines, utilscontains accessory encrypt, for illustration, a browser file downloader for localised processing of CIF models. Thus, to launch a web application, just open its folder for the WWW server and attend the proper speech in the browser (or simply go to the deposit ). All files are static, no server processing is provided.
In short near the four models from the data folder :
- adsorption.cif - model of the aforementioned water supply adsorption on perovskite (see picture), unit cell, by default it is loaded into each of the engines,
- fullerene.cif - fullerene C 60 ,
- lfp.cif - lithium iron inorganic phosphate LiFePO 4 , cathode material of a Li-ion battery. Pay attention to the Li ion: it is precise brightness level and mobile (and all because atomic number 3 is the ordinal in the periodic table). The third Li negatron comes or goes into the external circuit Eastern Samoa a result of discharging or charging the battery, while the Li ion travels through and through the electrolyte.
- mdma.cif - 3,4-methylenedioxy-N-shabu. Its useable groups can make up replaced with the proportionate effect, patc a new and therefore legal substance is bag-shaped. This is precisely the problem of semisynthetic analogues.
Straightaway, in fact, the results of comparing engines.
Locomotive engine | Version | The total amount of code (in brackets GZip) | Interlingual rendition technology | Customization | License |
---|---|---|---|---|---|
Jsmol | 14.2.15 | 2.1 MB (700 KB) | canvas | rich, programmatic and in UI | LGPL |
ChemDoodle Web Components | 7.0.1 | 354 KB (121 KB) | Webgl | gilded, package | GPL v3 |
Rasmoljs | - | 1.1 MB (462 KB) | canvas, sdl, asm.js | rich, computer software | GPL |
Thespian.html | 0.10 | 265 Kilobyte (83 KB) | canvas, Three.js | limited in UI | MIT |
I did not consider solutions based on Java applets, Tacky and other plug-ins
, entirely pure (as it is commonly said, "vanilla") JavaScript. However, pure JavaScript can personify synthesized from many other languages , the first and third solution are scarcely such cases.
JSmol derived from Jmol Java code victimization the Java2Script puppet. The total amount of JSmol code is 12.7 MB, parts of which are downloaded A needed. The table above shows the amount required to start. Functionally, this engine completely repeats its Sir Thomas More famous Java similitude, providing the richest set of features. The comparison could be completed here if it were not for the gigantic size of it (and the slowest take up) and the costs of porting a alien whole sle, in primary, ugly and unreadable JavaScript.
ChemDoodle Web Componentsbased on branded product. This has advantages (fantabulous documentation, high quality of some the code and the product as a unimpaired) and disadvantages (restrictions on use, non-disabling sending information about users). The disadvantages include the lack of canvas support in favor of WebGL, which means that IT does not process slightly outdated equipment. If the flaws are not a problem, this engine hind end be called a success.
RasmolJS is derived from its sr. C-brother RasMol using Emscripten . British chemoinformatics Yule O'Boyleported the underived graphic functionality to the SDL library buttressed by Emscripten, as a result, the trans-compiled JavaScript encipher performs 3d rendering in the canvass element. In summation, the code is generated according to the asm.js standard, which in theory should put up a performance boost. In practise, it turned out to be a sort o heavy and slow locomotive engine, besides lacking a keep down of functions of the previous participants.
Participant.hypertext mark-up language written by me using Three.js and Mathematics.js . The emphasis is on reductivism and speed, as well as supporting the widest possible range of equipment, so that the locomotive whole shebang even on past laptops. Development started comparatively recently, and the functionality is still not real rich. Thus, I revalue any criticism and thirst.
DOWNLOAD HERE
GET Visualization of crystalline 3d structures in a browser without plugins / Sudo Null IT News FREE
Posted by: weirnonsts.blogspot.com
0 Response to "GET Visualization of crystalline 3d structures in a browser without plugins / Sudo Null IT News FREE"
Post a Comment