GGA Sofware Services

Page Contents

Indigo

Overview

Indigo is a universal organic chemistry toolkit. It contains first-class tools for end users, as well as a documented API for developers. Indigo it is completely free and open-source, while also available on a commercial basis.

Indigo is based on a cheminformatics library that incorporates a number of unique algorithms developed by GGA, as well as some standard algorithms well-known in the cheminformatics world. Since the core part of Indigo is written in modern C++ with no third-party code or dependencies except the ubiquitous zlib and libcairo, the toolkit provides outstanding performance and excellent portability.

Indigo is used by many corporations and institutions. This includes some Indigo-based commercial tools developed exclusively for our clients. Also, our open-source chemical search engine Bingo is developed on top of the Indigo library.

Indigo SDK does not make any restrictions for developers. Whatever your favorite platform is—Java, C#, or Python, not to mention plain C—you can easily integrate Indigo into your application. All problems you may be afraid of, such as loading binary modules appropriate for the system, or threading issues, or stack overflows, are already solved for you. Also, it is easy to start, as the interface is very neat. No data types besides the absolute minimum required for it to work. No internal data formats. No painful initialization procedures.

Indigo SDK is highly configurable and extensible. You can write C/C++/C#/Java/Python plugins for it and distribute them independently.

Indigo has got support from the cheminformatics community. Any question or comment you have, you can always post it publicly and get a timely reply from the developers' team.

Features

Portability

Indigo is written from scratch 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. tinyxml is used to parse CML files. No other third-party components are used.

Indigo exposes the C interface to applications. Java and Python wrappers are available for all of the supported platforms. For Windows, there is also a .NET wrapper.

All of the the code of Indigo is thread-safe, and so its use does not present a problem in multi-threaded applications.

Documentation

To understand Indigo's scope, start with the Concepts page. A quick reference of the API for all supported languages is provided in the API page. A separate page deals with the C interface. Various options that can be passed to the library are explained on the Options page.

GCC 2010 Presentation

Here is the presentation for the talk that was given in November 2010 in Goslar at the German Conference on Chemoinformatics: PDF (396K).

And here is the poster presented at the same conference: PDF (3.1M).

KNIME Nodes

We provide a number of freely available nodes for the KNIME workflow engine. The nodes are based on Indigo and its Java SDK.

Java GUI Utilities

Two Indigo-based Java GUI applications are provided:

Command-Line Utilities

Three Indigo-based command-line utilities written in plain C are provided:

Download and Install

Look at the Downloads page for the installation package suitable for your system.

License

Copyright © 2009-2011 GGA Software Services 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/.

Commercial Availability

If the GPL-licensed Indigo does not fit your needs, please contact us at info@ggasoftware.com to discuss the purchase of a commercial license. You may need the commercial license if you want to: