Neurossimuladores Antônio C. Roque DFM -FFCLRP USP, Ribeirão Preto
Neurossimuladores GENESIS: http://www.genesis-sim.org Projeto colaborativo (vários autores) originário do laboratório de Jim Bower (CALTECH, 1988); Distribuição gratuita, incluindo o código-fonte; Versão atual: 2.3, roda em Linux e Mac (Windows necessita do ambiente Cygwin); As simulações são construídas com a linguagem de script própria do GENESIS. NEURON: http://www.neuron.yale.edu/ Escrito por Michael Hines (Yale, 1990); Distribuição gratuita, incluindo o código-fonte; Versão atual: 7.1, roda em Linux, Mac e Windows; As simulações são construídas com a GUI do NEURON e/ou nas linguagens hoc e Python.
Neurossimuladorpara redes de grande porte feitas de neurônios pontuais NEST: http://www.nest-initiative.org Projeto colaborativo mantido por instituições acadêmicas e centros de pesquisas de empresas (2001); Curadores: Marc-Oliver Gewaltig (Honda, Alemanha) e Markus Diesmann (RIKEN, Japão); Distribuição gratuita, incluindo o código-fonte; Versão atual: 2.0, roda em Linux e Mac (Windows necessita do ambiente Cygwin); As simulações são construídas com a linguagem de script própria do NEST, chamada de SLI.
Diferentes simuladores
http://www.neuron.yale.edu/neuron/
http://genesis-sim.org/
http://www.nest-initiative.org/index.php/about_us
2 a parte: Estratégias e algoritmos usados para a simulação de sistemas neurais
Descrição de um modelo Arquitetura da rede: composição em áreas, camadas e populações de neurônios; Conectividade: como os neurônios são conectados entre si. Em geral, dada por um conjunto de regras para gerar as conexões; Modelos dos neurônios e sinapses: equações diferenciais para os potenciais de membrana e para as condutâncias sinápticas, regras para geração de spikes e repolarização (reset) dos potenciais. Entradas (estímulos) aplicados ao modelo.
http://senselab.med.yale.edu/ http://senselab.med.yale.edu/modeldb/default.asp
Plataformas para especificação de sistemas neurais independentes de simulações http://www.neuroml.org/ http://www.neuroconstruct.org/
Métodos Numéricos Abordagem de HH: EDOs de 1 ª ordem dv dt = f ( V ( t), t) Forward Euler (explícito): V ( t + t) V ( t) t = f Backward Euler (implícito): ( V ( t), t) V ( t + t) V ( t) t = f ( V ( t + t), t + t)
Exemplo Compartimento único com potencial de membrana de repouso igual a zero e condutância de membrana constante: dv dt = kv i.e. V ( t) = V (0) e kt ké o inverso da constante de tempo da membrana
Forward Euler (impreciso e instável) V ( t + t) = V ( t) + tf ( t, V ( t)) = V ( t) tkv ( t) = V ( t) 1 [ tk] Erro local (a cada passo de tempo) proporcional a t Integração por um tempo T leva a um erro total t 2 T / t = O( t) 2 Esquerda: comparação da solução analítica (linha contínua) com o método forward Euler (linha discreta) para V(0) = 1, k = 1 s -1 e t= 0,5 s. Direita: Erro absoluto do método forward Euler com t = 0,5 s (quadrados), 0,25 s (cículos) e 0,125 (+). Figura adaptada de Carnevale and Hines (2005). O passo de tempo deve ser menor que o dobro da menor constante temporal do sistema t < 2 / k Método instável: a solução oscila para uma faixa de valores de k
V ( t BackwardEuler (impreciso mas estável) V + t ) V t ( t + t ) ( t ) = V 1 + kv ( t ) k t ( t + t ) Estável para qualquer valor de t Ainda tem erro total da 2 ordem de t = t Comparação da solução analítica (linha contínua) com o método backward Euler (linha discreta) para V(0) = 1, k = 1 s -1 e t= 1 s. Ao final de cada passo, a inclinação no novo ponto (linhas negras) aponta para o começo do passo. Figura adaptada de Carnevale and Hines (2005). Método válido para modelos multi-compartimentais gerais (as equações tornam-se não-lineares e o método fica lento) Bom para uma primeira simulação exploratória
Estabilidade
Stiffness Sistemas de equações diferenciais stiff(duras) envolvem constantes temporais bastante distinta; Sistemas não stiffpodem ser resolvidos por métodos explícitos, mas sistemas stiff requerem métodos implícitos como o backward Euler; Métodos implícitos mais sofisticados podem ser encontrados em pacotes, e.g. método de Gear (passo e ordem variáveis): V ( t + t) = a0v ( t) + a1v ( t t) + K+ aq 1V ( t ( q 1) t) + tbq f ( t + t)
Estratégias de simulação Algoritmos síncronos (clock-driven): os estados dos neurônios são atualizados simultaneamente a cada passo de tempo; Algoritmos assíncronos (event-driven): os Algoritmos assíncronos (event-driven): os estados dos neurônios são atualizados apenas quando eles emitem ou recebem spikes.