Я сейчас пытаюсь собрать тепловую карту, используя ComplexHeatmap
.Однако, когда я пытаюсь разделить мою тепловую карту на столбцы и строки, она не работает.
Когда я возвращаюсь к документации , которая сопровождает ComplexHeatmap
, я обнаружил, что их собственный примерне будет работать, возвращая сообщение об ошибке unused arguments
.Мне было интересно, сможет ли кто-то пролить свет на то, что может происходить.
Вот примерная матрица:
set.seed(123)
nr1 = 4; nr2 = 8; nr3 = 6; nr = nr1 + nr2 + nr3
nc1 = 6; nc2 = 8; nc3 = 10; nc = nc1 + nc2 + nc3
mat = cbind(rbind(matrix(rnorm(nr1*nc1, mean = 1, sd = 0.5), nr = nr1),
matrix(rnorm(nr2*nc1, mean = 0, sd = 0.5), nr = nr2),
matrix(rnorm(nr3*nc1, mean = 0, sd = 0.5), nr = nr3)),
rbind(matrix(rnorm(nr1*nc2, mean = 0, sd = 0.5), nr = nr1),
matrix(rnorm(nr2*nc2, mean = 1, sd = 0.5), nr = nr2),
matrix(rnorm(nr3*nc2, mean = 0, sd = 0.5), nr = nr3)),
rbind(matrix(rnorm(nr1*nc3, mean = 0.5, sd = 0.5), nr = nr1),
matrix(rnorm(nr2*nc3, mean = 0.5, sd = 0.5), nr = nr2),
matrix(rnorm(nr3*nc3, mean = 1, sd = 0.5), nr = nr3))
)
mat = mat[sample(nr, nr), sample(nc, nc)] # random shuffle rows and columns
rownames(mat) = paste0("row", seq_len(nr))
colnames(mat) = paste0("column", seq_len(nc))
, которая дает вам следующее:
И вот команда, демонстрирующая, как использовать разбиение на строки и столбцы:
install.packages('ComplexHeatmap')
Heatmap(mat, name = "mat",
row_split = rep(c("A", "B"), 9), column_split = rep(c("C", "D"), 12))
Вот вывод, который создатели ComplexHeatmap говорят, что яследует ожидать, что, как вы видите, красиво разделено на четыре плитки.
Но все, что я получаю, это следующее сообщение об ошибке:
Error in Heatmap(mat, name = "mat", row_split = rep(c("A", "B"), 9), column_split = rep(c("C", :
unused arguments (row_split = rep(c("A", "B"), 9), column_split = rep(c("C", "D"), 12))
Поскольку даже пример, который они предоставляют, не работает, я изо всех сил пытаюсь добиться успеха.
Я уже поменял пакеты один раз, по какой-то причине heatmap.2 начал вести себя очень хаотично, для чего я поднял другой вопрос в другом месте.