Similarity Network Fusion(SNF)相似性网络融合

image.png

Similarity Network Fusion (SNF)是将多组学数据整合起来,优化可视化结果的一种方法。如下面将两种数据类型融合在一起的:同一组患者的mRNA表达和DNA甲基化。

安装:

if (packageVersion("devtools") < 1.6) {
  install.packages("devtools")
}
devtools::install_github("maxconway/SNFtool")
library(SNFtool)
data(Data1) # gene expression
data(Data2) # methylation

计算两个数据的距离矩阵

dist1 <- as.matrix(dist(Data1))
dist2 <- as.matrix(dist(Data2))

将距离矩阵转化成相似矩阵,在距离矩阵中,值越大代表越远,相似矩阵中,值越大代表越相似,转化所用的函数为affinityMatirix。afinityMatrix输入为三个参数:一个已经存在的距离矩阵,参数K和sigma。 K是相邻的数量,其中相邻外部的亲和力设置为零,内部的亲和力被归一化。 sigma是用于执行实际亲和力计算的缩放指数相似内核的超参数。 这两个参数都是凭经验选择的。

W1 <- affinityMatrix(dist1, K = 20, sigma = 0.5)
W2 <- affinityMatrix(dist2, K = 20, sigma = 0.5)

将聚类用热图可视化

displayClustersWithHeatmap(W1, spectralClustering(W1, K = 3))
image.png
displayClustersWithHeatmap(W2, spectralClustering(W2, K = 3))
image.png

将两个数据整合并可视化

W = SNF(list(W1,W2), 20, 20)
displayClustersWithHeatmap(W, spectralClustering(W, K = 3))
image.png

显然,数据整合之后的相关效果更好!

参考:
https://github.com/maxconway/SNFtool
https://arxiv.org/pdf/1708.07136.pdf

欢迎关注!

你可能感兴趣的:(Similarity Network Fusion(SNF)相似性网络融合)