前面介绍了怎么一行命令完成RNAseq差异分析加作图,那如果我们已经有自己重点关注的基因,并且想把这些基因在差异结果里展示出来怎么弄呢?
今天再来介绍一下,做完差异分析之后怎么在差异基因热图中标记自己关注的基因!
一 、准备2个文件:
1、差异基因表达文件:diff_gene_exp.txt
如果是已经跟着做完前面分享的RNAseq差异基因分析,可以直接把差异基因的表达值从总的表达文件中提取出来,生成差异表达文件。
差异表达文件格式如下:
2、需要标记的基因name文件:gene_name.txt
二、运行代码
1、这次需要安装R包ComplexHeatmap和circlize。安装命令如下
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("ComplexHeatmap")
install.packages("circlize")
接着将下面代码负责另存为heatmap_mark_gene.r:
library("ComplexHeatmap")
library("circlize")
#读取文件
diff_exp = read.table("diff_gene_exp.txt",header = T, sep="\t",row.names= 1,stringsAsFactors=F)
diff_exp=as.matrix(diff_exp)
#进行zscore归一化
diff_exp_scaled = t(apply(diff_exp, 1, scale))
colnames(diff_exp_scaled) = colnames(diff_exp)
#需要标记的基因文件
genes = as.vector(t(read.table("gene_name.txt")))
gene_pos = which(rownames(diff_exp) %in% genes)
ha = rowAnnotation(foo = anno_mark(at = gene_pos, labels = genes))
m=round(max(abs(diff_exp_scaled)))
##画热图
pdf("heatmap_mark_gene.pdf",width=8,height=7,onefile=F)
Heatmap(diff_exp_scaled, colorRamp2(c(-m,0,m),c("blue", "#EEEEEE", "red")),
right_annotation = ha,name = "Z-score",show_row_names =FALSE)
dev.off();
2、将前面准备的2个文件和代码放到同一个文件夹,如果自己的文件名跟前面列的文件名不一致需要先改成一样。
3、代码运行
方法一:RStudio直接运行整个heatmap_mark_gene.r文件夹
方法二:打开DOS运行窗口或者linux服务器窗口,运行命令:
Rscript heatmap_mark_gene.r
三、结果展示
今天的技能get到了吗?学完这个内容是不是突然发现,这么高大上的图自己也能轻松的画出来呢!
欢迎关注简生信微信公众号,后期有更多的干货等着你哦!