Auryn simulator
v0.8.1-206-gb56e451
Plastic Spiking Neural Network Simulator
|
Provides a poisson stimulus at random intervals in one or more predefined subsets of the group that are read from a file. More...
#include <StimulusGroup.h>
Public Member Functions | |
virtual unsigned int | get_num_stimuli () |
Returns number of stimuli. More... | |
StimulusGroup (NeuronID n, string filename, string stimfile, StimulusGroupModeType stimulusmode=RANDOM, AurynFloat baserate=1.0) | |
Default constructor. More... | |
StimulusGroup (NeuronID n, string stimfile, StimulusGroupModeType stimulusmode=RANDOM, AurynFloat baserate=1.0) | |
Constructor without pattern file. Patterns can be loaded afterwards using the load_patterns method. More... | |
virtual | ~StimulusGroup () |
virtual void | evolve () |
Standard virtual evolve function. More... | |
void | set_baserate (AurynFloat baserate) |
Sets the baserate that is the rate at 1 activity. More... | |
void | set_maxrate (AurynFloat baserate) |
TODO. More... | |
void | set_stimulation_mode (StimulusGroupModeType mode) |
Sets the stimulation mode. Can be any of StimulusGroupModeType (MANUAL,RANDOM,SEQUENTIAL,SEQUENTIAL_REV). More... | |
void | set_all (AurynFloat val=0.0) |
Sets sets the activity of all units. More... | |
void | seed (int rndseed) |
Seeds the random number generator for all stimulus groups of the simulation. More... | |
AurynFloat | get_activity (NeuronID i) |
Gets the activity of unit i. More... | |
virtual void | load_patterns (string filename) |
Loads stimulus patterns from a designated pat file given. More... | |
virtual void | clear_patterns () |
Clear stimulus patterns. More... | |
void | set_mean_off_period (AurynFloat period) |
Set mean quiet interval between consecutive stimuli. More... | |
void | set_mean_on_period (AurynFloat period) |
Set mean on period. More... | |
void | set_pattern_activity (unsigned int i) |
Function that loops over the stimulus/pattern vector and sets the activity verctor to the gamma values given with the pattern. More... | |
void | set_pattern_activity (unsigned int i, AurynFloat setval) |
Function that loops over the stimulus/pattern vector and sets the activity verctor to the given value. More... | |
virtual void | set_active_pattern (unsigned int i) |
This function is called internally and sets the activity level to a given active stimulus. More... | |
void | set_active_pattern (unsigned int i, AurynFloat default_value) |
This function is called internally and sets the activity level to a given active stimulus. More... | |
void | set_next_action_time (double time) |
void | set_distribution (std::vector< double > probs) |
Setter for pattern probability distribution. More... | |
std::vector< double > | get_distribution () |
Getter for pattern probability distribution. More... | |
double | get_distribution (int i) |
Getter for pattern i of the probability distribution. More... | |
unsigned int | get_stim_count () |
Returns number of stimuli shown. More... | |
AurynTime | get_last_action_time () |
returns the last action (stim on/off) time in units of AurynTime More... | |
AurynTime | get_last_onset_time () |
returns the last stimulus onset time in units of AurynTime More... | |
AurynTime | get_last_offset_time () |
returns the last stimulus offset time in units of AurynTime More... | |
AurynTime | get_next_action_time () |
returns the next action (stim on/off) time in units of AurynTime More... | |
unsigned int | get_cur_stim () |
returns the index of the current (or last – if not active anymore) active stimulus More... | |
bool | get_stim_active () |
Returns true if currently a stimulus is active and false otherwise. More... | |
void | flat_distribution () |
void | normalize_distribution () |
std::vector< type_pattern > * | get_patterns () |
Public Member Functions inherited from auryn::SpikingGroup | |
void | add_state_vector (std::string key, AurynStateVector *state_vector) |
Adds a state vector passed as an argument to the dictinary. More... | |
void | remove_state_vector (std::string key) |
Removes a state vector passed as an argument to the dictinary. More... | |
AurynStateVector * | find_state_vector (std::string key) |
Returns existing state vector by name or NULL if it does not exist. More... | |
AurynStateVector * | get_state_vector (std::string key) |
Creates a new or returns an existing state vector by name. More... | |
AurynStateVector * | get_existing_state_vector (std::string key) |
Returns an existing state with the supplied name. More... | |
AurynStateVector * | create_state_vector (std::string key) |
Creates a new state vector and throws an exception if a vector with the same name exists. More... | |
AurynState * | get_state_variable (std::string key) |
Creates a new group-wide state variable or returns an existing group-wide variable by name then returns a pointer to it. More... | |
void | randomize_state_vector_gauss (std::string state_vector_name, AurynState mean, AurynState sigma, int seed=12239) |
Randomizes the content of a state vector with Gaussian random numbers. Seeding is MPI save. More... | |
SpikingGroup (NeuronID size, NodeDistributionMode mode=AUTO) | |
Default constructor. More... | |
virtual | ~SpikingGroup () |
Default destructor. More... | |
virtual void | evolve_traces () |
Evolves traces. More... | |
void | set_name (std::string s) |
Set connection name. More... | |
std::string | get_name () |
Retrieves the groups name. More... | |
std::string | get_file_name () |
Extracts the class name of the connection from the file name. More... | |
std::string | get_log_name () |
Returns a string which is the combination of file and connection name for logging. More... | |
void | inc_num_spike_attributes (int x) |
Instructs SpikingGroup to increase the number of spike attributes by x. More... | |
int | get_num_spike_attributes () |
void | conditional_evolve () |
Conditional evolve functino which is called by System. More... | |
unsigned int | get_locked_rank () |
Returns locked rank for SpikingGroups which are not distributed across all ranks. More... | |
unsigned int | get_locked_range () |
Returns locked range of ranks for SpikingGroups which are not distributed across all ranks. More... | |
SpikeContainer * | get_spikes () |
Returns pointer to a spike container that contains spikes which arrive in this timestep from all neurons in this group. More... | |
SpikeContainer * | get_spikes_immediate () |
Returns pointer to SpikeContainer of spikes generated during the last evolve() step. More... | |
AttributeContainer * | get_attributes () |
Returns pointer to Attributecontainer for usage in propagating Connection objects. Same as get_spikes_immediate(), however might be overwritten to contain Spikes that have been delayed. More... | |
AttributeContainer * | get_attributes_immediate () |
Returns pointer to Attributecontainer of spikes generated during the last evolve() step. More... | |
NeuronID | get_size () |
Returns the size of the group. More... | |
NeuronID | get_pre_size () |
Returns the size of the group. More... | |
NeuronID | calculate_rank_size (int rank=-1) |
Determines rank size and stores it in local variable. More... | |
NeuronID | get_rank_size () |
Returns the size on this rank. More... | |
NeuronID | get_post_size () |
Returns the size on this rank. More... | |
void | set_clock_ptr (AurynTime *clock) |
bool | evolve_locally () |
Returns true if the calling instance has units which are integrated on the current rank. More... | |
NeuronID | get_uid () |
Get the unique ID of the class. More... | |
Trace * | get_pre_trace (AurynFloat x) |
Returns a pre trace with time constant x. More... | |
void | add_pre_trace (Trace *tr) |
Adds trace to pretrace stack of a connection. More... | |
Trace * | get_post_trace (AurynFloat x) |
Returns a post trace with time constant x. More... | |
void | add_post_trace (Trace *tr) |
Adds trace to posttrace stack of a connection. More... | |
void | push_spike (NeuronID spike) |
Pushes a local NeuronID as spike into the axonal SpikeDelay buffer. More... | |
void | push_attribute (AurynFloat attrib) |
Pushes a spike attribute into the axonal SpikeDelay buffer. More... | |
void | clear_spikes () |
Clears all spikes stored in the delays which is useful to reset a network during runtime. More... | |
Trace * | get_post_state_trace (std::string state_name="mem", AurynFloat tau=10e-3, AurynFloat b=0.0) |
Returns a post trace of a neuronal state variable e.g. the membrane potential with time constant tau. More... | |
Trace * | get_post_state_trace (AurynStateVector *state, AurynFloat tau=10e-3, AurynFloat b=0.0) |
Returns a post trace of a neuronal state variable specified by pointer. More... | |
void | set_delay (int d) |
Sets axonal delay for this SpikingGroup. More... | |
virtual bool | write_to_file (const char *filename) |
Writes current states of SpikingGroup to human-readible textfile if implemented in derived class. More... | |
virtual bool | load_from_file (const char *filename) |
Reads current states of SpikingGroup to human-readible textfile if implemented in derived class. More... | |
NeuronID | ranksize () |
Returns size (num of neurons) on the current rank. More... | |
NeuronID | global2rank (NeuronID i) |
Converts global NeuronID within the SpikingGroup to the local NeuronID on this rank. More... | |
NeuronID | rank2global (NeuronID i) |
Converts local NeuronID from the local rank to a global NeuronID. More... | |
bool | localrank (NeuronID i) |
Checks if the global NeuronID i is integrated on this MPI rank. More... | |
NeuronID | get_vector_size () |
Rank size but rounded up to multiples of 4 (or potentially some other and larger number in future versions) for SSE compatibility. More... | |
Public Attributes | |
int | cur_stim_index |
Current stimulus index. More... | |
bool | stimulus_active |
Current stimulus active. More... | |
std::vector< type_pattern > | stimuli |
Vector containing all the stimuli. More... | |
AurynFloat | scale |
This is by how much the pattern gamma value is multiplied. The resulting value gives the x-times baseline activation. More... | |
bool | binary_patterns |
Switches to more efficient algorithm which ignores the gamma value. More... | |
AurynTime | refractory_period |
Enables a finite refractory time specified in AurynTime (only works for non-binary-pattern mode. More... | |
bool | randomintervals |
Determines if the Group is using random activation intervals. More... | |
bool | randomintensities |
Determines if the Group is using random activation intensities. More... | |
AurynDouble | background_rate |
Play random Poisson noise with this rate on all channels when no stim is active. More... | |
bool | background_during_stimulus |
Switch for background firing during stimulus. More... | |
Public Attributes inherited from auryn::SpikingGroup | |
SpikeDelay * | delay |
bool | active |
Toggles group active. More... | |
std::map< std::string, AurynStateVector * > | state_vectors |
std::map< std::string, AurynState > | state_variables |
Protected Member Functions | |
void | init (StimulusGroupModeType stimulusmode, string stimfile, AurynFloat baserate) |
virtual void | redraw () |
void | write_stimulus_file (AurynDouble time) |
void | read_next_stimulus_from_file (AurynDouble &time, int &active, int &stimulusid) |
void | set_activity (NeuronID i, AurynFloat val=0.0) |
Protected Member Functions inherited from auryn::SpikingGroup | |
virtual void | load_input_line (NeuronID i, const char *buf) |
virtual std::string | get_output_line (NeuronID i) |
virtual void | virtual_serialize (boost::archive::binary_oarchive &ar, const unsigned int version) |
Implementatinon of serialize function for writing. More... | |
virtual void | virtual_serialize (boost::archive::binary_iarchive &ar, const unsigned int version) |
Implementatinon of serialize function for reading. More... | |
void | free () |
Frees potentially allocated memory. More... | |
Protected Attributes | |
AurynTime * | ttl |
AurynFloat * | activity |
StimulusGroupModeType | stimulus_order |
unsigned int | stimulation_count |
Counter variable for number of stimuli shown. More... | |
NeuronID | fgx |
NeuronID | bgx |
std::vector< double > | probabilities |
AurynTime | next_action_time |
next stimulus time requiring change in rates More... | |
AurynTime | last_action_time |
last stimulus time requiring change in rates More... | |
AurynTime | last_stim_onset_time |
last stimulus onset time More... | |
AurynTime | last_stim_offset_time |
last stimulus offset time More... | |
AurynFloat | mean_off_period |
AurynFloat | mean_on_period |
AurynFloat | curscale |
Protected Attributes inherited from auryn::SpikingGroup | |
std::vector< Trace * > | pretraces |
Pretraces. More... | |
std::vector< Trace * > | posttraces |
Posttraces. More... | |
std::vector< Trace * > | post_state_traces |
Post state traces. More... | |
std::vector< AurynFloat > | post_state_traces_spike_biases |
std::vector< AurynStateVector * > | post_state_traces_states |
std::string | group_name |
Identifying name for object. More... | |
NeuronID | size |
Stores the size of the group. More... | |
NeuronID | rank_size |
Stores the size of the group on this rank. More... | |
SpikeContainer * | spikes |
SpikeContainers to store spikes produced during one step of evolve. More... | |
AttributeContainer * | attribs |
Static Protected Attributes | |
static boost::mt19937 | poisson_gen = boost::mt19937() |
static boost::mt19937 | order_gen = boost::mt19937() |
static boost::uniform_01< boost::mt19937 > | order_die = boost::uniform_01<boost::mt19937> (order_gen) |
Static Protected Attributes inherited from auryn::SpikingGroup | |
static AurynTime * | clock_ptr = NULL |
Provides a poisson stimulus at random intervals in one or more predefined subsets of the group that are read from a file.
StimulusGroup::StimulusGroup | ( | NeuronID | n, |
std::string | filename, | ||
std::string | stimfile, | ||
StimulusGroupModeType | stimulusmode = RANDOM , |
||
AurynFloat | baserate = 1.0 |
||
) |
Default constructor.
n | Size of the group |
filename | The path and filename of the pat file. |
stimfile | The path and filename of the output file used to record the stimulus timing. |
stimulusmode | Stimulus mode specifies in which order patterns are presented |
baserate | The base firing rate with which all activity is multiplied. |
StimulusGroup::StimulusGroup | ( | NeuronID | n, |
std::string | stimfile, | ||
StimulusGroupModeType | stimulusmode = RANDOM , |
||
AurynFloat | baserate = 1.0 |
||
) |
Constructor without pattern file. Patterns can be loaded afterwards using the load_patterns method.
Like the default constructor only that no patterns are specified. They have to be loaded afterwards using the load_patterns function.
n | Size of the group |
stimfile | The path and filename of the output file used to record the stimulus timing. |
stimulusmode | Stimulus mode specifies in which order patterns are presented |
baserate | The base firing rate with which all activity is multiplied. |
|
virtual |
|
virtual |
Clear stimulus patterns.
|
virtual |
Standard virtual evolve function.
Implements auryn::SpikingGroup.
Reimplemented in auryn::SpikeTimingStimGroup.
void StimulusGroup::flat_distribution | ( | ) |
Initialized distribution to be flat
AurynFloat StimulusGroup::get_activity | ( | NeuronID | i | ) |
Gets the activity of unit i.
unsigned int StimulusGroup::get_cur_stim | ( | ) |
returns the index of the current (or last – if not active anymore) active stimulus
std::vector< double > StimulusGroup::get_distribution | ( | ) |
Getter for pattern probability distribution.
double StimulusGroup::get_distribution | ( | int | i | ) |
Getter for pattern i of the probability distribution.
AurynTime StimulusGroup::get_last_action_time | ( | ) |
returns the last action (stim on/off) time in units of AurynTime
AurynTime StimulusGroup::get_last_offset_time | ( | ) |
returns the last stimulus offset time in units of AurynTime
AurynTime StimulusGroup::get_last_onset_time | ( | ) |
returns the last stimulus onset time in units of AurynTime
AurynTime StimulusGroup::get_next_action_time | ( | ) |
returns the next action (stim on/off) time in units of AurynTime
|
virtual |
Returns number of stimuli.
std::vector< type_pattern > * StimulusGroup::get_patterns | ( | ) |
bool StimulusGroup::get_stim_active | ( | ) |
Returns true if currently a stimulus is active and false otherwise.
unsigned int StimulusGroup::get_stim_count | ( | ) |
Returns number of stimuli shown.
|
protected |
Standard initialization
|
virtual |
Loads stimulus patterns from a designated pat file given.
filename | The path and filename of the pat file to laod. |
void StimulusGroup::normalize_distribution | ( | ) |
Normalizes the distribution
|
protected |
Read current stimulus status from stimfile
|
protectedvirtual |
Draw all Time-To-Live (ttls) typically after changing the any of the activiteis
Reimplemented in auryn::SpikeTimingStimGroup.
void StimulusGroup::seed | ( | int | rndseed | ) |
Seeds the random number generator for all stimulus groups of the simulation.
|
virtual |
This function is called internally and sets the activity level to a given active stimulus.
i | the index of the pattern to set the activity to |
void StimulusGroup::set_active_pattern | ( | unsigned int | i, |
AurynFloat | default_value | ||
) |
This function is called internally and sets the activity level to a given active stimulus.
i | The index of the pattern to set the activity to |
default_value | The value to assign to the activity values which are not specified in the pattern file. Typically this corresponds to some background value. |
|
protected |
Sets the activity for a given unit on the local rank. Activity determines the freq as baserate*activity
void StimulusGroup::set_all | ( | AurynFloat | val = 0.0 | ) |
Sets sets the activity of all units.
void StimulusGroup::set_baserate | ( | AurynFloat | baserate | ) |
Sets the baserate that is the rate at 1 activity.
void StimulusGroup::set_distribution | ( | std::vector< double > | probs | ) |
Setter for pattern probability distribution.
void StimulusGroup::set_maxrate | ( | AurynFloat | baserate | ) |
TODO.
void StimulusGroup::set_mean_off_period | ( | AurynFloat | period | ) |
Set mean quiet interval between consecutive stimuli.
void StimulusGroup::set_mean_on_period | ( | AurynFloat | period | ) |
Set mean on period.
void StimulusGroup::set_next_action_time | ( | double | time | ) |
void StimulusGroup::set_pattern_activity | ( | unsigned int | i | ) |
Function that loops over the stimulus/pattern vector and sets the activity verctor to the gamma values given with the pattern.
void StimulusGroup::set_pattern_activity | ( | unsigned int | i, |
AurynFloat | setval | ||
) |
Function that loops over the stimulus/pattern vector and sets the activity verctor to the given value.
void StimulusGroup::set_stimulation_mode | ( | StimulusGroupModeType | mode | ) |
Sets the stimulation mode. Can be any of StimulusGroupModeType (MANUAL,RANDOM,SEQUENTIAL,SEQUENTIAL_REV).
|
protected |
write current stimulus to stimfile
|
protected |
bool auryn::StimulusGroup::background_during_stimulus |
Switch for background firing during stimulus.
AurynDouble auryn::StimulusGroup::background_rate |
Play random Poisson noise with this rate on all channels when no stim is active.
|
protected |
Background Poisson field pointer
bool auryn::StimulusGroup::binary_patterns |
Switches to more efficient algorithm which ignores the gamma value.
int auryn::StimulusGroup::cur_stim_index |
Current stimulus index.
Do not write this variable.
|
protected |
|
protected |
Foreground Poisson field pointer
|
protected |
last stimulus time requiring change in rates
|
protected |
last stimulus offset time
|
protected |
last stimulus onset time
|
protected |
allow silence/background activity periods
|
protected |
mean presentation time
|
protected |
next stimulus time requiring change in rates
|
staticprotected |
|
staticprotected |
generates info for what stimulus is active. Is supposed to give the same result on all nodes (hence same seed required)
|
staticprotected |
pseudo random number generators
|
protected |
stimulus probabilities
bool auryn::StimulusGroup::randomintensities |
Determines if the Group is using random activation intensities.
bool auryn::StimulusGroup::randomintervals |
Determines if the Group is using random activation intervals.
AurynTime auryn::StimulusGroup::refractory_period |
Enables a finite refractory time specified in AurynTime (only works for non-binary-pattern mode.
AurynFloat auryn::StimulusGroup::scale |
This is by how much the pattern gamma value is multiplied. The resulting value gives the x-times baseline activation.
|
protected |
Counter variable for number of stimuli shown.
std::vector<type_pattern> auryn::StimulusGroup::stimuli |
Vector containing all the stimuli.
bool auryn::StimulusGroup::stimulus_active |
Current stimulus active.
Only read this state.
|
protected |
Stimulus order
|
protected |