Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Caridoid escape reaction wikipedia , lookup
Single-unit recording wikipedia , lookup
Feature detection (nervous system) wikipedia , lookup
Stimulus (physiology) wikipedia , lookup
Convolutional neural network wikipedia , lookup
Types of artificial neural networks wikipedia , lookup
Neural coding wikipedia , lookup
Chemical synapse wikipedia , lookup
Biological neuron model wikipedia , lookup
Detailed technical specification : BRIAN/PyNN like network simulation in MOOSE Overview and project writeup: The aim of this project is to make neurons in MOOSE using a similar format as used by BRIAN (briansimulator.org). This is exciting because MOOSE provides powerful capabilities for single-neuron and subcellular modeling, whereas BRIAN is designed for rapid network modeling. Thus the project will greatly strengthen multiscale modeling capabilities. The BRIAN approach involves solving a set of ordinary differential equations for each neuron while the neurons communicate with each other using spikes. These spikes result in discontinuous changes in the variables of the differential equations. In this project the BRIAN model definition system will be incorporated into the MOOSE environment. Skills: C++ , Python a must, familiarity with GSL is a plus. Details. ======== The following is a code snippet in BRIAN from brian2 import * eqs = ''' dv/dt = (ge+gi-(v+49*mV))/(20*ms) : volt dge/dt = -ge/(5*ms) : volt dgi/dt = -gi/(10*ms) : volt ''' P = NeuronGroup(4000, eqs, threshold='v>-50*mV', reset='v=-60*mV') P.v = -60*mV Pe = P[:3200] Pi = P[3200:] Ce = Synapses(Pe, P, pre='ge+=1.62*mV') Ce.connect(True, p=0.02) Ci = Synapses(Pi, P, pre='gi-=9*mV') Ci.connect(True, p=0.02) M = SpikeMonitor(P) run(1*second) plot(M.t/ms, M.i, '.') show() The main idea is to use MOOSE classes, and develop a system which can accept equations in the format given above and a way to set up the connectivity matrix which is compatible with other MOOSE objects. Development roadmap 1. Write an efficient differential equation solver (or use GSL) which can solve the kind of equations given above. a. This should do variable step size integration of the differential equation. b. It should take into account the threshold mechanics of the spikes, and these spike timings should be recoded in a MOOSE table. c. The internal variables should be accessible to in both ways MOOSE table i.e. it should be possible to record a variable using a table and also to set a variable using moose.StimulusTable d. A single neuron should be a MOOSE Compartment and the solvers should be set up in the compartment, like Ksolve and Hsolve are for other kinds of MOOSE objects. e. MOOSE uses SI units everywhere and thus other arbitrary units should not be used. 2. Write a python frontend to set up a network. a. Input take the equations in the above format and parse using muParser. It should be possible to set the parameters for these for each neuron independently. b. The spikes generated by one neuron should be sent to its connected neurons according to the specified connectivity matrix.