Adun  0.83
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Public Member Functions
AdSelfTerm Class Reference

#import <AdunSelfTerm.h>

Inheritance diagram for AdSelfTerm:
Inheritance graph
Collaboration diagram for AdSelfTerm:
Collaboration graph

List of all members.

Public Member Functions

(id) - init
(id) - initWithDictionary:
(id) - initWithSystem:
(id) - initWithSystem:cutoff:updateInterval:selfPairs:
(id) - initWithSystem:cutoff:updateInterval:selfPairs:listHandlerClass:
(void) - updateList:
(void) - setAutoUpdateList:
(ListElement *) - interactionList
(void) - setSelfPairs:
(void) - clearForces
(void) - clearCounter
- Public Member Functions inherited from
(void) - evaluateForces
(void) - evaluateEnergy
(double) - energy
(AdMatrix *) - forces
(void) - setExternalForceMatrix:
(BOOL) - usesExternalForceMatrix
(void) - setSystem:
(id) - system
(BOOL) - canEvaluateEnergy
(BOOL) - canEvaluateForces
(NSArray *) - potentials
(double) - valueForPotential:
(NSArray *) - arrayOfValuesForPotentials:notFoundMarker:
(NSDictionary *) - dictionaryOfValuesForPotentials:
- Public Member Functions inherited from
(void) - handlerDidUpdateList:
(void) - handlerDidInvalidateList:
(void) - handlerDidHandleContentChange:

Detailed Description

Calculates the potential and the forces acting on a system due to the interaction of the side chain with its environment and accounts for the free energy of transferring the side chain to the protein when all other groups are not ionized. The overall energy term is given by

\[U_{self} = \sum_{i} \left[ U_{np}(N_{np}^{i}) + U_{polar}(N_{polar}^{i}) \right] \]

where i runs over all ionized residues and




are the number of nonpolar and polar residues in the neighborhood of the ith residue. These are given by

\[ U_{np} = \begin{cases} 4 \exp [-0.2(N_{np}-6)^2] & \text{ if } N_{np} \leq 6 \\ 4 & \text{ if } N_{np} > 6 \end{cases} \]

\[ U_{polar} = \begin{cases} -2 \exp [-0.2(N_{np}-4)^2] & \text{ if } N_{polar} \leq 4 \\ -2 & \text{ if } N_{polar} > 4 \end{cases} \]

The number of residues around a ionized group is expresed by the analytical function

\[N_{i}=\sum_{j}G(r_{ij}) \]


\[G(r_{ij})=\begin{cases} 1 &\text{ if } r_{ij} \leq \text{cutoff} \\ \exp[-6(r_{ij} - \text{cutoff})] & \text{ if } r_{ij} > \text{cutoff} \end{cases} \]

A cutoff of 7 A is generally used.

AdSelfTerm objects use an AdListHandler subclass instance to create and manage the list of interacting pairs. The exact subclass used can be specified on initialisation.

If the list provided by the AdListHandler instance is invalidated due to an AdSystemContentsDidChangeNotification (see AdListHandler documentation) the AdSelfTerm object will recreate the list. In this event the array of self pairs will be acquired from the system and used to rebuild the list i.e. overriding a self pair array specified previously.


Extra Methods - Full init chain.

Refactor - Change permittivity to relative permittivity to help clarity.

Member Function Documentation

- (void) clearCounter

Description forthcoming

- (void) clearForces

Description forthcoming

- (id) init

As initWithSystem: passing nil for system.

- (id) initWithDictionary: (NSDictionary*)  dict

Method used when created via template manager

- (id) initWithSystem: (id)  system

As initWithSystem:cutoff:updateInterval:hbondedPairs: with the following values -

  • cutoff 8.0
  • updateInterval 20
  • selfPairs nil

Reimplemented from <AdForceFieldTerm>.

- (id) initWithSystem: (id)  aSystem
cutoff: (double)  aDouble
updateInterval: (unsigned int)  anInt
selfPairs: (NSArray*)  hbondedPairs 

As the designated initialiser passing AdCellListHandler for the list handler class.

- (id) initWithSystem: (id)  system
cutoff: (double)  aDouble
updateInterval: (unsigned int)  anInt
selfPairs: (NSArray*)  hbondedPairs
listHandlerClass: (Class)  aClass 

Designated initialiser.

systemThe system on which the calculation is to be performed.
aDoubleThe cutoff to be used.
hbondStrThe strength of the hydrogen bond in kcal/mol.
anIntThe period at which the list should be updated.
hbondedPairsThe hbonded pairs the calculation is to be performed on. If this is nil the object will use elementPairsNotInInteractionsOfCategory: (AdDataSource) passing "Bonded" as the category to obtain the set.
aClassThe AdListHandler subclass to be used for handling the nonbonded list. If aClass is not an AdListHandler subclass an NSInvalidArgumentException is raised. If aClass is nil it defaults to AdCellListHandler.
- (ListElement*) interactionList

Returns a pointer to the beginning of the list of hbonded interaction pairs the receiver uses. Under no circumstances should elements be added or removed to this list. It primarily provides a convienient way to avoid having to create multiple h-bonded lists. i.e. if another object needs to iterate over the list of hbonded pairs it can do so via this method.

- (void) setAutoUpdateList: (BOOL)  value

Sets whether the receiver will automatically update its hbonded list every updateInterval() steps. By default this is yes for every AdHbondedTerm object instance on its creation

- (void) setSelfPairs: (NSArray*)  selfPairs

Description forthcoming

- (void) updateList: (BOOL)  reset

Forces an update of the AdListHandler object the receiver uses. If reset is YES the receiver resets the counter managed by the applications AdMainLoopTimer instance which determines the period between automatic list updates.