降维用于以更易于处理的形式表示高维数据。它通常用于RNA-seq分析,其中每个样本都有数万个基因表达值的特征,以在二维平面上可视化样本,点之间的距离表示相似性和不相似性。对于RNA-seq,使用的数据通常是基因计数,对于甲基化,通常有两个相关的计数矩阵,甲基化碱基计数和非甲基化碱基计数。来自这两个矩阵的信息可以像Chen等人2018年所做的那样,通过取对数甲基化比率来组合。
假设这个包的用户已经将数据导入到“导入数据”一节中描述的gzip tabix格式。在此基础上,需要进一步处理以创建用于降维的log-甲基化比率矩阵。也就是说,我们通过BSseq格式,因为它很容易被转换成所需的矩阵,并且它本身对各种其他分析有用。
库(NanoMethViz) #导入示例NanoMethResult对象nmr <- load_example_nanomethresult() nmr
##槽位“methy”:## [1]"/tmp/RtmpAkSOIR/Rinst212fa6351a670c/NanoMethViz/methy_sub - set.tsv。bgz" ## ## Slot "samples": ## # A tibble: 6 × 2 ## sample group ## ## 1 B6Cast_Prom_1_bl6 bl6 ## 2 B6Cast_Prom_1_cast cast ## 3 B6Cast_Prom_2_bl6 bl6 ## 4 B6Cast_Prom_2_cast cast ## 5 B6Cast_Prom_3_bl6 bl6 ## 6 B6Cast_Prom_3_cast cast ## ## Slot "exons": ## # A tibble:303×7 # # gene_id对应链开始结束transcript_id符号# # <空空的> <空空的> <空空的> < int > < int > < int > < >从而向# # 12189 chr11 - 101551769 101551879 92234 Brca1 # # 2 12189 chr11 - 101551879 101549113 92234 Brca1 # # 3 12189 chr11 - 101549113 101540034 92234 Brca1 # # 4 12189 chr11 - 101540034 101535605 92234 Brca1 # # 5 12189 chr11 - 101535605 101534027 92234 Brca1 # # 6 12189 chr11 - 101534027 101532159 92234 Brca1 # # 7 12189 chr11 - 101532159 101531094 92234 Brca1 # # 8 12189 chr11 - 101531094101529836 92234 Brca1 ## 9 12189 chr11 - 101528001 101528077 92234 Brca1 ## 10 12189 chr11 - 101523325 101526639 92234 Brca1 ## #
#转换为bsseq BSS <-甲基to_bsseq(nmr) BSS
##一个“BSseq”类型的对象,包含## 4778个甲基化位点## 6个样本##尚未平滑##所有分析都在内存中
我们可以生成基于单个甲基化位点或计算基因或其他特征类型的对数甲基化比。对特征进行聚合通常会提供更稳定和稳健的结果,这里我们将使用基因。
#创建外显子注释gene_anno <- exons_to_genes(NanoMethViz::exons(nmr)) #创建log-甲基化-比率矩阵lmr <- bsseq_to_log_methyl_ratio (bss, regions = gene_anno)
NanoMethViz目前提供了两个选项,一个是基于MDS的limma实现的MDS图,另一个是使用BiocSingular的PCA图。
plot_mds(lmr) + ggtitle("MDS Plot")
plot_pca(lmr) + ggtitle(“PCA图”)
附加的着色和标记选项可以通过参数提供给任意一个函数。可以使用典型的ggplot2命令进行进一步的定制。
new_labels <- gsub("B6Cast_Prom_", "", colnames(lmr) ") new_labels <- gsub("(\\d)_(.*)", "\\2 \1", new_labels) groups <- gsub(" \\d", "", new_labels ") plot_mds(lmr, labels = new_labels, groups = groups) + ggtitle("MDS Plot") + scale_colour_brewer(调色板= "Set1")