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

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

作者: 一起实验网YQ | 来源:发表于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