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: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.