Aromaticity options¶
aromaticity-model¶
- type
enum
- default
basic
- description
Aromaticity model
Aromaticity model used in aromatization and dearomatization procedures. Supported values:
- basic:
External double bond for aromatic rings are not allowed
- generic
External double bond are allowed
m = indigo.loadMolecule('O=c1[nH]c(nc2c1CSCC2)c1ccc(cc1)C(F)(F)F')
indigo.setOption("render-comment", "Aromatized")
indigoRenderer.renderToFile(m, "result_1.png")
indigo.setOption("aromaticity-model", "basic")
m.dearomatize()
indigo.setOption("render-comment", "Dearomatized (basic)")
indigoRenderer.renderToFile(m, "result_2.png")
indigo.setOption("aromaticity-model", "generic")
m.dearomatize()
indigo.setOption("render-comment", "Dearomatized (generic)")
indigoRenderer.renderToFile(m, "result_3.png")
dearomatize-verification¶
- type
boolean
- default
true
- description
Verify dearomatization method
In the dearomatization method Indigo enumerates possible single/double bonds configurations and checks that such configuration is aromatic. If there are no valid dearomatization for a given aromatic system, then Indigo leaves such aromatic system unchanged. With this option disabled Indigo dearomatizes such aromatic system, but without guarantee that this dearomatization is correct. It can be used to convert anti-aromatic rings:
m = indigo.loadMolecule('c1ccccccc1')
indigo.setOption("render-comment", "Original\nstructure")
indigoRenderer.renderToFile(m, "result_1.png")
m.dearomatize()
indigo.setOption("render-comment", "Dearomatized with\nverification")
indigoRenderer.renderToFile(m, "result_2.png")
indigo.setOption("dearomatize-verification", False)
m.dearomatize()
indigo.setOption("render-comment", "Dearomatized without\nverification")
indigoRenderer.renderToFile(m, "result_3.png")
unique-dearomatization¶
- type
boolean
- default
false
- description
Find dearomatization if all possible configurations uniquely define hydrogens.
Molfile format doesn’t store information about hydrogens in aromatic rings and this leads to a situation when two different (tautomers) structure has the same aromatization.
Molecules (A) and (B) are different, and aromatic forms are the following:
Such aromatic molecules can be dearomatized, all atoms has specific number of implicit hydrogens and we can compute canonical SMILES:
Output:
(A): Nc1[nH]c(O)c[n]1
(B): Nc1[nH]cc(O)[n]1
Let’s consider that we loaded a molecule (A) or (B) in an aromatic form from molfile. If explicit hydrogens are not saved into molfile then we get the following structure:
Canonical SMILES computation throws an exception on such molecule because we cannot decided if it is (A) or (B).
Dearomatization method by default doesn’t check uniqueness in terms of number of Hydrogens:
m3 = indigo.loadMoleculeFromFile('data/ambiguous_arom3.mol')
m3.dearomatize()
indigo.setOption("render-comment", "(C)")
indigoRenderer.renderToFile(m3, "result_3.png")
But such check it can be set explicitly if needed, and dearomatize method will throw an exception in this case:
m3 = indigo.loadMoleculeFromFile('data/ambiguous_arom3.mol')
indigo.setOption("unique-dearomatization", True)
try:
m3.dearomatize()
except IndigoException, ex:
print(str(ex))
Output:
non-unique dearomatization: Dearomatization is not unique
But we still can dearomatize structures if number if hydrogens is uniquely defined:
m = indigo.loadMoleculeFromFile('data/ambiguous_arom4.mol')
indigoRenderer.renderToFile(m, "result_1.png")
indigo.setOption("unique-dearomatization", True)
m.dearomatize()
indigoRenderer.renderToFile(m, "result_2.png")
Input: data/ambiguous_arom4.mol