首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R中矩阵的一对多相关计算

R中矩阵的一对多相关计算
EN

Stack Overflow用户
提问于 2017-06-07 03:22:59
回答 1查看 660关注 0票数 1

试图计算一个特定基因(这里是它的基因1)与矩阵中所有其他基因(35999个候选基因)的相关性。

代码语言:javascript
运行
复制
         samp1   samp2   samp3   samp4
Gene 1  3.7891  2.4487  1.1939  0.6013
Gene 2  1.4484  3.2316  2.841   1.9545
Gene 3  0.4505  2.6062  2.0729  0.6403
.
.
Gene 36000  1.8828  5.2633  2.7552  1.7335

我使用了以下代码

代码语言:javascript
运行
复制
library(Hmisc)
A <- read.table("C:/Users/Desktop/exp.txt", header=T, sep="\t")
cor <- rcorr(as.matrix(A), type="pearson")


write.csv(cor$r,'C:/Users/Desktop/pCC VALUES.csv')
write.csv(cor$P,'C:/Users/Desktop/p VALUES.csv')

但是上面的代码是用于36000*36000矩阵计算的。然而,我想得到1到许多相关性,其中感兴趣的基因始终是第一个基因。在这里,它的基因1。这将节省处理时间。一种方法显然是从输出中提取我感兴趣的36000对。我想知道是否有其他方法可以找出我的基因与没有的所有其他基因的相关性

编辑:

我在寻找类似于格式的输出,

代码语言:javascript
运行
复制
Gene 1 Gene 2   pcc  p-value
Gene 1 Gene 3   pcc  p-value
.
.
Gene 1 Gene 36000 pcc p-value
end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-07 04:58:53

如果我对你说得对(将第一行与每一行联系起来,一次只取一行),沿着这些路线的一些东西可能会让你开始:

代码语言:javascript
运行
复制
dat <- as.matrix(read.table(text = "samp1;samp2;samp3;samp4
Gene 1;3.7891;2.4487;1.1939;0.6013
Gene 2;1.4484;3.2316;2.841;1.9545
Gene 3;0.4505;2.6062;2.0729;0.6403
Gene 4;0.4705;2.4062;1.0729;0.6003
Gene 5;1.8828;5.2633;2.7552;1.7335", sep=";"))

corr_list <- list()

for (i in 2:nrow(dat)) {
  r <- cor.test(dat[1,], dat[i,])
  corr_list[[paste("Genes 1 &", i)]] <- c(r$estimate, p.val=r$p.value)
}


# Results
corr_list

$`Genes 1 & 2`
       cor      p.val 
-0.3070573  0.6929427 

$`Genes 1 & 3`
       cor      p.val 
-0.1417635  0.8582365 

$`Genes 1 & 4`
       cor      p.val 
0.04777015 0.95222985 

$`Genes 1 & 5`
      cor     p.val 
0.1425788 0.8574212 

如果更方便的话,也可以将结果放入data.frame中:

代码语言:javascript
运行
复制
corr_list <- data.frame(Gene1=numeric(), Gene2=numeric(), cor=numeric(), p.value=numeric())

for (i in 2:nrow(dat)) {
  r <- cor.test(dat[1,], dat[i,])
  corr_list[i-1,] <- c(1, i, r$estimate, r$p.value)
}

corr_list

  Gene1 Gene2         cor   p.value
1     1     2 -0.30705735 0.6929427
2     1     3 -0.14176355 0.8582365
3     1     4  0.04777015 0.9522299
4     1     5  0.14257884 0.8574212
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44402943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档