Преобразование идентификаторов Ensembl мыши в имена генов во фрейме данных

Недавно я создал неконтролируемую иерархическую тепловую карту кластера, используя 30 различных образцов последовательности РНК. Ось x помечена как имя каждого образца, а ось y отображает 100 наиболее вариабельных генов, представленных как идентификаторы Ensembl мыши (например, ENSMUSG00000020573).

Мне просто интересно, есть ли у меня способ заменить идентификаторы Ensembl на имена генов (например, Pik3cg), прежде чем я введу их в функцию pheatmap ().

Моя таблица ввода:

                        WT_Animal1      WT_Animal2     WT_Animal3
ENSMUSG00000094652      0.03463869       0.7333992     -0.29986091
ENSMUSG00000006356     -0.64264559      -0.5609578     -0.06037522
ENSMUSG00000019897      0.09159506      -0.1133322     -0.12974861
ENSMUSG00000027790     -0.25124228       1.2871582     -0.92491260
ENSMUSG00000054999     -0.58618795       1.2079283     -0.89929279
ENSMUSG00000072573      0.16812802       0.1058453     -0.16593449 

Я изменил имена столбцов вручную, используя colnames (mat) ‹- c (), но я хочу знать, как изменить имена строк (Ensembl ID), используя другую функцию, чтобы я мог воспроизвести их на дальнейших графиках.

Я пытался прочитать об использовании biomaRt и других пакетов, но, похоже, не могу найти способ сделать это.

Любая помощь приветствуется!


person Lauren McKenzie    schedule 07.07.2020    source источник


Ответы (1)


Если вы хотите использовать biomaRt, вот как вы могли бы это сделать:

library(biomaRt)

# your example matrix
mat <- structure(list(
    WT_Animal1 = c(0.03463869, -0.64264559, 0.09159506, -0.25124228, -0.58618795, 0.16812802),
    WT_Animal2 = c(0.7333992, -0.5609578, -0.1133322, 1.2871582, 1.2079283, 0.1058453),
    WT_Animal3 = c(-0.29986091, -0.06037522, -0.12974861, -0.9249126, -0.89929279, -0.16593449)),
    class = "data.frame", 
    row.names = c("ENSMUSG00000094652", "ENSMUSG00000006356", "ENSMUSG00000019897", 
                  "ENSMUSG00000027790", "ENSMUSG00000054999",  "ENSMUSG00000072573"))

mart <- useMart(biomart = "ensembl", dataset = "mmusculus_gene_ensembl")
symb <- getBM(attributes = c("ensembl_gene_id","mgi_symbol"),
             filters = "ensembl_gene_id", values = rownames(mat),
             mart = mart)
symbs <- symb$mgi_symbol[match(rownames(mat), symb$ensembl_gene_id, nomatch = NA)]
heatmap(as.matrix(mat), labRow = symbs, margins = c(12, 10))

Создано 07.07.2020 с помощью пакета REPEX (v0.3.0)

person user12728748    schedule 07.07.2020