public final class HashGeneratorMaker extends Object
atomic()
, molecular()
or ensemble()
. The
order of the built-in configuration methods does not matter however when
specifying custom encoders with encode(AtomEncoder)
the order they
are added is the order they will be used. Therefore one can expect different
hash codes if there is a change in the order they are specified.
// simple MoleculeHashGenerator generator = new HashGeneratorMaker().depth(16) .elemental() .molecular(); // fast MoleculeHashGenerator generator = new HashGeneratorMaker().depth(8) .elemental() .isotopic() .charged() .orbital() .molecular(); // comprehensive MoleculeHashGenerator generator = new HashGeneratorMaker().depth(32) .elemental() .isotopic() .charged() .chiral() .perturbed() .molecular();
Constructor and Description |
---|
HashGeneratorMaker() |
Modifier and Type | Method and Description |
---|---|
AtomHashGenerator |
atomic()
Given the current configuration create an
AtomHashGenerator . |
HashGeneratorMaker |
charged()
Discriminate protonation states.
|
HashGeneratorMaker |
chiral()
Generate different hash codes for stereoisomers.
|
HashGeneratorMaker |
depth(int depth)
Specify the depth of the hash generator.
|
HashGeneratorMaker |
elemental()
Discriminate elements.
|
HashGeneratorMaker |
encode(AtomEncoder encoder)
Add a custom encoder to the hash generator which will be built.
|
EnsembleHashGenerator |
ensemble()
Given the current configuration create an
EnsembleHashGenerator . |
HashGeneratorMaker |
isotopic()
Discriminate isotopes.
|
MoleculeHashGenerator |
molecular()
Given the current configuration create an
MoleculeHashGenerator . |
HashGeneratorMaker |
orbital()
Discriminate atomic orbitals.
|
HashGeneratorMaker |
perturbed()
Discriminate atoms experiencing uniform environments.
|
HashGeneratorMaker |
radical()
Discriminate free radicals.
|
HashGeneratorMaker |
suppressHydrogens()
Suppress any explicit hydrogens in the encoding of hash values.
|
public HashGeneratorMaker depth(int depth)
depth
- how deep should the generator hashIllegalArgumentException
- if the depth was less then zeropublic HashGeneratorMaker elemental()
BasicAtomEncoder.ATOMIC_NUMBER
public HashGeneratorMaker isotopic()
BasicAtomEncoder.MASS_NUMBER
public HashGeneratorMaker charged()
BasicAtomEncoder.FORMAL_CHARGE
public HashGeneratorMaker orbital()
BasicAtomEncoder.ORBITAL_HYBRIDIZATION
public HashGeneratorMaker radical()
BasicAtomEncoder.FREE_RADICALS
public HashGeneratorMaker chiral()
public HashGeneratorMaker suppressHydrogens()
public HashGeneratorMaker perturbed()
MinimumEquivalentCyclicSet
to break symmetry but depending on
application one may need a more comprehensive method. Please refer to
perturbWith(EquivalentSetFinder)
for further configuration
details.MinimumEquivalentCyclicSet
,
perturbWith(EquivalentSetFinder)
public HashGeneratorMaker encode(AtomEncoder encoder)
encoder
- an atom encoderNullPointerException
- no encoder providedpublic EnsembleHashGenerator ensemble()
EnsembleHashGenerator
.IllegalArgumentException
- no depth or encoders were configuredpublic MoleculeHashGenerator molecular()
MoleculeHashGenerator
.IllegalArgumentException
- no depth or encoders were configuredpublic AtomHashGenerator atomic()
AtomHashGenerator
.IllegalArgumentException
- no depth or encoders were configuredCopyright © 2021. All rights reserved.