-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript_analisis.R
147 lines (101 loc) · 4.98 KB
/
script_analisis.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#Este código permite realizar análisis univariados, bivariados y multivariados para evaluar
#el comportamiento de los Cts relacionados con diferentes aspectos clinicos y epidemiológicis.
#Realizado por Sergio Castañeda. Universidad del Rosario. Centro de Investigaciones en Microbiología y Biotecnología UR. CIMBIUR
library(readxl)
library(readxl)
library(tidyverse)
library(cowplot)
library("pgirmess")
library(hrbrthemes)
library(viridis)
data_cts <- read_excel("Desktop/UNIVERSIDAD_DEL_ROSARIO/PROYECTOS/ANALISIS_CT_CARGA_VIRAL/Base_Cts_SARS.xlsx",
col_types = c("text", "text", "numeric",
"text", "numeric", "skip", "skip",
"skip", "skip", "skip", "skip", "skip",
"skip", "skip", "skip", "skip", "skip",
"skip", "skip", "skip", "text", "text",
"text", "text", "text", "text", "text",
"text", "text", "text", "text", "text",
"text", "text", "text", "text", "text",
"text", "text", "text", "text", "text",
"text", "text", "text"))
Base_Cts <- read.csv2("~/Desktop/UNIVERSIDAD_DEL_ROSARIO/PROYECTOS/ANALISIS_CT_CARGA_VIRAL/Base_Cts.csv")
Base_Cts <- drop_na(Base_Cts)
numSummary(Base_Cts[,c("Ct", "Edad"), drop=FALSE],
statistics=c("mean", "sd", "IQR", "quantiles"), quantiles=c(0,.25,.5,.75,1))
#cálculo normalidad valores de Cts por grupos
normalityTest(Ct ~ Asintomatico, test="ad.test", data=Base_Cts_SARS)
# medianas por group
Tapply(Ct ~ Obesidad, median, na.action=na.omit, data=Base_Cts_SARS)
# comparación de medianas por grupo Wilcoxon test
wilcox.test(Ct ~ Asintomatico, alternative="two.sided", data=Base_Cts)
# comparación de medianas por grupos de carga viral
Tapply(Ct ~ Carga.Viral..Rev., median, na.action=na.omit, data=Base_Cts_SARS)
# comparación de medianas por grupos de carga viral Kruskal wallis test
kruskal.test(Ct ~ Carga.Viral..Rev., data=Base_Cts_SARS)
# correlación Pearson Edad vs Cts
with(Base_Cts_SARS, cor.test(Ct, Edad, alternative="two.sided", method="pearson"))
#boxplot para comparar Cts entre grupos en los que se encontró dif significativas.
p1 <- BASE_CT_CUNDINAMARCA %>% filter (Ningún.Antecedente == 0) %>%
ggplot( aes(x= Ningún.Antecedente, y=Ct, fill=Ningún.Antecedente)) +
geom_boxplot(fill = rgb(0.1,0.1,0.7,0.5)) +
theme(legend.position="none",
plot.title = element_text(size=11)) +
#scale_fill_brewer(palette="Set2") +
theme_cowplot() +
ggtitle("CT values NO-Ningún.Antecedente") +
xlab("No-Ningún.Antecedente") +
ylab("Ct Value")
p2 <- BASE_CT_CUNDINAMARCA %>% filter (Ningún.Antecedente == 1) %>%
ggplot( aes(x= Ningún.Antecedente , y=Ct, fill=Ningún.Antecedente)) +
geom_boxplot(fill = rgb(0.8,0.1,0.3,0.6)) +
theme(legend.position="none",
plot.title = element_text(size=11)) +
#scale_fill_brewer(colours(rgb(0.1,0.1,0.7,0.5))) +
theme_cowplot() +
ggtitle("CT values Ningún.Antecedente") +
xlab("Ningún.Antecedente") +
ylab("Ct Value")
merge_fig <- plot_grid(p1, p2,
nrow = 1,
labels = c("A.", "B."),
label_size = 10,
label_fontfamily = "sans")
merge_fig
#Análisis de correlación a partir de la construcción de modelos de regresión lineal para determinar el valor de R2
cts_edad <- lm(Ct~Edad, data=BASE_CT_CUNDINAMARCA)
summary(cts_edad )
ggplot(BASE_CT_CUNDINAMARCA, aes(x=Ct, y=Edad)) +
geom_point() + # genera circulos en el grafico
geom_smooth(method=lm, color="black", fill="#6699FF", se=TRUE) # adjunta la linea de regresion por defecto es al 95% de confianza
#tablas de contingencia y chi cuadrado
local({.Table <- xtabs(~Sexo+Carga.Viral..Rev., data=Base_Cts_SARS)
cat("\nFrequency table:\n")
print(.Table)
.Test <- chisq.test(.Table, correct=FALSE)
print(.Test)
})
#regresiones lineales
#sintomas
lm(formula = Ct ~ Asintomatico + Cefalea + Conjuntivitis + Diarrea +
Dificultad.Respiratoria + Fatiga + Fiebre + Odinofagia +
Rinorrea + Tos, data = Base_Cts_SARS)
#antecedentes
lm(formula = Ct ~ Asma + Cáncer + Desnutrición + Diabetes +
Enfermedad.Cardiaca + EPOC + Fumador + Inmunosupresores +
Insuficiencia.Renal + Ningún.Antecedente + Obesidad + Tuberculosis +
VIH, data = Base_Cts_SARS)
#Test post hoc (pairwise y Tukey)
kruskalmc( Ct ~ Edad_Rango, data = BASE_CT_CUNDINAMARCA, cont="two-tailed")
pairwise.wilcox.test(data = df, Ct, Edad_Rango, p.adjust ="none", exact = FALSE )
#Boxplot
BASE_CT_CUNDINAMARCA %>% ggplot(aes(x=Edad_Rango, y=Ct, fill=Edad_Rango)) +
geom_boxplot() +
scale_fill_viridis(discrete = TRUE, alpha=0.6, option="A") +
theme_ipsum() +
theme(
legend.position="none",
plot.title = element_text(size=11)
) +
ggtitle("Ct por Rango de Edad") +
xlab("")