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

Define simple blox for external stimulus, used for task based sDCM #351

Merged
merged 31 commits into from
Jun 7, 2024

Conversation

david-hofmann
Copy link
Member

No description provided.

@david-hofmann
Copy link
Member Author

This is a WIP, forgot to add that in the title.

@david-hofmann
Copy link
Member Author

@anandpathak31 @harisorgn could you perhaps have a look at the error that suddenly occurs in the RL test? I thought that perhaps it was because of the newly introduced blox connector

function (bc::BloxConnector)(
     bloxout::StimulusBlox,
     bloxin::NeuralMassBlox;
     weight=1
 )

But even if I comment that out it wouldn't resolve the issue. I can dig into this in more detail after I have finished my manuscripts but perhaps you know what the issue is just by checking out the error message. Thanks!

MasonProtter and others added 8 commits May 1, 2024 17:05
* bump to MTK v9

* some renames

* more fixes

* fix

* more fixes to reinforcement learning

* deepcopy -> copy

* fix plasticity tests

* get datafitting tests working

* fix update to datafitting

* bump version

* improve type stability of spectralDCM code

* added an external input to LinearNeuralMass as well as the necessary machinery to deal with it in blox_utilities.jl: function get_states_without_drive

* finished implementing new feature: sDCM can now potentially deal with external input. Implementation differs from SPM12 since C parameter is not being overwritten when transfer function is being computed but the user-set value is kept.

* merged bold model into BalloonModel. This makes the code more robust w.r.t. potential changes in MTK and pecularities about model assembly. It also deprecates the get_hemodynamic_observers function.

* implemented new approach to deal with measurements (such as bold signal) based on Haris's comment to use irreducible to maintain measurement equations which are algebraic equations of dynamic variables. This makes in particular transferfunction_fmri much more elegant and robust.

* added back OU-JansenRit test

* LIF Neuron implementation

Basic LIF Neuron with tests using MTK

* Added QIFNeuron support

Also added TestSet for QIF neurons

* Starter Izhikevich commit

Still under construction

* IF Neuron implementation

Simple IF addition

* Add helper function

`get_connection_rule` added to blox_utilities to mirror other helper functions for BloxConnector

* Izhikevich Neuron addition

Basic Izhikevich neurons from Chen and Campbell added

* Updates per comments

*Fixed the `I_syn` redundancies
*Moved the for `:connection_rule` to `get_connection_rule`
*Added parameter ranges for the GUI in the comments

* Fix get_connection_rule

Only returns `rhs` now

* added TAN to GUI.jl

* added QIFNeuron to GUI

* prefixed kappa and epsilon with ln

* Add MKL to Neuroblox. Fix in test datafitting.jl to ensure consistent sorting of values of initial conditions.

* moved VL structs from Neuroblox.jl to spectralDCM.jl

* added descriptions of elements of VL structs

* removing the deprecated codebase

* Old neuron cleanup

Delete old IF, LIF, QIF blox and associated helper functions and tests. Also remove `synaptic_network.jl` as it is fully replaced by `BloxConnector`

* Update components.jl

* bump to MTK v9

* some renames

* more fixes

* fix

* more fixes to reinforcement learning

* deepcopy -> copy

* fix plasticity tests

* get datafitting tests working

* fix update to datafitting

* bump version

* improve type stability of spectralDCM code

* oops

* Update IF/LIF

Include citations and docstring formatting. Still finishing up QIF and Izhikevich

* Reminder for IF connections

Synaptic conductances for these need to be scaled appropriately!

* QIF updates

Also cleanup

* fixes for rebase

* oops, mark broken test

* remove the `.odesystem` test

* more states -> unknowns whack-a-mole

---------

Co-authored-by: david-hofmann <david.hofmann@mytum.de>
Co-authored-by: David Hofmann <1681922+david-hofmann@users.noreply.github.com>
Co-authored-by: Helmut Strey <Helmut.Strey@stonybrook.edu>
Co-authored-by: agchesebro <76024790+agchesebro@users.noreply.github.com>
Co-authored-by: Helmut H. Strey <Helmut.Strey@gmail.com>
@david-hofmann david-hofmann merged commit c2171d7 into master Jun 7, 2024
2 checks passed
@david-hofmann david-hofmann deleted the inputblox branch June 7, 2024 16:17
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

Successfully merging this pull request may close these issues.

6 participants