APBS  1.4.1
Vacc class

Solvent- and ion-accessibility oracle. More...

Files

file  vacc.c
 Class Vacc methods.
 
file  vacc.h
 Contains declarations for class Vacc.
 

Data Structures

struct  sVaccSurf
 Surface object list of per-atom surface points. More...
 
struct  sVacc
 Oracle for solvent- and ion-accessibility around a biomolecule. More...
 

Typedefs

typedef struct sVaccSurf VaccSurf
 Declaration of the VaccSurf class as the VaccSurf structure.
 
typedef struct sVacc Vacc
 Declaration of the Vacc class as the Vacc structure.
 

Functions

VEXTERNC unsigned long int Vacc_memChk (Vacc *thee)
 Get number of bytes in this object and its members. More...
 
VEXTERNC VaccSurfVaccSurf_ctor (Vmem *mem, double probe_radius, int nsphere)
 Allocate and construct the surface object; do not assign surface points to positions. More...
 
VEXTERNC int VaccSurf_ctor2 (VaccSurf *thee, Vmem *mem, double probe_radius, int nsphere)
 Construct the surface object using previously allocated memory; do not assign surface points to positions. More...
 
VEXTERNC void VaccSurf_dtor (VaccSurf **thee)
 Destroy the surface object and free its memory. More...
 
VEXTERNC void VaccSurf_dtor2 (VaccSurf *thee)
 Destroy the surface object. More...
 
VEXTERNC VaccSurfVaccSurf_refSphere (Vmem *mem, int npts)
 Set up an array of points for a reference sphere of unit radius. More...
 
VEXTERNC VaccSurfVacc_atomSurf (Vacc *thee, Vatom *atom, VaccSurf *ref, double probe_radius)
 Set up an array of points corresponding to the SAS due to a particular atom. More...
 
VEXTERNC VaccVacc_ctor (Valist *alist, Vclist *clist, double surf_density)
 Construct the accessibility object. More...
 
VEXTERNC int Vacc_ctor2 (Vacc *thee, Valist *alist, Vclist *clist, double surf_density)
 FORTRAN stub to construct the accessibility object. More...
 
VEXTERNC void Vacc_dtor (Vacc **thee)
 Destroy object. More...
 
VEXTERNC void Vacc_dtor2 (Vacc *thee)
 FORTRAN stub to destroy object. More...
 
VEXTERNC double Vacc_vdwAcc (Vacc *thee, double center[VAPBS_DIM])
 Report van der Waals accessibility. More...
 
VEXTERNC double Vacc_ivdwAcc (Vacc *thee, double center[VAPBS_DIM], double radius)
 Report inflated van der Waals accessibility. More...
 
VEXTERNC double Vacc_molAcc (Vacc *thee, double center[VAPBS_DIM], double radius)
 Report molecular accessibility. More...
 
VEXTERNC double Vacc_fastMolAcc (Vacc *thee, double center[VAPBS_DIM], double radius)
 Report molecular accessibility quickly. More...
 
VEXTERNC double Vacc_splineAcc (Vacc *thee, double center[VAPBS_DIM], double win, double infrad)
 Report spline-based accessibility. More...
 
VEXTERNC void Vacc_splineAccGrad (Vacc *thee, double center[VAPBS_DIM], double win, double infrad, double *grad)
 Report gradient of spline-based accessibility. More...
 
VEXTERNC double Vacc_splineAccAtom (Vacc *thee, double center[VAPBS_DIM], double win, double infrad, Vatom *atom)
 Report spline-based accessibility for a given atom. More...
 
VEXTERNC void Vacc_splineAccGradAtomUnnorm (Vacc *thee, double center[VAPBS_DIM], double win, double infrad, Vatom *atom, double *force)
 Report gradient of spline-based accessibility with respect to a particular atom (see Vpmg_splineAccAtom) More...
 
VEXTERNC void Vacc_splineAccGradAtomNorm (Vacc *thee, double center[VAPBS_DIM], double win, double infrad, Vatom *atom, double *force)
 Report gradient of spline-based accessibility with respect to a particular atom normalized by the accessibility value due to that atom at that point (see Vpmg_splineAccAtom) More...
 
VEXTERNC void Vacc_splineAccGradAtomNorm4 (Vacc *thee, double center[VAPBS_DIM], double win, double infrad, Vatom *atom, double *force)
 Report gradient of spline-based accessibility with respect to a particular atom normalized by a 4th order accessibility value due to that atom at that point (see Vpmg_splineAccAtom) More...
 
VEXTERNC void Vacc_splineAccGradAtomNorm3 (Vacc *thee, double center[VAPBS_DIM], double win, double infrad, Vatom *atom, double *force)
 Report gradient of spline-based accessibility with respect to a particular atom normalized by a 3rd order accessibility value due to that atom at that point (see Vpmg_splineAccAtom) More...
 
VEXTERNC double Vacc_SASA (Vacc *thee, double radius)
 Build the solvent accessible surface (SAS) and calculate the solvent accessible surface area. More...
 
VEXTERNC double Vacc_totalSASA (Vacc *thee, double radius)
 Return the total solvent accessible surface area (SASA) More...
 
VEXTERNC double Vacc_atomSASA (Vacc *thee, double radius, Vatom *atom)
 Return the atomic solvent accessible surface area (SASA) More...
 
VEXTERNC VaccSurfVacc_atomSASPoints (Vacc *thee, double radius, Vatom *atom)
 Get the set of points for this atom's solvent-accessible surface. More...
 
VEXTERNC void Vacc_atomdSAV (Vacc *thee, double radius, Vatom *atom, double *dSA)
 Get the derivatve of solvent accessible volume. More...
 
VEXTERNC void Vacc_atomdSASA (Vacc *thee, double dpos, double radius, Vatom *atom, double *dSA)
 Get the derivatve of solvent accessible area. More...
 
VEXTERNC void Vacc_totalAtomdSASA (Vacc *thee, double dpos, double radius, Vatom *atom, double *dSA)
 Testing purposes only. More...
 
VEXTERNC void Vacc_totalAtomdSAV (Vacc *thee, double dpos, double radius, Vatom *atom, double *dSA, Vclist *clist)
 Total solvent accessible volume. More...
 
VEXTERNC double Vacc_totalSAV (Vacc *thee, Vclist *clist, APOLparm *apolparm, double radius)
 Return the total solvent accessible volume (SAV) More...
 
VEXTERNC int Vacc_wcaEnergy (Vacc *thee, APOLparm *apolparm, Valist *alist, Vclist *clist)
 Return the WCA integral energy. More...
 
VEXTERNC int Vacc_wcaForceAtom (Vacc *thee, APOLparm *apolparm, Vclist *clist, Vatom *atom, double *force)
 Return the WCA integral force. More...
 
VEXTERNC int Vacc_wcaEnergyAtom (Vacc *thee, APOLparm *apolparm, Valist *alist, Vclist *clist, int iatom, double *value)
 Calculate the WCA energy for an atom. More...
 

Detailed Description

Solvent- and ion-accessibility oracle.

Function Documentation

◆ Vacc_atomdSASA()

VEXTERNC void Vacc_atomdSASA ( Vacc thee,
double  dpos,
double  radius,
Vatom atom,
double *  dSA 
)

Get the derivatve of solvent accessible area.

Author
Jason Wagoner, David Gohara, Nathan Baker
Parameters
theeAcessibility object
dposAtom position offset
radiusProbe radius (Å)
atomAtom of interest
dSAArray holding answers of calc

Definition at line 1332 of file vacc.c.

◆ Vacc_atomdSAV()

VEXTERNC void Vacc_atomdSAV ( Vacc thee,
double  radius,
Vatom atom,
double *  dSA 
)

Get the derivatve of solvent accessible volume.

Author
Jason Wagoner, Nathan Baker
Parameters
theeAcessibility object
radiusProbe radius (Å)
atomAtom of interest
dSAArray holding answers of calc

Definition at line 1212 of file vacc.c.

◆ Vacc_atomSASA()

VEXTERNC double Vacc_atomSASA ( Vacc thee,
double  radius,
Vatom atom 
)

Return the atomic solvent accessible surface area (SASA)

Note
Alias for Vacc_SASA
Author
Nathan Baker
Returns
Atomic solvent accessible area (A^2)
Parameters
theeAccessibility object
radiusProbe molecule radius (Å)
atomAtom of interest

Definition at line 780 of file vacc.c.

◆ Vacc_atomSASPoints()

VEXTERNC VaccSurf* Vacc_atomSASPoints ( Vacc thee,
double  radius,
Vatom atom 
)

Get the set of points for this atom's solvent-accessible surface.

Author
Nathan Baker
Returns
Pointer to VaccSurf object for this atom
Parameters
theeAccessibility object
radiusProbe molecule radius (Å)
atomAtom of interest

Definition at line 994 of file vacc.c.

◆ Vacc_atomSurf()

VEXTERNC VaccSurf* Vacc_atomSurf ( Vacc thee,
Vatom atom,
VaccSurf ref,
double  probe_radius 
)

Set up an array of points corresponding to the SAS due to a particular atom.

Author
Nathan Baker
Returns
Atom sphere surface object
Parameters
theeAccessibility object for molecule
atomAtom for which the surface should be constructed
refReference sphere which sets the resolution for the surface.
See also
VaccSurf_refSphere
Parameters
probe_radiusProbe radius (in A)

Definition at line 873 of file vacc.c.

◆ Vacc_ctor()

VEXTERNC Vacc* Vacc_ctor ( Valist alist,
Vclist clist,
double  surf_density 
)

Construct the accessibility object.

Author
Nathan Baker
Returns
Newly allocated Vacc object
Parameters
alistMolecule for accessibility queries
clistPre-constructed cell list for looking up atoms near specific positions
surf_densityMinimum per-atom solvent accessible surface point density (in pts/A^2)

Definition at line 132 of file vacc.c.

◆ Vacc_ctor2()

VEXTERNC int Vacc_ctor2 ( Vacc thee,
Valist alist,
Vclist clist,
double  surf_density 
)

FORTRAN stub to construct the accessibility object.

Author
Nathan Baker
Returns
1 if successful, 0 otherwise
Parameters
theeMemory for Vacc objet
alistMolecule for accessibility queries
clistPre-constructed cell list for looking up atoms near specific positions
surf_densityMinimum per-atom solvent accessible surface point density (in pts/A^2)

Definition at line 213 of file vacc.c.

◆ Vacc_dtor()

VEXTERNC void Vacc_dtor ( Vacc **  thee)

Destroy object.

Author
Nathan Baker
Parameters
theePointer to memory location of object

Definition at line 245 of file vacc.c.

◆ Vacc_dtor2()

VEXTERNC void Vacc_dtor2 ( Vacc thee)

FORTRAN stub to destroy object.

Author
Nathan Baker
Parameters
theePointer to object

Definition at line 255 of file vacc.c.

◆ Vacc_fastMolAcc()

VEXTERNC double Vacc_fastMolAcc ( Vacc thee,
double  center[VAPBS_DIM],
double  radius 
)

Report molecular accessibility quickly.

Given a point which is INSIDE the collection of inflated van der Waals spheres, but OUTSIDE the collection of non-inflated van der Waals spheres, determine accessibility of a probe (of radius radius) at a given point, given a collection of atomic spheres. Uses molecular (Connolly) surface definition.

Note
THIS ASSUMES YOU HAVE TESTED THAT THIS POINT IS DEFINITELY INSIDE THE INFLATED AND NON-INFLATED VAN DER WAALS SURFACES!
Author
Nathan Baker
Returns
Characteristic function value between 1.0 (accessible) and 0.0 (inaccessible)
Bug:
This routine has a slight bug which can generate very small internal regions of high dielectric (thanks to John Mongan and Jess Swanson for finding this)
Parameters
theeAccessibility object
centerProbe center coordinates
radiusProbe radius (in Å)

Definition at line 637 of file vacc.c.

◆ Vacc_ivdwAcc()

VEXTERNC double Vacc_ivdwAcc ( Vacc thee,
double  center[VAPBS_DIM],
double  radius 
)

Report inflated van der Waals accessibility.

Determines if a point is within the union of the spheres centered at the atomic centers with radii equal to the sum of the atomic van der Waals radius and the probe radius.

Author
Nathan Baker
Returns
Characteristic function value between 1.0 (accessible) and 0.0 (inaccessible)
Parameters
theeAccessibility object
centerProbe center coordinates
radiusProbe radius (Å)

◆ Vacc_memChk()

VEXTERNC unsigned long int Vacc_memChk ( Vacc thee)

Get number of bytes in this object and its members.

Author
Nathan Baker
Returns
Number of bytes allocated for object
Parameters
theeObject for memory check

Definition at line 63 of file vacc.c.

◆ Vacc_molAcc()

VEXTERNC double Vacc_molAcc ( Vacc thee,
double  center[VAPBS_DIM],
double  radius 
)

Report molecular accessibility.

Determine accessibility of a probe (of radius radius) at a given point, given a collection of atomic spheres. Uses molecular (Connolly) surface definition.

Author
Nathan Baker
Returns
Characteristic function value between 1.0 (accessible) and 0.0 (inaccessible)
Bug:
This routine has a slight bug which can generate very small internal regions of high dielectric (thanks to John Mongan and Jess Swanson for finding this)
Parameters
theeAccessibility object
centerProbe center coordinates
radiusProbe radius (in Å)

Definition at line 608 of file vacc.c.

◆ Vacc_SASA()

VEXTERNC double Vacc_SASA ( Vacc thee,
double  radius 
)

Build the solvent accessible surface (SAS) and calculate the solvent accessible surface area.

Note
Similar to UHBD FORTRAN routine by Brock Luty (returns UHBD's asas2)
Author
Nathan Baker (original FORTRAN routine by Brock Luty)
Returns
Total solvent accessible area (A^2)
Parameters
theeAccessibility object
radiusProbe molecule radius (Å)

Definition at line 713 of file vacc.c.

◆ Vacc_splineAcc()

VEXTERNC double Vacc_splineAcc ( Vacc thee,
double  center[VAPBS_DIM],
double  win,
double  infrad 
)

Report spline-based accessibility.

Determine accessibility at a given point, given a collection of atomic spheres. Uses Benoit Roux (Im et al, Comp Phys Comm, 111, 59–75, 1998) definition suitable for force evalation; basically a cubic spline.

Author
Nathan Baker
Returns
Characteristic function value between 1.0 (accessible) and 0.0 (inaccessible)
Parameters
theeAccessibility object
centerProbe center coordinates
winSpline window (Å)
infradInflation radius (Å) for ion access.

Definition at line 528 of file vacc.c.

◆ Vacc_splineAccAtom()

VEXTERNC double Vacc_splineAccAtom ( Vacc thee,
double  center[VAPBS_DIM],
double  win,
double  infrad,
Vatom atom 
)

Report spline-based accessibility for a given atom.

Determine accessibility at a given point for a given atomic spheres. Uses Benoit Roux (Im et al, Comp Phys Comm, 111, 59–75, 1998) definition suitable for force evalation; basically a cubic spline.

Author
Nathan Baker
Returns
Characteristic function value between 1.0 (accessible) and 0.0 (inaccessible)
Parameters
theeAccessibility object
centerProbe center coordinates
winSpline window (Å)
infradInflation radius (Å) for ion access.
atomAtom

Definition at line 438 of file vacc.c.

◆ Vacc_splineAccGrad()

VEXTERNC void Vacc_splineAccGrad ( Vacc thee,
double  center[VAPBS_DIM],
double  win,
double  infrad,
double *  grad 
)

Report gradient of spline-based accessibility.

Author
Nathan Baker
Parameters
theeAccessibility object
centerProbe center coordinates
winSpline window (Å)
infradInflation radius (Å) for ion access.
grad3-vector set to gradient of accessibility

Definition at line 561 of file vacc.c.

◆ Vacc_splineAccGradAtomNorm()

VEXTERNC void Vacc_splineAccGradAtomNorm ( Vacc thee,
double  center[VAPBS_DIM],
double  win,
double  infrad,
Vatom atom,
double *  force 
)

Report gradient of spline-based accessibility with respect to a particular atom normalized by the accessibility value due to that atom at that point (see Vpmg_splineAccAtom)

Determine accessibility at a given point, given a collection of atomic spheres. Uses Benoit Roux (Im et al, Comp Phys Comm, 111, 59–75, 1998) definition suitable for force evalation; basically a cubic spline.

Author
Nathan Baker
Parameters
theeAccessibility object
centerProbe center coordinates
winSpline window (Å)
infradInflation radius (Å) for ion access.
atomAtom
forceVAPBS_DIM-vector set to gradient of accessibility

Definition at line 316 of file vacc.c.

◆ Vacc_splineAccGradAtomNorm3()

VEXTERNC void Vacc_splineAccGradAtomNorm3 ( Vacc thee,
double  center[VAPBS_DIM],
double  win,
double  infrad,
Vatom atom,
double *  force 
)

Report gradient of spline-based accessibility with respect to a particular atom normalized by a 3rd order accessibility value due to that atom at that point (see Vpmg_splineAccAtom)

Author
Michael Schnieders
Parameters
theeAccessibility object
centerProbe center coordinates
winSpline window (Å)
infradInflation radius (Å) for ion access.
atomAtom
forceVAPBS_DIM-vector set to gradient of accessibility

Definition at line 1111 of file vacc.c.

◆ Vacc_splineAccGradAtomNorm4()

VEXTERNC void Vacc_splineAccGradAtomNorm4 ( Vacc thee,
double  center[VAPBS_DIM],
double  win,
double  infrad,
Vatom atom,
double *  force 
)

Report gradient of spline-based accessibility with respect to a particular atom normalized by a 4th order accessibility value due to that atom at that point (see Vpmg_splineAccAtom)

Author
Michael Schnieders
Parameters
theeAccessibility object
centerProbe center coordinates
winSpline window (Å)
infradInflation radius (Å) for ion access.
atomAtom
forceVAPBS_DIM-vector set to gradient of accessibility

Definition at line 1018 of file vacc.c.

◆ Vacc_splineAccGradAtomUnnorm()

VEXTERNC void Vacc_splineAccGradAtomUnnorm ( Vacc thee,
double  center[VAPBS_DIM],
double  win,
double  infrad,
Vatom atom,
double *  force 
)

Report gradient of spline-based accessibility with respect to a particular atom (see Vpmg_splineAccAtom)

Determine accessibility at a given point, given a collection of atomic spheres. Uses Benoit Roux (Im et al, Comp Phys Comm, 111, 59–75, 1998) definition suitable for force evalation; basically a cubic spline.

Author
Nathan Baker
Parameters
theeAccessibility object
centerProbe center coordinates
winSpline window (Å)
infradInflation radius (Å) for ion access.
atomAtom
forceVAPBS_DIM-vector set to gradient of accessibility

Definition at line 377 of file vacc.c.

◆ Vacc_totalAtomdSASA()

VEXTERNC void Vacc_totalAtomdSASA ( Vacc thee,
double  dpos,
double  radius,
Vatom atom,
double *  dSA 
)

Testing purposes only.

Author
David Gohara, Nathan Baker
Parameters
theeAcessibility object
dposAtom position offset
radiusProbe radius (Å)
atomAtom of interest
dSAArray holding answers of calc

Definition at line 1401 of file vacc.c.

◆ Vacc_totalAtomdSAV()

VEXTERNC void Vacc_totalAtomdSAV ( Vacc thee,
double  dpos,
double  radius,
Vatom atom,
double *  dSA,
Vclist clist 
)

Total solvent accessible volume.

Author
David Gohara, Nathan Baker
Parameters
theeAcessibility object
dposAtom position offset
radiusProbe radius (Å)
atomAtom of interest
dSAArray holding answers of calc
clistclist for this calculation

Definition at line 1460 of file vacc.c.

◆ Vacc_totalSASA()

VEXTERNC double Vacc_totalSASA ( Vacc thee,
double  radius 
)

Return the total solvent accessible surface area (SASA)

Note
Alias for Vacc_SASA
Author
Nathan Baker
Returns
Total solvent accessible area (A^2)
Parameters
theeAccessibility object
radiusProbe molecule radius (Å)

Definition at line 774 of file vacc.c.

◆ Vacc_totalSAV()

VEXTERNC double Vacc_totalSAV ( Vacc thee,
Vclist clist,
APOLparm apolparm,
double  radius 
)

Return the total solvent accessible volume (SAV)

Note
Alias for Vacc_SAV
Author
David Gohara
Returns
Total solvent accessible volume (A^3)
Parameters
theeAccessibility object
clistClist for acc object
apolparmApolar parameters – could be VNULL if none required for this calculation. If VNULL, then default settings are used
radiusProbe molecule radius (Å)

Definition at line 1515 of file vacc.c.

◆ Vacc_vdwAcc()

VEXTERNC double Vacc_vdwAcc ( Vacc thee,
double  center[VAPBS_DIM] 
)

Report van der Waals accessibility.

Determines if a point is within the union of the atomic spheres (with radii equal to their van der Waals radii).

Author
Nathan Baker
Returns
Characteristic function value between 1.0 (accessible) and 0.0 (inaccessible)
Parameters
theeAccessibility object
centerProbe center coordinates

◆ Vacc_wcaEnergy()

VEXTERNC int Vacc_wcaEnergy ( Vacc thee,
APOLparm apolparm,
Valist alist,
Vclist clist 
)

Return the WCA integral energy.

Author
David Gohara
Returns
Success flag
Parameters
theeAccessibility object
apolparmApolar calculation parameters
alistAlist for acc object
clistClist for acc object

Definition at line 1733 of file vacc.c.

◆ Vacc_wcaEnergyAtom()

VEXTERNC int Vacc_wcaEnergyAtom ( Vacc thee,
APOLparm apolparm,
Valist alist,
Vclist clist,
int  iatom,
double *  value 
)

Calculate the WCA energy for an atom.

Author
Dave Gohara and Nathan Baker
Returns
Success flag
Parameters
theeAccessibility object
apolparmApolar calculation parameters
alistAtom list
clistCell list associated with Vacc object
iatomIndex for atom of interest
valueSet to energy value

Definition at line 1592 of file vacc.c.

◆ Vacc_wcaForceAtom()

VEXTERNC int Vacc_wcaForceAtom ( Vacc thee,
APOLparm apolparm,
Vclist clist,
Vatom atom,
double *  force 
)

Return the WCA integral force.

Author
David Gohara
Returns
WCA energy (kJ/mol/A)
Parameters
theeAccessibility object
apolparmApolar calculation parameters
clistClist for acc object
atomCurrent atom
forceForce for atom

Definition at line 1768 of file vacc.c.

◆ VaccSurf_ctor()

VEXTERNC VaccSurf* VaccSurf_ctor ( Vmem *  mem,
double  probe_radius,
int  nsphere 
)

Allocate and construct the surface object; do not assign surface points to positions.

Author
Nathan Baker
Returns
Newly allocated and constructed surface object
Parameters
memMemory manager (can be VNULL)
probe_radiusProbe radius (in A) for this surface
nsphereNumber of points in sphere

Definition at line 803 of file vacc.c.

◆ VaccSurf_ctor2()

VEXTERNC int VaccSurf_ctor2 ( VaccSurf thee,
Vmem *  mem,
double  probe_radius,
int  nsphere 
)

Construct the surface object using previously allocated memory; do not assign surface points to positions.

Author
Nathan Baker
Returns
1 if successful, 0 otherwise
Parameters
theeAllocated memory
memMemory manager (can be VNULL)
probe_radiusProbe radius (in A) for this surface
nsphereNumber of points in sphere

Definition at line 818 of file vacc.c.

◆ VaccSurf_dtor()

VEXTERNC void VaccSurf_dtor ( VaccSurf **  thee)

Destroy the surface object and free its memory.

Author
Nathan Baker
Parameters
theeObject to be destroyed

Definition at line 844 of file vacc.c.

◆ VaccSurf_dtor2()

VEXTERNC void VaccSurf_dtor2 ( VaccSurf thee)

Destroy the surface object.

Author
Nathan Baker
Parameters
theeObject to be destroyed

Definition at line 858 of file vacc.c.

◆ VaccSurf_refSphere()

VEXTERNC VaccSurf* VaccSurf_refSphere ( Vmem *  mem,
int  npts 
)

Set up an array of points for a reference sphere of unit radius.

Generates approximately npts # of points (actual number stored in thee->npts) somewhat uniformly distributed across a sphere of unit radius centered at the origin.

Note
This routine was shamelessly ripped off from sphere.f from UHBD as developed by Michael K. Gilson.
Author
Nathan Baker (original FORTRAN code by Mike Gilson)
Returns
Reference sphere surface object
Parameters
memMemory object
nptsRequested number of points on sphere

Definition at line 938 of file vacc.c.