Previous Versions (before 1.1.11)

Indigo 1.1.10

19 April 2013

This release has two major additions:

  1. We started to support Mono and provide a .NET version that runs on Linux and Mac OS X. This was done with help of developers from Royal Society of Chemistry ( who also helped us to localize and fix several stability issues in our .NET version.
  2. Indigo now understand aromatic rings with external double bonds such as O=C1C=CC=CC=C1. To enable this mode you have to set “aromaticity-model” option to “generic” (while default version is “basic”).

All changes:

  • Mono support: now we provide .NET modules for Windows, Linux, Mac OS X, and a universal bundle that works on all the specified platforms. Thanks to Dimitry Ivanov for various suggestions:

  • Indigo Renderer automatically selects output format based on the file extension. It is not necessary to specify “render-output-format” option if you are rendering into a file.

  • Original hydrogens are not folded during molecule transformations. Thanks to Ken for the bug report:

  • Either cis/trans bond marked is preserved during molfile loading even if substitutes are collinear.
  • Indigo Renderer now has additional options for partial image size specification. These options are: “render-image-width”, “render-image-height”, “render-image-max-width”, “render-image-max-height”

  • Fixed an issue in the SMILES loader module that set invalid number of implicit hydrogens:
  • Generic aromaticity model that can be enabled by “aromaticity-model” option. Thanks to Daniel for pushing us to implement this functionality.

  • Another aromaticity option for find any kekulize configuration if Indigo cannot dearomatize a structure. For example Indigo cannot dearomatize the structure c1ccc2c(ccc2)cc1, because there are no bonds configuration such that the structure is aromatic. But you can try to find approximate kekulize configuration if you specify option “dearomatize-verification” to “false”.

  • Indigo now uses dearomatization module to find number of hydrogens in aromatic rings in the IndigoObject.canonicalSmiles() method. If hydrogens configuration is ambiguous then Indigo throws an exception about this.

  • Additional “unique-dearomatization” option. If this option is set to true Indigo will throw an exception of dearomatization configuration is ambiguous (that means that canonical SMILES cannot be generated):
  • IndigoInchi.loadMolecule can now load molecules from InChI Aux infromation.
  • Indigo Renderer doesn’t have a dependency on the new GLIBC any more. This dependency prevented loading of Indigo Renderer on CentOS 5.9 and less.

  • Minor changes in Java and C# bindings: expandAbbreviations method has been add, typo in countDataSGroups has been fixed

  • New method to get stereocenter pyramid.
    Thanks to Daniel for the feature request:
  • Fingerprints computation now works 30% faster.

  • All stereocenter exceptions now includes also atom index:

Indigo 1.1.9

25 March 2013

New features:

  • Single atoms are encoded into Indigo fingerprint. In the previous versions we enumerated subgraphs starting from 2 atoms.
  • new method IndigoObject.resetSymmetricStereocenters to clear stereocenters that are not real stereocenters like in CC[C@@H](CN)CC


  • Implicit hydrogens are rendered better if they are on the bottom of an aromatic ring
  • Missing dependency file msvcp100.dll is loaded automatically.
  • Smiles saver doesn’t throw exception about implicit hydrogens if they are not saving in SMILES
  • Workaround for a clang 3.2 compiler bug that caused incorrect similarity values on Mac OS X platforms

Indigo 1.1.8

10 March 2013

New features:

  • For superatoms returns superatom label

  • New method indigoExpandAbbreviations in the Indigo C interface. Bindings for Java, C# will be ready soon.

  • Single record in SDF file is limited to 100Mb to prevent accident out-of-memory exceptions when loading non-SDF files.

  • Indigo compact molecule and reaction format is compatible with previous versions. KNIME workflows that are using Indigo nodes will work fine with previously saved workflows.

  • Indigo.loadMolecule reads molecule properties from SDF file too.


  • Issues with transformations. Thanks to Karen Karapetyan for various bug reports!

  • Exception on invalid options in the InChI plugin

  • Issues with long multiline in molfile data s-groups

  • Aromaticity matcher issue. Thanks to James Davidson for the bug report:
  • Atom-to-atom mapping timeout issue

  • File handlers leak in indigo.iterateSDFile method in case of empty file

Indigo 1.1.7

24 December 2012

New features:

  • stack usage has been significantly reduced. Almost all the test works find under 256Kb stack limit, meaning that everything should work in .NET and Java environment without any additional settings. Problem appeared in using Indigo in WCF service in IIS.

  • initial implementation of indigoNormalize method in Indigo API. It removed hydrogens and neutralize [N+][O-] into N=O. Other transformation are coming soon and suggestions are welcome.

  • new similarity methods normalized-edit to return an approximate measure of changes that needs to be applied to convert one molecule into another. Used in Imago testing framework to measure recognition quality based on reference files.

  • reaction catalysts serialization

  • layout method flips a molecule to ensure that that first atom is right to the last one:
  • query molfile saver outputs a number of implicit hydrogens


  • substructure matcher throws an exception if molecule has invalid valences:
  • aromatization method throws an exception if molecule has invalid valences:
  • molecule dearomatization with radicals doesn’t work

  • several issues in reaction product enumerator

  • another issue with molecule R-groups layout

  • issue with saving a molfile with R-site with index 32 causing high memory consumption. Additional internal check has been added to prohibit unexpectedly large memory allocations (that usually means bug)

  • regression in the R-group label method for an R-site without any number

  • bug in the highlightedTarget method if a molecule has been changed before

  • SVG multithreaded rending has been disabled due to the potential issue with Cairo libraries. Need to update Cairo libraries to check if problem still appear.

  • issue with tautomer substructure matching for the aromatic compounds

  • molecule aromatization method doesn’t affect R-group fragments

Indigo 1.1.6

15 October 2012 (no public announcement)

Indigo 1.1.5

28 September 2012

New features:


  • Isotope values in the InChI -> Molecule conversion method are being shifted by 10000
  • Issues in the Reaction Product Enumerator and the Transformation algorithm causing less correct results to appear
  • Exceptions during Molecule -> InChI conversion on Mac OS X if a molecule is passed in an aromatic form that cannot be dearomatized

Indigo 1.1.4

13 September 2012

  • Allene stereocenters detection algorithm is not throwing exception in case there are not atom coordinates
  • Aromatic [si] can be loaded from SMILES
  • Dearomatization improvements for B, Si, P atoms. There was an issue that the dearomatization method didn’t work with the molecule CB1OB(C)OB(C)O1 if it was loaded from SMILES in aromatic form.

New methods:

  • setExplicitValence.
  • radical, setRadical. This methods returns and accepts Indigo.SINGLET, Indigo.DOUBLET or Indigo.TRIPLET radicals.

Thanks to Ferenc for suggestions to add these methods:

Indigo 1.1.3

23 August 2012

  • JNA has been updated to 3.4.1. This fixed an issue with permissions for the temporary directory.
  • Transformation method automatically calls a layout algorithm if necessary.

  • Minor bug in the reaction exact matching algorithm has been fixed.

  • Improvements in the layout of the atoms with four bonds attached.

  • Improvements in the SMARTS saving procedure.

  • Molfile saver now correctly saves query bond topology constraints, unsaturation flag, and atom ring bond count constraint.

  • Issues with rendering query bond topology constraints and atom ring bond count constraint have been fixed.

  • Data SGroups with absolute coordinates are treated as relative for the layout procedure.

  • SRU unit in the molfile now has a label.

  • Issues causing infinite loop due to the numeric errors in the layout algorithm have been fixed.

  • Issue with loading a molecule with 3D coordinates has been fixed.
  • Allene centers now are recognized if the angle between double bonds are greater than 165 degrees.

Indigo 1.1.2

10 July 2012

  • Layout algorithm now doesn’t apply Fischer projection for atoms with 4 bonds. For example, now the CC(C)(C)C(C)(C)C(C)(C)C(C)(C)C molecule is cleaned up in a zigzag way.
  • Bug with a missing stereocenter in the transformation and reaction product enumeration algorithms has been fixed:
  • Layout algorithm for molecules with R-groups has been fixed.

Indigo 1.1.1

18 June 2012

Indigo 1.1

07 June 2012

  • ChemDiff and Legio now supports the Indigo 1.1 version, installation scripts were fixed.

Indigo 1.1 Release Candidate 3

17 May 2012

Indigo 1.1 Release Candidate 2

05 May 2012


  • Molecule with generic s-groups serialization
  • Missed IndigoRenderer within Java bundle

Indigo 1.1 Release Candidate

30 April 2012




  • The bug with aam for query reactions was fixed

  • The bug with aam timeout was fixed.
  • clearStereocenters() method now resets bond directions. After calling this method molecule is saved into Molfile format without tetrahedral bond directions.

  • Exception during saving Molfile with pseudoatoms within aromatic rings

  • Exception when loading a molecule from Molfile with 3D coordinates with invalid valences during automatic stereocenters detection.

  • Some other issues.

Indigo 1.1-beta10

29 March 2012


  • IndigoObject is Java now have dispose() method to dispose Indigo object before garbage collection.

  • Molfile atom lists now support pseudoatoms

  • Global timeout for all the most time consuming operations: substructure search, canonical smiles generation and etc. Option is called “timeout” and corresponds to milliseconds.

  • explicit hydrogen near Nitrogen is handled correctly to calculate cis-trans and tetrahedral stereo configuration.

  • InChI plugin now have “version” methods to return an actual InChI implementation version

  • Arial font is used on Linux systems to render molecules. Previously this font was used only on Windows and Mac OS X, and rendered images on Windows and Linux were different.

  • “deco-ignore-errors” option was added. Now there are no exceptions like ‘no embeddings obtained’ during the RGroup Decomposition if the flag set true. Exception is raised only for the end getters (e.g. decomposedMoleculeWithRGroups())

  • “deco-save-ap-bond-orders” option was added. Within the option output molecule RGroup attachment points are saved as pseudo atoms (named ‘AP1’, ‘AP2’ etc). Therefore, the option allows to save initial bond orders.
  • bug with the time hang was fixed for AAM.
  • minor bug fixes in AAM

  • minor bug fixes in RGroup Decomposition


Indigo 1.1-beta9

25 February 2012


  • if a molecule contains only R-group #2 then empty R-rgroup #1 is not rendered any more.

  • molecules with bad valences and charges can be serialized now

  • timeout option was added for AAM. A new option was added named “aam-timeout”. The integer parameter (time in milliseconds) corresponds for the AAM algorithm working time. The automap method returns a current state solution for a reaction when time is over.
  • default layout call was added for the deconvolultion scaffold getter (decomposedMoleculeScaffold())

  • empty RGroup handling (one single bond) was implemented for deco.

  • minor bug fixes in AAM

  • minor bug fixes in RGroup Decomposition


Indigo 1.1-beta8

29 January 2012

We have released our first version of InChI plugin that allows to load InChI strings and generate InChI and InChIKey for molecules (this version discards stereoinformation, but we are working on it). The plugin is statically linked with the official InChI library and can be loaded on demand, as it is done with IndigoRenderer plugin.

Usage example :

IndigoInchi inchi = new IndigoInchi(indigo);
IndigoObject molecule = indigo.loadMolecule("InChI=1S/C3H9NO/c1-3(5)2-4/h3,5H,2,4H2,1H3");
String inchi_string = indigo.getInchi(molecule);

New methods and functionality:

  • InChI support! (without stereochemistry yet)
  • mapMolecule(queryReactoinMolecule) to retrieve mapped molecule for the query reaction for the reaction substructure match object
  • getMolecule(index) to get the reaction molecule
  • QueryMolecules can now be constructed with the following methods:
    1. addAtom, resetAtom methods for the QueryMolecule now parses arbitrary SMARTS
    2. addBond method for QueryMolecule
    3. atom.addConstraintOr method has been added
    4. a lot of query atom constraints: atomic-number, charge, isotope, radical, valence, connectivity, total-bond-order, hygrogens, substituents, ring, smallest-ring, ring-bonds, rsite-mask


Indigo 1.1-beta7

29 December 2011


  • Fixed bug: render-grid-title-offset options is not initialized.
  • Fixed bug: all images are rendered as grid, after grid has been rendered.
  • Possible memory issue in IndigoRenderer for Java has been fixed.

Indigo 1.1-beta6

12 December 2011

New functionality:

  • Indigo.transform(reaction, molecule) method for transformation a molecule according to a rule, specified with a reaction.
  • New IndigoObject methods for working with reaction atom-to-atom mapping: atomMappingNumber, setAtomMappingNumber, clearAAM

  • New IndigoObject methods for working with attachment points: iterateAttachmentPoints, countAttachmentPoints, clearAttachmentPoints.
  • Other new IndigoObject methods with documentation has been added: changeStereocenterType, addStereocenter, reactingCenter, setReactingCenter, loadSmartsFromFile, loadReactionSmartsFromFile, getSuperatom, getDataSGroup, description, decomposedMoleculeHighlighted, getSubmolecule, addSuperatom

  • Smiles saver might throw an exception on a molecule with explicit hydrogens.


Indigo 1.1-beta5

11 August 2011

New functionality:

Note: this new methods have preliminary interface, and interface may be changed in the next version.


Indigo 1.1-beta4

29 July 2011

New functionality:

  • New methods for Indigo: resetAtom, setRSite, isHighlighted for atoms.
    Code example: atom.resetAtom(“N”), atom.setRSite(“R1, R3”), atom.isHighlighted()
  • Reaction product enumerator now supports recursive SMARTS


Indigo 1.1-alpha3

7 July 2011

New functionality since Indigo-1.0.0 stable version:

  • atomMappingNumber and setAtomMappingNumber methods for atoms to retrieve and change atom-to-atom numbers. New clearAAM method to clear atom-to-atom mapping information.
    Thanks to Daniel Lowe for pointing out that this functionality is missing. Code examples can be found in this thread:
  • addRSite method for adding R-site atoms to the molecule. This method is similar to addAtom. Code example: atom = mol.addRSite("R1")