v0.8.0
API Changes
- ModelingToolkit is no longer used by Neuroblox. All interfaces have moved over to GraphDynamics.jl as the backend.
- A
@bloxmacro has been added for defining blox types compatible with GraphDynamics - A
@wiring_rulemacro has been added for defining what should happen when two blox are connected - A
@connectionmacro has been added for defining the action of connection types on subsystems, along with event connections - Instead of storing a system and connector object, composite blox (i.e.
<:AbstractComposite) now store agraphfield which holds aGraphSystemof the internal connections. - A
@graph!macros have been added for modifying already existingGraphSystems. AgentandClassificationEnvironmentno longer takenameandnamespacekeyword arguments.- An
@experimentmacro has been added to easily modify many parameters of anODEProblem - Blox now support continuous events
- Blox which used discrete events for spike detection, now set
dtmaxparameters which limit the maximum timestep a solver is allowed to take. GraphSystems andODEProblems can now be saved and loaded usingsave_graph,load_graph,save_problem, andload_problem- A
MultipointConnectiontype has been added which allows one to write connection rules between two blox that reference other extra blox. - A large library of receptor types has been added to NeurobloxPharma including
GABA_B_SynapseNMDA_SynapseMorandiFullNMDARMorandiNMDARMsnNMDARMsnAMPARMsnD1ReceptorMsnD2ReceptorHTR5CaTRPM4RAlpha7ERnAChRMuscarinicRBeta2nAChR
- Sevaral new neuron types have been added for interacting with the receptor library
BaxterSensoryNeuronTRNNeuronMuscarinicNeuronVTADANeuronVTAGABANeuron
- The API pages in our documentation have been restructured and extended with a lot more docstrings. There are now new pages under API for :
- Neuron, Neural mass and Composite blox definitions
- Constructing, saving and loading graphs
- Receptor definitions
- Reinforcement learning
- Plotting recipes
- Utility functions
- Adding user-defined blox
- Adding user-defined connections
- Defining experiments by changing model parameters and initial conditions
- A tutorial on choosing receptors between neuronal connections was added in the documentation.
v0.7.0
API Changes
Neuroblox.jl has been re-organized into a collection of sub-packages which can be used individually. This shouldn't cause any changes for the end user if they simply do
using Neurobloxsince Neuroblox itself now just re-exports the sub-packages. Currently our public subpackages are:- NeurobloxBase.jl fundamental shared infrastructure for making Neuroblox work
- NeurobloxBasics.jl some common, generic neuroscience primitives
- NeurobloxDBS.jl infrastructure and models specific to our work on deep brain stimulation
- NeurobloxPharma.jl infrastructure and models specific to our pharmacological work and the corticostriatal circuit
The
run_experiment!function now no longer takes averbose::Boolkeyword argument, but instead can take amonitorkeyword argument, which is passed to theupdate_monitor!callback will be run after each experiment trial with information about that trial. We provideProgressMeterMonitoras a simple replacement for the functionality that the oldverbose=trueoption gave.The naming of many objects from Neuroblox.jl has been updated and made more consistent. Abstract types now all start with
Abstractin their type name, and we have removed the suffixBloxfrom the types that had them e.g.HHNeuronExciBloxwas renamed toHHNeuronExci, andNeuralMassBloxwas renamedAbstractNeuralMass.A
@graphmacro has been added to simplify the process of making Neuroblox.jl graphs to pass tosystem_from_graph.