在进行WGCNA分析中,确定软阈值并给基因之间的相关性,加上一个幂次后,使得这种基因之间的连接度符合幂次分布。那么如何确定,或者通过统计学的方式检验,相关的分布符合幂律分布呢?
以【WGCNA学习笔记】无尺度分布和软阈值中的计算为例,详细分解一下如何检验是否符合幂律分布。
原始计算
power <- 8
ADJ=abs(cor(datExpr,use = 'p'))^power
其中表达矩阵是行为样本名,列为基因名
这样,将相关性矩阵绝对值之后,都给了一个8次幂,结果如下
> dim(ADJ)
[1] 3600 3600
> ADJ[1:5,1:5]
MMT00000044 MMT00000046 MMT00000051 MMT00000076 MMT00000080
MMT00000044 1.000000e+00 4.322615e-12 5.724787e-09 1.392642e-05 1.195759e-07
MMT00000046 4.322615e-12 1.000000e+00 1.022965e-02 5.504572e-13 2.455594e-10
MMT00000051 5.724787e-09 1.022965e-02 1.000000e+00 1.967975e-10 7.471142e-11
MMT00000076 1.392642e-05 5.504572e-13 1.967975e-10 1.000000e+00 8.623133e-14
MMT00000080 1.195759e-07 2.455594e-10 7.471142e-11 8.623133e-14 1.000000e+00
然后对每一列的基因进行求和,得到的就是这个基因跟其他基因相关性之和。减去1是排除了自身。
k=apply(ADJ,2,sum) -1
hist(k)
结果如下
> k[1:10]
MMT00000044 MMT00000046 MMT00000051 MMT00000076 MMT00000080 MMT00000102 MMT00000149
0.0814313 15.6397241 10.3721409 0.5134981 11.9155349 3.1397842 16.5059843
MMT00000159 MMT00000207 MMT00000212
15.6716271 22.4635281 1.0466731
横坐标是基因的连接度,纵坐标是拥有该连接点数的频率,大体看上去,是头大尾巴长的幂律分布。
使用R验证数据符合幂律分布
那么怎么验证一个数据分布符合幂律分布
image.png图片来自无标度网络幂律分布
从这幅图可以看出,如果一个数据分布符合幂律分布,那么其自变量的对数和因变量的对数是呈现线性关系的。
这个时候,就将问题转换为,是否符合线性关系的假设检验
线性关系的假设检验
先把之前的数据进行整理
cut1=cut(k,20)
#计算每个区间的平均值
binned.k=tapply(k,cut1,mean)
binned.k
# 计算每个区间频率
freq1=tapply(k,cut1,length)/length(k)
freq1
这个时候就是要看区间平均值和对数和每个区间的频率的对数是否为线性关系
也就是,和是否为线性关系
假设检验
(没有线性关系)
(有线性关系)
myfit_log <- lm(log(freq1) ~ log(binned.k))
anova(myfit_log)
summary(myfit_log)
结果如下
> anova(myfit_log)
Analysis of Variance Table
Response: log(freq1)
Df Sum Sq Mean Sq F value Pr(>F)
log(binned.k) 1 48.979 48.979 102.03 7.647e-09 ***
Residuals 18 8.640 0.480
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
这是方差分析表,结果表明模型拟合数据较好(F value = 102.03, P < 0.001)
> summary(myfit_log)
Call:
lm(formula = log(freq1) ~ log(binned.k))
Residuals:
Min 1Q Median 3Q Max
-1.7026 -0.4063 0.2258 0.5573 0.7013
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.2268 0.5885 2.084 0.0516 .
log(binned.k) -1.7110 0.1694 -10.101 7.65e-09 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.6928 on 18 degrees of freedom
Multiple R-squared: 0.85, Adjusted R-squared: 0.8417
F-statistic: 102 on 1 and 18 DF, p-value: 7.647e-09
这是参数估计结果,自变量有显著意义( P < 0.001),常数项( P < 0.1),因变量变异中85%的可以被解释()
结论
综合拒绝,接受, 和 呈线性关系,也就说明和k的频率呈幂次关系。
网友评论