|
libbio
|
#include <TransMembraneDomain.h>
Public Member Functions | |
| TransMembraneDomain (Pointer< Vesicle > interior=Pointer< Vesicle >()) | |
| ~TransMembraneDomain () | |
| void | SetVesicle (Pointer< Vesicle > interior) |
| Pointer< Vesicle > | GetVesicle () |
| Pointer< const Vesicle > | GetVesicle () 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::Solute > | Secrete (const Name &soluteName) |
| Pointer< chemical::Solute > | Secrete (const Id &soluteId) |
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.
| bio::molecular::TransMembraneDomain::TransMembraneDomain | ( | Pointer< Vesicle > | interior = Pointer< Vesicle >() | ) |
| interior |
| bio::molecular::TransMembraneDomain::~TransMembraneDomain | ( | ) |
| 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.
| soluteId |
| 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.
| soluteName |
| 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.
| external |
| 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.
| external |
| 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.
| soluteId |
| 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.
| soluteName |
In case the Surface *this is a part of is moved, etc.
| interior |