Введение

Работники металлургического предприятия подвергаются многочисленным вредным факторам, связанным с особенностями производственного процесса. Одним из наиболее значимых является воздействие на организм химических веществ, длительное влияние которых приводит к различным профессиональным патологиям. Для прогнозирования и профилактики заболеваний нужно учитывать не только уровень воздействия внешней среды на организм, но и индивидуальные особенности работников. Способность тканей и органов к метаболизму ксенобиотиков зависит от ферментов, участвующих в процессе детоксикации, в частности, от активности глутатион-S-трансфераз, которые отвечают за адаптацию на окислительный стресс. Полиморфизмы генов GSTM1, GSTT1 влияют на отсутствие фермента или снижение его активности, что может приводить к уменьшению устойчивости к воздействию ксенобиотиков.

При развитии заболевания одним из ключевых показателей является изменение в общем анализе крови и изменение ее биохимического состава. Отклонение от медицинской нормы может служить признаком развития воспалительной реакции, нарушении метаболизма и гемостаза, сбоях в работе систем органов. Таким образом, целью работы являлось выявление взаимосвязи между показателями крови работников и полиморфизмов генов, отвечающих за уровень активности ферментов детоксикации.

Задачи: 1) Сравнить показатели крови в группе работников металлургического цеха с группой административного отдела данного предприятия 2) Выявить взаимосвязь между полиморфизмами генов и показателями крови
3) Оценить влияние полиморфизмов генов на показатели крови в зависимости от условий работы

Средние значения показателей крови и стандартные ошибки среднего

#Группа 1
mean_gem1 <- mean(Group1$`Гемоглобин.(г/л)`, na.rm =T)
se_gem1 <- sd(Group1$`Гемоглобин.(г/л)`, na.rm =T)/sqrt( sum(!is.na(Group1$`Гемоглобин.(г/л)`)))


mean_ley1 <- mean(Group1$`Лейкоциты.(*10^.9/л)`, na.rm = T)
se_ley1 <- sd(Group1$`Лейкоциты.(*10^.9/л)`, na.rm =T)/sqrt( sum(!is.na(Group1$`Лейкоциты.(*10^.9/л)`)))

mean_eri1 <- mean(Group1$`Эритроциты.(*10^12/л)`, na.rm = T)
se_eri1 <- sd(Group1$`Эритроциты.(*10^12/л)`, na.rm =T)/sqrt( sum(!is.na(Group1$`Эритроциты.(*10^12/л)`)))

mean_tro1 <- mean(Group1$`Тромбоциты.(*10^9/L)`, na.rm =T)
se_tro1 <- sd(Group1$`Тромбоциты.(*10^9/L)`, na.rm =T)/sqrt( sum(!is.na(Group1$`Тромбоциты.(*10^9/L)`)))

mean_gly1 <- mean(Group1$`Глюкоза,.ммоль/л`, na.rm = T)
se_gly1 <- sd(Group1$`Глюкоза,.ммоль/л`, na.rm =T)/sqrt( sum(!is.na(Group1$`Глюкоза,.ммоль/л`)))


mean_group1<- c(mean_gem1, mean_ley1, mean_eri1, mean_tro1, mean_gly1)
se_group1 <- c(se_gem1, se_ley1, se_eri1, se_tro1,se_gly1)

#Группа 2

#Изменение формата данных на числовой, т.к. в таблице неверный формат данных
Group2$`Гемоглобин.(г/л)` <-as.numeric(gsub(",", ".", Group2$`Гемоглобин.(г/л)`))
Group2$`Лейкоциты.(*10^.9/л)` <-as.numeric(gsub(",", ".", Group2$`Лейкоциты.(*10^.9/л)`))
Group2$`Эритроциты.(*10^12/л)` <-as.numeric(gsub(",", ".", Group2$`Эритроциты.(*10^12/л)`))
Group2$`Тромбоциты.(*10^9/L)` <-as.numeric(gsub(",", ".", Group2$`Тромбоциты.(*10^9/L)`))
Group2$`Глюкоза,.ммоль/л` <-as.numeric(gsub(",", ".", Group2$`Глюкоза,.ммоль/л`))

mean_gem2 <- mean(Group2$`Гемоглобин.(г/л)`, na.rm =T)
se_gem2 <- sd(Group2$`Гемоглобин.(г/л)`, na.rm =T)/sqrt( sum(!is.na(Group2$`Гемоглобин.(г/л)`)))

mean_ley2 <- mean(Group2$`Лейкоциты.(*10^.9/л)`, na.rm = T)
se_ley2 <- sd(Group2$`Лейкоциты.(*10^.9/л)`, na.rm =T)/sqrt( sum(!is.na(Group2$`Лейкоциты.(*10^.9/л)`)))

mean_eri2 <- mean(Group2$`Эритроциты.(*10^12/л)`, na.rm = T)
se_eri2 <- sd(Group2$`Эритроциты.(*10^12/л)`, na.rm =T)/sqrt( sum(!is.na(Group2$`Эритроциты.(*10^12/л)`)))

mean_tro2 <- mean(Group2$`Тромбоциты.(*10^9/L)`, na.rm =T)
se_tro2 <- sd(Group2$`Тромбоциты.(*10^9/L)`, na.rm =T)/sqrt( sum(!is.na(Group2$`Тромбоциты.(*10^9/L)`)))

mean_gly2 <- mean(Group2$`Глюкоза,.ммоль/л`, na.rm = T)
se_gly2 <- sd(Group2$`Глюкоза,.ммоль/л`, na.rm =T)/sqrt( sum(!is.na(Group2$`Глюкоза,.ммоль/л`)))


mean_group2<- c(mean_gem2, mean_ley2, mean_eri2, mean_tro2, mean_gly2)
se_group2 <- c(se_gem2, se_ley2, se_eri2, se_tro2,se_gly2)


names<-c("Гемоглобин (г/л)", "Лейкоциты (*10^9/л)", "Эритроциты (*10^12/л)", "Тромбоциты (*10^9/L)", "Глюкоза, ммоль/л")
#Таблица средних значений показателей и их стандартные ошибки
RESULT1<- 
  as.data.frame(cbind(names,
                    mean_gr1 = round(mean_group1,2),
                    se_gr1 = round(se_group1,2),
                    mean_gr2 = round(mean_group2,2),
                    se_gr2 = round(se_group2,2) ))
RESULT1 
##                   names mean_gr1 se_gr1 mean_gr2 se_gr2
## 1      Гемоглобин (г/л)   154.24   1.09   145.89   0.93
## 2   Лейкоциты (*10^9/л)     7.73    0.2     7.03   0.14
## 3 Эритроциты (*10^12/л)     4.84   0.04     4.67   0.03
## 4  Тромбоциты (*10^9/L)   236.68   5.18   223.57   4.18
## 5      Глюкоза, ммоль/л     6.53   0.12     5.81   0.08

При сравнении показателей крови в двух группах по критерию Манна-Уитни обнаружены достоверные различия по всем показателям (р < 0,05). Это может говорить о том, что разные условия труда влияют на кроветворение, воздействие негативных факторов на производстве сказывается на биохимическом анализе крови.

##2 Сравнение групп 1 и 2 между собой по среднему значению каждого показателя.
#Тест Шапиро-Уилка, чтобы проверить нормальность распределения в каждой группе. При р<0.05 распределение отлично от нормального, используем критерий Манна-Уитни
shapiro.test(Group1$`Гемоглобин.(г/л)`) #p-value <0.05
## 
##  Shapiro-Wilk normality test
## 
## data:  Group1$`Гемоглобин.(г/л)`
## W = 0.96785, p-value = 0.01762
shapiro.test(Group2$`Гемоглобин.(г/л)`) #p-value <0.05
## 
##  Shapiro-Wilk normality test
## 
## data:  Group2$`Гемоглобин.(г/л)`
## W = 0.95983, p-value = 6.486e-05
wilcox.test(Group1$`Гемоглобин.(г/л)`, 
            Group2$`Гемоглобин.(г/л)`)
## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  Group1$`Гемоглобин.(г/л)` and Group2$`Гемоглобин.(г/л)`
## W = 12104, p-value = 5.81e-09
## alternative hypothesis: true location shift is not equal to 0
shapiro.test(Group1$`Лейкоциты.(*10^.9/л)`)#p-value <0.05
## 
##  Shapiro-Wilk normality test
## 
## data:  Group1$`Лейкоциты.(*10^.9/л)`
## W = 0.94122, p-value = 0.0002672
shapiro.test(Group2$`Лейкоциты.(*10^.9/л)`)#p-value <0.05
## 
##  Shapiro-Wilk normality test
## 
## data:  Group2$`Лейкоциты.(*10^.9/л)`
## W = 0.93045, p-value = 1.873e-07
wilcox.test(Group1$`Лейкоциты.(*10^.9/л)`, 
            Group2$`Лейкоциты.(*10^.9/л)`)
## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  Group1$`Лейкоциты.(*10^.9/л)` and Group2$`Лейкоциты.(*10^.9/л)`
## W = 10499, p-value = 0.002112
## alternative hypothesis: true location shift is not equal to 0
shapiro.test(Group1$`Эритроциты.(*10^12/л)`)#p-value >0.05
## 
##  Shapiro-Wilk normality test
## 
## data:  Group1$`Эритроциты.(*10^12/л)`
## W = 0.99023, p-value = 0.6965
shapiro.test(Group2$`Эритроциты.(*10^12/л)`)#p-value <0.05
## 
##  Shapiro-Wilk normality test
## 
## data:  Group2$`Эритроциты.(*10^12/л)`
## W = 0.8961, p-value = 9.936e-10
wilcox.test(Group1$`Эритроциты.(*10^12/л)`, 
            Group2$`Эритроциты.(*10^12/л)`)
## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  Group1$`Эритроциты.(*10^12/л)` and Group2$`Эритроциты.(*10^12/л)`
## W = 10948, p-value = 0.0001492
## alternative hypothesis: true location shift is not equal to 0
shapiro.test(Group1$`Тромбоциты.(*10^9/L)`)#p-value <0.05
## 
##  Shapiro-Wilk normality test
## 
## data:  Group1$`Тромбоциты.(*10^9/L)`
## W = 0.96867, p-value = 0.02024
shapiro.test(Group2$`Тромбоциты.(*10^9/L)`)#p-value <0.05
## 
##  Shapiro-Wilk normality test
## 
## data:  Group2$`Тромбоциты.(*10^9/L)`
## W = 0.9824, p-value = 0.02613
wilcox.test(Group1$`Тромбоциты.(*10^9/L)`, 
            Group2$`Тромбоциты.(*10^9/L)`)
## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  Group1$`Тромбоциты.(*10^9/L)` and Group2$`Тромбоциты.(*10^9/L)`
## W = 9732, p-value = 0.04529
## alternative hypothesis: true location shift is not equal to 0
shapiro.test(Group1$`Глюкоза,.ммоль/л`)#p-value <0.05
## 
##  Shapiro-Wilk normality test
## 
## data:  Group1$`Глюкоза,.ммоль/л`
## W = 0.86955, p-value = 8.501e-08
shapiro.test(Group2$`Глюкоза,.ммоль/л`)#p-value <0.05
## 
##  Shapiro-Wilk normality test
## 
## data:  Group2$`Глюкоза,.ммоль/л`
## W = 0.8762, p-value = 7.809e-11
wilcox.test(Group1$`Глюкоза,.ммоль/л`, 
            Group2$`Глюкоза,.ммоль/л`)
## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  Group1$`Глюкоза,.ммоль/л` and Group2$`Глюкоза,.ммоль/л`
## W = 12334, p-value = 1.877e-09
## alternative hypothesis: true location shift is not equal to 0

По всем рассматриваемым показателям между группами есть статистически значимые различия

#3. График для средних значений и стандартных ошибок 

#Таблица RESULT1 для построения графика 

val<-as.numeric(c(RESULT1$mean_gr1, RESULT1$mean_gr2))
nam <- rep(RESULT1$names,2)
gr <- c(rep("Группа 1",5), rep("Группа 2",5))
se <- as.numeric(c(RESULT1$se_gr1, RESULT1$se_gr2))
lower_se =  val - se
upper_se = val + se

data_plot<-
  data.frame(`Значение` = val,
             `Группа` = gr,
             `Показатель` = nam,
             lower_se,
             upper_se
             )

#График
ggplot(data=data_plot, aes(x=`Группа`, y=`Значение`, fill= `Группа`)) +
  geom_bar(stat="identity", position=position_dodge()) + facet_wrap(~`Показатель`,  scales = "free") +
  theme(legend.position = "none") + ggtitle("Среднее значение показателей крови в Группе 1 и 2")  +
  geom_errorbar(aes(ymax=upper_se,
                      ymin=lower_se),
                  position=position_dodge(0.9),
                  data=data_plot)

При этом корреляционная зависимость между типом полиморфного гена и различными показателями крови ни в одной из групп обнаружена не была. Возможно, необходимы дальнейшие сравнения при объединении двух полиморфных генов и их сравнения с показателями крови.

Корреляция между GSTT1, GSTM1 и показателями крови

Гемоглобин

### Взаимосвязь GSTT1 и GSTM1 в группах с гемоглобином

gem_dat <- data.frame(
           `Гемоглобин`= c(Group1$`Гемоглобин.(г/л)`, Group2$`Гемоглобин.(г/л)`),
           GSTM1 = c(Group1$GSTM1, Group2$GSTM1),
           GSTT1 = c(Group1$GSTT1, Group2$GSTT1),
           gr    = c(rep("Группа 1",nrow(Group1)), rep("Группа 2",nrow(Group2)) )
                     )

three.way_gem <- aov(`Гемоглобин` ~ GSTM1*GSTT1*gr, data = gem_dat)
summary(three.way_gem) 
##                 Df Sum Sq Mean Sq F value   Pr(>F)    
## GSTM1            1    124     124   0.873    0.351    
## GSTT1            1     68      68   0.478    0.490    
## gr               1   4291    4291  30.331 8.64e-08 ***
## GSTM1:GSTT1      1     51      51   0.360    0.549    
## GSTM1:gr         1     37      37   0.263    0.608    
## GSTT1:gr         1      4       4   0.029    0.865    
## GSTM1:GSTT1:gr   1     18      18   0.128    0.721    
## Residuals      264  37351     141                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 1 observation deleted due to missingness
#На уровне значимости 5% статистически значимое влияние оказывает только группа. 

ggplot(gem_dat, aes(y = `Гемоглобин`, x = gr)) +geom_boxplot()

ggplot(gem_dat, aes(y = `Гемоглобин`, x = GSTM1, color = GSTT1)) +geom_boxplot() +facet_wrap(~gr)

Лейкоциты

### Взаимосвязь GSTT1 и GSTM1 в группах с лейкоцитами 

ley_dat <- data.frame(
  `Лейкоциты`= c(Group1$`Лейкоциты.(*10^.9/л)`, Group2$`Лейкоциты.(*10^.9/л)`),
  GSTM1 = c(Group1$GSTM1, Group2$GSTM1),
  GSTT1 = c(Group1$GSTT1, Group2$GSTT1),
  gr    = c(rep("Группа 1",nrow(Group1)), rep("Группа 2",nrow(Group2)) )
)

three.way_ley <- aov(`Лейкоциты` ~ GSTM1*GSTT1*gr, data = ley_dat)
summary(three.way_ley) 
##                 Df Sum Sq Mean Sq F value  Pr(>F)   
## GSTM1            1   12.2   12.18   3.455 0.06415 . 
## GSTT1            1    2.6    2.61   0.741 0.39026   
## gr               1   32.2   32.17   9.129 0.00276 **
## GSTM1:GSTT1      1    9.7    9.69   2.750 0.09842 . 
## GSTM1:gr         1    0.5    0.47   0.134 0.71489   
## GSTT1:gr         1    2.1    2.08   0.591 0.44257   
## GSTM1:GSTT1:gr   1    1.0    0.96   0.274 0.60135   
## Residuals      265  933.8    3.52                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#На уровне значимости 5% статистически значимое влияние оказывает только группа. 

ggplot(ley_dat, aes(y =  `Лейкоциты`, x = gr)) +geom_boxplot()

ggplot(ley_dat, aes(y =  `Лейкоциты`, x = GSTM1, color = GSTT1)) +geom_boxplot() +facet_wrap(~gr)

Эритроциты

### Взаимосвязь GSTT1 и GSTM1 в группах с эритроцитами 

eri_dat <- data.frame(
  `Эритроциты`= c(Group1$`Эритроциты.(*10^12/л)`, Group2$`Эритроциты.(*10^12/л)`),
  GSTM1 = c(Group1$GSTM1, Group2$GSTM1),
  GSTT1 = c(Group1$GSTT1, Group2$GSTT1),
  gr    = c(rep("Группа 1",nrow(Group1)), rep("Группа 2",nrow(Group2)) )
)

three.way_eri <- aov( `Эритроциты` ~ GSTM1*GSTT1*gr, data = eri_dat)
summary(three.way_eri) 
##                 Df Sum Sq Mean Sq F value  Pr(>F)   
## GSTM1            1   0.60  0.6038   3.613 0.05843 . 
## GSTT1            1   0.76  0.7559   4.523 0.03437 * 
## gr               1   1.77  1.7725  10.606 0.00127 **
## GSTM1:GSTT1      1   0.34  0.3402   2.036 0.15482   
## GSTM1:gr         1   0.00  0.0001   0.000 0.98340   
## GSTT1:gr         1   0.15  0.1454   0.870 0.35187   
## GSTM1:GSTT1:gr   1   0.07  0.0747   0.447 0.50445   
## Residuals      265  44.29  0.1671                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#На уровне значимости 5% статистически значимое влияние оказывает группа и наличие полиморфизма гена GSTT1. 

ggplot(eri_dat, aes(y = `Эритроциты`, x = gr )) +geom_boxplot() 

ggplot(eri_dat, aes(y = `Эритроциты`, x = GSTT1 )) +geom_boxplot() 

ggplot(eri_dat, aes(y = `Эритроциты`, x = GSTM1, color = GSTT1)) +geom_boxplot() +facet_wrap(~gr)

Тромбоциты

### Взаимосвязь GSTT1 и GSTM1 в группах с тромбоцитами 

tro_dat <- data.frame(
  `Тромбоциты`= c(Group1$`Тромбоциты.(*10^9/L)`, Group2$`Тромбоциты.(*10^9/L)`),
  GSTM1 = c(Group1$GSTM1, Group2$GSTM1),
  GSTT1 = c(Group1$GSTT1, Group2$GSTT1),
  gr    = c(rep("Группа 1",nrow(Group1)), rep("Группа 2",nrow(Group2)) )
)

three.way_tro <- aov( `Тромбоциты` ~ GSTM1*GSTT1*gr, data = tro_dat)
summary(three.way_tro) 
##                 Df Sum Sq Mean Sq F value Pr(>F)  
## GSTM1            1    571     571   0.194  0.660  
## GSTT1            1    654     654   0.223  0.637  
## gr               1  10993   10993   3.745  0.054 .
## GSTM1:GSTT1      1    104     104   0.035  0.851  
## GSTM1:gr         1   2325    2325   0.792  0.374  
## GSTT1:gr         1    644     644   0.219  0.640  
## GSTM1:GSTT1:gr   1    996     996   0.339  0.561  
## Residuals      264 775010    2936                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 1 observation deleted due to missingness
#На уровне значимости 5% статистически значимое влияние не оказывает ни один из факторов. 

ggplot(tro_dat, aes(y = `Тромбоциты`, x = GSTM1, color = GSTT1)) +geom_boxplot() +facet_wrap(~gr)

Глюкоза

### Взаимосвязь GSTT1 и GSTM1 в группах с глюкозой 

gly_dat <- data.frame(
  `Глюкоза`= c(Group1$`Глюкоза,.ммоль/л`, Group2$`Глюкоза,.ммоль/л`),
  GSTM1 = c(Group1$GSTM1, Group2$GSTM1),
  GSTT1 = c(Group1$GSTT1, Group2$GSTT1),
  gr    = c(rep("Группа 1",nrow(Group1)), rep("Группа 2",nrow(Group2)) )
)

three.way_gly <- aov(`Глюкоза` ~ GSTM1*GSTT1*gr, data = gly_dat)
summary(three.way_gly) 
##                 Df Sum Sq Mean Sq F value   Pr(>F)    
## GSTM1            1    0.1    0.09   0.072    0.789    
## GSTT1            1    0.5    0.47   0.369    0.544    
## gr               1   32.5   32.53  25.632 7.74e-07 ***
## GSTM1:GSTT1      1    0.3    0.29   0.230    0.632    
## GSTM1:gr         1    0.2    0.22   0.173    0.678    
## GSTT1:gr         1    1.5    1.50   1.182    0.278    
## GSTM1:GSTT1:gr   1    3.4    3.37   2.656    0.104    
## Residuals      265  336.4    1.27                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#На уровне значимости 5% статистически значимое влияние  оказывает только группа. 

ggplot(gly_dat, aes(y = `Глюкоза`, x = gr)) +geom_boxplot() 

ggplot(gly_dat, aes(y = `Глюкоза`, x = GSTM1, color = GSTT1)) +geom_boxplot() +facet_wrap(~gr)

Заключение

Были обнаружены достоверные различия между группой рабочих производственного цеха и рабочими административного корпуса по показателям крови. Исходя из этого, можно предположить, что условия работы влияют на гемостаз и биохимию крови. Наблюдается взаимосвязь между показателем гемоглобина, глюкозы и количества лейкоцитов с группами рабочих, для количества эритроцитов выявлена взаимосвязь с группой рабочих и полиморфизмом гена GSTT1, взаимосвязи количества тромбоцитов ни с одним признаком обнаружено не было. Таким образом, полиморфизмы данных генов не взаимосвязаны с рассмотренными показателями и генотип не является признаком, указывающим на предрасположенность к каким-либо нарушениям в кровеносной системе по биохимическому и общему анализу крови, взаимосвязь обнаружена только с количеством эритроцитов.