1. Caracterização Demográfica Basal

O presente segmento detalha as características demográficas da coorte no momento do recrutamento basal. A integridade estrutural deste relatório é gerada de forma reprodutível, extraindo os dados estritamente do objeto de dados principal (df).

A coorte avaliada é composta por um total de 2662 indivíduos pediátricos e adolescentes. É composta por 570 portadores de asma, 100 portadores de asma grave, 1604 portadores com confirmação genética de fibrose cística e 388 controles sadios totalizando 2662 indivíduos.

A estratificação por sexo demonstrou a inclusão de 1413 pacientes do sexo masculino (representando 53.1% da amostra) e 1249 pacientes do sexo feminino (46.9%).

A avaliação etária da população de estudo demonstrou uma média de 9.8 anos, com um desvio padrão (DP) associado de 2.7 anos. Adicionalmente, a biometria basal indicou um Índice de Massa Corporal (IMC) médio de 18.9 kg/m² (DP ± 3.7).

2. Perfil Clínico e Função Pulmonar

A avaliação espirométrica da linha de base apresentou os seguintes resultados médios globais para os volumes pulmonares estáticos e fluxos dinâmicos:

  • Volume Expiratório Forçado no 1º segundo (VEF1) pré-broncodilatador: Média de 1.7 Litros (DP ± 0.7).
  • Capacidade Vital Forçada (CVF) em percentual do previsto (CVF %): Média de 94.9% (DP ± 20.4).

No que concerne à fenotipagem clínica, a análise estruturada da matriz de dados revela que 100 pacientes (3.8%) preenchem os critérios para o diagnóstico de Asma Grave. Ademais, na avaliação dos determinantes de morbidade respiratória ambiental, documentou-se que 1075 indivíduos (40.4%) encontram-se expostos a tabagismo passivo no domicílio, uma variável crítica de confusão na análise de declínio funcional.

library(gtsummary)
library(tidyverse)

# Tabela simplificada de médias espirométricas
df %>%
  select(doenca, cvf_pct, vef1_pre_pct) %>%
  tbl_summary(
    by = doenca,
    label = list(cvf_pct ~ "CVF (%)", vef1_pre_pct ~ "VEF1 (%)"),
    statistic = all_continuous() ~ "{mean} ({sd})"
  ) %>%
  add_p() # Adiciona p-valor (ANOVA/Kruskal-Wallis automático)
Characteristic asma
N = 570
1
asma grave
N = 100
1
controles
N = 388
1
fibrose cistica
N = 1,604
1
p-value2
CVF (%) 100 (14) 104 (19) 108 (13) 89 (22) <0.001
VEF1 (%) 95 (14) 94 (20) 115 (16) 83 (23) <0.001
1 Mean (SD)
2 Kruskal-Wallis rank sum test
# -------------------------------------------------------------------------
# Projeto: Visualização de Função Pulmonar por Grupo Clínico
# Script: Box-plot Comparativo (VEF1 % do previsto)
# -------------------------------------------------------------------------

library(ggplot2)
library(dplyr)

# 1. Preparação dos dados para o gráfico
df_plot <- df

# 2. Construção do Gráfico
ggplot(df_plot, aes(x = doenca, y = vef1_pre_pct, fill = doenca)) +
  # Adiciona os box-plots com transparência para ver os pontos
  geom_boxplot(alpha = 0.7, outlier.shape = 21, outlier.fill = "white", width = 0.6) +
  
  # Opcional: Adiciona os pontos (jitter) para mostrar a densidade amostral (n=2662)
  # geom_jitter(width = 0.15, alpha = 0.1, size = 0.5) + 
  
  # Definição de Cores Científicas
  scale_fill_brewer(palette = "Set1") +
  
  # Customização de Eixos e Rótulos
  labs(
    title = "Distribuição do VEF1 (% do previsto) por Grupo Clínico",
    subtitle = "Avaliação espirométrica pré-broncodilatador em pacientes pediátricos",
    x = "Grupo Diagnóstico",
    y = "VEF1 (% do previsto)",
    fill = "Diagnóstico",
    ) +
  
  # Aplicação de Tema Limpo (Publication Ready)
  theme_minimal() +
  theme(
    legend.position = "none", # Remove legenda se o eixo X já identifica os grupos
    panel.grid.minor = element_blank(),
    axis.title = element_text(face = "bold"),
    plot.title = element_text(size = 14, face = "bold"),
    axis.text = element_text(color = "black")
  ) +
  
  # Adiciona linha de referência em 80% (limite inferior da normalidade usual)
  geom_hline(yintercept = 80, linetype = "dashed", color = "red", alpha = 0.6)