嗨,我是R的新手,我正在努力修改我在互联网上找到的R代码,并学习如何制作火山图。
此代码是使用ggplot2制作火山图,我遇到的问题是我想为上调和下调蛋白着色,而不是将蛋白着色到指定阈值以上。我使用的代码如下:
install.packages("ggplot2")
gene_list <- read.table("/Users/Javi/Desktop/gene_list.csv", header=T, sep=",")
require(ggplot2)
##Highlight genes that have an absolute fold change > 2 and a p-value < 0.05
gene_list$threshold = as.factor(abs(gene_list$logFC) > 2 & gene_list$P.Value < 0.05)
##Construct the plot object
g = ggplot(data=gene_list, aes(x=logFC, y=-log10(P.Value), colour=my_palette)) +
geom_point(alpha=0.4, size=5) +
theme(legend.position = "none") +
xlim(c(-10, 10)) + ylim(c(0, 15)) +
xlab("log2 fold change") + ylab("-log10 p-value")
g
我想做的是用红色(例如)logFC值&gt;来着色。以及蓝色的logFC值<1。 -1.3
我使用的csv文件只是一个例子,可能是这样的:
logFC P.Value
a 2 0.04
b 5 0.04
c 8 0.04
d 4 0.000005
e 7 0.01
f 1 0.04
g -6 0.0001
h -8 0.04
非常感谢您的帮助。 干杯 哈维
答案 0 :(得分:1)
在数据框上创建一个新的颜色标记:
gene_list$color_flag <- ifelse(gene_list$logFC > 1.3, 1, ifelse(gene_list$logFC < -1.3, -1, 0))
然后将fill = color_flag
添加到您的aes
。