Omics 2.多组学相互作用Sankey复现赠送代码


文章复现:多组学微生物大分子相互作用 Fig.4d-Sankey Plot

赠送代码方式:关注桓峰基因发消息'ASD'获得下载链接!!


  • 文章基本信息

  • 标题: Integrative multi-omics analysis of autism spectrum disorder reveals unique microbial macromolecules interactions

  • 作者: Osama A,et al.

  • 期刊: J Adv Res

  • 发表时间: 2025 Jan

  • 影响因子: 11.4

  • DOI: doi: 10.1016/j.jare.2025.01.036

  • 文章复现: Fig.4d-Sankey Plot


  • 摘要

介绍:肠道微生物群的改变与自闭症谱系障碍(ASD)有关,但将这些变化与ASD病理生理联系起来的机制尚不清楚。

目标:本研究利用多组学方法,通过检测微生物多样性、细菌元蛋白、相关代谢途径和宿主蛋白质组,揭示肠道微生物群与ASD之间的联系机制。

方法:分析了30例重度ASD患儿和30例健康对照者的肠道微生物群。采用16S rRNA V3和V4测序评估微生物多样性。一种新的宏蛋白质组学管道识别细菌蛋白质,而非靶向代谢组学探索改变的代谢途径。最后,采用多组学整合将大分子变化与神经发育缺陷联系起来。

结果:与对照组相比,患有ASD的儿童肠道微生物群发生了显著变化,包括多样性和丰富度较低。tyzzerella与ASD组有独特的联系。微生物网络分析显示ASD的重新布线和稳定性降低。鉴定的主要超蛋白由双歧杆菌和克雷伯菌产生(如木糖异构酶和NADH过氧化物酶)。代谢组学分析鉴定出神经递质(如谷氨酸、多巴胺)、脂质和氨基酸能够穿过血脑屏障,可能有助于神经发育和免疫失调。宿主蛋白质组学分析显示,参与神经炎症和免疫调节的蛋白发生了改变,包括钾化因子(KLK1)和转甲状腺素(TTR)。最后,多组学整合支持单组学研究结果,并加强了肠道微生物群及其大分子产物可能与ASD相关症状有关的假设。

结论:多组学数据的整合提供了关键证据,表明肠道微生物群的改变和相关大分子的产生可能在ASD相关症状和合并症中发挥作用。关键细菌超蛋白和代谢物被确定为ASD神经和免疫失调的潜在贡献者,强调了治疗干预的可能新靶点。



软件包安装

if(!require(networkD3))
  install.packages ("htmlwidgets") 

if(!require(networkD3))
  install.packages ("networkD3")

数据读取

准备links

library(networkD3)
library(dplyr)
## 
## 载入程序包:'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
links <- readxl::read_excel("Sankey plot.xlsx", sheet = 4)

colnames(links) <- c("target", "source", "group")
links$value <- 1
links$group <- as.factor(links$group)
head(links)
## # A tibble: 6 × 4
##   target source               group                     value
##   <chr>  <chr>                <fct>                     <dbl>
## 1 araA   Metabolic pathways   type_Metabolic pathways       1
## 2 araA   Transporters         type_Transporters             1
## 3 atpE   Electron transporter type_Electron transporter     1
## 4 eno    Metabolic pathways   type_Metabolic pathways       1
## 5 eno    Signaling pathway    type_Signaling pathway        1
## 6 eno    Transporters         type_Transporters             1

准备nodes

# From these flows we need to create a node data frame: it lists every entities involved in the flow
nodes <- data.frame(
  name=c(as.character(links$source), as.character(links$target)) %>% 
    unique()
)


# With networkD3, connection must be provided using id, not using real name like in the links dataframe.. So we need to reformat it.
links$IDsource <- match(links$source, nodes$name)-1 
links$IDtarget <- match(links$target, nodes$name)-1


nodes$group <- as.factor(c("my_unique_group"))
head(nodes)
##                    name           group
## 1    Metabolic pathways my_unique_group
## 2          Transporters my_unique_group
## 3  Electron transporter my_unique_group
## 4     Signaling pathway my_unique_group
## 5 Amino acid metabolism my_unique_group
## 6    Membrane transport my_unique_group

配置颜色

# prepare color scale: I give one specific color for each node.

pathways <- links
pathways <- pathways$group
pathways <- unique(pathways)
pathways <- as.character(pathways)

pathways <- pathways[!pathways %in% ""]

pathways <- paste0("type_" , pathways)
pathways
##  [1] "type_type_Metabolic pathways"         
##  [2] "type_type_Transporters"               
##  [3] "type_type_Electron transporter"       
##  [4] "type_type_Signaling pathway"          
##  [5] "type_type_Amino acid metabolism"      
##  [6] "type_type_Membrane transport"         
##  [7] "type_type_ABC transporters"           
##  [8] "type_type_Regulation of transcription"
##  [9] "type_type_Translation"                
## [10] "type_type_Lipid metabolism"           
## [11] "type_NA"
my_color_color <- paste0("d3.scaleOrdinal() .domain([")

pathways <- paste0("'", pathways , "'")

pathways <- paste0(pathways,  collapse = ",")

my_color_color <- paste0(my_color_color , pathways , ",'my_unique_group'"  , "]) .range([" )
head(my_color_color)
## [1] "d3.scaleOrdinal() .domain(['type_type_Metabolic pathways','type_type_Transporters','type_type_Electron transporter','type_type_Signaling pathway','type_type_Amino acid metabolism','type_type_Membrane transport','type_type_ABC transporters','type_type_Regulation of transcription','type_type_Translation','type_type_Lipid metabolism','type_NA','my_unique_group']) .range(["
## install.packages("remotes")
#remotes::install_github("Nowosad/rcartocolor")
library(rcartocolor)

colors <- c(carto_pal(11, "Safe") , "grey")

colors <- paste0("'", colors , "'")
colors <- paste0(colors,  collapse = ",")

my_color_color <- paste0(my_color_color,  colors , "])" )
my_color_color
## [1] "d3.scaleOrdinal() .domain(['type_type_Metabolic pathways','type_type_Transporters','type_type_Electron transporter','type_type_Signaling pathway','type_type_Amino acid metabolism','type_type_Membrane transport','type_type_ABC transporters','type_type_Regulation of transcription','type_type_Translation','type_type_Lipid metabolism','type_NA','my_unique_group']) .range(['#88CCEE','#CC6677','#DDCC77','#117733','#332288','#AA4499','#44AA99','#999933','#882255','#661100','#888888','grey'])"

绘图sankey图

# Make the Network. I call my colour scale with the colourScale argument
p <- sankeyNetwork(Links = links, 
                   Nodes = nodes, 
                   Source = "IDsource", 
                   Target = "IDtarget", 
                   Value = "value", 
                   NodeID = "name", 
                   colourScale = my_color_color, 
                   sinksRight = T , 
                   fontSize = 17 , 
                   LinkGroup="group", 
                   NodeGroup="group")
## Links is a tbl_df. Converting to a plain data frame.

图形保存

library(htmlwidgets)
## 
## 载入程序包:'htmlwidgets'
## The following object is masked from 'package:networkD3':
## 
##     JS
saveNetwork(p, "sankey Final.html")

Reference

Osama A, et al. Integrative multi-omics analysis of autism spectrum disorder reveals unique microbial macromolecules interactions. J Adv Res. 2025 Jan 25:S2090-1232(25)00055-4.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值