Upset图的原理
- 基本概念
- Upset 图是一种用于可视化集合之间交集情况的工具,它主要用于展示多个集合之间的相交关系和元素的分布。这种图在分析基因集合、物品集合等多种数据场景下非常有用,尤其是当你需要同时考虑多个集合组合的交集情况时。
- 例如,假设有四个不同的基因集合,分别代表在不同实验条件下差异表达的基因。Upset 图可以清晰地展示这些基因集合之间的交集,如哪些基因是在所有四个条件下都差异表达的,哪些基因是仅在其中两个条件下差异表达的等。
- 原理细节
- 集合的表示与转换
- Upset 图将多个集合的数据转换为一种适合可视化交集的格式。首先,每个集合中的元素(如基因、物品等)被视为独立的个体。对于多个集合,通过计算它们的交集矩阵来描述集合之间的相交关系。
- 交集矩阵的行代表不同的交集组合,列代表各个原始集合。矩阵中的元素表示相应交集组合是否包含某个原始集合中的元素。例如,如果有三个集合 A、B、C,交集矩阵的一行可能表示 “A 和 B 的交集但不包含 C”,该行对应于集合 A 和集合 B 列的元素为 1,对应集合 C 列的元素为 0。
- 可视化布局
- 在 Upset 图的布局中,最上面通常是一个条形图,用于展示每个交集组合中元素的数量。条形的长度与交集中元素的数量成正比,这使得用户可以直观地比较不同交集组合的大小。
- 下方是一个矩阵或类似的结构,用于展示交集组合与原始集合之间的关系。这个矩阵通过点或其他标记来表示交集组合是否包含原始集合中的元素。例如,如果一个交集组合包含某个原始集合中的元素,就在对应的位置显示一个点。
- 此外,为了方便用户理解,Upset 图还会对集合和交集组合进行标注,标注通常包括集合的名称和交集组合所包含的集合列表等信息。
- 集合的表示与转换
Upset图不仅可以展示差异基因,也能展示富集通路。
Upset图对KEGG结果取交集
# Remove all objects from the workspace
rm(list = ls())
# Load the UpSetR library
library(UpSetR)
# Read the data from the files. Make sure the file paths are correct.
# Also, consider using read.table if the files are not tab-delimited.
k1 = read.delim("CS-vs-CT.path.xls", header = T)
k2 = read.delim("FS-vs-FT.path.xls", header = T)
# Check the column names of k1
head(k1)
# KEGG_A_class KEGG_B_class
# 1 Environmental Information Processing Signaling molecules and interaction
# 2 Organismal Systems Development and regeneration
# 3 Organismal Systems Immune system
# 4 Environmental Information Processing Signal transduction
# 5 Environmental Information Processing Signaling molecules and interaction
# 6 Human Diseases Infectious disease: parasitic
# Pathway
# 1 Cytokine-cytokine receptor interaction
# 2 Osteoclast differentiation
# 3 IL-17 signaling pathway
# 4 TNF signaling pathway
# 5 Viral protein interaction with cytokine and cytokine receptor
# 6 Malaria
# Create a list of the Pathway columns from k1 and k2
k = list(k1_Pathway = k1$Pathway, k2_Pathway = k2$Pathway)
# Create the UpSet plot with more customization
upset(fromList(k),
order.by = "freq",
main.bar.color = "gray",
matrix.color = "black",
mainbar.y.label = "Intersection Size",
sets.bar.color = "lightblue",
text.scale = c(1.3, 1.3, 1, 1, 2, 0.75),
number.angles = 30,
point.size = 3.5,
line.size = 2
)
对差异基因进行上下调区分后分别进行富集分析or所有差异基因进行富集分析
将差异基因分为上调和下调基因后分别进行富集分析,可以更清晰地揭示生物过程在不同调节方向上的变化。分开的富集分析结果在解释时更加直观。对于我们来说,能够直接聚焦于上调或下调基因所涉及的特定生物学过程和通路,便于发现关键的基因集和功能变化。单独分析上调和下调基因可能会忽略它们之间的协同作用。在许多生物学过程中,基因的上调和下调是相互关联的,共同调节细胞功能或生物体的表型。将所有差异基因一起进行富集分析则可以考虑基因表达变化的整体情况。这种方法适用于研究基因表达变化的总体趋势和对生物系统的综合影响。
PREVIOUSPCA降维原理以及用R绘制PCA图
NEXTWGCNA的基本概念及简单应用