Next-Generation Organic Chemistry Toolkit from SciTouch LLC
Dingo is an IUPAC-compliant cross-platform open-source library for molecule and reaction 2D structural formula rendering.
Dingo is written in portable C++ and supports Linux, Windows, and Mac OS X operating systems. The rendering is done via Cairo vector graphics library. zlib and libpng are needed for Cairo. No other third-party components are used.
Dingo exposes the C interface to applications. Java wrapper is available for all supported platforms. For Windows, there is also Dingo.Net C# language wrapper. See .NET Reference for details.
A command-line rendering utility based on Dingo is provided. See Command-line Reference for details.
All operation of Dingo is thread-safe, and so there is no problem to use it in multi-threaded applications. Please note, however, that Dingo.NET wrapper instances cannot be shared across multiple threads. Every instance is bound to a thread where it is created.
Dingo supports SMILES and reaction SMILES input formats. The layout procedure (clean structure) is performed internally to obtain a good view of a molecule or reaction.
Almost all features of the original Daylight SMILES format are supported, including:
The only features that are not supported are:
The following ChemAxon SMILES extensions are supported:
Also, there is basic support of SMARTS (query SMILES) and SMIRKS (reaction SMARTS). Currently, only the 'any' atoms and 'any' bonds are supported.
MDL (Symyx) Molfiles and Rxnfiles are supported. Almost all format features are supported, including:
The only features that are not supported are:
The following output formats are supported on all platforms:
On Windows platforms, Dingo can also:
Produced PNG-s and Bitmaps are transparent unless the background was set explicitly. Produced SVG-s, PDF-s, and Metafiles contain no raster fragments.
Dingo is also capable of performing layout without rendering. In order to use it, set output format to “mol” for molecules or “rxn” for reactions and call dingoLayout() instead of dingoRender(). As with rendering, one can store the result either in a file or in an internal buffer. Note that none of the options used for rendering apply in this case, e.g. average bond length parameter does not affect layout, so the average length of the bonds in molecule will always be around 1.0. Dingo is not sensitive to the scale of molecule coordinates, while some other tools are.
Dingo follows the IUPAC recommendations (1, 2) for graphical representation. The features that are not covered by IUPAC (mostly, query features) are drawn in such a way that they do not to overlay the primary structure.
In the Bingo User Manual, you can find examples of rendered molecules and reaction. All the pictures in this manual were rendered to SVG by Dingo.
Look at the Downloads page for the installation package suitable for your system.
See also Java library reference, .NET Library Reference, and Command-line Reference.
Copyright © 2009-2010 SciTouch LLC
This program is free software: You can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 3 of the License.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If you did not not, please see http://www.gnu.org/licenses/.
If GPL-licensed Dingo does not fit your needs, please contact us at info@scitouch.net to discuss the purchase of a commercial license. You may need the commercial license if you want to: