1. Dados
# Leitura dos dados com separador por espaço (qualquer espaço em branco)
dados <- read.table("C:/Users/joyha/OneDrive/Documentos/bioestatistica em r/dados_prova.txt",
header = TRUE, sep = "", stringsAsFactors = FALSE)
# Visualizar estrutura inicial
str(dados)
## 'data.frame': 300 obs. of 5 variables:
## $ deltaCt.gene1: num 8.62 9.38 7.99 17.3 8.48 ...
## $ genot.gene1 : chr "W/A" "W/W" "W/A" "W/W" ...
## $ deltaCt.gene2: num 31.4 16.2 14.9 42.9 30 ...
## $ genot.gene2 : chr "A/A" "A/A" "W/W" "A/A" ...
## $ covid.status : chr "leve" "leve" "leve" "leve" ...
head(dados)
## deltaCt.gene1 genot.gene1 deltaCt.gene2 genot.gene2 covid.status
## 1 8.620639 W/A 31.36700 A/A leve
## 2 9.379503 W/W 16.23492 A/A leve
## 3 7.993114 W/A 14.90623 W/W leve
## 4 17.304381 W/W 42.87073 A/A leve
## 5 8.477101 W/W 29.98350 A/A leve
## 6 2.258466 A/A 17.65290 W/A mod+sev
2. Conversão de Variáveis Numéricas
# Converter as colunas deltaCt para numérico
dados$deltaCt.gene1 <- as.numeric(dados$deltaCt.gene1)
dados$deltaCt.gene2 <- as.numeric(dados$deltaCt.gene2)
# Conferir resumos
summary(dados$deltaCt.gene1)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -1.643 8.259 10.981 10.671 13.326 20.978
summary(dados$deltaCt.gene2)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -4.85 27.12 36.13 36.21 46.30 87.19
3. Verificação de Normalidade (Shapiro-Wilk)
shapiro.test(dados$deltaCt.gene1)
##
## Shapiro-Wilk normality test
##
## data: dados$deltaCt.gene1
## W = 0.99357, p-value = 0.2305
shapiro.test(dados$deltaCt.gene2)
##
## Shapiro-Wilk normality test
##
## data: dados$deltaCt.gene2
## W = 0.99652, p-value = 0.7589
4. Comparação de Expressão por Status de COVID
# Teste t de Student
t_gene1 <- t.test(deltaCt.gene1 ~ covid.status, data = dados)
t_gene2 <- t.test(deltaCt.gene2 ~ covid.status, data = dados)
t_gene1
##
## Welch Two Sample t-test
##
## data: deltaCt.gene1 by covid.status
## t = 0.24013, df = 201.97, p-value = 0.8105
## alternative hypothesis: true difference in means between group leve and group mod+sev is not equal to 0
## 95 percent confidence interval:
## -0.9041298 1.1548814
## sample estimates:
## mean in group leve mean in group mod+sev
## 10.71964 10.59426
t_gene2
##
## Welch Two Sample t-test
##
## data: deltaCt.gene2 by covid.status
## t = -2.661, df = 204.58, p-value = 0.008408
## alternative hypothesis: true difference in means between group leve and group mod+sev is not equal to 0
## 95 percent confidence interval:
## -8.375305 -1.246390
## sample estimates:
## mean in group leve mean in group mod+sev
## 34.33399 39.14484
5. Boxplots de Expressão por Status
p1 <- ggplot(dados, aes(x = covid.status, y = deltaCt.gene1, fill = covid.status)) +
geom_boxplot() +
labs(title = "Expressão do Gene 1 por Status COVID", y = "deltaCt.gene1")
p2 <- ggplot(dados, aes(x = covid.status, y = deltaCt.gene2, fill = covid.status)) +
geom_boxplot() +
labs(title = "Expressão do Gene 2 por Status COVID", y = "deltaCt.gene2")
ggarrange(p1, p2, ncol = 2)

6. Diferença de Expressão por Genótipo (Kruskal-Wallis)
kruskal.test(deltaCt.gene1 ~ genot.gene1, data = dados)
##
## Kruskal-Wallis rank sum test
##
## data: deltaCt.gene1 by genot.gene1
## Kruskal-Wallis chi-squared = 34.009, df = 2, p-value = 4.122e-08
kruskal.test(deltaCt.gene2 ~ genot.gene2, data = dados)
##
## Kruskal-Wallis rank sum test
##
## data: deltaCt.gene2 by genot.gene2
## Kruskal-Wallis chi-squared = 1.1341, df = 2, p-value = 0.5672
7. Boxplots por Genótipo
ggplot(dados, aes(x = genot.gene1, y = deltaCt.gene1, fill = genot.gene1)) +
geom_boxplot() +
labs(title = "Gene 1: Expressão por Genótipo")

ggplot(dados, aes(x = genot.gene2, y = deltaCt.gene2, fill = genot.gene2)) +
geom_boxplot() +
labs(title = "Gene 2: Expressão por Genótipo")

8. Associação entre Genótipo e Status COVID (Qui-Quadrado)
chisq.test(table(dados$genot.gene1, dados$covid.status))
##
## Pearson's Chi-squared test
##
## data: table(dados$genot.gene1, dados$covid.status)
## X-squared = 37.971, df = 2, p-value = 5.685e-09
chisq.test(table(dados$genot.gene2, dados$covid.status))
##
## Pearson's Chi-squared test
##
## data: table(dados$genot.gene2, dados$covid.status)
## X-squared = 0.81601, df = 2, p-value = 0.665
9. Gráficos de Barras Proporcionais
ggplot(dados, aes(x = genot.gene1, fill = covid.status)) +
geom_bar(position = "fill") +
labs(title = "Proporção Status COVID por Genótipo Gene 1", y = "Proporção") +
theme_minimal()

ggplot(dados, aes(x = genot.gene2, fill = covid.status)) +
geom_bar(position = "fill") +
labs(title = "Proporção Status COVID por Genótipo Gene 2", y = "Proporção") +
theme_minimal()

10. Correlação entre Genes
cor.test(dados$deltaCt.gene1, dados$deltaCt.gene2, method = "pearson")
##
## Pearson's product-moment correlation
##
## data: dados$deltaCt.gene1 and dados$deltaCt.gene2
## t = 21.898, df = 298, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.7376909 0.8251842
## sample estimates:
## cor
## 0.785328
11. Modelo Linear Geral
modelo_geral <- lm(deltaCt.gene2 ~ deltaCt.gene1, data = dados)
summary(modelo_geral)
##
## Call:
## lm(formula = deltaCt.gene2 ~ deltaCt.gene1, data = dados)
##
## Residuals:
## Min 1Q Median 3Q Max
## -26.464 -6.517 -0.164 5.887 27.073
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.7135 1.4455 4.645 5.12e-06 ***
## deltaCt.gene1 2.7643 0.1262 21.898 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 9.083 on 298 degrees of freedom
## Multiple R-squared: 0.6167, Adjusted R-squared: 0.6155
## F-statistic: 479.5 on 1 and 298 DF, p-value: < 2.2e-16
12. Modelos Lineares por Status de COVID
modelo_leve <- lm(deltaCt.gene2 ~ deltaCt.gene1, data = subset(dados, covid.status == "leve"))
modelo_modsev <- lm(deltaCt.gene2 ~ deltaCt.gene1, data = subset(dados, covid.status == "mod+sev"))
summary(modelo_leve)
##
## Call:
## lm(formula = deltaCt.gene2 ~ deltaCt.gene1, data = subset(dados,
## covid.status == "leve"))
##
## Residuals:
## Min 1Q Median 3Q Max
## -24.9572 -5.9452 -0.4909 6.5513 20.2700
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.3925 1.9743 3.238 0.00143 **
## deltaCt.gene1 2.6066 0.1741 14.968 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 8.694 on 181 degrees of freedom
## Multiple R-squared: 0.5531, Adjusted R-squared: 0.5507
## F-statistic: 224 on 1 and 181 DF, p-value: < 2.2e-16
summary(modelo_modsev)
##
## Call:
## lm(formula = deltaCt.gene2 ~ deltaCt.gene1, data = subset(dados,
## covid.status == "mod+sev"))
##
## Residuals:
## Min 1Q Median 3Q Max
## -20.0563 -7.1638 -0.1256 5.7379 23.5880
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 8.1259 1.9712 4.122 7.11e-05 ***
## deltaCt.gene1 2.9279 0.1695 17.269 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 8.784 on 115 degrees of freedom
## Multiple R-squared: 0.7217, Adjusted R-squared: 0.7193
## F-statistic: 298.2 on 1 and 115 DF, p-value: < 2.2e-16
13. Gráfico dos Modelos por Status
ggplot(dados, aes(x = deltaCt.gene1, y = deltaCt.gene2, color = covid.status)) +
geom_point() +
geom_smooth(method = "lm", se = FALSE) +
labs(title = "Modelos Lineares por Status COVID",
x = "deltaCt.gene1", y = "deltaCt.gene2") +
theme_minimal()
