2301_78011868 2024-06-16 18:46 采纳率: 12.1%
浏览 10

现有差异基因数据,该如何绘制出如下的图,有R语言

下图为与CD相关的DEGs的KEGG富集分析;这些基因通过彩色丝带与其分配的通路项相连,并根据观察到的 log10 p 值进行排序,该值以所选基因旁边的红绿色方块的降序强度显示。
现有差异基因数据,该如何绘制出如下的图,有R语言

img

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-06-16 18:46
    关注

    引自免费微信小程序:皆我百晓生

    要绘制您描述的图表,我们可以使用R语言中的ggplot2包和其他相关包来实现。这个图表看起来像是一个结合了火山图元素和路径富集分析的复合图表,但更侧重于展示基因与KEGG通路的关系以及它们的显著性(通过-log10(p-value)表示)。下面是一个详细的步骤指南,包括示例代码,用于创建类似的图表。

    步骤 1: 准备数据

    首先,你需要将你的差异表达基因(DEGs)数据和KEGG富集结果整理成适合绘图的数据格式。假设你的数据是这样的结构:

    # 创建示例数据框
    gene_data <- data.frame(
      Gene = c("CXCL5", "IL1B", "CXCL8", "CXCL2", "CXCL1", "CXCL10", "CXCL11", "CXCL9", "ICAM1", "TNFSF13B", "CXCR2"),
      -log10_pval = c(8, 7.5, 7, 6.5, 6, 5.5, 5, 4.5, 4, 3.5, 3),
      Pathway = c("IL-17 signaling pathway", "Rheumatoid arthritis", "Staphylococcus aureus infection", "Viral protein interaction with cytokine and cytokine receptor", "TNF signaling pathway", "Cytokine-cytokine receptor interaction", "Chemokine signaling pathway", "NF-kappa B signaling pathway", "Toll-like receptor signaling pathway", "Complement and coagulation cascades", "VWF")
    )
    

    步骤 2: 安装和加载必要的R包

    确保你已经安装了ggplot2dplyrtidyr包。如果没有,可以使用以下命令安装:

    install.packages(c("ggplot2", "dplyr", "tidyr"))
    

    然后加载这些包:

    library(ggplot2)
    library(dplyr)
    library(tidyr)
    

    步骤 3: 数据预处理

    为了让数据更适合绘图,我们需要将数据整理为长格式:

    gene_data_long <- gene_data %>%
      pivot_longer(cols = c("-log10_pval"), names_to = "Measure", values_to = "Value") %>%
      mutate(Pathway = factor(Pathway, levels = unique(Pathway)), # 确保路径按顺序排列
             Gene = factor(Gene, levels = unique(Gene)))        # 确保基因按顺序排列
    

    步骤 4: 绘制图表

    现在我们可以使用ggplot2来绘制图表。我们将创建一个散点图,其中基因和路径分别在x轴和y轴上,而-log10(p-value)则由颜色表示。

    ggplot(gene_data_long, aes(x = Gene, y = Pathway)) +
      geom_point(aes(color = Value), size = 5) +     # 点大小可以根据需要调整
      scale_color_gradient(low = "green", high = "red", name = "-log10(p-value)") +   # 颜色梯度
      theme_minimal() +
      theme(axis.text.x = element_text(angle = 90, hjust = 1),  # 调整x轴标签的角度和对齐方式
            plot.title = element_text(hjust = 0.5),            # 图表标题居中
            axis.title.x = element_blank(),                    # 移除x轴标题
            axis.title.y = element_blank(),                    # 移除y轴标题
            legend.position = "bottom") +                      # 将图例放在底部
      labs(title = "KEGG Pathway Enrichment Analysis for DEGs related to CD",
           x = NULL,
           y = NULL) +
      guides(color = guide_colorbar(title.position = "top"))  # 调整颜色条位置
    

    这将生成一个图表,其中基因和KEGG通路之间的关系以点的形式显示,颜色表示-log10(p-value)的强度。由于原图中还涉及到路径与基因之间的连线,这部分可能需要额外的逻辑来确定连接线的位置和样式,这里简化处理,仅展示了点和颜色编码的部分。

    注意事项

    • 本示例代码是基于假定的数据集,实际应用时需要根据你的具体数据调整。
    • 如果你的数据量很大,可能需要进一步调整点的大小和透明度,以防止图表过于拥挤。
    • 对于复杂的图表设计,如添加特定的连接线,可能需要更详细的代码来控制每个元素的位置和样式。
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月16日