ChemDoodle Web Components 4.4.0 has been released. This significant update provides new WebGL features, CIF file interpretation, 3D graphics for nucleic acids, a handful of new iChemLabs services and general improvements. In addition to these new features, additional tutorial pages have been added, and two new demos are presented:
- Benzene Pong – Play Pong with a twist. Instead of a ball, you have a benzene ring. Have fun!
- IZA Zeolite Explorer – Search through the IZA database of zeolites and view unit cells and supercells in various representations.
Many organizations are now using the ChemDoodle Web Components to target mobile devices and gain an advantage over their competition. Contact us today to discuss opportunities.
Executive Summary
This significant update provides new WebGL features, CIF file interpretation, 3D graphics for nucleic acids, a handful of new iChemLabs services and general improvements.
Additions
- Advanced support for the features in PDB files. HETATM atoms are now displayed by default, as they usually describe ligands. Protein and nucleic acid atoms will be hidden by default, and can be shown with a visual specification. You can also control a cutoff distance from ligand atoms to show residue atoms. Water molecules can be shown and hidden with a visual specification.
- New 3D graphics for nucleic acids. Tubes represent the phosphate backbone with platforms representing the bases.
- Protein ribbons now have thicknesses and this can be controled with a visual specification.
- Crystallographic Information Files can now be read with the new CIFInterpreter class. See this page for more details.
- Unit cells can now be rendered for relevant data, and will be automatically rendered for CIF data. The unit cell color and line width can be set with visual specifications.
- Added new iChemLabs services.
- kekulize() – provided with an input Molecule, this function will kekulize either the entire single bond system, or just the resonance bonds into a valid kekule structure where pi delocalization is maximized; the kekulized copy structure will be returned as a parameter to the callback function
- isGraphIsomorphism() – this function will determine if the arrow molecule is a graph isomorphism of the target molecule, with the boolean value being returned as a parameter to the callback function
- isSubgraphIsomorphism() – this function will determine if the arrow molecule is a subgraph isomorphism of the target molecule, with the boolean value being returned as a parameter to the callback function
- readIUPACName() – given an IUPAC name, the corresponding molecule will be returned as a parameter to the callback function
- generateImage() – generates an image file of the input Molecule in any of the chemical formats that ChemDoodle understands (specified by the ext parameter); returns a link to the callback function that is the url of the file on our server that can then be downloaded
- getZeoliteFromIZA() – given an IZA code, the read zeolite, in a Molecule data structure, will be returned as a parameter to the callback function; the three number parameters are the supercell dimensions, and if not specified, will default to 1
- Visual specifications can now be set to individual atoms, bonds or groups, for total control over graphical rendering. See this page for more details.
- Canvases now take into account the device pixel ratio for absolutely crisp graphics on mobile devices that support densely packed pixels. In other words, the Retina display on the iPhone 4 is now supported as well as various Android devices that have high resolution screens.
- Added a new class, Splitter, to split a Molecule data structure composed of multiple discrete structures, into individual Molecule data structures.
- A new feature detection function, ChemDoodle.featureDetection.supports_gesture(), to determine if the browser supports multitouch and gestures.
- iChemLabs services are asynchronous by default; they can now be forced synchronous, by setting the ChemDoodle.iChemLabs.asynchronous variable to false.
- Orthographic projections for WebGL canvases can now be set with visual specifications.
- The calculator for the sketcher now lists more descriptors.
- The calculator for the sketcher now displays units for calculations.
Fixes
- Renamed the “ribbon” visual specifications to more closely match the standards by which the other specifications are named. Make sure to update these names in your programs.
- MOLInterpreter no longer multiplies the y coordinate by -1, as necessary for 2D files, if the multiplier is 1, so stereocenters in 3D files remain correct.
- Added shader debug alerts for program linking.
- Removed all double quotes in Javascript source, replacing them with single quotes to remain consistent throughout the source code.
- WebGL code cleaning and optimizing.