介绍
在代谢物网络分析领域,研究者采用斯皮尔曼系数来定量评估代谢物之间的相关性。该系数作为一种有效的非参数统计工具,能够揭示代谢物间潜在的关联模式,不受它们分布特性的限制。通过计算所有代谢物配对间的斯皮尔曼系数,研究者能够构建出反映代谢物相互关系的网络。
进一步地,基于特定的分组标准,例如不同的生物学状态或样本类别,研究者能够分别构建各个分组的代谢物网络。通过细致地比较这些网络,可以观察到代谢物相互作用模式在不同分组间的变化,进而识别特定条件下代谢途径的调控差异或代谢物的异常表达行为。
此外,对两个代谢网络进行差异性分析,有助于深入理解不同生物学条件下代谢过程的动态变化,为揭示代谢调控机制提供重要线索。这种分析方法不仅增强了我们对代谢网络结构和功能的理解,也为代谢相关疾病的诊断和治疗提供了新的视角。
加载R包
导入所需要的R包,在导入前需要用户自己安装。
library(tidyverse)
library(SummarizedExperiment)
library(patchwork)
# rm(list = ls())
options(stringsAsFactors = F)
options(future.globals.maxSize = 1000 * 1024^2)
grp_names <- c("None", "Mild", "Moderate", "Severe")
grp_colors <- c("#7DD06F", "#844081", "#688EC1", "#C17E73")
导入数据
所需的数据集来自数据预处理和差异分析。请确保在后续的数据处理过程中正确配置文件路径,以便顺利访问和使用这些数据。
百度网盘链接: https://pan.baidu.com/s/16aqVYAnjQAqHEV_Ofv-wGQ
提取码: 请关注WX公zhong号_生信学习者_后台发送 代谢组数据 获取提取码
se_norm <- readRDS("./data/Zeybel-2022/result/QC/se_norm.RDS")
se_norm
datSignif <- data.table::fread("./data/Zeybel-2022/result/DA/Metabolites_FC_VIP_ttest.tsv")
class: SummarizedExperiment
dim: 671 55
metadata(0):
assays(1): ''
rownames(671): Chem_100002945 Chem_100002356 ... Chem_1004 Chem_100015836
rowData names(13): metabolitesID BIOCHEMICAL ... KEGG SampleIDHMDBID
colnames(55): P101001 P101003 ... P101095 P101096
colData names(47): PatientID Gender ... Right_leg_fat_free_mass Right_leg_total_body_water
数据预处理
根据LiverFatClass
("None vs Severe")筛选差异的代谢物以及对应的分组指标合并成数据集。
筛选
LiverFatClass
("None vs Severe")差异的代谢物(t-test: AdjustedPvalue; RawData: Log2FoldChange)
signif_meta <- datSignif %>%
dplyr::filter(AdjustedPvalue < 0.5) %>%
dplyr::filter(abs(Log2FoldChange) > 0)
metadata <- SummarizedExperiment::colData(se_norm) %>%
data.frame()
profile <- SummarizedExperiment::assay(se_norm) %>%
data.frame()
mdat <- metadata %>%
dplyr::filter(LiverFatClass %in% c("None", "Severe")) %>%
dplyr::select(all_of(c("PatientID", "LiverFatClass"))) %>%
dplyr::inner_join(profile %>%
t() %>%
as.data.frame() %>%
dplyr::select(all_of(signif_meta$metabolitesID)) %>%
tibble::rownames_to_column("PatientID"),
by = "PatientID") %>%
tibble::column_to_rownames("PatientID")
head(mdat[, 1:6])
LiverFatClass | Chem_100015755 | Chem_503 | |
---|---|---|---|
P101001 | Severe | 0.001518689 | 0.001777131 |
P101003 | None | 0.001485079 | 0.001791011 |
P101007 | Severe | 0.001529529 | 0.001746805 |
P101011 | Severe | 0.001527800 | 0.001763077 |
P101012 | Severe | 0.001502739 | 0.001766207 |
P101021 | None | 0.001480100 | 0.001779325 |