NEST (programari)
NEST és un programari de simulació per augmentar models de xarxes neuronals, incloses xarxes neuronals a gran escala. NEST va ser desenvolupat inicialment per Markus Diesmann i Marc-Oliver Gewaltig i ara és desenvolupat i mantingut per la Iniciativa NEST. Filosofia del modelatgeUna simulació NEST intenta seguir la lògica d'un experiment electrofisiològic que es fa dins d'un ordinador amb la diferència, que el sistema neuronal a investigar ha de ser definit per l'experimentador. El sistema neuronal està definit per un nombre possiblement gran de neurones i les seves connexions. En una xarxa NEST, poden coexistir diferents models de neurones i sinapsis. Dues neurones qualsevol poden tenir múltiples connexions amb propietats diferents. Així, la connectivitat en general no es pot descriure per una matriu de pes o connectivitat, sinó com una llista d'adjacència. Per manipular o observar la dinàmica de la xarxa, l'experimentador pot definir els anomenats dispositius que representen els diferents instruments (de mesura i estimulació) que es troben en un experiment. Aquests dispositius escriuen les seves dades a la memòria o a l'arxiu. NEST és extensible i es poden afegir nous models per a neurones, sinapsis i dispositius. Exemple![]() L'exemple següent simula l'activitat d'encreuament en una xarxa aleatòria escassa amb excitació i inhibició recurrents[1] La figura mostra l'activitat d'intensificació de 50 neurones com a trama gràfica. El temps augmenta al llarg de l'eix horitzontal, la id de neurona augmenta al llarg de l'eix vertical. Cada punt correspon a un pic de la neurona respectiva en un moment donat. La part inferior de la figura mostra un histograma amb la velocitat mitjana de disparació de les neurones. import nest
import nest.raster_plot
J_ex = 0.1 # excitatory weight
J_in = -0.5 # inhibitory weight
p_rate = 20000.0 # external Poisson rate
neuron_params= {"C_m": 1.0, "tau_m": 20.0, "t_ref": 2.0,
"E_L": 0.0, "V_reset": 0.0, "V_m": 0.0, "V_th": 20.0}
# Set parameters of neurons and devices
nest.SetDefaults("iaf_psc_delta", neuron_params)
nest.SetDefaults("poisson_generator", {"rate": p_rate})
nest.SetDefaults("spike_detector", {"withtime": True, "withgid": True})
# Create neurons and devices
nodes_ex = nest.Create("iaf_psc_delta", 10000)
nodes_in = nest.Create("iaf_psc_delta", 2500)
noise = nest.Create("poisson_generator")
espikes = nest.Create("spike_detector")
# Configure synapse models
nest.CopyModel("static_synapse", "excitatory", {"weight": J_ex, "delay": 1.5})
nest.CopyModel("static_synapse", "inhibitory", {"weight": J_in, "delay": 1.5})
# Connect the random net and instrument it with the devices
nest.Connect(nodes_ex, nodes_ex+nodes_in, {"rule": "fixed_indegree", "indegree": 1000}, "excitatory")
nest.Connect(nodes_in, nodes_ex+nodes_in, {"rule": "fixed_indegree", "indegree": 250}, "inhibitory")
nest.Connect(noise, nodes_ex + nodes_in, syn_spec="excitatory")
nest.Connect(nodes_ex[1:51], espikes)
# Simulate for 100. ms
nest.Simulate(100.0)
# Plot results
nest.raster_plot.from_device(espikes, hist=True)
nest.raster_plot.show()
CaracterístiquesModels de neurones
Models de xarxa
Models de sinapsi
Models de dispositius
Precisió
Simulació paral·lela i distribuïda
Interoperabilitat
Referències
|