R: пакет ComplexHeatmap: oncoPrint: Как повернуть имена столбцов. По умолчанию они вертикальные, я хочу горизонтальные

используя функцию «oncoPrint» в пакете «ComplexHeatmap», я хочу повернуть имена столбцов (показаны зеленым на прикрепленном изображении) с вертикальных на горизонтальные, так как это будет легче читать.

Я безуспешно пробовал много вариантов gpar: las, rot, crt, srt

пример: column_names_gp = gpar (las = 1)

пример: ht_global_opt (heatmap_column_names_gp = gpar (las = 0))

Это должно быть возможно ... но как?

Вот мой дилетантский код, за которым следуют некоторые данные (имена генов были изменены, чтобы защитить невиновных).


библиотека (ComplexHeatmap)

Filepath_details ‹-file.choose ()

mat = read.table (Filepath_details, header = TRUE, stringsAsFactors = FALSE, sep = ",")

мат [is.na (мат)] = ""

rownames (mat) = mat [, 1] # определить имена строк как идентификатор образца.

mat = mat [, -1] # столбец 1 теперь лишний, удалите его.

mat = mat [, -ncol (mat)] # убеждаемся, что выбран весь идентификатор таблицы.

mat = t (as.matrix (mat)) # превращаем данные в матрицу.

mat [1: 3, 1: 3] # это просто дает визуальную проверку обработки данных только 3x3

alter_fun_list = list (background = function (x, y, w, h) {grid.rect (x, y, w-unit (0,5, "мм"), h-unit (0,5, "мм"), gp = gpar (fill = "#CCCCCC", col = NA))}, "nonsense" = function (x, y, w, h) {grid.rect (x-0.008, y, w * 0.45, h-unit (0.5, "мм"), gp = gpar (fill = "red", col = NA))}, "missense" = function (x, y, w, h) {grid.rect (x-0.008, y, w * 0.45 , h-unit (0,5, "мм"), gp = gpar (fill = "blue", col = NA))}, "silent" = function (x, y, w, h) {grid.rect (x + 0,008, y, w * 0,45, h-unit (0,5, "мм"), gp = gpar (fill = "forestgreen", col = NA))})

col = c ("silent" = "forestgreen", "nonsense" = "red", "missense" = "blue")

oncoPrint (mat, get_type = function (x) strsplit (x, "-") [1], alter_fun_list = alter_fun_list, col = col, show_column_names = TRUE, column_names_gp = gpar (cex = 0.5, font = 1, col = "green"), heatmap_legend_param = list (title = "Мутации"))


Tiff-изображение некоторых вымышленных данных о мутации генов


некоторые вымышленные данные для сохранения в виде текстового файла:, ТОМ, ДИК, ГАРРИ, ФРЕД, БИЛЛ, ТОД, ЭРНИ, ЭНДИ, САЙМОН, ДЖЕД, ВЕСС, ГЭРИ, ФИЛЛ, БЕРТ, ДЖОН, УОЛТ, ДУГ, СТЕН, ХАГ, Клифф, Нат, Эрл, Грэг, ЭД, Генри, Уилл, Пол, Джек, МИК 2 ,,,,,,,,,,,,,,,, миссенс ,,,,,,,,,,,,

5 ,,, молчание ,,,,,,,,,, миссенс ,,,,,, молчание-миссенс, миссенс, миссис ,,,,,,

6 ,,,,,,,,,,,,,,,,,,,,,,,,, молчит ,,,,

11 ,,,,,,,, молчит ,,,,,,,,,,,,,,,,,,,,,

12 ,,,,,,,,,,,,,,,, миссенс ,,,,,,,,,,,, миссис,

14 ,,,,,,,,,,,,,,,,,,,,,,,,,,,, миссис,

15 ,,,,,,,,,,,,, молчание ,, миссис ,,,,,,,,,,,,,,,

17 ,,,,,,,,, молчание ,,,, молчание ,,,,,,,,,,,,,,,, миссис,

18 ,,,,, missense ,,,,,,,,,,,, missense ,,,,, missense ,,,,,,,

19 ,,,,,,,,,,,,,,,,, missense ,,,,,,,,,,,,

20 ,,, молчание ,,,,,,,,,,,,,,,,,,,,,,,,, миссис,

23 ,,,,,,,,,,,,,, бессмыслица ,,,,,,,,,,,,,, чепуха,

27 ,,,,,,,,,,,,,,,,, missense ,,,,,,,,,,,,

28 ,,, миссенс ,,,,,,, молчание ,,,,,,,,,,,,,,,,,, миссенс,

29,, миссенс ,,,,,,, миссенс ,,,,,,,,,,,,,,,,,,,,

30 ,,,,,, missense ,,,,,,,,,,,,,,,,,,,,,,,

31 ,,,,,,,,,,, missense ,,,,,, missense ,,,,,,,,,,, missense,

39 ,,,,,,,,,,,,,,,,,, missense ,,,,,,,,,,,

42 ,,,,,,,,,,,,, молчание ,,,,, миссис, миссис ,,,,,,, молчание ,,,,

43 ,,,,,,,,,,, молчание ,,,,,,,,,,,,,,,,, миссис, молчание

45 ,,,, молчание ,,,,,,,,,,,,,,,,,,,,,,,, миссис,

46, Миссенс ,,,,,,,,,,,,,,,,,,,,, Миссенс,

47 ,,,,,,,,,, бессмыслица ,,,,,,,,,,, бессмыслица ,,,,,,,,

50 ,,,,,,,,,,,,,,,,, missense ,,,,,,, чепуха ,,,,,

51 ,,,,,,,,,,,,,,,,,,,, missense ,,,,,,,,,

52``

60 ,,,,,,, missense ,,,,,,,,,,,,,,,,,,,,,,

63 ,,,,,,,,,,,,,,,,,,,,,,,,,,, вздор,

64 ,,,,,,,,,,,,,,,,,,,, missense ,,,,,,,, missense,

65 ,,,,,,,,,,,,,,,,, missense ,,,,,,,,,,,,

66 ,,,,,,,,,,,,,, молчит ,,,,,,,,,,,,,,,,,


Я очень надеюсь, что здесь кто-нибудь может мне помочь ... Я еще не был так озадачен R.

с благодарностью...

Андрей


person AJD    schedule 12.04.2016    source источник


Ответы (1)


Я не думаю, что установка имен столбцов по горизонтали будет легко читаемой ...

Однако, если вы хотите этого, вы можете сначала подавить имена столбцов и добавить аннотации столбцов, которые представляют собой имена столбцов в нижней части oncoprint.

Сначала определите аннотацию столбца, которая содержит имена столбцов, также мы вычислим высоту имен столбцов:

ha = HeatmapAnnotation(cn = anno_text(colnames(mat), just = "top", offset = unit(1, "npc"))
ha_height = max_text_height(colnames(mat))

Затем подавите имена столбцов и добавьте аннотацию столбцов в нижнюю часть тепловой карты.

oncoPrint(mat, get_type = function(x) strsplit(x, "-")[1], 
    alter_fun_list = alter_fun_list, col = col, 
    show_column_names = FALSE, 
    column_names_gp = gpar(cex=0.5, font=1, col= "green"), 
    heatmap_legend_param = list(title = "Mutations"),
    bottom_annotation = ha, bottom_annotation_height = ha_height)
person Zuguang Gu    schedule 26.04.2016