Матрица парного сходства из функции (HPOSim) - PullRequest
0 голосов
/ 17 апреля 2019

Я пытаюсь создать матрицу попарного сходства, где сравниваю сходство каждого члена HPO с каждым другим термином HPO, используя функцию getSimWang пакета R HPOSim. Пакет доступен здесь: 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 дней !

Я также попробовал mapply - но это дает мне только подмножество вычислений (x1y1, x2y2 и x3y3), а не все комбинации (x1y1, x1y2, x1y3 и т. Д.).

mapply(custom, list1, list1)

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

И решение xapply здесь , но когда я запускаю его, я теряю информацию о том, какие термины сравниваются:

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 дней?!?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...