libbio
Loading...
Searching...
No Matches
Public Member Functions | List of all members
bio::molecular::TransMembraneDomain Class Reference

#include <TransMembraneDomain.h>

Public Member Functions

 TransMembraneDomain (Pointer< Vesicle > interior=Pointer< Vesicle >())
 
 ~TransMembraneDomain ()
 
void SetVesicle (Pointer< Vesicle > interior)
 
Pointer< VesicleGetVesicle ()
 
Pointer< const VesicleGetVesicle () const
 
void IngressSolute (Pointer< chemical::Solute > external)
 
void IngressSolution (Pointer< chemical::Solution > external)
 
chemical::Solute Egress (const Name &soluteName)
 
chemical::Solute Egress (const Id &soluteId)
 
Pointer< chemical::SoluteSecrete (const Name &soluteName)
 
Pointer< chemical::SoluteSecrete (const Id &soluteId)
 

Detailed Description

TransMembraneDomains define the API for accessing and modifying the interior, protected Molecules of Vesicles.
The real-world term, "trans-membrane domain", is a little more specific than how we use it here.
In the simplest case, a TransMembraneDomain is just an "open hole" in a Vesicle's "membrane".
In the most complex case, a single TransMembraneDomain may do the work of many different proteins: similar to how we might refer to a complex quaternary structure as a single protein.
Regardless of the complexity of use, a TransMembraneDomain is strictly defined as the interface between the inside and outside of a Vesicle.
When defining how a Vesicle should communicate with the outside world or other Vesicles, please create a Pore or similar Surface which includes a TransMembraneDomain.
Because friendship does not respect inheritance, this class is non-virtual. This is the ONLY API for defining access to protected Molecules.

Constructor & Destructor Documentation

◆ TransMembraneDomain()

bio::molecular::TransMembraneDomain::TransMembraneDomain ( Pointer< Vesicle interior = PointerVesicle >())
Parameters
interior

◆ ~TransMembraneDomain()

bio::molecular::TransMembraneDomain::~TransMembraneDomain ( )

Member Function Documentation

◆ Egress() [1/2]

chemical::Solute bio::molecular::TransMembraneDomain::Egress ( const Id &  soluteId)

Egress copies Molecules in *this and provides them for export.
If the returned Molecule is not added to another Vesicle, you must delete it to avoid memory leaks.
NOTE: Egress is non-const. You must have write access to a Vesicle in order to read it's protected members. Also, any modifications made to the returned Solute will likely be Mixed back into *this.

Parameters
soluteId
Returns
a Solute containing a Dissolved Substance with the given Id Effluxed out of the mInterior Vesicle.

◆ Egress() [2/2]

chemical::Solute bio::molecular::TransMembraneDomain::Egress ( const Name soluteName)

Egress copies Molecules in *this and provides them for export.
If the returned Molecule is not added to another Vesicle, you must delete it to avoid memory leaks.
NOTE: Egress is non-const. You must have write access to a Vesicle in order to read it's protected members. Also, any modifications made to the returned Solute will likely be Mixed back into *this.

Parameters
soluteName
Returns
a Solute containing a Dissolved Substance with the given Id Effluxed out of the mInterior Vesicle.

◆ GetVesicle() [1/2]

Pointer< Vesicle > bio::molecular::TransMembraneDomain::GetVesicle ( )
Returns
mInterior

◆ GetVesicle() [2/2]

Pointer< const Vesicle > bio::molecular::TransMembraneDomain::GetVesicle ( ) const
Returns
mInterior

◆ IngressSolute()

void bio::molecular::TransMembraneDomain::IngressSolute ( Pointer< chemical::Solute external)

Ingress (like "ingestion") moves the external into *this.
If the external Molecule is already Dissolved in another Solution, *this will cause that Solution to Efflux the given Molecule so that it may be Influxed into *this.
Otherwise, the external Molecule will be Dissolved in *this.

Parameters
external

◆ IngressSolution()

void bio::molecular::TransMembraneDomain::IngressSolution ( Pointer< chemical::Solution external)

If you would like to Ingress multiple Molecules at once, you may provide the Solution those Molecules are Dissolved in.
This is essentially endocytosis; however the "cyto" bit isn't applicable at the molecular level.

Parameters
external

◆ Secrete() [1/2]

Pointer< chemical::Solute > bio::molecular::TransMembraneDomain::Secrete ( const Id &  soluteId)

Secrete moves Molecules in *this out, making them unavailable to the mInterior Vesicle.
If the returned Molecule is not added to another Vesicle, you must delete it to avoid memory leaks.
NOTE: you cannot Secrete a Molecule which has a Concentration > 1 (or 0). Removing a Molecule which is referenced by other Solutions is not currently supported.

Parameters
soluteId
Returns
the Clone of the Solute with the matching Id & which has been Erased from *this.

◆ Secrete() [2/2]

Pointer< chemical::Solute > bio::molecular::TransMembraneDomain::Secrete ( const Name soluteName)

Secrete moves Molecules in *this out, making them unavailable to the mInterior Vesicle.
If the returned Molecule is not added to another Vesicle, you must delete it to avoid memory leaks.
NOTE: you cannot Secrete a Molecule which has a Concentration > 1 (or 0). Removing a Molecule which is referenced by other Solutions is not currently supported.

Parameters
soluteName
Returns
the Clone of the Solute with the matching Id & which has been Erased from *this.

◆ SetVesicle()

void bio::molecular::TransMembraneDomain::SetVesicle ( Pointer< Vesicle interior)

In case the Surface *this is a part of is moved, etc.

Parameters
interior

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