Open Babel: OBGridData Class Reference

Public Types | Public Member Functions | Protected Attributes

# OBGridData Class Reference

Store values for numeric grids such as orbitals or electrostatic potential. More...

`#include <openbabel/griddata.h>`

Inheritance diagram for OBGridData:

List of all members.

## Public Types
enum | Unit { BOHR, ANGSTROM, OTHER }
## Public Member Functions
| OBGridData ()
| ~OBGridData ()
virtual OBGenericData * | Clone (OBBase *) const
void | SetAttribute (const std::string &v)
void | SetOrigin (const DataOrigin s)
virtual const std::string & | GetAttribute () const
unsigned int | GetDataType () const
virtual const std::string & | GetValue () const
virtual DataOrigin | GetOrigin () const
Property Methods
void | GetAxes (double x[3], double y[3], double z[3]) const
vector3 | GetXAxis () const
vector3 | GetYAxis () const
vector3 | GetZAxis () const
void | GetAxes (vector3 &v1, vector3 &v2, vector3 &v3) const
void | GetNumberOfPoints (int &nx, int &ny, int &nz) const
int | GetNumberOfPoints () const
void | GetNumberOfSteps (int steps[3]) const
std::vector< double > | GetValues () const
double | GetValue (int i, int j, int k) const
double | GetValue (vector3 pos) const
Unit | GetUnit () const
double | GetMinValue () const
double | GetMaxValue () const
vector3 | GetOriginVector () const
void | GetOriginVector (double o[3]) const
vector3 | GetMaxVector () const
bool | GetUnrestricted () const
int | GetNumSymmetries () const
Modification Methods
void | SetNumberOfPoints (int nx, int ny, int nz)
void | SetLimits (const vector3 &origin, const vector3 &x, const vector3 &y, const vector3 &z)
void | SetLimits (const double origin[3], const double x[3], const double y[3], const double z[3])
bool | SetValue (int i, int j, int k, double val)
void | SetValues (const std::vector< double > &v)
void | SetUnit (Unit u)
void | SetUnrestricted (bool u)
void | SetNumSymmetries (int s)
## Protected Attributes
std::string | _attr
unsigned int | _type
DataOrigin | _source

## Detailed Description

Store values for numeric grids such as orbitals or electrostatic potential.

Since:
  version 2.2

See also:
  OBFloatGrid

OBGridData facilitates attaching grids and cubes to molecular data. A "grid" is data representing some function f(x,y,z), such as a molecule's electrostatic potential or molecular orbitals. This need not be a "cube" even though this file format from Gaussian is frequently used. Axes need not be identical, and indeed do not need to be orthogonal.

Open Babel supports reading several types of grid file formats, including Gaussian cube, and OpenDX. The latter is notably used by the APBS program for numeric evaluation of molecular and protein electrostatic potential.

        OBGridData *gd = new OBGridData;
        gd->SetAttribute("Example Grid"); // the title of the grid -- e.g., for user display
        vector<int> voxels(3); // the number of voxels in each direction
        vector3 origin; // the beginning x, y, z coordinate of the grid
        vector<vector3> axes; // the xyz displacements for each of the grid axes
        ...
        gd->SetNumberOfPoints(voxels[0], voxels[1], voxels[2]);
        gd->SetLimits(origin, axes[0], axes[1], axes[2]);
        gd->SetUnit(OBGridData::ANGSTROM);
        gd->SetOrigin(fileformatInput); // i.e., is this data from a file or determined by Open Babel

        for (int k = 0; k < voxels[2]; ++k)
          for (int j = 0; j < voxels[1]; ++j)
            for (int i = 0; i < voxels[0]; ++i)
              {
                gd->SetValue(i, j, k,
                             grid[k*voxels[0]*voxels[1] + j*voxels[0] + i]);
              }

        mol->SetData(gd);

        if (mol->HasData(OBGenericDataType::GridData)) {
          vector<OBGenericData*> grids = mol->GetAllData(OBGenericDataType::GridData)
          // Output the name of the grid
          if (grids[0] != NULL)
            cout << grids[0]->GetAttribute();
        }

## Member Enumeration Documentation

enum Unit

Unit of measure for grid spacings.

Enumerator:

  BOHR |
  ANGSTROM |
  OTHER |

## Constructor & Destructor Documentation

OBGridData | ( | ) |

Constructor.

~OBGridData | ( | ) |

Destructor.

## Member Function Documentation

void GetAxes | ( | double | x[3],
|  | double | y[3],
|  | double | z[3]
| ) |  | const

Returns:
  the three axes parallel to the grid edges. The length of the returned vector is the step along that direction.

vector3 GetXAxis | ( | ) | const

Returns:
  X axis direction.

vector3 GetYAxis | ( | ) | const

Returns:
  Y axis direction.

vector3 GetZAxis | ( | ) | const

Returns:
  Z axis direction.

void GetAxes | ( | vector3 & | v1,
|  | vector3 & | v2,
|  | vector3 & | v3
| ) |  | const

Returns:
  the three axes parallel to the grid edges

void GetNumberOfPoints | ( | int & | nx,
|  | int & | ny,
|  | int & | nz
| ) |  | const

Returns:
  number of points along the three axes parallel to the grid edges.

int GetNumberOfPoints | ( | ) | const

Returns:
  total number of points in the grid.

void GetNumberOfSteps | ( | int | steps[3] ) | const

Returns:
  number of points along the three axes parallel to the grid edges.

std::vector< double > GetValues | ( | ) | const

Returns:
  grid values as a vector of doubles.

double GetValue | ( | int | i,
|  | int | j,
|  | int | k
| ) |  | const

Returns:
  the value at position i, j, k in the grid.

Referenced by OBForceField::GetGrid().

double GetValue | ( | vector3 | pos ) | const

Returns:
  the value at a position in the grid (by interpolation)

OBGridData::Unit GetUnit | ( | ) | const

Returns:
  the unit of measure for grid spacings.

double GetMinValue | ( | ) | const

Returns:
  the minimum value of all points in the grid.

double GetMaxValue | ( | ) | const

Returns:
  the maximum value of all points in the grid.

vector3 GetOriginVector | ( | ) | const

Returns:
  vector3 of the origin (i.e., the minimum x, y, and z coords of the grid).

void GetOriginVector | ( | double | o[3] ) | const

Parameters:

  o | set to the origin (i.e., the minimum x, y, and z coords of the grid).

Deprecated:
  Will be removed.

See also:
  GetOriginVector()

vector3 GetMaxVector | ( | ) | const

Returns:
  The maximum point in the grid.

bool GetUnrestricted | ( | ) | const

Returns:
  the unrestricted flag.

int GetNumSymmetries | ( | ) | const

Returns:
  the number of symmetries.

void SetNumberOfPoints | ( | int | nx,
|  | int | ny,
|  | int | nz
| ) |  |

Set number of points along the three axes.

Referenced by OBForceField::GetGrid().

void SetLimits | ( | const vector3 & | origin,
|  | const vector3 & | x,
|  | const vector3 & | y,
|  | const vector3 & | z
| ) |  |

Set the limits (i.e., the origin point and the axes) NOTE: You must set the number of points first, with SetNumberOfPoints so the grid spacing can be calculated

Referenced by OBForceField::GetGrid().

void SetLimits | ( | const double | origin[3],
|  | const double | x[3],
|  | const double | y[3],
|  | const double | z[3]
| ) |  |

Deprecated:
  Will be removed.

See also:
  SetLimits(const vector3 &origin, const vector3 &x, const vector3 &y, const vector3 &z)

bool SetValue | ( | int | i,
|  | int | j,
|  | int | k,
|  | double | val
| ) |  |

Set an individual value, grid must have been initialised.

Referenced by OBForceField::GetGrid().

void SetValues | ( | const std::vector< double > & | v ) |

Set the values, this vector must match the dimensions of the grid.

void SetUnit | ( | OBGridData::Unit | u ) |

Set the unit of measure.

void SetUnrestricted | ( | bool | u ) |

Set the unrestricted flag.

void SetNumSymmetries | ( | int | s ) |

Set the number of symmetries.

virtual OBGenericData* Clone | ( | OBBase * | ) | const`[inline, virtual, inherited]`

Reimplemented in AliasData, OBAtomClassData, OBCommentData, OBExternalBondData, OBPairData, OBSetData, OBVirtualBond, OBRingData, OBUnitCell, OBConformerData, OBSymmetryData, OBTorsionData, OBAngleData, OBChiralData, OBSerialNums, OBVibrationData, OBDOSData, OBOrbitalData, OBElectronicTransitionData, OBRotationData, OBVectorData, OBMatrixData, OBRateData, OBNasaThermoData, OBRotamerList, OBCisTransStereo, OBSquarePlanarStereo, and OBTetrahedralStereo.

Referenced by OBBase::CloneData(), OBAtom::Duplicate(), OBMoleculeFormat::MakeCombinedMolecule(), and OBMol::operator=().

void SetAttribute | ( | const std::string & | v ) | `[inline, inherited]`

Set the attribute (key), which can be used to retrieve this data.

Referenced by OBGastChrg::AssignPartialCharges(), OBMol::DoTransformations(), OBMol::FindLSSR(), OBMol::FindSSSR(), OBForceField::GetAtomTypes(), OBMol::GetFormula(), OBMol::GetLSSR(), OBForceField::GetPartialCharges(), OBMol::GetSSSR(), OBDescriptor::PredictAndSave(), and OBMol::SetFormula().

void SetOrigin | ( | const DataOrigin | s ) | `[inline, inherited]`

Set the origin of this data, which can be used to filter the data.

Referenced by OBGastChrg::AssignPartialCharges(), OpenBabel::CalcSignedVolume(), OBMol::FindAngles(), OBMol::FindLSSR(), OBMol::FindSSSR(), OBMol::FindTorsions(), OBMol::GetFormula(), OBMol::GetLSSR(), OBMol::GetSSSR(), OBDescriptor::PredictAndSave(), and OBMol::SetFormula().

virtual const std::string& GetAttribute | ( | ) | const`[inline, virtual, inherited]`

Returns:
  The attribute (key), which can be used to retrieve this data

Referenced by OBMoleculeFormat::MakeCombinedMolecule().

unsigned int GetDataType | ( | ) | const`[inline, inherited]`

Returns:
  the data type for this object as defined in OBGenericDataType

virtual const std::string& GetValue | ( | ) | const`[inline, virtual, inherited]`

Base class returns a default value (the attribute type) but should never be called.

Reimplemented in OBCommentData, and OBPairData.

Referenced by OBDepict::DrawMolecule(), OBDescriptor::FilterCompare(), and OBDescriptor::GetValues().

virtual DataOrigin GetOrigin | ( | ) | const`[inline, virtual, inherited]`

## Member Data Documentation

std::string _attr`[protected, inherited]`

attribute tag (e.g., "UnitCell", "Comment" or "Author")

Referenced by OBRotamerList::Clone(), and OBNasaThermoData::OBNasaThermoData().

unsigned int _type`[protected, inherited]`

attribute type -- declared for each subclass

Referenced by OBRotamerList::Clone(), and OBNasaThermoData::OBNasaThermoData().

DataOrigin _source`[protected, inherited]`

source of data for accounting

Referenced by OBChiralData::operator=(), OBTorsionData::operator=(), OBAngleData::operator=(), OBConformerData::operator=(), and OBSymmetryData::operator=().

The documentation for this class was generated from the following files:

- griddata.h
- griddata.cpp

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines