美文网首页WGCNA分析
跟着细腻小白学WGCNA(2)|生信

跟着细腻小白学WGCNA(2)|生信

作者: a4eb72c70421 | 来源:发表于2020-07-27 15:12 被阅读0次

细腻小白上一节我分享了学习 WGCNA的第一部分,主要介绍了WGCNA以及第一部分的数据预处理。今天我将继续学习学WGCNA的第二部分,即数据的处理,并介绍解读代码。

首先,读取数据。(回顾一下,这是另一个数据的“长相”)

allTraits = read.csv("D:/practice/test/clin_data.csv")

datTraits = allTraits[match(rownames(datExpr),allTraits$flavor_name),]

rownames(datTraits) =  datTraits[,1]

datTraits = datTraits[,-1]

1. 读取数据;

2. 将这个数据和上一个数据表,按照flavor_name匹配在一起,方便后面的处理;

3. 第一列作为行名;

4. 把多出的重复的第一列去掉。

已经删去不需要的部分,再次聚类检查数据。

sampleTree2 = hclust(dist(datExpr), method = "average") 

traitColors = numbers2colors(datTraits, signed = FALSE)

#pdf(file = 'D:/practice/test/re_clust.pdf',width = 12,height = 8)

plotDendroAndColors(sampleTree2,traitColors,groupLabels = names(datTraits),main='Sample dendrogram and trait heatmap')

#dev.off()

1. 使用平均的算法对样本聚类;

2. 定义出将要绘制热图中的颜色分组;

3. 绘制出聚类热图,检查样本的分组信息;

4. #根据自己需要,使用pdf的函数。

绘制出样本聚类图以及临床特征热图

图如下,上半部分就是样本的聚类图,标注为样本名;下半部分为临床数据特征热图。

对数据完成了基本的处理,我们就准备开始仔细分析。

在分析前,我还是想要简单讲一下WGCNA的weighted部分!!加权,给了这个网络一个权重,这个权重是什么?原理是什么?

(不会太难的,都是用白话和自己的理解,希望看完你们也有自己的理解,欢迎讨论)

加权是指对相关性值(也就是网络的边)进行幂运算,幂次的值就是软阈值 (这里是指,这个边界值/阈值是可以根据计算的结果来调整的,不是硬要求)。

无向网络的边属性计算方式为 abs(cor(geneX, geneY)) ^ power

这种处理方式强化了强相关,弱化了弱相关或负相关,使得相关性数值更符合无标度网络特征,更具有生物意义。如果没有合适的阈值power,一般是由于部分样品与其它样品因为某种原因差别太大导致的,可根据具体问题移除部分样品或查看后面的经验值。这也是我们前面为何搞了那么多步的数据检查。

所以,看了上面这一段,也就明白了加权从何而来,以及我们接下来要进行的步骤。

把软阈值/幂的值确定下来

powers=c(c(1:10),seq(from = 12, to = 20, by = 2))

sft = pickSoftThreshold(datExpr, powerVector = powers, verbose = 5)

设置阈值向量,并且使用网络拓扑分析函数


sizeGrWindow(9, 5) 

par(mfrow = c(1,2))

cex1 = 0.9

#pdf(file = 'D:/practice/test/power.pdf',width = 12,height = 8)

plot(sft$fitIndices[,1],

     -sign(sft$fitIndices[,3])*sft$fitIndices[,2], 

     xlab="Soft Threshold (power)",

     ylab="Scale Free Topology Model Fit,signed R^2",

     type="n", 

     main = paste("Scale independence"))

text(sft$fitIndices[,1],

     -sign(sft$fitIndices[,3])*sft$fitIndices[,2], 

     labels=powers,cex=cex1,col="red")

abline(h=0.90,col="red") 

软阈值β与无尺度网络评价系数的关系

(说成“人话”,就是不同软阈值出来的网络是不一样,由此会影响网络的评价系数/评估网络的系数)


plot(sft$fitIndices[,1], 

     sft$fitIndices[,5], 

     xlab="Soft Threshold (power)",

     ylab="Mean Connectivity", 

     type="n", 

     main = paste("Mean connectivity")) 

text(sft$fitIndices[,1], 

     sft$fitIndices[,5], 

     labels=powers, 

     cex=cex1,col="red")

#dev.off()

软阈值β与平局连通性的关系

(连通性就是网络的边,探讨的就是软阈值对网络边的影响)

绘制出的结果如下图

从左图中可以看到,6开始出现一个明显地变平缓的趋势,所以暂定软阈值为6;再观察右边的图,可以发现在6、7左右出现一个显然的斜率(看绝对值)变小的趋势。因此评估出来,6是一个拐点处,即选择作为软阈值/幂次的值。

到此为止,我们的所有前期工作就完成了。

下一期,我们将彻底结束剩余的分析部分。

每周进步一点点,如果你有任何的建议和疑问,都欢迎你积极地提出,我们会尽全力改进和回答的~~~


(完)

联系我们

官方网页 :https://www.yiqishiyan.com/index

咨询客服 :Yqsyw12345 (微信号)

相关文章

网友评论

    本文标题:跟着细腻小白学WGCNA(2)|生信

    本文链接:https://www.haomeiwen.com/subject/frpzlktx.html