在上一篇文章中,我们已经对基因进行了差异分析,接下来我们根据结果中的FDR值和FC值筛选出上调基因和下调基因(上调基因:基因转录成mRNA时受到正向调控,促进表达;下调基因:转录成mRNA时受到抑制,表达量减少),并绘制成火山图与热图。
所用工具:R语言;
所需要包:ggplot2、pheatmap。
第一部分:火山图
首先,加载所需的包并导入数据:
library(ggplot2)diff_stat
其次&#xff0c;筛选上调趋势数据和下调趋势数据&#xff0c;对于Fold Change值和p值阈值的选择&#xff0c;还需在实际的分析中视情况而定&#xff0c;本文以|log2FC| ≥2以及FDR p-value <0.05作为差异OTUs的判断依据&#xff1a;
diff_stat[which(diff_stat$FDR <0.05 & diff_stat$logFC >&#61; 2),&#39;diff&#39;] diff_stat[which(diff_stat$FDR <0.05 & diff_stat$logFC <&#61; -2),&#39;diff&#39;] diff_stat[!(diff_stat$diff %in% c(&#39;up&#39;, &#39;dowm&#39;)),&#39;diff&#39;]
最后&#xff0c;我们根据判断依据&#xff0c;将OTUs划分为“富集”(up)、“下降”(down)以及“无差异”(no)三种水平。然后&#xff0c;在作图时根据预先划分的OTUs差异水平对点分别着色。火山图实质上就是一种散点图&#xff0c;ggplot2作为一个非常好用的作图R包&#xff0c;我们直接用ggplot2进行绘制&#xff1a;
p1 geom_point(aes(color &#61; diff), size &#61; 0.5) &#43; scale_colour_manual(limits &#61; c(&#39;up&#39;, &#39;dowm&#39;, &#39;no&#39;), values &#61; c(&#39;blue&#39;, &#39;red&#39;, &#39;gray40&#39;), labels &#61; c(&#39;Enriched OTUs&#39;, &#39;Depleted OTUs&#39;, &#39;No diff OTUs&#39;)) &#43; labs(x &#61; &#39;log2 Fold Change&#39;, y &#61; &#39;-log10 FDR p-value&#39;)
我们可以对图进行美化&#xff0c;修改背景颜色、添加分界线、调整标签位置&#xff1a;
p1 theme(panel.grid.major &#61; element_line(color &#61; &#39;gray&#39;, size &#61; 0.2), panel.background &#61; element_rect(color &#61; &#39;black&#39;, fill &#61; &#39;transparent&#39;)) &#43; geom_vline(xintercept &#61; c(-2, 2), color &#61; &#39;gray&#39;, linetype &#61; 2, size &#61; 0.5) &#43; geom_hline(yintercept &#61; -log10(0.05), color &#61; &#39;gray&#39;, linetype &#61; 2, size &#61; 0.5) &#43; theme(legend.title &#61; element_blank(), legend.key &#61; element_rect(fill &#61; &#39;transparent&#39;), legend.background &#61; element_rect(fill &#61; &#39;transparent&#39;), legend.position &#61; c(0.2, 0.9))
知识笔记&#xff1a;
差异分析是一个典型的多重假设检验过程&#xff0c;对于多重假设检验&#xff0c;单次检验中差异显著基因的假阳性率(p-value较小)可能会较大&#xff0c;而q-value和FDR值较常见的BH校正方法得到的FDR值而言&#xff0c;改进了其对假阳性估计的保守性。
即q-value相比于p-value更加严格&#xff0c;当差异基因结果较少时&#xff0c;可以退而求其次看p-value。Fold ChangeFold Change表示实验组比上对照组的差异表达倍数&#xff0c;一般表达相差2倍以上是有意义的&#xff0c;放宽要求1.5倍或者1.2倍也可以接受。
第二部分&#xff1a;热图
首先&#xff0c;加载所需的包并导入数据&#xff1a;
library(pheatmap)sign.gene
其次&#xff0c;筛选数据&#xff1a;
sign.gene.FDR sign.gene.fc 2sign.gene.all sign.gene.real
如果样本中存在缺失值(例如&#xff1a;NA)&#xff0c;我们可以用na.omit()进行删除&#xff1a;
sign.gene.real
最后&#xff0c;绘制热图&#xff0c;并用基因标签代替基因ID作为热图的行标签&#xff1a;
pheatmap(log2(sign.gene.real[,3:85]&#43;1), labels_row &#61; sign.gene$Symbol)
也可以根据各自的需求进行美化&#xff1a;
pheatmap(log2(sign.gene.real[,3:85]&#43;1), labels_row &#61; sign.gene$Symbol, main&#61;"Heatmap", color &#61; colorRampPalette(c("blue","white","red"))(256))
说明&#xff1a;
color参数中的256是指色阶值&#xff0c;也可以理解为色阶分辨率&#xff0c;数值越大&#xff0c;热图上颜色越丰富&#xff0c;一般设置为256。
知识笔记&#xff1a;
热图又称为聚类图&#xff0c;可以衡量样本或基因之间表达的相似性。
如本文所示的热图中&#xff0c;横坐标代表样本聚类&#xff0c;一列代表一个样本&#xff0c;聚类基于样本间基因表达的相似性&#xff0c;样本间基因表达越接近&#xff0c;靠的越近&#xff0c;以此类推。
纵坐标代表基因聚类&#xff0c;一行代表一个基因&#xff0c;聚类基于基因在样本中表达的相似性&#xff0c;基因在样本中表达越接近&#xff0c;靠的越近&#xff0c;以此类推。
色阶代表基因表达丰度&#xff0c;越红代表上调得越明显&#xff0c;越蓝代表下调得越明显。
总结
从热图上可以看出&#xff0c;所筛选出的差异基因并没有很好的区分出突变组和未突变组&#xff0c;所以在基因的筛选上&#xff0c;或者差异分析模型的选择上&#xff0c;需进行进一步的调整。
参考文章&#xff1a;
https://blog.csdn.net/u012325865/article/details/87344725
http://blog.sciencenet.cn/blog-3406804-1188483.html
https://www.jianshu.com/p/f9040ca31f46
相关链接&#xff1a;
TCGA数据库的利用(一)—数据下载&#xff01;
TCGA数据库的利用(二)—— 数据处理&#xff01;
TCGA数据库的利用(三)——基因注释&#xff01;
运用limma对基因进行差异分析
本文所用数据、代码均已上传至百度云&#xff0c;关注公众号回复“火山图&热图”即可获得