Os códigos foram desenvolvidos para analisar a resposta cortical hemodinâmica (alteração nas concentrações de Oxy e Desoxy-hemoglobina), mensuradas pelo dispositivo fNIRS modelo OctaMon de 8 canais (Artinis Medical Systems, Elst, The Netherlands). O projeto foi elaborado para funcionar com diferentes protocolos de pesquisa. Entretanto, se você estiver trabalhando com outros sistemas fNIRS, as rotinas deverão ser modificadas.
Todos os códigos deste projeto devem estar na mesma pasta do seu computador!
Todos os códigos deste projeto devem estar na mesma pasta do seu computador!
Gabriel Antonio Gazziero Moraca
A aquisição e armazenamento dos dados é realizada por meio do software OxySoft. Após coletar os dados, realize os procedimentos abaixo:
- Exporte os dados em arquivos Excel.
- Exclua o cabeçalho, os valores discrepantes iniciais e a 1ª coluna (frames).
- Digite "a" na 1ª linha da coluna que contém os eventos da coleta.
Caso o pacote Office não esteja instalado no pc/notebook utilizado na coleta, exporte os dados em arquivos de texto (.txt) e em seguida copie e cole os dados no Excel.
Após estas preparações, rode o arquivo
fNIRS_Find_Events.m
no MatLab. De maneira geral, esta rotina possui as seguintes etapas:
- No início da execução da rotina, mensagens serão exibidas na tela inicial do MatLab. Basicamente, são lembretes sobre os procedimentos descritos acima e informações sobre os arquivos que serão gerados. Caso exista um evento baseline no seu protocolo, considere-o como uma condição experimental nesta rotina.
Caixas de diálogo serão exibidas na tela para você definir:
- A quantidade de condições experimentais.
- A quantidade e as letras que marcaram os eventos de cada condição.
- O diretório que contém os dados exportados e um diretório para salvar os arquivos que serão gerados.
- Uma janela com todos os eventos marcados será exibida e você deverá selecionar os eventos de interesse. Não selecione mais eventos do que a quantidade definida na etapa anterior, caso contrário, a rotina retornará um erro. Por exemplo, se você definiu que há 9 eventos no protocolo, não selecione 10 eventos.
- Todos os eventos selecionados serão salvos em um único arquivo
.mat
. Além disso, os dados da Oxy e Desoxy que foram carregados serão salvos em um arquivo .txt
.
Para aplicar procedimentos de correção de artefatos (ruídos) e filtragem dos dados, será necessário utilizar o software open-source NIRS-SPM (toolbox do MatLab). Os arquivos gerados no passo anterior serão utilizados neste 2º passo da análise. Abaixo há links para o software e para artigos que explicam o pré-processamento dos sinais.
- Software: NIRS-SPM
- Statistical parametric mapping for near-infrared spectroscopy - Ye et al., 2009
- fNIRS response during walking — Artefact or cortical activity? A systematic review - Vitorio et al., 2017
- Motion artifacts in functional near-infrared spectroscopy - Brigadoi et al., 2014
- A systematic comparison of motion artifact correction techniques for functional near-infrared spectroscopy - Cooper et al., 2012
Após encontrar os eventos e e processar os dados no NIRS-SPM, rode o arquivo
fNIRS_Analysis.m
no MatLab. Os dados serão analisados em 3 janelamentos:
- Total (considerando a duração completa da tarefa).
- Inicial (Early - considerando a 1ª metade da tarefa).
- Tardio (Late - considerando a 2º metade da tarefa).
Os arquivos
fNIRSplots_Channels.m
e fNIRSplots_ConditionsData.m
são funções que serão utilizadas para plotar os dados ao longo da análise. Em resumo, esta rotina executa as seguintes etapas:
- Antes de iniciar a análise propriamente dita, mensagens serão exibidas na tela inicial do MatLab. Basicamente, há uma explicação geral sobre a análise e a plotagem dos dados e informações sobre como preencher determinados campos subsequentes. É essencial ter conhecimento sobre o protocolo experimental e ter realizado os passos 1 e 2 previamente.
Caixas de diálogo serão exibidas na tela para você definir:
- A quantidade e o nomes de cada condição experimental.
- As letras que definiram os eventos de cada condição.
- Como os arquivos contendo os eventos estão organizados no seu computador.
- Se houve aplicação da estimulação transcraniana por corrente contínua (ETCC).
- O diretório onde estão a rotina e as funções para plotar os dados.
- Os diretórios para salvar os gráficos dos canais e da análise de cada condição e para salvar os dados analisados.
Novamente, caixas de diálogo serão exibidas na tela para você definir:
- Se houve um evento baseline e qual a letra utilizada para identificá-lo.
- A duração total do baseline realizado na coleta.
- Quantos segundos, imediatamente antes do término do baseline, serão excluídos da análise.
- A duração do atraso fisiológico.
- A duração total da tarefa realizada na coleta e dos janelamentos Early e Late.
- Quanto segundos, imediatamente antes do término da tarefa, serão excluídos da análise.
Imediatamente após o início do baseline e logo após o início da tarefa, alguns segundos serão excluídos da análise. Este tempo excluído se refere ao atraso fisiológico.
- Nesta etapa, você irá definir qual hemisfério foi estimulado, se houve aplicação de ETCC em um hemisfério específico. Em seguida, a rotina irá carregar os eventos do participante em análise e 2 gráficos serão exibidos:
1) Dados adquiridos pelos canais do hemisfério direito (1-4).
2) Dados adquiridos pelos canais do hemisfério esquerdo (5-8).
- Os gráficos serão salvos com a extensão
1) Dados adquiridos pelos canais do hemisfério direito (1-4).
2) Dados adquiridos pelos canais do hemisfério esquerdo (5-8).
- Os gráficos serão salvos com a extensão
.fig
, permitindo a edição posterior caso necessário. Estes gráficos representam o comportamento da Oxy e da Desoxy durante todo o tempo de coleta (exemplo abaixo).
- Após inspecionar os gráficos, uma janela será exibida para você selecionar os canais de interesse (que possuem sinais com qualidade).
- Durante a coleta de dados, é importante que você anote os canais que apresentaram sinais ruins, para não selecioná-los neste momento.
- As médias entre os canais (uma média por frame) de cada hemisfério cerebral serão calculadas. O resultado será 4 conjunto de dados: Oxy e Desoxy de cada hemifério.
Para cada condição experimental, a rotina irá executar as tarefas a seguir:
- Para cada tentativa, os dados do baseline e da tarefa serão agrupados em uma série temporal e o 1º valor será subtraído de todo o conjunto de dados.
- Após criar "n" séries temporais, as médias entre as séries serão calculadas. Isto resultará em 4 séries temporais médias, uma para cada variável (Oxy e Desoxy de cada hemisfério).
- Ainda, será calculada a média entre os hemisférios, gerando mais 2 conjunto de dados.
- Serão exibidos gráficos demonstrando o comportamento de cada série temporal média criada, 6 ao todo.
- Como anteriormente, os gráficos também serão salvos com a extensão
- Exemplo abaixo demonstra a Oxy do hemisfério direito (as linhas finas são os desvios-padrão).
- Após criar "n" séries temporais, as médias entre as séries serão calculadas. Isto resultará em 4 séries temporais médias, uma para cada variável (Oxy e Desoxy de cada hemisfério).
- Ainda, será calculada a média entre os hemisférios, gerando mais 2 conjunto de dados.
- Serão exibidos gráficos demonstrando o comportamento de cada série temporal média criada, 6 ao todo.
- Como anteriormente, os gráficos também serão salvos com a extensão
.fig
, para permitir edição futura.
- Exemplo abaixo demonstra a Oxy do hemisfério direito (as linhas finas são os desvios-padrão).
Subtrair o 1º valor é uma forma de normalizar os dados, para que a série temporal comece do 0. Esta normalização melhora a visualização da plotagem dos dados e não altera o comportamento do sinal.
- Se no seu protocolo houve um evento baseline, não serão observados desvios-padrão na parte do gráfico referente ao baseline, pois todas as tentativas compartilharam o mesmo baseline.
- Na sequência, partes do sinal do baseline e da tarefa serão excluídos (definido no início da análise) e as médias do baseline e da tarefa (para cada janelamento) em cada série temporal média serão computadas.
- Por fim, será calculada a mudança relativa da atividade cortical (tarefa - baseline) para cada variável (6) em cada janelamento (3).
- Considerando a Oxy e Desoxy de cada hemisfério e dos hemisférios combinados, os dados abaixo serão dispostos em tabelas que serão salvas em um único arquivo
.mat
:
- As mudanças relativas do janelamento Total para cada condição.
- As mudanças relativas do janelamento Early para cada condição.
- As mudanças relativas do janelamento Late para cada condição.
- As séries temporais médias de cada condição.
- Os desvios-padrão das séries temporais médias de cada condição.
- Ainda, os canais utilizados na análise também serão salvos no mesmo arquivo. No nome do arquivo, haverá a string "HD" (hemisfério direito) ou "HE" (hemisfério esquerdo) caso a ETCC tenha sido aplicada em algum dos hemisférios.
Após calcular as variáveis no passo anterior, rode o arquivo
fNIRS_Grouping_Results.m
no MatLab. Esta rotina possui as seguintes etapas:
- No início da execução da rotina, mensagens serão exibidas na tela inicial do MatLab. Estas mensagens fornecerão instruções sobre a organização dos dados analisados e sobre como preencher determinados campos subsequentes.
Caixas de diálogo serão exibidas na tela para você definir:
- A quantidade de condições experimentais, momentos de avaliação e intervenções.
- Os nomes de cada condição, momento e intervenção.
- Os diretórios que contém os resultados de cada arquivo e para salvar os resultados agrupados.
A rotina foi criada para funcionar com diferentes delineamentos de pesquisa. Dependendo do protocolo, não será necessário nomear o momento e/ou intervenção.... Preste atenção nas instruções iniciais!
- Uma janela com todos os arquivos analisados será exibida e você deverá selecionar apenas os arquivos contendo os dados do momento e/ou intervenção especificado na janela. Para exemplificar, considere os seguintes protocolos:
- 2 momentos e 2 intervenções (ensaio clínico randomizado).
- 1 momento e nenhuma intervenção (estudo transversal).
- No 1º caso, você irá selecionar os arquivos do conjunto "intervenção 1 - momento 1". Logo após, outra janela será aberta e você deverá selecionar os arquivos do conjunto "intervenção 1 - momento 2", depois do conjunto "intervenção 2 - momento 1" e assim sucessivamente. No 2º caso, apenas uma janela será aberta e basta selecionar todos os arquivos de interesse.
- Primeiramente, você irá definir o janelamento dos dados a ser agrupados (Total, Early ou Late). Para cada arquivo selecionado na etapa anterior, a rotina irá extrair o número dos canais utilizados na análise dos dados (entre 1 e 8). Além disso, serão selecionadas as seguintes variáveis, para cada condição experimental:
- Oxy e Desoxy dos hemisférios direito e esquerdo OU estimulado e não-estimulado.
- Oxy e Desoxy dos hemiférios combinados (médias entre os hemisférios).
- Nesta etapa, os resultados extraídos serão agrupados de acordo com as condições experimentais, momentos de avaliação e intervenções aplicadas. Caso não exista intervenção, os resultados serão agrupados apenas por condição.
- Os canais analisados de todos os participantes serão salvos em um arquivo
.txt
e os resultados agrupados em arquivos .xlsx
(Excel). A quantidade de arquivos que serão gerados depende do protocolo experimental. Observe exemplos com protocolos diferentes:
- 2 condições e 1 momento.
- 2 condições, 2 momentos e 2 intervenções.
- Para o 1º exemplo, serão produzidos 2 arquivos, um para cada condição. Já para o 2º exemplo, serão produzidos 4 arquivos (abaixo). Cada arquivo terá 2 planilhas (abas), uma para cada momento.
1º Arquivo: condição 1 e intervenção 1.
2º Arquivo: condição 1 e intervenção 2.
3º Arquivo: condição 2 e intervenção 1.
4º Arquivo: condição 2 e intervenção 2.
1º Arquivo: condição 1 e intervenção 1.
2º Arquivo: condição 1 e intervenção 2.
3º Arquivo: condição 2 e intervenção 1.
4º Arquivo: condição 2 e intervenção 2.