R包很大-为什么采用部分相关会改变相关的符号?

时间:2019-05-02 00:40:43

标签: r gaussian

我一直在使用巨大的R包来创建对数转换的基因表达数据的高斯图形模型(我有367个基因和150个样本)。但是,如果我在应用巨大的两个基因之前就进行了两个基因的相关,则我发现正相关,而当我看到巨大的输出的部分相关时,我看到了符号反转。又说,如果两个基因显示出正的边际相关性,那么在使用巨大的时候我会看到负的部分相关性。我知道部分相关应该减少相关性,但是我对如何完全改变符号感到困惑。有谁知道为什么会这样,或者能够将我指向其他软件包?

library(huge)

#The TCGA Pancreatic Illumina sequencing with patients as columns
#and genes as rows
rnaseq.read = as.matrix(read.table("PAAD_HiSeqV2.gz", header = T, row.names = 1, sep="\t"))

#This gives a list of the 360 genes we're interested in
genes_list = read.table("DE_gene_high_v_low.txt",header=T,sep="\t")

rnaseq = rnaseq.read[(rownames(rnaseq.read) %in% gene_list),]

#An example being RARG which has been shown to bind to a KCNN4 promoter
#likely leading to increase in KCNN4
#When I plot this I see a positive slope as expected
plot(rnaseq[,"RARG"],rnaseq[,"KCNN4"])

PDAC.all = huge(t(rnaseq), method="glasso")
PDAC.all.select = huge.select(PDAC.all, criterion="stars")
PDAC_icov = as.matrix(PDAC.all.select$opt.icov)
ig_PDAC = graph.adjacency(PDAC_icov, mode="undirected", weighted=TRUE, add.colnames = "name")

#However, when I look at the partial correlation matrix, the correlation is now -0.201
PDAC_icov["RARG","KCNN4"]

我希望部分相关仍然是正的,但它是负的。我在其他配对中也看到了这一点,其中具有正边缘相关性的配对具有负偏相关性,反之亦然。

1 个答案:

答案 0 :(得分:0)

"glasso"方法在变量opt.icov中返回精度矩阵。要获得偏相关估计,您需要将精度转换为相关矩阵并更改其符号(有关更多详细信息,请参阅Wikipedia页面)。

在您的情况下,PDAC.all.select$opt.icov表示协方差逆矩阵(精度)。 要获得偏相关,您需要更改其符号并除以对角元素的平方根的乘积:

partial.corr = -cov2cor(PDAC.all.select$opt.icov)