Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
1
PTC
245
6 –
Pro
c. S
inai
s B
iom
édic
os
EPUSP PTC/ LEB - S.Furuie
Physionet e sinais biológicos
Prof. Sérgio S Furuie
PTC
245
6 –
Pro
c. S
inai
s B
iom
édic
os
EPUSP PTC/ LEB - S.Furuie 2
Deteção do QRS
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5-5
0
5
Tempo (s)
ECG
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.50
2
4
6
|der
.1|
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.50
10
20
30
|der
.1|+
|der
.2|
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.50
2
4
6
QRS
y1=|1a. difer.| y2=|smooth y1| y3=|der. y2| y4=y2+y3 limiar em y4
PTC
245
6 –
Pro
c. S
inai
s B
iom
édic
os
EPUSP PTC/ LEB - S.Furuie 3
Mobilização/Motivação
– Como testar e avaliar seus aplicativos? • Recrutar vários pacientes e voluntários? • Padrão-ouro?
– Acesso a sinais biológicos já digitalizados • Filtrados • digitalizados
PTC
245
6 –
Pro
c. S
inai
s B
iom
édic
os
EPUSP PTC/ LEB - S.Furuie
PhysioNet (physionet.org) • resource for biomedical research
– National Institutes of Health (NIH) • National Institute of Biomedical Imaging and
Bioengineering (NIBIB) • National Institute of General Medical Sciences (NIGMS)
– Milhares de sinais biológicos, muitos com anotações (eventos, patologias, …)
– Biblioteca de software – “laboratories without walls”
• Mirror sites: – http://physionet.incor.usp.br
4
PTC
245
6 –
Pro
c. S
inai
s B
iom
édic
os
EPUSP PTC/ LEB - S.Furuie
Can you tell health from disease?
• Pathology can affect physiologic recordings in unexpected and interesting ways. PhysioNet encourages researchers to find new ways to extract information hidden in data. For example, the figure above shows the instantaneous heart rates of four subjects. But only one signal is from a healthy person. Can you tell which it is?
5
PTC
245
6 –
Pro
c. S
inai
s B
iom
édic
os
EPUSP PTC/ LEB - S.Furuie
PhysioNet
6
2
PTC
245
6 –
Pro
c. S
inai
s B
iom
édic
os
EPUSP PTC/ LEB - S.Furuie
Tipos de sinais biológicos
• ECG de saudáveis e doentes – 1, 2, 12 canais – Anotações
• Sinais neuronais (EEG, ...) • Sinais respiratórios • Pressão • Movimento • Mais de 10.000 gravações em 50 base de
dados (mais de 700 GB)
7
PTC
245
6 –
Pro
c. S
inai
s B
iom
édic
os
EPUSP PTC/ LEB - S.Furuie
MIT-BIH Arrhythmia Database
• Filtro analógico passa-banda: [0.01 a 100] Hz
• ADC de 11 bits • Faixa dinâmica de +- 5 mV • Fa=360 Hz • 48 registros de ECG de 2 canais, 30 min
cada • 109.000 anotações manuais!
8
PTC
245
6 –
Pro
c. S
inai
s B
iom
édic
os
EPUSP PTC/ LEB - S.Furuie
Exemplo com anotação
9
Símbolo Descrição . Normal beat V Premature ventricular contraction L Left bundle branch block beat R Right bundle branch block beat
...
PTC
245
6 –
Pro
c. S
inai
s B
iom
édic
os
EPUSP PTC/ LEB - S.Furuie
Onde, o que, como? • Onde:
– physionet.org , physionet.incor.usp.br • Tutoriais, exemplos, programas, dados, ...
• O que: – Milhares de sinais biológicos, incluindo múltiplos
sinais, no formato digital, com anotações • Como:
– Download de arquivos e programas no site – O site converte, p.ex.,dados p/ o formato do
Matlab (usar o ATM, export ...)
10
PTC
245
6 –
Pro
c. S
inai
s B
iom
édic
os
EPUSP PTC/ LEB - S.Furuie
Usando physionet 1. Aponte o seu browser para:
– physionet.org 2. Menu PhysioBank =>PhysioBank ATM (leia a
documentacao) – Input database, p. ex:
• MIT-BIH Arrhythmia ... (mitdb) – Escolha um dos sinais (record), p. ex. ‘100’. O sinal será
mostrado no browser. Familiarize-se com as opcoes. – Para exportar p/ Matlab:
• Selecione output,p.ex.: ‘1 min’ • Selecione no Toolbox: ‘Export signal as .mat’ • Siga as instrucoes: fazer download p/ seu subdiretorio dos 3
arquivos, p. ex.: 100m.mat, 100m.hea, 100m.info • Fazer download de PlotATM.m para seu subdiretorio, se
ainda nao tiver
11
PTC
245
6 –
Pro
c. S
inai
s B
iom
édic
os
EPUSP PTC/ LEB - S.Furuie
Exemplo: usando Physionet
12
3
PTC
245
6 –
Pro
c. S
inai
s B
iom
édic
os
EPUSP PTC/ LEB - S.Furuie
Exemplo: exportando p/ matlab
13
PTC
245
6 –
Pro
c. S
inai
s B
iom
édic
os
EPUSP PTC/ LEB - S.Furuie
Usando o Matlab p/ projeto
• No Matlab, rodar no seu subdiretorio,p.ex: – plotATM(‘100m.mat',‘100m.info') – Usar ferramentas do visualizador do Matlab p/
explorar o sinal (zoom, pan, …) • Modificar plotATM.m ou incorpore-o em
seu programa. Elabore o seu projeto.Note que o vetor ‘val’ e ‘x’ contem os sinais de ECG e o tempo ja em ‘mV’ e ‘s’.
14
PTC
245
6 –
Pro
c. S
inai
s B
iom
édic
os
EPUSP PTC/ LEB - S.Furuie
Dicas sobre o programa PlotATM.m 1. function plotATM(matName,infoName) 2. load(matName); 3. fid = fopen(infoName, 'rt'); 4. fgetl(fid); 5. fgetl(fid); 6. fgetl(fid); 7. [freqint] = sscanf(fgetl(fid),'Sampling frequency:
%f Hz Sampling interval: %f sec'); 8. interval = freqint(2); 9. fgetl(fid); 10. for i=1:size(val,1) 11. [row(i), signal(i), gain(i), base(i), units(i)]
=strread(fgetl(fid),'%d%s%f%f%s','delimiter','\t'); 12. end 13. fclose(fid); 14. val(val==-32768) = NaN; 15. for i=1:size(val,1) 16. val(i,:) = (val(i,:)-base(i))/gain(i); 17. end 18. x = (1:size(val,2))*interval; 19. plot(x',val'); 20. for i=1:length(signal),labels{i}=strcat(signal
{i},' (',units{i},')'); end 21. legend(labels); 22. xlabel('Time (sec)'); 23. end
15
(2) Le os sinais em ‘val’ do ‘.mat’ (3-13)Le as calibracoes do ‘.info’ (14-17) remove linha de base e
calibra (18-22) plota os sinais
PTC
245
6 –
Pro
c. S
inai
s B
iom
édic
os
EPUSP PTC/ LEB - S.Furuie
Modificando plotATM function [val faHz]=plotATM_sf(matName,infoName) % usage: plotATM_sf('RECORDm.mat', 'RECORDm.info') … load(matName); % carrega matriz de dados em 'val' com num.sinais=size(val,1) % cada sinal com num.amostras=size(val,2) % i-esimo sinal=val(i,:) … faHz=freqint(1); % freq. de amostragem em Hz …
16
PTC
245
6 –
Pro
c. S
inai
s B
iom
édic
os
EPUSP PTC/ LEB - S.Furuie
Usando plotATM_sf() … [val faHz]=plotATM_sf(fnam_mat, fnam_info);
% carrega matriz de dados em 'val' % com num.sinais=size(val,1) % cada sinal com num.amostras=size(val,2) e % freq. de amostragem faHz
ecg=val(1,:); % ‘ecg' contem todo o primeiro sinal de ECG fa=faHz; % frequencia de amostragem em Hz Num_amostras = length(ecg); % numero de pontos do ECG tempo = [1 : Num_amostras ]/fa; % tempo em s fN=fa/2; % freq. de Nyquist …
17
PTC
245
6 –
Pro
c. S
inai
s B
iom
édic
os
EPUSP PTC/ LEB - S.Furuie
Obtendo mais informações sobre o sinal
• Aplicativo do physionet: ATM – Lista dos pontos amostrados – Significado das anotações – Anotações do sinal em formato texto – Intervalo RR: plot, lista e histograma – …
18
4
PTC
245
6 –
Pro
c. S
inai
s B
iom
édic
os
EPUSP PTC/ LEB - S.Furuie
Dicionário das anotações Beat annotations: Code Description N Normal beat (displayed as "·" by the PhysioBank ATM, pschart, and psfd L Left bundle branch block beat R Right bundle branch block beat B Bundle branch block beat (unspecified) A Atrial premature beat a Aberrated atrial premature beat J Nodal (junctional) premature beat S Supraventricular premature or ectopic beat (atrial or nodal) V Premature ventricular contraction r R-on-T premature ventricular contraction F Fusion of ventricular and normal beat e Atrial escape beat j Nodal (junctional) escape beat n Supraventricular escape beat (atrial or nodal) E Ventricular escape beat / Paced beat f Fusion of paced and normal beat Q Unclassifiable beat ? Beat not classified during learning
19
PTC
245
6 –
Pro
c. S
inai
s B
iom
édic
os
EPUSP PTC/ LEB - S.Furuie
Histograma do IRR (mitdb, #104)
20
PTC
245
6 –
Pro
c. S
inai
s B
iom
édic
os
EPUSP PTC/ LEB - S.Furuie
Lista de exercícios 2 Obs.: a) trabalho é estritamente individual; b) vale 30% da avaliação P3 se entregues no prazo estipulado; c) exercícios fortemente relacionados aos projetos; d) entregar o trabalho, inclusive com listagem dos programas. 1)[data de entrega <= 04/05] Implementar um programa para normalizar o sinal pelo máximo valor em módulo. a) Aplicar no primeiro sinal do registro 104 da base physionet/
mitdb (1 minuto). Mostrar graficamente os sinais antes e após a normalização.
b) Calcular o valor mínimo, valor máximo, a média e desvio-padrão antes e após aplicação da normalização.
c) Discuta o que aconteceria se o sinal tivesse uma forte flutuação da linha de base (ruído de baixa frequência)
d) Discuta o que aconteceria se o sinal tivesse um forte ruído de alta frequência, por exemplo, de 60 Hz.
21
PTC
245
6 –
Pro
c. S
inai
s B
iom
édic
os
EPUSP PTC/ LEB - S.Furuie
Bibliografia
• Physionet.org
22