# # DADOS DA CIRURGIA CARDÍACA - TOM, RENATO E GELAPE # #========================================================= # Leitura e Preliminares dos Dados #========================================================= # Resposta inflamatória sistêmica após circulação extracorpórea em valvopatas # Fonte: Tom e seus alunos Cláudio Gelape e Renato # # Amostra (N=62) de Dados de pacientes divididos em três grupos (Var. Grupo) # 0 - Cirurgia de coronária, usando rolete (n= 22) # 1 - Cirurgia de coronáira, usando biopump (n=21) # 2 - Cirurgia de válvula, usando rolete (n=19). # # Objetivo Principal: # 1- Cláudio Gelape: Comparar os dois grupos que usam rolete (0 vs 2) # 2- Renato: Comparar as duas cirurgias de coronária (1 vs 2) # # Descrição: # # O paciente é submetido à cirurgia cardíaca com o auxílio da # circulação extracorpórea (CEC) onde o sangue heparinizado entra # em contato com superfícies estranhas (oxigenador e tubos do circuito # extracorpóreo). Desta forma, apresenta-se ativação de vários # sistemas orgânicos do corpo. # # A cirurgia cardíaca com CEC provoca alterações inflamatórias no # organismo conhecidas como síndrome da resposta inflamatória sistêmica (SIRS). # As respostas são as dosagens de 4 citocinas (i, t, mc, mip) no sangue # da artéria radial ou linha arterial sanguínea da CEC nos seguintes 6 momentos: # # 1- após indução anestésica; # 2– após despinçamento aórtido; # 3– no final da operação; # 4- 2 horas de pós-operatório. # 5- 6 horas de pós-operatório. # 6- 24 horas de pós-operatório. # # As variáveis n1,n2,n3,n4,n5 e n6 registram os tempos em horas. # Por exemplo: o primeiro paciente tem: # n1anest: primeiro tempo após a indução anestésica foi 9:00hs # este tempo deve virar 0 # n2despin: após o despinçamento: 10:32hs, que deve virar 1.53hs # n3final: final da operação: 11:10, que deve virar 2.17hs # n4hpo: 2 horas após: 1310, que deve virar 4.17hs # n56hpo: 6 horas após: 1910, que deve virar 8.17 # n624hpo: 24horas após: 900, que deve virar 24hs # # # Lista de variáveis no arquivo de dados (revivar_reduzido.txt): # # AS seguintes covariáveis foram medidas: # # 1- sexo (1- homem e 2-mulher) # 2- idade (em anos) # 3- peso (em quilos) # 4- altura (em mts) # 5- imc (peso/altura^2) # deve ser usado ao invés de peso e altura # 6- nyha (classe funcional=1,2,3,4) # 7- has (pressão sistólica 0/1) # 8- iap (ins. arterial periferica 0/1) # 9- ai (angina instável) # 10- eurob (Eurobeta: risco percentual) # 11- euroes (Euroscore: pontos) # 12- fc (frequencia cardiáca) # 13- creat (creatinina) # # Importantes a princípio: sexo, idade, imc, nyha e euroscore. # # Resumo: estudo observacional, balanceado: 22/21/19 indivíduos em # cada grupo avaliados em 6 momentos, objetivo (comparar os grupos # avaliar a evolução no tempo) e resposta contínua. O estudo incluí # 4 respostas. Desta forma, teremos 4 análises separadas. # # Resposta 1: citocina Tnf-receptor – t; # Resposta 2: citocina interleucina 6 – i; # Resposta 3: citocina MCP1; # Resposta 4: citocina MIP1. # # Vamos restringir inicialmente à citocina t. # source("longit.r") #carrega a biblioteca longit.r require(growth) dir() # verifica os arquivos no diretório dados<-read.table("revivar_reduzido.txt",header=T) attach(dados) names(dados) dim(dados) dados[1:15,] fix(dados) #Planilha de Dados ID<-c(1:62) # Descritiva dos dados summary(t1) summary(t2) summary(t3) summary(t4) summary(t5) summary(t6) boxplot(t1,t2,t3,t4,t5,t6,ylab="citocina t") axis(1, c(1:6)) ### Cuidado pois o Boxplot não considera a estrutura longitudinal #### # datawide<-data.frame(ID,tipocir,t1,t2,t3,t4,t5,t6) # cor(datawide[,3:8]) # matriz de correlação dos dados (deve ser # feito com os resíduos) # #======================================================== # Manipulando Banco de Dados Longitudinais # Banco Longo (uma medida por linha) #========================================================= # # Transformando o banco wide para longo # Todo o banco #datalong<-reshape(data=dados,direction="long", idvar="id", #varying = list(names(dados)[c(2,6,10,14,18,22)] #,names(dados)[c(3,7,11,15,19,23)], #names(dados)[c(4,8,12,16,20,24)],names(dados)[c(5,9,13,17,21,25)]), #v.names=c("t","i","MCP","MIP"),timevar="tempo") # Somente t datalong<-reshape(data=datawide,direction="long",idvar="ID", varying = list(names(datawide)[3:8]),v.names="t",timevar="tempo") attach(datalong) # length(unique(ID)) # qtos individuos no estudo table(tempo) # qtos individuos por tempo table(tempo,tipocir) # qtos individuos por tempo e tipo de cirurgia #========================================================== # Estatísticas Descritivas #========================================================== # tapply(t,list(tipocir), mean) # media por grupo e tempo tapply(t,list(tipocir), sd) # dp por grupo e tempo tapply(t,list(tipocir,tempo), mean) plot(tipocir,t,xaxt="n") axis(1, 1:2) plot(tempo,t) # # # Os comandos abaixo somente funcionam na com o longit.r # Os gráficos de perfis mais abaixo não necessitam do longit.r # datalong <- as.ldframe(datalong, ID, tempo) class(datalong) attach(datalong) plot(datalong, t, color = tipocir, cols = c("blue", "red")) legend(1, 4700, legend = paste("Tipo", unique(datalong$tipocir)), col = c("blue","red"), lty = 1, bty = "n", cex = 0.7,title="Citocina Trf-receptor-t") # # Gráfico para 6 indivíduos escolhidos aleatoriamente # plot(datalong, t, n.full = 6, color = tipocir, cols = c("blue", "red")) legend(1, 4700, legend = paste("Tipo", unique(datalong$tipocir)), col = c("blue","red"), lty = 1, bty = "n", cex = 0.6,title="Citocina Trf-receptor-t") # # Gráfico de perfis excluindo a baseline # plot(datalong[which(datalong$Time!=1),], t, color = tipocir, cols = c("blue", "red")) legend(2,60, legend = paste("Tipo", unique(datalong$tipocir)), col = c("blue","red"), lty = 1, bty = "n", cex = 0.8) # # Gráfico mostrando a Média Suavizada # plot(datalong,t,n.full=0) lines(lowess(datalong$Time,t),col=2,lwd=1.5) # # # Resíduos # t.res <- t - lowess(Time, t)$y plot(Time, t.res, pch = ".", cex.lab = 1.2) #================================================================== # Graficos de Perfis #================================================================== # ID<-Subject # # function(choice,xl=range(time),yl=range(y)) # {# Plots profiles for subjects in vector choice. perfis<-function(ID,Time,t,tipocir) { m=length(unique(ID)) n=length(t)/m xl=range(Time) yl=range(t) choice=ID j=ID==choice[1] if (tipocir[j]=="1"){ plot(Time[j],t[j],xaxt="n", type="l",col = "blue",ylim=yl,xlim=xl,ylab="citocina",xlab="Momento", main="Variação ao Longo do Tempo",cex=.8)} if (tipocir==2){ plot(Time[j],t[j],xaxt="n", type="l",col = "red",ylim=yl,xlim=xl,ylab="citocina",xlab="momento", main="Efeito de Tratamento",cex=0.8)} # if(length(choice)>1){ for(it in 2:length(choice)){ j=ID==choice[it] if (tipocir[j]==1){ lines(Time[j],t[j],col = "blue",cex=0.8)} if (tipocir[j]==2){ lines(Time[j],t[j],col = "red",cex=0.8)}} axis(1, 1:6) } cat("\n") } perfis(ID,Time,t,tipocir) #Fazendo um alisamento no grafico de perfis plot(lowess(Time,t),type="l",xaxt="n",ylab="citocina",xlab="momento") axis(1, 1:6) plot(lowess(tipocir,t),type="l",xaxt="n",ylab="citocina",xlab="momento") axis(1, 1:2) # # #================================================================== # Graficos de Perfis por Tipo de Cirurgia #================================================================== # attach(datalong) grupo1<-subset(datalong,tipocir==1), plot(lowess(grupo1$Time,grupo1$t), #xaxt="n", col = "blue", type="l",lty=1, #ylim=yrange(c(1,1000)) ylab="citocina",xlab="momentos") grupo2<-subset(datalong,tipocir==2) lines(lowess(grupo2$Time,grupo2$t),lty=2,type="l",col="red") axis(1, 1:6) # #=============================================================== # Explorando os Perfis Médios por Grupo #=============================================================== # Gráfico de Interação interaction.plot(Time, tipocir, t) # Box-plots por Dieta boxplot(t ~ Time + tipocir, notch = T) abline(v = 2.5, lty = 2) abline(v = 4.5, lty = 2) abline(v = 6.5, lty = 2) abline(v = 8.5, lty = 2) abline(v = 10.5, lty = 2) abline(v = 12.5, lty = 2) title("Dispersão da citocina por tipo de cirurgia") #=============================================================== # Explorando a Estrutura de Variância #=============================================================== # perfil.std(y = datawide[, 3:8], id = datawide$ID, group = datawide$tipocir) interaction.plot(Time, tipocir, t, trace.label = "Tipo Cirurgia", xlab = "Momento", ylab = "Variância Médio", fun = var, fixed = T) # #==================================================================== # Explorando a Estrutura de Dependência dos Tempos # NÂO ESTÁ FUNCIONANDO #==================================================================== # require(car) attach(datawide) dados.std <- perfil.std(y = datawide[, 3:8], id = ID, group = tipocir, flag = FALSE) scatterplot.matrix(dados.std[, 2:7], diagonal = "histogram", smooth = F) #graphics.off() cor(dados.std[, 2:5]) # #=================================================================