首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Similarity Network Fusion(SNF)相似性网络融合

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

作者头像
生信编程日常
发布2020-04-01 16:03:21
发布2020-04-01 16:03:21
4.2K0
举报

image.png

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

安装:

代码语言:javascript
复制
if (packageVersion("devtools") < 1.6) {
  install.packages("devtools")
}
devtools::install_github("maxconway/SNFtool")
代码语言:javascript
复制
library(SNFtool)
data(Data1) # gene expression
data(Data2) # methylation

计算两个数据的距离矩阵

代码语言:javascript
复制
dist1 <- as.matrix(dist(Data1))
dist2 <- as.matrix(dist(Data2))

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

代码语言:javascript
复制
W1 <- affinityMatrix(dist1, K = 20, sigma = 0.5)
W2 <- affinityMatrix(dist2, K = 20, sigma = 0.5)

将聚类用热图可视化

代码语言:javascript
复制
displayClustersWithHeatmap(W1, spectralClustering(W1, K = 3))

image.png

代码语言:javascript
复制
displayClustersWithHeatmap(W2, spectralClustering(W2, K = 3))

image.png

将两个数据整合并可视化

代码语言:javascript
复制
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

欢迎关注微信公众号:生信编程日常

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档