78 Neuron *LoadNeuron(CStdXml &oXml);
79 SynapseType *LoadSynapseType(CStdXml &oXml);
80 SpikingChemicalSynapse *LoadSpikingChemSyn(CStdXml &oXml,
int iIndex);
81 NonSpikingChemicalSynapse *LoadNonSpikingChemSyn(CStdXml &oXml,
int iIndex);
82 ElectricalSynapse *LoadElecSyn(CStdXml &oXml,
int iIndex);
83 Connexion *LoadConnexion(CStdXml &oXml);
84 void InitSynapse(Connexion *pCx);
91 virtual void LoadInternal(CStdXml &oXml);
99 #pragma region Accessor-Mutators
102 void SetCurrentTime(
double t);
103 double GetCurrentTime();
104 double GetTimeStep();
107 int GetNeuronCount();
108 Neuron *GetNeuronAt(
int i);
111 int GetConnexionCount();
112 Connexion *GetConnexionAt(
int i);
123 virtual void TimeStep(
float fltVal);
124 virtual float TimeStep();
126 void RetainHebbMemory(
bool bVal);
127 bool RetainHebbMemory();
129 void UseCriticalPeriod(
bool bVal);
130 bool UseCriticalPeriod();
132 void StartCriticalPeriod(
double dVal);
133 double StartCriticalPeriod();
135 void EndCriticalPeriod(
double dVal);
136 double EndCriticalPeriod();
138 void FreezeHebb(
bool bVal);
141 void SpikePeak(
double dVal);
144 void SpikeStrength(
double dVal);
145 double SpikeStrength();
147 void CaEquilPot(
double dVal);
150 void AbsoluteRefr(
double dVal);
151 double AbsoluteRefr();
153 void AHPEquilPot(
double dVal);
154 double AHPEquilPot();
157 int GetSpikingChemSynCount();
158 SpikingChemicalSynapse *GetSpikingChemSynAt(
int i);
159 int GetNonSpikingChemSynCount();
160 NonSpikingChemicalSynapse *GetNonSpikingChemSynAt(
int i);
161 int GetElecSynCount();
162 ElectricalSynapse *GetElecSynAt(
int i);
165 virtual std::string ModuleName();
174 double GetScaleElecCond(
double minG,
double maxG,
double jV,
double ThreshV,
double SaturateV);
175 void ScaleCondForVoltDep(
double& G,
double postV,
double maxV,
double minV,
double scl);
176 void ScaleCondForNonSpiking(
double& G,
double PreV,
double ThreshV,
double SaturateV);
179 #pragma region DataAccesMethods
180 virtual bool SetData(
const std::string &strDataType,
const std::string &strValue,
bool bThrowError =
true);
181 virtual void QueryProperties(CStdPtrArray<TypeProperty> &aryProperties);
182 virtual bool AddItem(
const std::string &strItemType,
const std::string &strXml,
bool bThrowError =
true,
bool bDoNotInit =
false);
183 virtual bool RemoveItem(
const std::string &strItemType,
const std::string &strID,
bool bThrowError =
true);
186 virtual void AddNeuron(std::string strXml,
bool bDoNotInit);
187 virtual void RemoveNeuron(std::string strID,
bool bThrowError =
true);
188 virtual int FindNeuronListPos(std::string strID,
bool bThrowError =
true);
190 virtual void AddSynapse(std::string strXml,
bool bDoNotInit);
191 virtual void RemoveSynapse(std::string strID,
bool bThrowError =
true);
192 virtual int FindSynapseListPos(std::string strID,
bool bThrowError =
true);
194 virtual void AddSynapseType(std::string strXml,
bool bDoNotInit);
195 virtual void RemoveSynapseType(std::string strID,
bool bThrowError =
true);
196 virtual int FindSpikingChemListPos(std::string strID,
bool bThrowError =
true);
197 virtual int FindNonSpikingChemListPos(std::string strID,
bool bThrowError =
true);
198 virtual int FindElectricalListPos(std::string strID,
bool bThrowError =
true);
200 virtual void Kill(
bool bState =
true);
206 virtual void ResetSimulation();
207 virtual void Initialize();
208 virtual void StepSimulation();
209 virtual void TimeStepModified();
210 virtual void Load(CStdXml &oXml);
virtual void LoadKeyFrameSnapshot(byte *aryBytes, long &lIndex)
Loads a key frame snapshot.
bool m_bTTX
true if ttx drug is applied to the nervous system.
CStdPtrArray< Connexion > m_aryConnexion
The array of connexions in this neural module.
Integrate and fire neural module.
bool m_bHH
true if this nervous system is using a hodgkin-huxely model.
bool m_bFreezeHebb
true to freeze hebbian learning.
bool m_bRandomisedHebb
true to randomise hebbian learning values.
Integrate and fire neuron model.
virtual long CalculateSnapshotByteSize()
Calculates the snapshot byte size.
bool m_bNeedInitialiseHebb
true if hebbian learning needs to be initialized
bool m_bRetainHebbMemory
true to retain hebbian memory
bool m_bCd
true if cadium is applied to the nervous system.
virtual void SaveKeyFrameSnapshot(byte *aryBytes, long &lIndex)
Saves a key frame snapshot.
double m_dStartCriticalPeriod
The start time of the critical period for hebbian learning.
double m_dEndCriticalPeriod
The end time of the critical period for hebbian learning.
CStdPtrArray< NonSpikingChemicalSynapse > m_aryNonSpikingChemSyn
The array of non-spiking chemical synapses in this neural module.
bool m_bFreezeLearning
true to freeze learning.
CStdPtrArray< Neuron > m_aryNeurons
The array of neurons in this neural module.
CStdPtrArray< ElectricalSynapse > m_aryElecSyn
The array of electrical synapses in this neural module.
CStdPtrArray< SpikingChemicalSynapse > m_arySpikingChemSyn
The array of spiking chem synapses in this neural module.
double m_dCurrentTime
Current time of the simulation.
double m_dTimeStep
The time step of the neural module.
Contains all of the classes to implement a basic integrate and fire neural model. ...
bool m_bUseCriticalPeriod
true to use critical period during hebbian learning.