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,
Comparator<IAtom> cmp)
Compute the canonical labels for the provided structure.
|
static long[] |
label(IAtomContainer container,
int[][] g,
long[] initial)
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[] initial)
InChINumbersTools
but is computationally much more expensive.container - structureg - adjacency list graph representationinitial - initial seed invariantsEquivalentClassPartitioner,
InChINumbersToolspublic static long[] label(IAtomContainer container, int[][] g, Comparator<IAtom> cmp)
cmp
allowing arbitary properties to be distinguished or ignored.container - structureg - adjacency list graph representationcmp - comparator to compare atomspublic 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 et. al.. Journal of Chemical Information and Computer
Sciences. 1989. 29).
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 © 2018. All Rights Reserved.