Potenciais Evocados

Potencial evocado

Potencial relacionado a evento (ERP, do inglês Event-Related Potential), é uma resposta direta do cérebro a um específico estímulo cognitivo, sensorial, ou motor. ERPs são obtidos por promediação (no tempo).

Os componentes são designados por uma letra (N - negative / P - positive), seguido de um número que pode indicar tanto a latência em ms como a posição da componente na forma de onda.

Alguns exemplos de ERPs e suas devidas funções:

  • P1 (ou P100) concentraram-se em observar as variações deste potencial durante estimulação visual. Pesquisas posteriores sobre o P1 começaram a olhar para alterações do P1 em relação à atenção seletiva. Sua amplitude máxima é observada sobre o lobo occipital, contralateral ao campo visual no qual o estímulo é apresentado.
  • O N1 (também chamado de N100) é o primeiro componente negativo contínuo e o seu pico é normalmente observado entre 80 e 160 ms após o aparecimento do estímulo. Forte sobre a região fronto-central do couro cabeludo. Embora a maioria das pesquisas se concentra em estímulos auditivos, o N100 também ocorre para estimulação visual, olfativa e táctil. O N100 é pré-atencional e diretamente envolvido na percepção porque sua amplitude é fortemente dependente de coisas como o tempo de subida de um som, sua intensidade, o intervalo entre estímulos e a frequência comparativa, ou seja, sua amplitude aumenta em proporção a quanto um som difere em frequência de um som precedente.
  • O P2 (P200) potencial positivo que ocorre cerca de 200 milissegundos frequentemente distribuído em torno das áreas centro-frontal e parieto-occipital do couro cabeludo. Sua associação ainda está em desenvolvimento pois há um grande e diversificado número de tarefas cognitivas associadas a essa componente.
  • N2, ou N200, encontrada principalmente na parte anterior do couro cabeludo em resposta a estímulos auditivos inesperados ou raros,com ou sem atenção, é referido como a negatividade de incompatibilidade (mismatch negativity – MMN). Mais genericamente, foi descrito em tarefas que refletem a identificação de estímulos, deslocamentos atencionais, inibição de respostas motoras, superação de respostas estereotípicas ou monitoramento de conflitos, manutenção de informações de contexto, seleção de respostas, timing, e detecção de novidade (novelty) ou incompatibilidade (mismatch).
  • P3 (P300) tipicamente medido mais fortemente pelos eletrodos que cobrem o lobo parietal, está suscitado no processo de tomada de decisão. Mais especificamente, considera-se que o P300 reflete processos envolvidos na avaliação ou categorização do estímulo. Geralmente é provocado usando o paradigma oddball, em que eventos alvo (ou “raro”) de baixa probabilidade são misturados com itens não-alvo (ou “padrão”) de alta probabilidade

Outros componentes de ERP mais tardios, como por exemplo o N400 e o P600 são muito usados na área de neurociência da linguagem. Os componentes mais pesquisados na literatura ainda são o N1 e o P3.

Os dados deste material são de estímulos sonoros, um agudo e um grave em que o indivíduo deveria clicar no mouse ao ouvir o estímulo agudo.

# Leitura dos dados
sinais=read.table("./data/oddball250hz.txt",header=FALSE)

Para continuar a leitura dos filtros, deve-se realizar a leitura dos dados de canais também disponibilizados:

# Leitura dos canais de EEG:
nomes=scan("./data/nomecanais.txt", what = "string")

Ao analisar o arquivo dos sinais, é possível verificar que a coluna 33 não se trata de sinais cerebrais, mas sim, a referência dos triggers (marcações do experimento). Dessa forma, realiza-se a leitura dos sinais e dos triggers, armazenando em matrizes separadas:

# Separar o trigger dos sinais
# Jogo fora o sinal 33 porque não é dado cerrebral
trigger = sinais[,33]
sinais= sinais[,1:32]

Analisando a matriz trigger com o comando table, é possível verificar os tipos de eventos existentes no experimento (eventos raros marcados por 10 e frequentes marcados por 11):

# Lendo o conteúdo do trigger:
# esse comendo mostra o número de observações de cada tipo
table(trigger)
## trigger
##     0    10    11 
## 45422    10    29

Olhando o conteúdo do trigger:

# Conteúdo do vetor do trigger:
ts.plot(trigger)

Para identificação dos potenciais evocados, precisamos ainda definir os canais (a matriz sinais já exclui a coluna de trigger do arquivo) e pontos no tempo (número de linhas do arquivo):

# Número de canais:
Ncanais =ncol(sinais)

# Número de pontos no tempo:
T=nrow(sinais)

Filtrando os sinais de todos os canais:

FILTRO = butter(n=5, W =c(1,40)/(HZ/2), type = "pass")
freqz(FILTRO)

fsinais = matrix(0, nrow(sinais), ncol(sinais))

for (canal in 1:32) {
  y = sinais[,canal] - mean(sinais[,canal])
  fsinais[,canal]=filter(FILTRO,y)
}
plot((1:nrow(sinais))/HZ,sinais[,1]-mean(sinais[,1]),type="l",xlab="Tempo(s)", ylab="sinal(uV)")
lines((1:nrow(sinais))/HZ,fsinais[,1],col=2)

Considerando a taxa de amostragem de 250hz, quero calcular uma determinada janela no intervalo 100ms dado um canal:

# Se a taxa de amostragem é HZ= 250, quero definir as janelas pré e pós estímulos, ou seja 1s = 250hz, 100ms = 250hz/10:
JANELApos=HZ        #janela de 1 segundo
JANELApre=HZ/10    #janela de 100 milisegundos

O comando which ajuda a separar os estímulos:

#Descobrir quais as caselas do vetor trigger se referem ao estimulo freq e raro
TiRaro= which(trigger==10) #estimulo raro
TiFreq= which(trigger==11) #estimulo frequente

Armazenando os potenciais evocados do estímulo raro:

# Matriz que guarda os potenciais evocados medios do estimulo raro
ti=1000
PERaro=matrix(0,length((ti-JANELApre):(ti+JANELApos)), Ncanais)

# for pra cada canal
for(canal in 1:Ncanais){
   for(ti in TiRaro){
     BASELINE=mean(fsinais[(ti-JANELApre):ti,canal])
     y=fsinais[(ti-JANELApre):(ti+JANELApos),canal]-BASELINE
     PERaro[,canal]= PERaro[,canal]+y/length(TiRaro)
   }
}

Por exemplo, olhando a legenda no arquivo, nomedoscanais, vemos que o canal Fz se refere ao canal 5. Desa forma, o gráfico:

#Fazer o grafico do potencial evocal no canal Fz. coluna 5
# estimulo acontece em milisegundos (ms) por isso converto com a taxa de  
# amostragem
plot((1:nrow(PERaro))/HZ*1000-100, PERaro[,5],type="l",
xlab="Tempo(ms)", ylab="Sinal(uv)")
abline(v=0,lty=3)

Agora armazenando os potenciais evocados do estímulo frequente:

#Matriz que guarda os potenciais evocados medios de todos os canais
PEFreq=matrix(0,length((ti-JANELApre):(ti+JANELApos)), Ncanais)

#Calculo para todos os canais
for(canal in 1:Ncanais){
   for(ti in TiFreq){
     BASELINE=mean(fsinais[(ti-JANELApre):ti, canal])
     y=fsinais[(ti-JANELApre):(ti+JANELApos), canal] -BASELINE
     PEFreq[,canal] = PEFreq[,canal]+ y/length(TiFreq)
   } #fecha o for do ti
} #fecha o for do canal

#Fazer o grafico do potencial evocal no canal Fz. coluna 5
plot((1:nrow(PEFreq))/HZ*1000-100, PEFreq[,5], type="l",
xlab="Tempo(ms)", ylab="Sinal(uv)")
abline(v=0,lty=3)

Para conseguir fazer uma comparação entre os potenciais evocados, adicionamos os dois gráficos conjuntamente. Sendo nas cores Preta para estímulo frequente e vermelho para estímulo raro.

#Fazer o grafico do potencial evocal no canal Fz. coluna 5
#Do estimulo raro e frequente no mesmo grafico
plot((1:nrow(PEFreq))/HZ*1000-100, PEFreq[,5],type="l",
xlab="Tempo(ms)",ylab="Sinal(uv)",ylim=c(-7,7))

lines((1:nrow(PERaro))/HZ*1000-100, PERaro[,5],col=2)
abline(v=0,lty=3)

Obs: os valores arbitrários em ylim foram ajustes manuais para alinhar a visualização superior e inferior das linhas, ao fazer o plot de ambas poderia ter feito melhor, mas sabe como a vida é…

Analisando esse tipo de gráfico, é possível ver diferença entre os estímulos. Claro que para ter significância estatística precisaria de uma avaliação mais profunda para poder confirmar a real existência dessa diferença.

Fazer o plot da diferenca do PE raro e frequente no canal Pz, coluna 25:

canal=25
plot((1:nrow(PEFreq))/HZ*1000-100, PERaro[,canal]-PEFreq[,canal],type="l",xlab="Tempo(ms)", ylab="sinal(uV)",ylim=c(-8,4))
abline(v=0,lty=3)

Resumo:

Na questão de potenciais evocados, trabalhamos com as médias dos sinais. Basicamente visam dois objetivos:

  • Sinal de EEG é extremamente ruidoso (artefatos musculares e do ambiente). Aumentar o SNR - signal-to-noise ratio (ou relação sinal-ruído em português)

  • Extrair “componente”" comum entre os trials

Previous
Next