Pheatmap - Аннотация: Ошибка нижнего индекса

Тестовые RData: https://www.dropbox.com/s/hy56owg4mfjuxol/Test_Data.RData?dl=0

CSV: https://www.dropbox.com/s/hs6qpoxyg54ehid/Test_Data.csv?dl=0

Аннотации: https://www.dropbox.com/s/akv66euwh3ulia2/Test_Data_Annotation?dl=0

Построение этого набора данных выполняется так, как ожидалось:

pheatmap(t(pred.MDSC), fontsize=8)

введите описание изображения здесь

Однако, если я затем попытаюсь добавить к нему аннотацию (используя anno DF в файле):

pheatmap(t(pred.MDSC),fontsize=8,labels_col = rownames(anno), show_colnames = TRUE, annotation_col = anno)

Возвращает ошибку:

Error in annotation_colors[[colnames(annotation)[i]]] : 
  subscript out of bounds

Что я делаю неправильно?


person user3012926    schedule 11.02.2020    source источник
comment
Что такое класс pred.MDSC? Это список? Мой компьютер не может загрузить ваш файл RData. Возможно, вы можете попробовать другой способ предоставить свои данные, например dput.   -  person Darren Tsai    schedule 11.02.2020
comment
@DarrenTsai Я обновил файл. pred.MDSC теперь простой DF.   -  person user3012926    schedule 11.02.2020
comment
Загрузка вашего .Rdata вызывает ошибку. Пожалуйста, предоставьте данные в формате .csv или .txt.   -  person Bappa Das    schedule 11.02.2020
comment
Это та же проблема, что и эта, которую я опубликовал. Перед черчением выполните rownames(pred.MDSC) <- 1:nrow(pred.MDSC). Причина объяснена в ответе.   -  person Darren Tsai    schedule 11.02.2020
comment
@DarrenTsai Спасибо. Это сработало. Не стесняйтесь размещать это как ответ.   -  person user3012926    schedule 11.02.2020
comment
@ user3012926 посмотри мой ответ сейчас. Я предоставил данные, которые использовались для построения графика. Поскольку это были большие данные, я не мог предоставить их в формате dput().   -  person Bappa Das    schedule 11.02.2020
comment
да это не очень очевидно в виньетке. вы также можете проверить сообщение, на которое я ответил. stackoverflow.com/questions/58853068/   -  person StupidWolf    schedule 11.02.2020


Ответы (1)


Чтобы решить эту проблему, вы можете сначала транспонировать свои данные, чтобы повторяющиеся имена строк стали именами столбцов. Затем прочтите файл как

df <- read.csv("Test_Data.csv", row.names = 1)

pheatmap(df, fontsize=8)

что дает вам  введите описание изображения здесь

Вы можете получить данные, используемые для построения, отсюда https://www.dropbox.com/s/vco1rd5uelyoui9/Test_Data.csv?dl=0

person Bappa Das    schedule 11.02.2020