繁体   English   中英

R 中的火山 Plot

[英]Volcano Plot in R

我有这行代码:

plot(gene_list$logFC, -log10(gene_list$P.Value),xlim=c(-10, 10), ylim=c(0, 15),xlab="log2 fold change", ylab="-log10 p-value")

这导致火山 plot; 但是我想找到一种方法,我可以用红色将点 >log(2) 和

编辑:好的,例如,我正在尝试执行以下操作来获取火山 plot:

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)

构造 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")

我想要做的是将 logFC 值 > 2 着色,并将 logFC 值 < -2 涂成蓝色

您需要使用col参数,应该这样做:

# first set up the plot
plot(gene_list$logFC, -log10(gene_list$P.Value),
     xlim=c(-10, 10), ylim=c(0, 15),
     xlab="log2 fold change", ylab="-log10 p-value",
     type="n")
# then add the points
sel <- which(gene_list$logFD<=log(2)) # or whatever you want to use
points(gene_list[sel,"logFC"], -log10(gene_list[sel,"P.value"]),col="black")
sel <- which(gene_list$logFD>log(2)) # or whatever you want to use
points(gene_list[sel,"logFC"], -log10(gene_list[sel,"P.value"]),col="red")

您需要添加一个阈值列,报告 logFC 值 > 2、logFC 值 < -2 以及介于两者之间的值的标签:

mydata<-mydata%>%mutate(threshold = ifelse(logFC >= 2,"A", ifelse(logFC<=-2 , "B", "C")))

接下来为火山 plot 编码,并通过geom_pointscale_colour_manual分配颜色。 B 是 label for logFC<=-2 是蓝色的

ggplot(mydata, aes(x=logFC, y=log10)) +
geom_point(aes(colour = threshold), size=2.5) +
scale_colour_manual(values = c("A"= "yellow", "B"="blue",  "C"= "black"))

您将需要创建另一列,然后插入一些文本,比如说上调、下调。 然后根据 logFC 的值设置值

de_genes$diffexpressed <- "NO"
de_genes$diffexpressed[de_genes$logFC>0.58]<-"UP"
de_genes$diffexpressed[de_genes$logFC<0.58]<-"DOWN"

然后使用 ggplot 使用带有标签的列生成 plot 和 label 它们

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM