public final class Canon extends Object
InChINumbersTools.
IAtomContainer m = ...; int[][] g = GraphUtil.toAdjList(m); // obtain canon labelling long[] labels = Canon.label(m, g); // obtain symmetry classes long[] labels = Canon.symmetry(m, g);
| Modifier and Type | Method and Description |
|---|---|
static long[] |
basicInvariants(IAtomContainer container,
int[][] graph)
Generate the initial invariants for each atom in the
container. |
static long[] |
label(IAtomContainer container,
int[][] g)
Compute the canonical labels for the provided structure.
|
static long[] |
label(IAtomContainer container,
int[][] g,
long[] invariants)
Compute the canonical labels for the provided structure.
|
static long[] |
symmetry(IAtomContainer container,
int[][] g)
Compute the symmetry classes for the provided structure.
|
public static long[] label(IAtomContainer container, int[][] g)
InChINumbersTools
but is computationally much more expensive.container - structureg - adjacency list graph representationEquivalentClassPartitioner,
InChINumbersToolspublic static long[] label(IAtomContainer container, int[][] g, long[] invariants)
InChINumbersTools
but is computationally much more expensive.container - structureg - adjacency list graph representationinvariants - initial invariantsEquivalentClassPartitioner,
InChINumbersToolspublic static long[] symmetry(IAtomContainer container, int[][] g)
EquivalentClassPartitioner gives more accurate symmetry perception but
this method is very quick and in practise successfully portions the
majority of chemical structures.container - structureg - adjacency list graph representationEquivalentClassPartitionerpublic static long[] basicInvariants(IAtomContainer container, int[][] graph)
container.
The labels use the invariants described in [Weininger, David and Weininger, Arthur and Weininger, Joseph
L., SMILES 2. Algorithm for Generation of Unique SMILES
Notation, Journal of Chemical Information and Computer
Sciences, 1989, 29:97-101].
The bits in the low 32-bits are: 0000000000xxxxXXXXeeeeeeescchhhh
where:
[O]C=O where both oxygens have no hydrogens and a single
connection but the atoms are not equivalent. Including a better
initial partition is more expensivecontainer - an atom container to generate labels forgraph - graph representation (adjacency list)NullPointerException - an atom had unset atomic number, hydrogen
count or formal chargeCopyright © 2017. All rights reserved.