函数(HPOSim)的成对相似性矩阵

时间:2019-04-17 11:56:45

标签: r

我试图创建一个成对的相似度矩阵,在该矩阵中,我使用R包HPOSim的“ getSimWang”功能将每个HPO项与每个其他HPO项的相似性进行比较。可在此处获取软件包:https://sourceforge.net/projects/hposim/

我可以使用以下方法为HPO项的子集(约13,000个)创建成对相似性矩阵:

list1<-c("HP:0002404","HP:0011933","HP:0030286")

custom <- function(x,y){ 
           z <- getSimWang(x,y)
           return(z)
        }

outer(list1, list1, Vectorize(custom))
         [,1]      [,2] [,3]
[1,] 1.0000000 0.6939484    0
[2,] 0.6939484 1.0000000    0
[3,] 0.0000000 0.0000000    1

sapply(list1, function(x) sapply(list1, function(y) custom(x,y)))
           HP:0002404 HP:0011933 HP:0030286
HP:0002404  1.0000000  0.6939484          0
HP:0011933  0.6939484  1.0000000          0
HP:0030286  0.0000000  0.0000000          1

但是,当我尝试扩展此代码以将其应用于其余HPO术语时,R进行了24小时的计算,而当我使用pbsapply估计所需的时间时,估计为20 < strong>

我也尝试过mapply-但这只是给我一部分计算(x1y1,x2y2和x3y3),而不是所有组合(x1y1,x1y2,x1y3等)。

mapply(custom, list1, list1)

HP:0002404 HP:0011933 HP:0030286 
         1          1          1

还有xapply解决方案here,但是当我运行该解决方案时,我丢失了要比较哪些术语的信息:

xapply(FUN = custom, list1, list1)
[[1]]
[1] 1

[[2]]
[1] 0.6939484

[[3]]
[1] 0

[[4]]
[1] 0.6939484

[[5]]
[1] 1

[[6]]
[1] 0

[[7]]
[1] 0

[[8]]
[1] 0

[[9]]
[1] 1

我是否缺少一种不同的方法来获取相似度的成对计算(或理想情况下为非冗余成对计算)?还是真的需要20天?!?

0 个答案:

没有答案