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
,
InChINumbersTools
public static long[] label(IAtomContainer container, int[][] g, long[] invariants)
InChINumbersTools
but is computationally much more expensive.container
 structureg
 adjacency list graph representationinvariants
 initial invariantsEquivalentClassPartitioner
,
InChINumbersTools
public 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 representationEquivalentClassPartitioner
public 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:97101].
The bits in the low 32bits 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.