Cytosim PI Cytoskeleton Simulator

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

List of all members | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes
Hand Class Reference
List of objects | How to create objects » Hand and Derived Activities

## Detailed Description

A Hand is always part of a larger construct, for example Single or Couple.

Hand is the parent to many class that implement different fiber-related activities. Hand provides binding/unbinding capacity to these derived classes.

Attachment occurs with constant rate attach_rate to any fiber located at distance attach_range or less. If attachment occurs, it happens on the closest point of the fiber, which is either the projection of the point on the fiber, or one of the fiber end.

Detachment increases exponentially with force:

off_rate = unbinding_rate * exp( force.norm() / unbinding_force )

See Parameters of Hand.

Inheritance diagram for Hand:

## Public Member Functions
| Hand (HandProp const *, HandMonitor *h)
| constructor More...
virtual | ~Hand ()
| destructor
virtual bool | attachmentAllowed (FiberBinder &site)
| tell if attachment at given site is possible More...
virtual void | attach (FiberBinder &site)
| attach the hand at the position described by site More...
virtual void | detach ()
| detach
virtual void | stepFree (const FiberGrid &, Vector const &pos)
| simulate when the Hand is not attached More...
virtual void | stepUnloaded ()
| simulate when the Hand is attached but not under load More...
virtual void | stepLoaded (Vector const &force)
| simulate when the Hand is attached and under load More...
virtual void | handleOutOfRange (FiberEnd)
| this is called when the attachment point is outside the Fiber's range
void | attachTo (Fiber *, real ab, FiberEnd from)
| attach to the given position on the given Fiber (calls attach(FiberBinder))
void | attachToEnd (Fiber *, FiberEnd end)
| attach to the given end on the given Fiber (calls attach(FiberBinder))
void | read (InputWrapper &, Simul &)
| read
void | write (OutputWrapper &) const
| write
Public Member Functions inherited from FiberBinder
| FiberBinder ()
| construct as unattached
| FiberBinder (Fiber *f, real a)
| construct at the given distance from the origin
void | relocate (Fiber *f)
| move to a different fiber, at same abscissa
void | relocate (Fiber *f, real a)
| move to a different fiber, at given position
void | moveToEnd (FiberEnd end)
| move to the specified FiberEnd (CENTER is also a valid argument)
void | moveTo (real abs)
| move along the Fiber to specified abscissa, or detach
void | moveBy (real dabs)
| move along the Fiber by the abscissa offset dabs, or detach
bool | attached () const
| true if attached
Fiber * | fiber () const
| Fiber to which this is attached, or zero if not attached.
Vector | pos () const
| position in space
Vector | dir () const
| direction of Fiber obtained by normalization
Vector | dirFiber () const
| the direction of the Fiber at the point of attachment
real | abscissa () const
| the abscissa, from the origin of the Fiber
real | abscissaFrom (FiberEnd from) const
| abscissa, counted from the specified FiberEnd (in reversed direction for the PLUS_END)
FiberEnd | nearestEnd () const
| nearest end to the point specified by the abscissa from the origin
bool | withinP () const
| true if abscissa is below abscissaP
bool | withinM () const
| true if abscissa is above abscissaM
bool | within () const
| true if abscissa is within the fiber boundaries
const PointInterpolated & | interpolation () const
| the interpolation
void | updateBinder ()
| set a valid PointInterpolated
void | checkFiberRange ()
| check the abscissa against the edges of the fiber, calling handleOutOfRange() if necessary.
FiberBinder * | next () const
| a static_cast<> of Node::next()
FiberBinder * | prev () const
| a static_cast<> of Node::prev()
void | checkAbscissa () const
| check that fbAbs is within Fiber::abscissaM() and Fiber::abscissaP()
int | bad () const
| check validity of the interpolation (debuging purposes)
Public Member Functions inherited from Node
| Node ()
| constructor set as unlinked
virtual | ~Node ()
| destructor More...
bool | linked () const
| true if Node is linked
Node * | next () const
| the next Node in the list, or zero if this is last
Node * | prev () const
| the previous Node in the list, or zero if this is first
NodeList * | list () const
| the list where the object is linked, or zero
ObjectSet * | objset () const
| return associated ObjectSet

## Public Attributes
HandProp const * | prop
| Property.

## Protected Member Functions
bool | testDetachment ()
| test for detachment with rate prop->unbinding_rate More...
bool | testKramersDetachment (real force)
| test for detachment with Kramers theory More...

## Protected Attributes
HandMonitor * | haMonitor
| the monitor associated with this Hand
real | nextAttach
| Gillespie normalized time for attachment.
real | nextDetach
| Gillespie normalized time for detachment.
Protected Attributes inherited from FiberBinder
Fiber * | fbFiber
| the Fiber on which it is attached, or 0 if not attached
real | fbAbs
| the abscissa from the Fiber origin
Protected Attributes inherited from Node
Node * | nNext
| the next Node in the list
Node * | nPrev
| the previous Node in the list

## Constructor & Destructor Documentation

Hand | ( | HandProp const * | p,
|  | HandMonitor * | h
| ) |  |

To create a new Hand, you need to have a HandProp. HandProp is parent to several classes, exactly fiMirroring the hierarchy of Hands.

The correct derived class can be created by its associated HandProp:

HandProp * hp = HandProp::newProperty(name, opt);
Hand * h = hp->newHand(this);

## Member Function Documentation

void attach | ( | FiberBinder & | fb | ) |
| virtual

This also sets the Gillespie detachment time nextDetach

Reimplemented from FiberBinder.

bool attachmentAllowed | ( | FiberBinder & | fb | ) |
| virtual

Tests if attachment at site fb is possible:

- site is located within the MINUS_END and PLUS_END
- binding_key are bitwise compatible: prop->binding_key & fb.fiber()->prop->binding_key
- HandMonitor::allowAttachment() returns true

Reimplemented in Tracker.

void stepFree | ( | const FiberGrid & | grid,
|  | Vector const & | pos
| ) |  |
| virtual

Test for attachment to nearby Fibers, using the Gillespie time nextAttach

Reimplemented in Nucleator.

void stepLoaded | ( | Vector const & | force | ) |
| virtual

Test for force-induced detachment following Kramers' law, vith basal rate HandProp::unbinding_rate, and characteristic force HandProp::unbinding_force

Reimplemented in Motor, Nucleator, Rescuer, Tracker, Slider, Cutter, Mighty, and Actor.

void stepUnloaded | ( |  | ) |
| virtual

Test for spontaneous detachment at rate HandProp::unbinding_rate,

Reimplemented in Motor, Nucleator, Rescuer, Tracker, Slider, Cutter, Mighty, and Actor.

bool testDetachment | ( |  | ) |
| protected

Test for spontaneous detachment using Gillespie approach.

Returns
  true if the test has passed, and detach() was called.

see Stochastic Events

bool testKramersDetachment | ( | real | force | ) |
| protected

Test for spontaneous detachment using Gillespie approach.

Returns
  true if the test has passed, and detach() was called.

see Stochastic Events