BioDynaMo
v1.05.120-25dc9790
|
#include <neuron_soma.h>
Public Member Functions | |
NeuronSoma () | |
~NeuronSoma () override | |
NeuronSoma (const Real3 &position) | |
NeuronSoma (const NeuronSoma &other) | |
void | Initialize (const NewAgentEvent &event) override |
This method is used to initialise the values of daughter 2 for a cell division event. More... | |
void | Update (const NewAgentEvent &event) override |
This method is used to update attributes after a cell division. or new neurite branching event. More... | |
const AgentUid & | GetUid () const override |
Spinlock * | GetLock () override |
void | CriticalRegion (std::vector< AgentPointer<>> *aptrs) override |
NeuriteElement * | ExtendNewNeurite (const Real3 &direction, NeuriteElement *prototype=nullptr) |
Extend a new neurite from this soma. More... | |
NeuriteElement * | ExtendNewNeurite (real_t diameter, real_t phi, real_t theta, NeuriteElement *prototype=nullptr) |
Extend a new neurite from this soma. More... | |
void | RemoveDaughter (const AgentPointer< NeuriteElement > &daughter) override |
Real3 | OriginOf (const AgentUid &daughter_uid) const override |
void | UpdateDependentPhysicalVariables () override |
void | UpdateRelative (const NeuronOrNeurite &old_rel, const NeuronOrNeurite &new_rel) override |
const std::vector< AgentPointer< NeuriteElement > > & | GetDaughters () const |
void | PrintSWC (std::ostream &out) const |
Exports the soma and the attached neurite elements to the SWC file format. More... | |
Public Member Functions inherited from bdm::Cell | |
Cell () | |
Cell (real_t diameter) | |
Cell (const Real3 &position) | |
~Cell () override=default | |
Shape | GetShape () const override |
virtual Cell * | Divide () |
Divide this cell. More... | |
virtual Cell * | Divide (real_t volume_ratio) |
Divide this cell. More... | |
virtual Cell * | Divide (const Real3 &axis) |
Divide this cell. More... | |
virtual Cell * | Divide (real_t volume_ratio, const Real3 &axis) |
Divide this cell. More... | |
virtual Cell * | Divide (real_t volume_ratio, real_t phi, real_t theta) |
Divide this cell. More... | |
real_t | GetAdherence () const |
real_t | GetDiameter () const override |
real_t | GetMass () const |
real_t | GetDensity () const |
const Real3 & | GetPosition () const override |
const Real3 & | GetTractorForce () const |
real_t | GetVolume () const |
void | SetAdherence (real_t adherence) |
void | SetDiameter (real_t diameter) override |
void | SetVolume (real_t volume) |
void | SetMass (real_t mass) |
void | SetDensity (real_t density) |
void | SetPosition (const Real3 &position) override |
void | SetTractorForce (const Real3 &tractor_force) |
void | ChangeVolume (real_t speed) |
void | UpdateDiameter () |
void | UpdateVolume () |
void | UpdatePosition (const Real3 &delta) |
Real3 | CalculateDisplacement (const InteractionForce *force, real_t squared_radius, real_t dt) override |
void | ApplyDisplacement (const Real3 &displacement) override |
void | MovePointMass (const Real3 &normalized_dir, real_t speed) |
Public Member Functions inherited from bdm::Agent | |
Agent () | |
Agent (TRootIOCtor *io_ctor) | |
Agent (const Agent &other) | |
virtual | ~Agent () |
virtual Agent * | New () const =0 |
Create a new instance of this object using the default constructor. More... | |
virtual Agent * | NewCopy () const =0 |
Create a copy of this object. More... | |
void | CreateNewAgents (const NewAgentEvent &event, const std::initializer_list< Agent * > &prototypes) |
virtual const char * | GetTypeName () const |
virtual std::set< std::string > | GetRequiredVisDataMembers () const |
virtual void | RunDiscretization () |
void | AssignNewUid () |
const AgentUid & | GetUid () const |
Spinlock * | GetLock () |
uint32_t | GetBoxIdx () const |
void | SetBoxIdx (uint32_t idx) |
void | SetStaticnessNextTimestep (bool value) const |
bool | GetPropagateStaticness () const |
void | SetPropagateStaticness (bool value=true) |
void | PropagateStaticness (bool beginning=false) |
void | UpdateStaticness () |
bool | IsStatic () const |
template<typename TAgent = Agent> | |
AgentPointer< TAgent > | GetAgentPtr () const |
Return agent pointer. More... | |
void | AddBehavior (Behavior *behavior) |
Add a behavior to this agent. More... | |
void | RemoveBehavior (const Behavior *behavior) |
void | RunBehaviors () |
Execute all behaviorsq. More... | |
const InlineVector< Behavior *, 2 > & | GetAllBehaviors () const |
Return all behaviors. More... | |
virtual void | RemoveFromSimulation () |
void * | operator new (size_t size) |
void | operator delete (void *p) |
Public Member Functions inherited from bdm::neuroscience::NeuronOrNeurite | |
virtual | ~NeuronOrNeurite () |
AgentPointer< NeuronOrNeurite > | GetNeuronOrNeuriteAgentPtr () const |
virtual StructureIdentifierSWC | GetIdentifierSWC () const |
Returns the SWC classification of the object. More... | |
bool | IsNeuronSoma () const |
bool | IsNeuriteElement () const |
Protected Attributes | |
std::vector< AgentPointer< NeuriteElement > > | daughters_ |
std::unordered_map< AgentUid, Real3 > | daughters_coord_ |
Protected Attributes inherited from bdm::Agent | |
AgentUid | uid_ |
unique id More... | |
uint32_t | box_idx_ = std::numeric_limits<uint32_t>::max() |
Grid box index. More... | |
InlineVector< Behavior *, 2 > | behaviors_ |
collection of behaviors which define the internal behavior More... | |
Private Member Functions | |
BDM_AGENT_HEADER (NeuronSoma, Cell, 1) | |
Additional Inherited Members | |
Static Public Attributes inherited from bdm::Cell | |
static const Real3 | kXAxis = {1.0, 0.0, 0.0} |
First axis of the local coordinate system. More... | |
static const Real3 | kYAxis = {0.0, 1.0, 0.0} |
Second axis of the local coordinate system. More... | |
static const Real3 | kZAxis = {0.0, 0.0, 1.0} |
Third axis of the local coordinate system. More... | |
Protected Member Functions inherited from bdm::Cell | |
Real3 | TransformCoordinatesGlobalToPolar (const Real3 &coord) const |
Protected Member Functions inherited from bdm::Agent | |
template<typename TFrom , typename TTo > | |
std::enable_if< std::is_base_of< TFrom, TTo >::value, TTo * >::type | Cast (TFrom *agent) const |
template<typename TFrom , typename TTo > | |
std::enable_if<!std::is_base_of< TFrom, TTo >::value, TTo * >::type | Cast (TFrom *agent) const |
Definition at line 30 of file neuron_soma.h.
|
default |
|
overridedefault |
|
explicit |
Definition at line 33 of file neuron_soma.cc.
|
inline |
Definition at line 39 of file neuron_soma.h.
|
private |
|
overridevirtual |
If the thread-safety mechanism is set to user-specified this function will be called before the operations are executed for this agent.
Subclasses define the critical region by adding the AgentPointers of all agents that must not be processed in parallel.
Don't forget to add the current agent.
Here an example from NeuronSoma.
void NeuronSoma::CriticalRegion(std::vector<AgentPointer<>>* aptrs) { aptrs->reserve(daughters_.size() + 1); aptrs->push_back(Agent::GetAgentPtr<>()); for (auto& daughter : daughters_) { aptrs->push_back(daughter); } }
Reimplemented from bdm::Agent.
Definition at line 69 of file neuron_soma.cc.
NeuriteElement * bdm::neuroscience::NeuronSoma::ExtendNewNeurite | ( | const Real3 & | direction, |
NeuriteElement * | prototype = nullptr |
||
) |
Extend a new neurite from this soma.
Uses default diameter for new neurite
Definition at line 77 of file neuron_soma.cc.
NeuriteElement * bdm::neuroscience::NeuronSoma::ExtendNewNeurite | ( | real_t | diameter, |
real_t | phi, | ||
real_t | theta, | ||
NeuriteElement * | prototype = nullptr |
||
) |
Extend a new neurite from this soma.
Definition at line 86 of file neuron_soma.cc.
const std::vector< AgentPointer< NeuriteElement > > & bdm::neuroscience::NeuronSoma::GetDaughters | ( | ) | const |
Definition at line 136 of file neuron_soma.cc.
|
inlineoverridevirtual |
Implements bdm::neuroscience::NeuronOrNeurite.
Definition at line 62 of file neuron_soma.h.
|
inlineoverridevirtual |
Implements bdm::neuroscience::NeuronOrNeurite.
Definition at line 60 of file neuron_soma.h.
|
overridevirtual |
This method is used to initialise the values of daughter 2 for a cell division event.
Please note that this implementation does not allow division of neuron somas with already attached neurite elements.
Reimplemented from bdm::Cell.
Definition at line 35 of file neuron_soma.cc.
|
overridevirtual |
Returns the absolute coordinates of the location where the daughter is attached.
daughter_element_idx | element_idx of the daughter |
Implements bdm::neuroscience::NeuronOrNeurite.
Definition at line 105 of file neuron_soma.cc.
void bdm::neuroscience::NeuronSoma::PrintSWC | ( | std::ostream & | out | ) | const |
Exports the soma and the attached neurite elements to the SWC file format.
Exports neuron as an SWC file following the conventions of neuromorpho.org. Unfortunately, the file format is not defined without ambiguities in the scientific community. The export follows the following convention: for each element, we export a line containing the information <element id> <type id> <pos x> <pos y> <pos z> <radius> <prev element id>. The <prev element id> resembles the connectivity of the neuron.
Usage:
Definition at line 147 of file neuron_soma.cc.
|
overridevirtual |
Implements bdm::neuroscience::NeuronOrNeurite.
Definition at line 98 of file neuron_soma.cc.
|
overridevirtual |
This method is used to update attributes after a cell division. or new neurite branching event.
Performs the transition mother to daughter 1
Reimplemented from bdm::Agent.
Definition at line 49 of file neuron_soma.cc.
|
overridevirtual |
Implements bdm::neuroscience::NeuronOrNeurite.
Definition at line 119 of file neuron_soma.cc.
|
overridevirtual |
Implements bdm::neuroscience::NeuronOrNeurite.
Definition at line 121 of file neuron_soma.cc.
|
protected |
Definition at line 123 of file neuron_soma.h.
Daughter attachment points in local coordinates Key: neurite segment uid Value: position
Definition at line 128 of file neuron_soma.h.