Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Complex stimulation analysis #768

Open
ddelpiano opened this issue Oct 31, 2023 · 3 comments
Open

Complex stimulation analysis #768

ddelpiano opened this issue Oct 31, 2023 · 3 comments
Assignees

Comments

@ddelpiano
Copy link
Member

There is 4 different patterns that can be created:

  • rythmic pattern
  • evoked pattern
  • poisson pattern
  • gauss pattern

Each pattern have different parameters, but all own a "rand" parameter, not documented, that must be the random seed (?) of the pattern.

(??)
A "Spike Pattern" entry could be added in the "Stimulation Source" section.
The "pattern" section should be activated only if the the "interval" is not set in the parameters.
To do that, it's important to first select if we want a "pattern" or an "interval" or something else (there is another entry in the code it seems).

This kind of things looks like it's only used for VecStim, which is a new kind of stimulation not yet implemented.

If "pattern" is chosen a drop-down menu let the user select between each pattern.
By default "rythmic pattern" is selected.

Associated model entries

.. params['spikePattern']

spikePattern is where are located the patterns.
In this dict: type defines the type of pattern: rhythmic, evoked, poisson, gauss

In the params for the "VecStim" type of stimulation, there is:

  • seed (optional)
  • pulses (optional), list of "start, end, rate/interval, noise", where there can be either "rate", or "interval". "rate" can be a list of 2 elemements also
  • rate (if rate is set, then "interval" is set, which disable the use of patterns)
  • interval (if set explicitaly, "start" and "noise" can be set as parameter, they are both optional)
  • if interval is not set, the check is done for "spikePattern"
  • if interval is not set and spikePatterns is not set, the check is done for "spkTimes"

Interactions: if interval is set, then spikePattern and spkTimes parameters should be disabled.
In a general way, interval/spikePattern/spkTimes should react as in a xor (for disabling).

spikePattern:

  • type: type of pattern
  • sync: boolean, yes or no for the sync
  • allotherparams: the parameters that will be passed to the pattern functions (see below)

Rythmic pattern

Parameters

  • start (if -1 uniform distribution betwee, startMin and startMax (ms)) # time of first spike
  • startMin (ms) activated only if start == -1 (default value 25) # minimum values of uniform distribution for start time
  • startMax (ms) activated only if start == -1 (default value 125) # maximum values of uniform distribution for start time
  • startStd (ms) only used if > 0.0 (validation rule, if < 0.0, change label for "unused" with tooltip explaining why?) # standard deviation of normal distribution for dtart time; mean is set by start param. Only usef if > 0.0
  • freq (Hz) # oscillatory frenquency of rhytmic pattern
  • freStd (Hz) # standard deviation of scillatory frequency
  • distribution type ('normal' | 'uniform') # distribution type of scillatory frequencies
  • eventsPerCycle should be 1 or 2 # spikes/burst per cycle
  • repeats # number of times to repeat input pattern (equivalent to number of inputs)
  • stop # maximum time for last spike of pattern

For start, startMin, startMax parameters, we can set only two inputs, one for "start" and one for "max", and a checkbox saying "start uniform distribution", if checked, the "max" input is available, and for the call, "start" is automatically set to "-1", while the "start" input is mapped to "startMin" and "max" to "startMax".

Interactions

If start == -1:

  • startMin is used
  • startMax is used

If distribution 'normal' is selected, then the following parameters can be used:

  • freq
  • freqStd
  • eventsPerCycle
  • start (either computed or original)
  • repeats
  • stop

If distribution 'uniform' is selected, then the following parameters can be used:

  • freq
  • freqStd
  • eventsPerCycle
  • start (either computed, or original)
  • tstop (?)

Evoked Pattern

Parameters

  • start (ms) # time of first spike
  • inc (ms) (default value 0) # increase in time of first spike
  • startStd (ms) # standard deviation of start
  • numSpikes # total number of spikes to generate

No complex interactions here

Poisson Pattern

Parameters

  • start (ms) # time of first spike
  • stop (ms) # stop time; if -1 the full duration (doesn't really appear in the code)
  • frequency (ms) # standard deviation of start

No complex interaction here

Gauss Pattern

  • mu # Gaussian mean
  • sigma # Gaussian variance

No complex interaction here

@ddelpiano
Copy link
Member Author

@salvadord this is our analysis done from the code for the complex stimulation, since this has been mostly extracted from the code, would you mind to validate this before we move to implementing it?
Thanks!

@salvadord
Copy link
Collaborator

here's an example of using these stims, in case useful: https://github.com/jonescompneurolab/hnn/blob/hnn2/hnn_models/hnn_neocortex/netParams.py#L702

@salvadord
Copy link
Collaborator

the above description is correct, please go ahead taking into account what we discussed in meeting: can be part of both popParams and stimSourceParams. thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants