2017-01-19 9 views
0

У меня возникли трудности с созданием нескольких тепловых карт с пакетом ComplexHeatmap. Когда я запускаю скрипт, который содержит код точно поднятый из документации (https://bioconductor.org/packages/release/bioc/vignettes/ComplexHeatmap/inst/doc/s3.a_list_of_heatmaps.html) ...Ошибка при создании нескольких тепловых карт с пакетом ComplexHeatmap

library(ComplexHeatmap) 

mat1 = matrix(rnorm(80, 2), 8, 10) 
mat1 = rbind(mat1, matrix(rnorm(40, -2), 4, 10)) 
rownames(mat1) = paste0("R", 1:12) 
colnames(mat1) = paste0("C", 1:10) 

mat2 = matrix(rnorm(60, 2), 6, 10) 
mat2 = rbind(mat2, matrix(rnorm(60, -2), 6, 10)) 
rownames(mat2) = paste0("R", 1:12) 
colnames(mat2) = paste0("C", 1:10) 

ht1 = Heatmap(mat1, name = "ht1") 
ht2 = Heatmap(mat2, name = "ht2") 
class(ht1) 

class(ht2) 

ht1 + ht2 

... Я получаю сообщение об ошибке:

Error in ht1 + ht2 : non-numeric argument to binary operator 
Execution halted 

Я бегу R версии 3.3.2 (2016-10-31) - «Искренняя тыквенная патч» на Mac OS X 10.12.2 с ComplexHeatmap версии 1.12.0. Спасибо за любую помощь!

+0

Когда я запустил 'source (" https://bioconductor.org/biocLite.R "); biocLite («ComplexHeatmap») 'пару минут назад была установлена ​​версия 1.10.2 (R 3.3.2, Windows). И я не мог воспроизвести вашу проблему. Возможно, версия ComplexHeatmap версии 1.12.0 нестабильна. – cuttlefish44

+0

Это пришло мне в голову. Есть ли способ установить предыдущую версию? Я консультировался с документацией, но не видел никакого очевидного способа сделать это ... – brt381

+0

'remove.packages (" ComplexHeatmap ")'. И запустите 'source (" https://bioconductor.org/biocLite.R "); biocLite ("ComplexHeatmap") 'или загрузить zip.file и установить его с помощью. – cuttlefish44

ответ

0

Я понял. Проблема заключалась в том, что пакет «методов» должен быть присоединен. Если вы запустили вышеуказанный код непосредственно в R (который я НЕ делал), он работает как есть (поскольку по-видимому, R по-видимому загружает пакет методов по умолчанию), но если у вас есть сценарий в файле и запускайте его через Rscript (который это то, что я сделал), вы получаете указанную ошибку. Однако, если вы добавите

В начало сценария он работает через Rscript.