Brian es un paquete Python de código abierto para desarrollar simulaciones de redes de neuronas activas.
Brian está dirigido a investigadores que desarrollan modelos basados en redes de neuronas activas . El diseño general está orientado a maximizar la flexibilidad, la simplicidad y el tiempo de desarrollo de los usuarios. [2] Los usuarios especifican modelos neuronales dando sus ecuaciones diferenciales en forma matemática estándar como cadenas , crean grupos de neuronas y los conectan a través de sinapsis . Esto contrasta con el enfoque adoptado por muchos simuladores neuronales en los que los usuarios seleccionan de un conjunto predefinido de modelos neuronales.
Brian está escrito en Python. Computacionalmente, se basa en el concepto de generación de código: los usuarios especifican el modelo en Python, pero detrás de escena Brian genera, compila y ejecuta código en uno de varios lenguajes (incluidos Python, Cython y C++ ). Además, existe un modo "autónomo" en el que Brian genera un árbol de código fuente C++ completo sin dependencia de Brian, lo que permite ejecutar modelos en plataformas donde Python no está disponible.
El siguiente código define, ejecuta y traza una red conectada aleatoriamente de neuronas con fugas de integración y disparo con corrientes inhibitorias y excitatorias exponenciales.
desde brian2 importar *eqs = """ dv/dt = (ge+gi-(v+49*mV))/(20*ms) : voltio dge/dt = -ge/(5*ms) : voltio dgi/dt = -gi/(10*ms) : voltio """ P = NeuronGroup ( 4000 , eqs , umbral = "v>-50*mV" , reinicio = "v=-60*mV" ) P . v = - 60 * mV Pe = P [: 3200 ] Pi = P [ 3200 :] Ce = Sinapsis ( Pe , P , on_pre = "ge+=1.62*mV" ) Ce . connect ( p = 0.02 ) Ci = Sinapsis ( Pi , P , on_pre = "gi-=9*mV" ) Ci . conectar ( p = 0,02 ) M = SpikeMonitor ( P ) ejecutar ( 1 * segundo ) trazar ( M . t / ms , M . i , "." ) mostrar ()
Brian está orientado principalmente, aunque no exclusivamente, a modelos de neuronas de un solo compartimento. Los simuladores enfocados en modelos multicompartimentales incluyen Neuron , GENESIS y sus derivados.
Brian se centra en la flexibilidad y la facilidad de uso, y solo admite simulaciones que se ejecutan en una sola máquina. El simulador NEST incluye funciones para distribuir simulaciones en un clúster. [3]