刚好RNA-seq有很多图可以画啊,然后就想整理一下(主要是要做汇报了)要做很多很多图,以后来抄代码就好了
首先整体表达量的箱型图:
数据是gene-count的矩阵:
library(reShape2)
library(DESeq2)
library(ggplot)
library(pheatmap)
library(vennDiagram)
#工作路径什么的就不说了
data <- read.csv("gene_count.csv",header = T,row.names = 1,quote="")
data <- as.matrix(data)
#转换为长数据格式
data_m <- melt(data = data,value.name = "counts")
#筛选掉reads数为0的基因
expres.melt <- subset(data_m,counts >1)
#对counts数进行标准化
expres.melt$counts = log2(expres.melt$counts)
#绘图
ggplot(expres.melt, aes(x=variable,y=counts)) + geom_boxplot(aes(fill=variable))+labs(title = "expression levels in different samples",x="samples", y = "log2Counts", fill = "samples")
+theme(axis.text.x =element_text(angle=90)) #将横坐标翻转90°
箱线图.png
绘制样本相关性热图
#这是将样本进行过滤,对于我的十二个样本,过滤掉在三个样本中表达量均为0d 的基因
exprSet=data[apply(data,1,function(x)sum(x>1)>9),]
exprSet <- log2(exprSet+1)
M=cor(exprSet,method = "pearson")
pheatmap::pheatmap(M)
相关性.png
进行PCA分析之前不要用DESeq函数,看到前面加载了DESeq的包,都知道 DESeq会构建dds对象,那么构建了dds对象之后,先不使用DESeq函数,然后对其进行PCA分析聚类,看看三个重复是否能够聚到一起,也是能够查看样本之间的相关性
rld <- rlog(dds)
dta <- plotPCA(rld, returnData=TRUE)
percentVar <- round(100 * attr(dta, "percentVar"))
p<- ggplot(dta, aes(PC1, PC2, color=condition))
+ geom_point(size=3) +xlab(paste0("PC1: ",percentVar[1],"% variance")) +ylab(paste0("PC2: ",percentVar[2],"% variance"))
pca.png
看出来红色和紫色没有聚到一起,相关性分析发现他们也没有聚到一起。
上面还有venn图,主要是多组比较得到了差异基因以后,每一组比较得到一列差异基因,组成矩阵
五维的venn图(四位,三维,二维都可以,list减少就行)
DEGs <- read.csv("DEGs.csv",header = F,sep = ",")
p <- venn.diagram(list(A= DEGs$v1,B = DEGs$v2,
C = DEGs$v3, D = DEGs$v4,E = DEGs$v5)
,filename = "out.pdf",col = "transparent",
fill = c("dodgerblue", "goldenrod1", "darkorange1", "seagreen3", "orchid3"),alpha = 0.60)
图:
venn.png
还有什么火山图等等一系列。。。
网友评论