GMSB文章六:微生物SCFA關聯分析

歡迎大家關注全網生信學習者系列:

  • WX公zhong號:生信學習者
  • Xiao hong書:生信學習者
  • 知hu:生信學習者
  • CDSN:生信學習者2

介紹

微生物短鏈脂肪酸(SCFAs)是由腸道微生物發酵膳食纖維、抗性淀粉、低聚糖等碳水化合物產生的一類有機脂肪酸,主要包括乙酸、丙酸和丁酸。SCFAs在腸道健康、免疫調節、能量代謝等方面發揮重要作用,并且與多種疾病狀態有關。

通過約束線性混合效應模型(CLME)研究SCFA與排序暴露分組之間的單調遞增關系,這種方法通常用于分析具有層次結構的數據,能夠處理數據中的非獨立性和非正態分布問題。在研究SCFA與某些因素(如飲食、疾病狀態等)的關系時,CLME可以用來評估這些因素對SCFA水平的影響,并檢測它們之間是否存在單調遞增或遞減的關系。

加載R包

library(readr)
library(tidyverse) 
library(CLME)
library(magrittr)
library(qwraps2)
library(ggprism)
library(ggsci)
library(ggpubr)
library(rstatix)
library(jtools)
library(kableExtra)

導入數據

大家通過以下鏈接下載數據:

  • 百度網盤鏈接:https://pan.baidu.com/s/1fz5tWy4mpJ7nd6C260abtg
  • 提取碼: 請關注WX公zhong號_生信學習者_后臺發送 復現gmsb 獲取提取碼
df_merge <- read_csv("./data/GMSB-data/df_merge.csv", show_col_types = FALSE)head(df_merge[, 1:6])
sampleidsubjidvisitvisit_numstatusage
F-1DUMMY1v110nc58
F-2DUMMY2v110nc60
F-3DUMMY3v110nc58
F-4DUMMY4v110nc72
F-5DUMMY5v110nc57
F-6DUMMY6v110nc59

數據預處理

對不同visit進行分組中,提取它們的SCFA短鏈脂肪酸

df_v1 <- df_merge %>%dplyr::filter(visit == "v1",group1 != "missing")
df_v2 <- df_merge %>%dplyr::filter(visit == "v2",group1 != "missing")df_v1$group1 <- recode(df_v1$group1,`g1` = "G1", `g2` = "G2",`g3` = "G3", `g4` = "G4")
df_v1$group2 <- recode(df_v1$group2,`g1` = "G1", `g2` = "G2",`g3` = "G3", `g4` = "G4", `g5` = "G5")df_v1 <- df_v1 %>%dplyr::transmute(subjid, status, leu3p, leu2p, recept_anal, abx_use, group1, group2, acetate_v1 = acetate, propionate_v1 = propionate, butyrate_v1 = butyrate, valerate_v1 = valerate)
df_v2 <- df_v2 %>%dplyr::transmute(subjid, acetate_v2 = acetate, propionate_v2 = propionate, butyrate_v2 = butyrate, valerate_v2 = valerate) df_v1 <- df_v1 %>%dplyr::left_join(df_v2, by = "subjid")df_v1$group1 <- factor(df_v1$group1, levels = c("G1", "G2", "G3", "G4"), ordered = TRUE)
df_v1$group2 <- factor(df_v1$group2, levels = c("G1", "G2", "G3", "G4", "G5"), ordered = TRUE)head(df_v1[, 1:6])
subjidstatusleu3pleu2precept_analabx_use
DUMMY1nc40.535.95yes
DUMMY2nc53.927.76yes
DUMMY3nc30.942.53no
DUMMY4nc50.319.37no
DUMMY5nc42.838.84no
DUMMY6nc36.946.74yes

visit1

visit1群體的SCFA的數據分布情況

df_v1 %>% dplyr::select(acetate_v1, propionate_v1, butyrate_v1, valerate_v1) %>%pastecs::stat.desc() %>% kable() %>% kable_styling()

在這里插入圖片描述

結果:不同的SCFA的數據描述結果,比如acetate_v1最大和最小值都要高于其他的。

visit2

visit2群體的SCFA的數據分布情況

df_v1 %>% dplyr::select(acetate_v2, propionate_v2, butyrate_v2, valerate_v2) %>%pastecs::stat.desc() %>% kable() %>% kable_styling()

在這里插入圖片描述

結果:不同的SCFA的數據描述結果,比如acetate_v1最大和最小值都要高于其他的。

SCFA ~ groups: box plots

線性回歸校正abx_use因素比較不同分組的差異

plot_box <- function(group_lab, group_var, key_var, title, y.position, step.increase) {df_fig <- df_v1 %>%transmute(group = get(group_var), value = get(key_var), abx_use)df_fig$group <- factor(df_fig$group, ordered = FALSE)lm_fit <- lm(value ~ group + abx_use, data = df_fig)df_p <- data.frame(group1 = group_lab[1],group2 = group_lab[-1],p = summary(lm_fit)$coef[grepl("group", names(coef(lm_fit))), "Pr(>|t|)"]) %>%mutate(p = round(p, 2))bxp <- ggboxplot(df_fig, x = "group", y = "value", color = "group",add = "jitter", xlab = FALSE, ylab = FALSE, title = title) +stat_pvalue_manual(df_p, y.position = y.position, step.increase = step.increase, label = "p") +scale_color_npg(name = "Group") +theme(axis.text.x = element_blank(),axis.ticks.x = element_blank(),strip.background = element_rect(fill = "white"),legend.position = "bottom",plot.title = element_text(hjust = 0.5))return(bxp)
}

Primary group

Primary group: 按照頻率分組

  • G1: # receptive anal intercourse = 0

  • G2: # receptive anal intercourse = 1

  • G3: # receptive anal intercourse = 2 - 5

  • G4: # receptive anal intercourse = 6 +

bxp_list <- list()
var_list <- c("acetate_v1", "butyrate_v1", "propionate_v1", "valerate_v1")
title_list <- c("Acetate", "Butyrate", "Propionate", "Valerate")
y_pos_list <- c(6, 0.25, 0.35, 0.07)
step_list <- c(0.1, 0.1, 0.1, 0.1)for (i in seq_along(var_list)) {bxp <- plot_box(group_lab = c("G1", "G2", "G3", "G4"),group_var = "group1",key_var = var_list[i], title = title_list[i],y.position = y_pos_list[i], step.increase = step_list[i])bxp_list[[i]] <- bxp
}ggarrange(bxp_list[[1]], bxp_list[[2]], bxp_list[[3]], bxp_list[[4]],common.legend = TRUE)

在這里插入圖片描述

結果:上述短鏈脂肪酸在分組間均不存在顯著差異。

Secondary group

Secondary group: 按照頻率分組2

  • G1: # receptive anal intercourse = 0

  • G2: # receptive anal intercourse = 1

  • G3: # receptive anal intercourse = 2 - 3

  • G4: # receptive anal intercourse = 4 - 8

  • G5: # receptive anal intercourse = 9 +

bxp_list <- list()
var_list <- c("acetate_v1", "butyrate_v1", "propionate_v1", "valerate_v1")
title_list <- c("Acetate", "Butyrate", "Propionate", "Valerate")
y_pos_list <- c(6, 0.25, 0.35, 0.07)
step_list <- c(0.1, 0.1, 0.1, 0.1)for (i in seq_along(var_list)) {bxp <- plot_box(group_lab = c("G1", "G2", "G3", "G4", "G5"),group_var = "group2",key_var = var_list[i], title = title_list[i],y.position = y_pos_list[i], step.increase = step_list[i])bxp_list[[i]] <- bxp
}ggarrange(bxp_list[[1]], bxp_list[[2]], bxp_list[[3]], bxp_list[[4]],common.legend = TRUE)

在這里插入圖片描述

結果:短鏈脂肪酸在分組間的分布。

  • Acetate在G1和G5間顯著差異;

  • Valerate在G1和G5間顯著差異

SCFA ~ groups: increasing trend

約束線性混合效應模型(CLME, Constrained Linear Mixed Effects Models):用于評估性暴露組和血漿炎癥細胞因子水平之間的單調遞增趨勢,同時校正細菌抗生素使用情況。

  • plot_clme用于繪制趨勢圖
plot_clme <- function(clme_obj, group, y_min, y_max, p_gap, ann_pos, trend = "increase", ...) {overall_p <- clme_obj$p.valueind_p <- clme_obj$p.value.indest_mean <- clme_obj$theta[group]est_se <- sqrt(diag(clme_obj$cov.theta))[group]df_fig <- data.frame(x = group, y = est_mean, err = est_se)if (est_mean[2] < est_mean[length(est_mean)]) {start_p_pos <- est_mean[2] + p_gapend_p_pos <- max(est_mean) + p_gap} else if (est_mean[2] > est_mean[length(est_mean)]) {start_p_pos <- max(est_mean) + p_gapend_p_pos <- min(est_mean) + p_gap} else {if (trend == "increase") {start_p_pos <- est_mean[2] + p_gapend_p_pos <- max(est_mean) + 2 * p_gap} else {start_p_pos <- max(est_mean) + 2 * p_gapend_p_pos <- min(est_mean) + p_gap}}df_p <- data.frame(group1 = group[seq_len(length(group) - 1)],group2 = group[-1],x = group[-1],label = paste0("p = ", round(ind_p, 3)),y.position = seq.int(from = start_p_pos, to = end_p_pos, length.out = length(group) - 1))df_ann <- data.frame(x = group[1], y = ann_pos,fill = "white",label = paste0("Trend p-value = ", round(overall_p, 3)))fig <- df_fig %>%ggplot(aes(x = x, y = y)) +geom_bar(stat = "identity", color = "black", aes(fill = x)) + geom_errorbar(aes(ymin = y - 1.96 * err, ymax = y + 1.96 * err), width = .2, position = position_dodge(.9)) +add_pvalue(df_p,xmin = "group1",xmax = "group2",label = "label",y.position = "y.position",remove.bracket = FALSE, ...) +geom_label(data = df_ann, aes(x = x, y = y, label = label), size = 4, vjust = -0.5, hjust = 0, color = "black") +ylim(y_min, y_max) +theme_bw()return(fig)
}
  1. P-value is obtained by linear regression adjusting for antibiotics usage.

  2. P-values were not adjusted for multiple comparisons.

限制參數

cons <- list(order = "simple", decreasing = FALSE, node = 1)

Primary grouping: Acetate

短鏈脂肪酸AcetatePrimary grouping的相關關系

fit1 <- clme(acetate_v1 ~ group1 + abx_use, data = df_v1, constraints = cons, seed = 123)
summ_fit1 <- summary(fit1)fig_ace_primary <- plot_clme(summ_fit1, group = c("G1", "G2", "G3", "G4"), y_min = 0, y_max = 4, p_gap = 0.7, ann_pos = 3.5) +scale_fill_npg(name = NULL) +labs(x = NULL, y = "Acetate")fig_ace_primary

在這里插入圖片描述

結果:acetate在不同組有顯著差異的單調遞增的趨勢(G3和G4組存在顯著差異)。

Primary grouping: Butyrate

短鏈脂肪酸ButyratePrimary grouping的相關關系

fit2 <- clme(butyrate_v1 ~ group1 + abx_use, data = df_v1, constraints = cons, seed = 123)
summ_fit2 <- summary(fit2)fig_but_primary <- plot_clme(summ_fit2, group = c("G1", "G2", "G3", "G4"), y_min = 0, y_max = 0.18, p_gap = 0.04, ann_pos = 0.16) +scale_fill_npg(name = NULL) +labs(x = NULL, y = "Butyrate")fig_but_primary

在這里插入圖片描述

Primary grouping: Propionate

短鏈脂肪酸PropionatePrimary grouping的相關關系

fit3 <- clme(propionate_v1 ~ group1 + abx_use, data = df_v1, constraints = cons, seed = 123)
summ_fit3 <- summary(fit3)fig_pro_primary <- plot_clme(summ_fit3, group = c("G1", "G2", "G3", "G4"),y_min = 0, y_max = 0.25, p_gap = 0.05, ann_pos = 0.22) +scale_fill_npg(name = NULL) +labs(x = NULL, y = "Propionate")fig_pro_primary

在這里插入圖片描述

Primary grouping: Valerate

短鏈脂肪酸ValeratePrimary grouping的相關關系

fit4 <- clme(valerate_v1 ~ group1 + abx_use, data = df_v1, constraints = cons, seed = 123)
summ_fit4 <- summary(fit4)fig_val_primary <- plot_clme(summ_fit4, group = c("G1", "G2", "G3", "G4"),y_min = 0, y_max = 0.053, p_gap = 0.009, ann_pos = 0.048) +scale_fill_npg(name = NULL) +labs(x = NULL, y = "Valerate")fig_val_primary

在這里插入圖片描述

Secondary grouping: Acetate

短鏈脂肪酸AcetateSecondary grouping的相關關系

fit1 <- clme(acetate_v1 ~ group2 + abx_use, data = df_v1, constraints = cons, seed = 123)
summ_fit1 <- summary(fit1)fig_ace_secondary <- plot_clme(summ_fit1, group = c("G1", "G2", "G3", "G4", "G5"), y_min = 0, y_max = 4, p_gap = 0.7, ann_pos = 3.5) +scale_fill_npg(name = NULL) +labs(x = NULL, y = "Acetate")fig_ace_secondary

在這里插入圖片描述

Secondary grouping: Butyrate

短鏈脂肪酸ButyrateSecondary grouping的相關關系

fit2 <- clme(butyrate_v1 ~ group2 + abx_use, data = df_v1, constraints = cons, seed = 123)
summ_fit2 <- summary(fit2)fig_but_secondary <- plot_clme(summ_fit2, group = c("G1", "G2", "G3", "G4", "G5"), y_min = 0, y_max = 0.18, p_gap = 0.04, ann_pos = 0.16) +scale_fill_npg(name = NULL) +labs(x = NULL, y = "Butyrate")fig_but_secondary

在這里插入圖片描述

Secondary grouping: Propionate

短鏈脂肪酸PropionateSecondary grouping的相關關系

fit3 <- clme(propionate_v1 ~ group2 + abx_use, data = df_v1, constraints = cons, seed = 123)
summ_fit3 <- summary(fit3)fig_pro_secondary <- plot_clme(summ_fit3, group = c("G1", "G2", "G3", "G4", "G5"),y_min = 0, y_max = 0.25, p_gap = 0.05, ann_pos = 0.22) +scale_fill_npg(name = NULL) +labs(x = NULL, y = "Propionate")fig_pro_secondary

在這里插入圖片描述

Secondary grouping: Valerate

短鏈脂肪酸ValerateSecondary grouping的相關關系

fit4 <- clme(valerate_v1 ~ group2 + abx_use, data = df_v1, constraints = cons, seed = 123)
summ_fit4 <- summary(fit4)fig_val_secondary <- plot_clme(summ_fit4, group = c("G1", "G2", "G3", "G4", "G5"),y_min = 0, y_max = 0.053, p_gap = 0.009, ann_pos = 0.048) +scale_fill_npg(name = NULL) +labs(x = NULL, y = "Valerate")fig_val_secondary

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/36374.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/36374.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/36374.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

AI寫作助力:如何用AI降重工具快速提升論文原創性?

高查重率是許多畢業生的困擾。通常&#xff0c;高查重率源于過度引用未經修改的參考資料和格式錯誤。傳統的降重方法&#xff0c;如修改文本和增添原創內容&#xff0c;雖必要但耗時且成效不一。 鑒于此&#xff0c;應用AI工具進行AIGC降重成為了一個高效的解決方案。這些工具…

抖音集成:通過MessageBox引領數字化營銷新潮流

抖音集成&#xff1a;通過MessageBox引領數字化營銷新潮流 在數字化營銷的大潮中&#xff0c;企業需要不斷探索新的方式來優化其營銷策略&#xff0c;以抓住更多的市場機會。抖音作為一款全球知名的短視頻社交平臺&#xff0c;憑借其龐大的用戶群體和高度互動的特性&#xff0…

v1.0.4優雅草超級站長工具開發進度更新·增加vip兌換功能·增加每個頁面批量查詢和清空功能

https://doc.youyacao.com/9/2157 v1.0.4優雅草超級站長工具開發進度更新增加vip兌換功能增加每個頁面批量查詢和清空功能 演示地址-可測試 https://test2.youyacao.com 介紹 本產品是一款針對站長使用的工具&#xff0c;針對網站域名的多維信息查詢工具&#xff0c;本產品…

OpenAI推遲ChatGPT高級語音模式發布!谷歌將推出明星網紅AI聊天機器人|AI日報

文章推薦 時序預測雙飛輪&#xff0c;全面超越Transformer&#xff0c;純MLP模型實現性能效能齊飛 OpenAI將終止對我國提供API服務&#xff0c;國內大模型將迎來“六小強”格局&#xff01;&#xff5c;AI日報 推遲ChatGPT高級語音模式發布&#xff01;OpenAI將計劃在秋季向…

elasticsearch重置密碼

0 案例背景 Elasticsearch三臺集群環境&#xff0c;對外端口為6200&#xff0c;忘記elasticsearch密碼&#xff0c;進行重置操作 注&#xff1a;若無特殊說明&#xff0c;三臺服務器均需進行處理操作 1 停止es /rpa/bin/elasticsearch.sh stop 檢查狀態 ps -ef|grep elast…

如何在Spring Boot應用中集成MongoDB數據庫

如何在Spring Boot應用中集成MongoDB數據庫 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01; 在現代應用開發中&#xff0c;數據庫是存儲和管理數據的核心。Mon…

視頻監控管理平臺LntonCVS智能視頻監控平臺系統詳細介紹

安防視頻監控平臺LntonCVS以其卓越的靈活性和便捷的部署特性在眾多同類產品中脫穎而出。它不僅支持多種主流標準協議&#xff0c;如國標GB28181、RTSP/Onvif、RTMP等&#xff0c;還兼容了海康Ehome、海大宇等廠家的私有協議和SDK接入&#xff0c;為用戶提供了更加豐富的選擇。 …

Android 簡單的so層逆向

前言 最近搞了一下安卓。簡單學習記錄一下。 目標程序&#xff1a; xiao shui mian 也就是某個參數的逆向 準備環境 安卓機scrcpyadbfrida解包軟件&#xff08;不列舉了&#xff09; 這種環境安裝這里就不多說了。教程也很多。 參數逆向分析 先抓包看看參數 這里我使用…

【仿真建模-anylogic】ViewArea解析

Author&#xff1a;趙志乾 Date&#xff1a;2024-06-27 Declaration&#xff1a;All Right Reserved&#xff01;&#xff01;&#xff01; 1. 應用場景 view area又叫視圖區域&#xff0c;其作用是在presentation中標記一塊區域&#xff0c;便于動畫演示過程中快速切換可視區…

海豚調度調優 | 如何解決任務被禁用出現的Bug

&#x1f4a1; 本系列文章是 DolphinScheduler 由淺入深的教程&#xff0c;涵蓋搭建、二開迭代、核心原理解讀、運維和管理等一系列內容。適用于想對 DolphinScheduler了解或想要加深理解的讀者。 祝開卷有益。 本系列教程基于 DolphinScheduler 2.0.5 做的優化。&#xff…

PTA—C語言期末復習(選擇題)

1. 按照標識符的要求&#xff0c;&#xff08;A&#xff09;不能組成標識符。 A.連接符 B.下劃線 C.大小寫字母 D.數字字符 在大多數編程語言中&#xff0c;標識符通常由字母&#xff08;包括大寫和小寫&#xff09;、數字和下劃線組成&#xff0c;但不能以數字開頭&#xff0c…

如何解決centos停止維護后更換Debian11平替?

再有9天時間centos7.x就將停止維護,最近很多人已經再更換系統了!有推薦alibabacloud,opencloud,debian,ubuntu,centos-stream,tencentos,anolis,rockey,almal,oracle,arch,Fedora,opensuse 很多人不知道選什么,這里就主要介紹一下 如果你是使用寶塔面板 并且想要無縫銜…

java 數據新增、更新、刪除監聽,并記錄日志或其他業務

數據新增、更新、刪除監聽&#xff0c;并記錄日志或其他業務 1.使用場景 日志記錄、KPI考核&#xff08;業務進行到某個階段&#xff0c;對人員的考核&#xff09;等等 實體監聽器 實體增加注解 EntityListeners({KpiOrderCounter.class}) /*** 訂單管理考核** author sul…

1 數據結構算法:目錄

1 哈希應用-CSDN博客 2 雙指針-CSDN博客 3 滑動窗口-CSDN博客

記錄PC微信小程序支付無響應問題

項目結構是小程序webview 訪問h5&#xff0c;h5掉起支付時候&#xff0c;通過通信調用小程序的wx.requestPayment&#xff0c;完成支付。 測試發現&#xff0c;pc微信打開小程序&#xff0c;掉起微信支付無響應&#xff0c;也不進入任何回調 所以&#xff0c;此時支付必須跳轉…

qiankun如何實現在子應用打開不帶子應用前綴的新窗口頁面?

qiankun 是一個基于 single-spa 的微前端實現方案&#xff0c;用于將多個前端應用整合到同一個主應用中。在 qiankun 的架構中&#xff0c;子應用通常是通過 URL 的路徑來激活和掛載的。但是&#xff0c;在子應用中打開一個新窗口或標簽頁&#xff0c;并且這個頁面不是子應用的…

JDBC以及事務

1、JDBC是什么&#xff1f; JDBC是Java DataBase Connectivity&#xff08;Java語言鏈接數據庫&#xff09; 2、JDBC的本質 JDBC是一套接口&#xff0c;有調用者&#xff08;java工程師&#xff09;和實現者&#xff08;SUN公司&#xff09;&#xff08;實現類被稱為驅動&…

Android13系統導航欄添加音量加減鍵按鈕功能

不知道為什么拿到芯片原廠發布給我們的Android13系統源碼編譯后&#xff0c;導航欄沒有音量加減鍵&#xff0c;客戶有反饋這個問題&#xff0c;所以特意加了一下&#xff0c;修改記錄如下&#xff1a;frameworks/base目錄下 commit 9cb2244d61a237cab03c540bfcca6e4fac2bea2c …

Linux OpenGrok搭建

文章目錄 一、目的二、環境三、相關概念3.1 OpenGrok3.2 CTags3.3 Tomcat 四、OpenGrok搭建4.1 安裝jdk4.2 安裝ctags依賴4.3 安裝universal-ctags4.3.1 下載universal-ctags4.3.2 編譯&&安裝universal-ctags 4.4 安裝Tomcat4.4.1 下載&&解壓Tomcat4.4.2 啟動T…

繼續撿錢,每天幾百塊!

每日操作計劃&#xff1a; 標普信息科技(161128)&#xff0c;溢價8.5%&#xff0c;限購100&#xff0c;一拖七&#xff0c;單戶每天700*8.5%59元 印度基金LOF(164824)&#xff0c;溢價2.6%&#xff0c;限購100&#xff0c;一拖七&#xff0c;單戶每天700*2.6%18元 美元債LOF(…