public class AgniFingerprintGenerator extends BaseAnalysis
Modifier and Type | Field and Description |
---|---|
protected java.util.SortedSet<java.lang.Double> |
Etas
η values used when evaluating fingerprints
|
protected PairDistanceAnalysis |
NeighborFinder
Tool used to find and compute distances to neighboring atoms
|
Structure
Constructor and Description |
---|
AgniFingerprintGenerator() |
Modifier and Type | Method and Description |
---|---|
void |
addEta(double eta)
Add an eta to the fingerprint vector
|
void |
clearEtas()
Clear the list of η used when computing the fingerprints
|
double[][][] |
computeAllFingerprints()
Compute the fingerprints for each atom in each direction
|
protected double[] |
computeCutoffContribution(double[] distances)
Compute the contribution of the cutoff function to this data.
|
double[][] |
computeFingerprint(int atomID)
Compute the fingerprint for a single atom in a single direction
|
protected double[] |
computeProjectedR(int atomID,
int direction,
java.util.List<org.apache.commons.lang3.tuple.Pair<AtomImage,java.lang.Double>> neighbors)
Compute the distance between our atom and each of its neighbors projected along a certain direction.
|
double |
getCutoffDistance()
Get the cutoff distance for this model
|
java.util.List<java.lang.Double> |
getEtas()
Get the list of ηs used when computing the fingerprint
|
protected void |
precompute()
Perform any kind of computations that should only be performed once.
|
void |
setCutoffDistance(double distance)
Set the cutoff distance for the fingerprints
|
void |
setEtasLogarithmic(double min,
double max,
int number)
Set a logarithmic spacing for the etas.
|
analyzeStructure, recompute
protected final PairDistanceAnalysis NeighborFinder
protected final java.util.SortedSet<java.lang.Double> Etas
protected void precompute() throws java.lang.Exception
BaseAnalysis
precompute
in class BaseAnalysis
java.lang.Exception
- If computation failspublic void clearEtas()
public void addEta(double eta)
eta
- Value to addpublic void setEtasLogarithmic(double min, double max, int number)
If size == 1, only generates the mimimum value
min
- Minimum value. 10-1 in original papermax
- Maximum value. 102 in original papernumber
- Number of values (must be >=1)public java.util.List<java.lang.Double> getEtas()
public double[][][] computeAllFingerprints()
xij
is the fingerprint vector for atom i
in
direction j
(where 0=x, 1=y, 2=z)public double getCutoffDistance()
public void setCutoffDistance(double distance)
distance
- Cutoff distancepublic double[][] computeFingerprint(int atomID)
atomID
- Index of atomatomID
in the x, y, and z directions where x[d][e] is the fingerprint #e
in direction d (0->x, 1->y, 2->z)protected double[] computeProjectedR(int atomID, int direction, java.util.List<org.apache.commons.lang3.tuple.Pair<AtomImage,java.lang.Double>> neighbors)
atomID
- ID of atom being assesseddirection
- Projection direction (x == 0, y == 1, z == 2)neighbors
- All neighbors of atom within cutoff radiusprotected double[] computeCutoffContribution(double[] distances)
f(r) = 0.5 * (cos(πr/Rc) + 1)
distances
- List of distances to each neighbor